응답 시간 기반 자동화
고급
이것은Miscellaneous, Multimodal AI분야의자동화 워크플로우로, 16개의 노드를 포함합니다.주로 If, Set, Wait, Gmail, Function 등의 노드를 사용하며. 작업 시간 잠재 고객 응답 시스템 (Gmail, Google 스프레드시트, Telegram 알림)
사전 요구사항
- •Google 계정 및 Gmail API 인증 정보
- •Telegram Bot Token
- •Google Sheets API 인증 정보
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "RB08fvn7cXuNcJKU",
"meta": {
"instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
"templateCredsSetupCompleted": true
},
"name": "Automated reply_hours based automation",
"tags": [],
"nodes": [
{
"id": "b3eabad0-a164-4795-b945-28aef6495a00",
"name": "5분 대기",
"type": "n8n-nodes-base.wait",
"position": [
-720,
0
],
"webhookId": "f91de49f-1455-487f-9c38-5a4be0742f83",
"parameters": {
"unit": "minutes",
"amount": 5
},
"typeVersion": 1
},
{
"id": "b0ccf87c-4703-41e8-98ee-79f5ff41b400",
"name": "영업 시간 확인",
"type": "n8n-nodes-base.function",
"position": [
-496,
0
],
"parameters": {
"functionCode": "return items.map(item => {\n const timestamp = item.json[\"Time Stamp\"]; // <-- corrected key\n\n // Convert Excel serial timestamp to JS Date\n const excelEpoch = new Date(Date.UTC(1899, 11, 30));\n const jsDate = new Date(excelEpoch.getTime() + timestamp * 24 * 60 * 60 * 1000);\n\n const day = jsDate.getDay(); // 0=Sunday, 6=Saturday\n const hour = jsDate.getHours();\n\n // Configure business hours here\n const businessDays = [1, 2, 3, 4, 5]; // Mon-Fri\n const startHour = 9;\n const endHour = 18;\n\n let isBusinessHours = false;\n if (businessDays.includes(day) && hour >= startHour && hour < endHour) {\n isBusinessHours = true;\n }\n\n // Format only the time (HH:mm:ss)\n const onlyTime = jsDate.toTimeString().substring(0, 8);\n\n return {\n json: {\n ...item.json,\n exactDateTime: jsDate.toISOString(), // valid datetime for IF node\n onlyTime, // e.g. \"19:05:03\" (for display only)\n isBusinessHours\n }\n };\n});\n"
},
"typeVersion": 1
},
{
"id": "a2107454-799e-4c31-b23f-bd586d1eaf86",
"name": "IF 영업 시간?",
"type": "n8n-nodes-base.if",
"position": [
-272,
0
],
"parameters": {
"conditions": {
"dateTime": [
{
"value1": "={{ $json.exactDateTime }}",
"value2": "2025-09-02T18:00:00",
"operation": "before"
}
]
}
},
"typeVersion": 1
},
{
"id": "365df3f2-c7b4-4b47-a1ce-5d12ecc2fbec",
"name": "Gmail 전송 (영업 시간)",
"type": "n8n-nodes-base.gmail",
"position": [
176,
-96
],
"parameters": {
"toList": [
"={{ $json[\"Email Address\"] }}"
],
"message": "=Hii {{ $json[\"First Name\"] }}{{ $json[\"Last name\"] }}\n\nThanks for connecting,\nOur team will get back to you soon",
"subject": "Thanks for reaching out!",
"resource": "message",
"additionalFields": {}
},
"credentials": {
"gmailOAuth2": {
"id": "RchiXdmY8WaQhOSJ",
"name": "Gmail account"
}
},
"typeVersion": 1
},
{
"id": "40e0ccb1-681b-468d-a046-3d24b32f2a26",
"name": "Gmail 전송 (영업 시간 외)",
"type": "n8n-nodes-base.gmail",
"position": [
176,
96
],
"parameters": {
"toList": [
"={{ $json[\"Email address\"] }}"
],
"message": "=Hii {{ $json[\"First name\"] }}{{ $json[\"Last name\"] }}\n\nThanks for connecting in after hours\nOur team will get back to you tomorrow",
"subject": "Thanks for contacting us (After Hours)",
"resource": "message",
"additionalFields": {}
},
"credentials": {
"gmailOAuth2": {
"id": "RchiXdmY8WaQhOSJ",
"name": "Gmail account"
}
},
"typeVersion": 1
},
{
"id": "a2824f7c-78c0-4bb2-92c6-b2f56156908e",
"name": "Telegram 알림",
"type": "n8n-nodes-base.telegram",
"position": [
400,
0
],
"webhookId": "93d3561a-1fbd-4114-9459-75994be03027",
"parameters": {
"text": "=📩 New lead received!\nName:{{ $('Google Sheets Trigger1').item.json['First Name'] }} {{ $('Google Sheets Trigger1').item.json['Last name'] }} \nEmail: {{ $('Google Sheets Trigger1').item.json['Email Address'] }}\n\nConnect with the lead tomorrow",
"chatId": "1848105620",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "eoz18tywRndbv87T",
"name": "Telegram account -anuj"
}
},
"typeVersion": 1
},
{
"id": "f56122fd-a759-4f8b-9cef-df47e6787a55",
"name": "Google Sheets Trigger1",
"type": "n8n-nodes-base.googleSheetsTrigger",
"position": [
-944,
0
],
"parameters": {
"event": "rowUpdate",
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 2142376877,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1NxuC7u6ycvn18f-vyUjvIiYmQ_DJiH7q6YwLndIlLi8/edit#gid=2142376877",
"cachedResultName": "Form Responses 1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1NxuC7u6ycvn18f-vyUjvIiYmQ_DJiH7q6YwLndIlLi8",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1NxuC7u6ycvn18f-vyUjvIiYmQ_DJiH7q6YwLndIlLi8/edit?usp=drivesdk",
"cachedResultName": "Lead form (Responses)"
}
},
"credentials": {
"googleSheetsTriggerOAuth2Api": {
"id": "tjY8nawuuRO1rxAE",
"name": "Google Sheets Trigger account"
}
},
"typeVersion": 1
},
{
"id": "319a8e69-f652-4713-aaac-d2365c8fb0e3",
"name": "필드 편집",
"type": "n8n-nodes-base.set",
"position": [
-48,
96
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "70fef5df-53fd-43dc-bd0c-536bd53876f5",
"name": "First name",
"type": "string",
"value": "={{ $('Google Sheets Trigger1').item.json['First name'] }}"
},
{
"id": "e4c87a58-3ac6-427a-aa8b-3f8fe4614173",
"name": "Last name",
"type": "string",
"value": "={{ $('Google Sheets Trigger1').item.json['Last name'] }}"
},
{
"id": "bff7e63c-cf7a-4249-a4a3-8e587abefc91",
"name": "Email address",
"type": "string",
"value": "={{ $('Google Sheets Trigger1').item.json['Email address'] }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "9761aed1-58b5-4fa6-a6fb-0a2c278ca047",
"name": "메모지",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1072,
-416
],
"parameters": {
"height": 400,
"content": "## Node 1: Google Sheets Trigger1\n**Type**: Trigger Node\n**Purpose**: Lead Form Monitor\n**Description**: This node continuously monitors a spreadsheet for new lead form submissions or updates to existing entries. It polls the data source every minute and automatically triggers the workflow when new responses are detected or when existing rows are updated. The node captures lead information including names, email addresses, and timestamps from form submissions."
},
"typeVersion": 1
},
{
"id": "8a747a3f-7199-450e-b73d-e57f407fdd63",
"name": "메모지1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-864,
160
],
"parameters": {
"height": 336,
"content": "## Node 2: Wait 5 Minutes\n**Type**: Delay Node\n**Purpose**: Processing Buffer\n**Description**: This node introduces a 5-minute delay before processing the lead data. This buffer time allows for any additional form data to be fully captured and ensures system stability before proceeding with the automated response logic. The delay helps prevent processing incomplete or rapidly changing data."
},
"typeVersion": 1
},
{
"id": "b3a3477d-09e9-43b8-85a8-6bda95a18ba1",
"name": "메모지2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-608,
-432
],
"parameters": {
"height": 416,
"content": "## Node 3: Check Business Hours\n**Type**: Custom Function Node\n**Purpose**: Time Analysis Engine\n**Description**: This node processes timestamp data from the lead form to determine when the inquiry was received. It converts Excel serial timestamps to standard datetime formats, analyzes the day of the week and hour, and determines whether the submission occurred during configured business hours (typically Monday-Friday, 9 AM-6 PM). The node outputs formatted time information and a business hours flag."
},
"typeVersion": 1
},
{
"id": "4a0f74be-c781-4d0e-8602-629a374666e5",
"name": "메모지3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-432,
144
],
"parameters": {
"height": 368,
"content": "## Node 4: IF Business Hours?\n**Type**: Conditional Logic Node\n**Purpose**: Response Path Router\n**Description**: This node evaluates whether the lead submission occurred during business hours based on the analysis from the previous node. It creates two distinct execution paths: one for leads received during business hours and another for after-hours submissions. The conditional logic ensures appropriate response messaging based on timing."
},
"typeVersion": 1
},
{
"id": "95366c59-2534-4958-9486-69bce28df5db",
"name": "메모지4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-96,
-448
],
"parameters": {
"width": 256,
"height": 368,
"content": "## Node 5: Send Gmail (Business Hours)\n**Type**: Email Communication Node\n**Purpose**: Standard Business Response\n**Description**: This node sends an automated email response to leads who submitted inquiries during business hours. It composes a personalized message using the lead's name, acknowledges their inquiry, and provides a standard business-hours response indicating that the team will respond soon. The email is sent from a configured business email account."
},
"typeVersion": 1
},
{
"id": "a14ce2d8-a41e-4fb1-93e8-60ed91476603",
"name": "메모지5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-112,
256
],
"parameters": {
"height": 320,
"content": "## Node 6: Edit Fields\n**Type**: Data Processing Node\n**Purpose**: Field Standardizer\n**Description**: This node processes and standardizes lead data fields for after-hours submissions. It ensures consistent field naming and formatting between the trigger data and the email sending requirements. The node maps and cleans up field names (first name, last name, email address) to ensure compatibility with the after-hours email template."
},
"typeVersion": 1
},
{
"id": "bc1ce307-a9d6-4ccd-94cc-aa432ddc6241",
"name": "메모지6",
"type": "n8n-nodes-base.stickyNote",
"position": [
224,
256
],
"parameters": {
"height": 432,
"content": "## Node 7: Send Gmail (After Hours)\n**Type**: Email Communication Node\n**Purpose**: After-Hours Response\n**Description**: This node sends a specialized automated email response to leads who submitted inquiries outside of business hours. It composes a personalized message acknowledging the after-hours contact and sets appropriate expectations by informing the lead that the team will respond the next business day. The messaging is tailored for after-hours communications."
},
"typeVersion": 1
},
{
"id": "1670bf9f-7bcd-452a-90f0-680fb4a3f969",
"name": "메모지7",
"type": "n8n-nodes-base.stickyNote",
"position": [
576,
-128
],
"parameters": {
"height": 368,
"content": "## Node 8: Notify Telegram\n**Type**: Team Notification Node\n**Purpose**: Internal Alert System\n**Description**: This node sends immediate notifications to a team communication channel whenever a new lead is processed. It formats lead information (name, email) into a structured message and sends it via a messaging platform to alert team members about new inquiries. The notification includes relevant lead details and timing context for team awareness."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "1e243867-6190-4393-8668-3ce609784a0e",
"connections": {
"319a8e69-f652-4713-aaac-d2365c8fb0e3": {
"main": [
[
{
"node": "40e0ccb1-681b-468d-a046-3d24b32f2a26",
"type": "main",
"index": 0
}
]
]
},
"b3eabad0-a164-4795-b945-28aef6495a00": {
"main": [
[
{
"node": "b0ccf87c-4703-41e8-98ee-79f5ff41b400",
"type": "main",
"index": 0
}
]
]
},
"a2107454-799e-4c31-b23f-bd586d1eaf86": {
"main": [
[
{
"node": "365df3f2-c7b4-4b47-a1ce-5d12ecc2fbec",
"type": "main",
"index": 0
}
],
[
{
"node": "319a8e69-f652-4713-aaac-d2365c8fb0e3",
"type": "main",
"index": 0
}
]
]
},
"b0ccf87c-4703-41e8-98ee-79f5ff41b400": {
"main": [
[
{
"node": "a2107454-799e-4c31-b23f-bd586d1eaf86",
"type": "main",
"index": 0
}
]
]
},
"f56122fd-a759-4f8b-9cef-df47e6787a55": {
"main": [
[
{
"node": "b3eabad0-a164-4795-b945-28aef6495a00",
"type": "main",
"index": 0
}
]
]
},
"40e0ccb1-681b-468d-a046-3d24b32f2a26": {
"main": [
[
{
"node": "a2824f7c-78c0-4bb2-92c6-b2f56156908e",
"type": "main",
"index": 0
}
]
]
},
"365df3f2-c7b4-4b47-a1ce-5d12ecc2fbec": {
"main": [
[
{
"node": "a2824f7c-78c0-4bb2-92c6-b2f56156908e",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 기타, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
오디오를 UGC 비디오로 변환
OpenAI와 HeyGen을 사용하여 Telegram 오디오 메모에서 AI UGC 비디오를 생성
If
Set
Wait
+
If
Set
Wait
19 노드Rahul Joshi
콘텐츠 제작
후보자 설문 조사 분석
Azure GPT-4o-mini와 Google Sheets를 사용하여 면접을 평가하고 점수를 업데이트
Set
Code
Google Sheets
+
Set
Code
Google Sheets
16 노드Rahul Joshi
기타
HTTP Last-Modified 확인을 사용하여 Google Sheets에서 채용 공고 만료 및 새로고침 알림 가져오기
Google Sheets, HTTP 확인 및 Gmail을 통한 채용 공고 만료 알림 자동화
If
Set
Code
+
If
Set
Code
19 노드WeblineIndia
인사
GPT-4o, WordPress, LinkedIn을 사용한 RSS 콘텐츠 자동 블로그 게시
GPT-4o, WordPress 및 LinkedIn을 사용한 RSS 콘텐츠 블로그 게시물 자동 발행
If
Set
Code
+
If
Set
Code
40 노드Immanuel
인공지능
시간 기록 보고서 Clickup (BDE)
Gmail을 통한 자동 ClickUp 시간 추적 보고서 및 작업 성과 분석
If
Code
Gmail
+
If
Code
Gmail
16 노드Rahul Joshi
프로젝트 관리
서비스 후 평가 수집기
고객 평점 수집 및 감정 분석: HighLevel, GPT-4o, Gmail 및 Slack
If
Wait
Gmail
+
If
Wait
Gmail
20 노드Rahul Joshi
고객관계관리
워크플로우 정보
난이도
고급
노드 수16
카테고리2
노드 유형8
저자
Rahul Joshi
@rahul08Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유