Google 스프레드시트와 Puppeteer로 Instagram DM 및 상호작용 자동화
고급
이것은Lead Nurturing분야의자동화 워크플로우로, 43개의 노드를 포함합니다.주로 If, Code, Wait, Limit, Filter 등의 노드를 사용하며. Google 스프레드시트 및 Puppeteer를 활용한 Instagram 다이렉트 메시지 및 상호작용 자동화
사전 요구사항
- •HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Sheets API 인증 정보
사용된 노드 (43)
카테고리
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "bae91d9fd2fc59568657e329a7acafce827a5e83337ea795ba08c6589321900f"
},
"nodes": [
{
"id": "1c02bf82-9e11-42ce-a2bd-2f003c01f0e8",
"name": "Wait2",
"type": "n8n-nodes-base.wait",
"position": [
496,
208
],
"webhookId": "1f2864af-8b9b-419f-9098-0260745d0d9f",
"parameters": {
"amount": 2
},
"typeVersion": 1.1
},
{
"id": "377f7600-363e-4aad-8097-2bb274643682",
"name": "sheet1에 행 추가 또는 업데이트",
"type": "n8n-nodes-base.googleSheets",
"position": [
272,
208
],
"parameters": {
"columns": {
"value": {
"Active": "=TRUE",
"username": "={{ $json.user }}"
},
"schema": [
{
"id": "username",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "username",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "password",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "password",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "proxy",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "proxy",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Active",
"type": "string",
"display": true,
"required": false,
"displayName": "Active",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"username"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1434077398,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZNX9fypcwyObMT5tXV6U7iQ7lth2xYul-q8diaiohlo/edit#gid=1434077398",
"cachedResultName": "acc"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1ZNX9fypcwyObMT5tXV6U7iQ7lth2xYul-q8diaiohlo",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZNX9fypcwyObMT5tXV6U7iQ7lth2xYul-q8diaiohlo/edit?usp=drivesdk",
"cachedResultName": "next-task"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "cqlGJZJdttZJP57A",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "d993d7e3-d356-4bf4-bf5f-ee5a64eefb06",
"name": "Loop Over Items2",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-400,
304
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "669710b2-a3d4-4d51-ad13-9d67b766cc83",
"name": "HTTP Request1",
"type": "n8n-nodes-base.httpRequest",
"position": [
-176,
304
],
"parameters": {
"url": "http://host.docker.internal:3001/login",
"method": "POST",
"options": {},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "username",
"value": "={{ $json.username }}"
},
{
"name": "password",
"value": "={{ $json.password }}"
},
{
"name": "proxy",
"value": "={{ $json.proxy }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "861616b3-236b-49f0-9386-cec32ff0d253",
"name": "sheet2에서 행 가져오기",
"type": "n8n-nodes-base.googleSheets",
"position": [
-624,
304
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1434077398,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZNX9fypcwyObMT5tXV6U7iQ7lth2xYul-q8diaiohlo/edit#gid=1434077398",
"cachedResultName": "acc"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1ZNX9fypcwyObMT5tXV6U7iQ7lth2xYul-q8diaiohlo",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZNX9fypcwyObMT5tXV6U7iQ7lth2xYul-q8diaiohlo/edit?usp=drivesdk",
"cachedResultName": "next-task"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "cqlGJZJdttZJP57A",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "7674e75b-ee5c-4d8c-b4cd-66c4521fc502",
"name": "Loop Over Items3",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-880,
-480
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "5513f903-2bc6-486c-9ca0-9a296f4647cc",
"name": "Filter1",
"type": "n8n-nodes-base.filter",
"position": [
-1328,
-480
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "1f33fb41-ca94-4dd6-8303-b099d518b915",
"operator": {
"type": "string",
"operation": "empty",
"singleValue": true
},
"leftValue": "={{ $json.Status }}",
"rightValue": "s"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "91395ea6-306d-4af7-8fe2-ab6c4961ce09",
"name": "Limit1",
"type": "n8n-nodes-base.limit",
"position": [
-1104,
-480
],
"parameters": {
"maxItems": 100
},
"typeVersion": 1
},
{
"id": "5ec859af-480e-4f23-bae1-9baf9d19061c",
"name": "sheet3에서 행 가져오기",
"type": "n8n-nodes-base.googleSheets",
"position": [
-1552,
-480
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZNX9fypcwyObMT5tXV6U7iQ7lth2xYul-q8diaiohlo/edit#gid=0",
"cachedResultName": "leads"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1ZNX9fypcwyObMT5tXV6U7iQ7lth2xYul-q8diaiohlo",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZNX9fypcwyObMT5tXV6U7iQ7lth2xYul-q8diaiohlo/edit?usp=drivesdk",
"cachedResultName": "next-task"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "cqlGJZJdttZJP57A",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "87c9ec8e-263f-4a02-af79-3b18acfd66a0",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1328,
144
],
"parameters": {
"color": 3,
"width": 2528,
"height": 384,
"content": "## Login with an instagram account"
},
"typeVersion": 1
},
{
"id": "de2e47a4-70e5-47e1-8bb2-a5f52ee05cd8",
"name": "HTTP Request5",
"type": "n8n-nodes-base.httpRequest",
"position": [
-656,
-848
],
"parameters": {
"url": "http://host.docker.internal:3001/instagram",
"method": "POST",
"options": {},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "to",
"value": "={{ $json['username '] }}"
},
{
"name": "message",
"value": "={{ $json.message }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "bd720946-8b7a-45b1-9f99-460c876dd3f1",
"name": "start-viewing-storeies",
"type": "n8n-nodes-base.httpRequest",
"position": [
16,
-1040
],
"parameters": {
"url": "http://host.docker.internal:3001/viewstory",
"method": "POST",
"options": {},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "status",
"value": "start"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "6eeeeb17-6b55-43da-b548-9d0dfa3c7fa7",
"name": "Code in JavaScript3",
"type": "n8n-nodes-base.code",
"position": [
240,
-1040
],
"parameters": {
"jsCode": "// n8n Function Node code\n\n// Generate random delay between min and max seconds\nfunction randomDelaySeconds(minSec = 0.2, maxSec = 0.5) {\n return Math.floor(Math.random() * (maxSec - minSec + 1) + minSec);\n}\n\n// Example: get current message (from previous node)\nconst messages = items.map(item => item.json.message);\n\n// Output array\nconst output = [];\n\nfor (let i = 0; i < messages.length; i++) {\n output.push({\n json: {\n message: messages[i],\n delaySeconds: randomDelaySeconds(20, 30), // random 20–25 sec delay\n }\n });\n}\n\nreturn output;\n"
},
"typeVersion": 2
},
{
"id": "1be9b1d3-c190-4d40-86e8-4aed3b0cbeb5",
"name": "Wait5",
"type": "n8n-nodes-base.wait",
"position": [
688,
-1040
],
"webhookId": "7dc4be61-a5f8-4345-b67f-d1ea9366969f",
"parameters": {
"amount": "={{ $('Code in JavaScript3').item.json.delaySeconds }}"
},
"typeVersion": 1.1
},
{
"id": "e06d8545-f63e-4eb2-93bb-63cc14a9cbd8",
"name": "start-viewing-storeies1",
"type": "n8n-nodes-base.httpRequest",
"position": [
912,
-1040
],
"parameters": {
"url": "http://host.docker.internal:3001/viewstory",
"method": "POST",
"options": {},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "status",
"value": "stop"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "f66656c8-d966-491f-914c-1e165523d87a",
"name": "Code in JavaScript4",
"type": "n8n-nodes-base.code",
"position": [
1136,
-1040
],
"parameters": {
"jsCode": "// n8n Function Node code\n\n// Generate random delay between min and max seconds\nfunction randomDelaySeconds(minSec = 0.2, maxSec = 0.5) {\n return Math.floor(Math.random() * (maxSec - minSec + 1) + minSec);\n}\n\n// Example: get current message (from previous node)\nconst messages = items.map(item => item.json.message);\n\n// Output array\nconst output = [];\n\nfor (let i = 0; i < messages.length; i++) {\n output.push({\n json: {\n message: messages[i],\n delaySeconds: randomDelaySeconds(10, 20), // random 20–25 sec delay\n }\n });\n}\n\nreturn output;\n"
},
"typeVersion": 2
},
{
"id": "133b62ba-976c-4ccb-a9fb-6fb2e17a6161",
"name": "Wait6",
"type": "n8n-nodes-base.wait",
"position": [
1584,
-672
],
"webhookId": "7dc4be61-a5f8-4345-b67f-d1ea9366969f",
"parameters": {
"amount": "={{ $('Code in JavaScript4').item.json.delaySeconds }}"
},
"typeVersion": 1.1
},
{
"id": "3386ddd7-4762-4882-9294-9cf5a9474cdd",
"name": "sheet6에서 행 업데이트",
"type": "n8n-nodes-base.googleSheets",
"position": [
-208,
-1040
],
"parameters": {
"columns": {
"value": {
"Status": "send",
"username ": "={{ $('Loop Over Items3').item.json['username '] }}",
"Time Stamp": "= {{ $now.format('hh:mm a') }} / {{ $now.format('yyyy-MM-dd') }}\n"
},
"schema": [
{
"id": "username ",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "username ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "message",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "message",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Time Stamp",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Time Stamp",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"username "
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZNX9fypcwyObMT5tXV6U7iQ7lth2xYul-q8diaiohlo/edit#gid=0",
"cachedResultName": "leads"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1ZNX9fypcwyObMT5tXV6U7iQ7lth2xYul-q8diaiohlo",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZNX9fypcwyObMT5tXV6U7iQ7lth2xYul-q8diaiohlo/edit?usp=drivesdk",
"cachedResultName": "next-task"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "cqlGJZJdttZJP57A",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "451acdd9-036b-4214-95fb-764a9d79ed5b",
"name": "If3",
"type": "n8n-nodes-base.if",
"position": [
-432,
-848
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "54987f58-a3ac-499b-b114-27b2364a6c5e",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.success }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "7f3b39ed-41e7-4bc3-8349-2dbc00fc9e00",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
48,
304
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "ba487652-ef4d-4d00-8423-e826224ba7aa",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.success }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "1e96c3e5-badd-425a-8ef7-86ee6dfd2cb4",
"name": "Stop and Error",
"type": "n8n-nodes-base.stopAndError",
"position": [
272,
400
],
"parameters": {
"errorMessage": "Try again login with the account"
},
"typeVersion": 1
},
{
"id": "78cd6011-7119-44a9-9118-c752f77fddb7",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-800,
-992
],
"parameters": {
"color": 7,
"content": "## Sending Messge to the username from google sheet"
},
"typeVersion": 1
},
{
"id": "d47a8301-3f04-4bba-bbad-5f334f8a3f74",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1600,
-320
],
"parameters": {
"color": 7,
"content": "## Getting the leads information"
},
"typeVersion": 1
},
{
"id": "f1abd827-e986-4147-babb-e037fd7f1584",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1296,
-672
],
"parameters": {
"color": 7,
"content": "## Filtering based onthe send status that is avaliable on google sheet"
},
"typeVersion": 1
},
{
"id": "a7515f90-f95a-4ce5-b46f-b65d28345467",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-272,
-1216
],
"parameters": {
"color": 7,
"content": "## If message is send then updating it on google sheet"
},
"typeVersion": 1
},
{
"id": "2a4d7a4f-d5b2-4289-81a5-66af8b232f8b",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
176,
-912
],
"parameters": {
"color": 7,
"content": "## Waiting 15 -20 seconds , before running the story views"
},
"typeVersion": 1
},
{
"id": "1a3d96c8-70a1-4537-9c2e-ba8b7287664f",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
800,
-880
],
"parameters": {
"color": 7,
"content": "## Starting the stories views and scroll interactions"
},
"typeVersion": 1
},
{
"id": "2dd2a338-8e0d-48a1-8d4e-0bad64108cf5",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
1280,
-1104
],
"parameters": {
"color": 7,
"height": 128,
"content": "## Stoping the stories views and scroll interactions"
},
"typeVersion": 1
},
{
"id": "e7cd0cc9-6ad2-4325-8356-63c5d4a08af6",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
352,
-1264
],
"parameters": {
"color": 7,
"content": "## Waiting 4.5 to 5.5 minutes for this story views and stuff"
},
"typeVersion": 1
},
{
"id": "6fe6d696-984a-4e2e-9ed0-db427d9b13dc",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
1696,
-768
],
"parameters": {
"color": 7,
"content": "## Waiting for 2 to 3 minutes before sending the next message "
},
"typeVersion": 1
},
{
"id": "f5bdf1cb-d4a0-4629-a274-0496f0abe5bc",
"name": "Sticky Note10",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2032,
-464
],
"parameters": {
"color": 7,
"content": "## run the below workflow first ,before running this "
},
"typeVersion": 1
},
{
"id": "9b0172e1-6818-4ade-9afa-0e8d75571832",
"name": "If4",
"type": "n8n-nodes-base.if",
"position": [
-208,
-752
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "54987f58-a3ac-499b-b114-27b2364a6c5e",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.requestExceeded }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "d05a438a-62ae-4cbd-8037-b2749196bf76",
"name": "Stop and Error1",
"type": "n8n-nodes-base.stopAndError",
"position": [
16,
-848
],
"parameters": {
"errorMessage": "={{ $json.error }}"
},
"typeVersion": 1
},
{
"id": "882b350f-c63b-4abb-82d6-589cc3023162",
"name": "Sticky Note11",
"type": "n8n-nodes-base.stickyNote",
"position": [
-416,
-688
],
"parameters": {
"color": 7,
"content": "## Checking for the rate limit if exceed , it will stop"
},
"typeVersion": 1
},
{
"id": "41afbdb4-abe3-472c-8fa7-cb53531ab00d",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-848,
304
],
"webhookId": "3cb5f159-4fc0-426e-8b16-8da1049fa7f1",
"parameters": {
"path": "3cb5f159-4fc0-426e-8b16-8da1049fa7f1",
"options": {},
"responseMode": "responseNode"
},
"typeVersion": 2.1
},
{
"id": "212a64c7-a5f8-4467-b1c4-70c0d891b490",
"name": "Respond to Webhook",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
720,
208
],
"parameters": {
"options": {},
"respondWith": "json",
"responseBody": "={\n \"success\": {{ $('HTTP Request1').item.json.success }} ,\n \"message\": \"{{ $('HTTP Request1').item.json.message }}\",\n \"user\": \"{{ $('HTTP Request1').item.json.user }}\"\n} "
},
"typeVersion": 1.4
},
{
"id": "484d9c0d-7079-4ecf-ab52-ec73da08b950",
"name": "Webhook1",
"type": "n8n-nodes-base.webhook",
"position": [
-1776,
-480
],
"webhookId": "cdf1fb17-2208-4676-bc41-70e5fa0a2ecc",
"parameters": {
"path": "cdf1fb17-2208-4676-bc41-70e5fa0a2ecc",
"options": {},
"responseMode": "responseNode"
},
"typeVersion": 2.1
},
{
"id": "785f23e0-56ce-4fbc-a3c5-432c5265512a",
"name": "sheet에서 행 업데이트",
"type": "n8n-nodes-base.googleSheets",
"position": [
16,
-656
],
"parameters": {
"columns": {
"value": {
"Status": "=not-send ( Error : {{ $json.error }} ) ",
"username ": "={{ $('Loop Over Items3').item.json['username '] }}",
"Time Stamp": "= {{ $now.format('hh:mm a') }} / {{ $now.format('yyyy-MM-dd') }}\n"
},
"schema": [
{
"id": "username ",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "username ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "message",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "message",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Time Stamp",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Time Stamp",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"username "
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZNX9fypcwyObMT5tXV6U7iQ7lth2xYul-q8diaiohlo/edit#gid=0",
"cachedResultName": "leads"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1ZNX9fypcwyObMT5tXV6U7iQ7lth2xYul-q8diaiohlo",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZNX9fypcwyObMT5tXV6U7iQ7lth2xYul-q8diaiohlo/edit?usp=drivesdk",
"cachedResultName": "next-task"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "cqlGJZJdttZJP57A",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "7b98d241-28f9-47cf-bf8e-2389aea05984",
"name": "HTTP Request2",
"type": "n8n-nodes-base.httpRequest",
"position": [
464,
-1040
],
"parameters": {
"url": "http://host.docker.internal:3001/logthis",
"method": "POST",
"options": {},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "message",
"value": "=🧠 Simulating user actions | Delay {{ $json.delaySeconds }}s\n"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "d04dd361-a343-4c42-913b-9e324edca763",
"name": "HTTP Request4",
"type": "n8n-nodes-base.httpRequest",
"position": [
1360,
-1040
],
"parameters": {
"url": "http://host.docker.internal:3001/logthis",
"method": "POST",
"options": {},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "message",
"value": "=⏳ Waiting {{ $json.delaySeconds }}s before next user\n"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "2ece54c4-6bd2-4b4e-a8d9-0287e323b46e",
"name": "Respond to Webhook1",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
-656,
-560
],
"parameters": {
"options": {},
"respondWith": "json",
"responseBody": "{\n \"myField\": \"done man \"\n}"
},
"typeVersion": 1.4
},
{
"id": "fa1d0ba2-6548-4cea-a6dc-0f82c94e4b24",
"name": "Sticky Note12",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2544,
-1584
],
"parameters": {
"width": 1040,
"height": 1008,
"content": "### **🤖 Instagram DM Automation Workflow**\n\n---\n\n## **How It Works**\n\nThis workflow automates **Instagram direct messages and engagement tasks** using a **Puppeteer-powered backend**.\nIt connects with **Google Sheets** to fetch leads (Instagram usernames and custom messages) and sends **personalized DMs** automatically — while also simulating real human actions like scrolling, liking posts, and viewing stories.\n\nThe automation helps marketers and creators **nurture leads**, **maintain engagement**, and **save hours of manual effort** by running safe, human-like interactions on Instagram. It also logs all activity and updates your Google Sheets with the latest DM status for transparent tracking.\n\n---\n\n## **Setup Steps**\n\n1. **Google Sheets:** Connect with OAuth2 and add Sheet IDs for `leads` and `acc` tracking.\n2. **Backend Service:** Host a Puppeteer service (Node.js) handling `/login`, `/instagram`, `/viewstory`, and `/logthis`.\n3. **Webhook:** Use your n8n Webhook URL to trigger the workflow manually or through API calls.\n4. **Timing:** Adjust DM or story-view delays in “Code (JavaScript)” nodes for safety.\n5. **Test Run:** Try with 1–2 leads before deployment to confirm messages, logging, and updates.\n\n🕐 **Setup time:** ~10–15 minutes\n💡 Once connected, just trigger the workflow — it’ll do the rest automatically.\n"
},
"typeVersion": 1
},
{
"id": "9a3b41f6-9c3c-44c0-b457-223368b26728",
"name": "Sticky Note13",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1440,
288
],
"parameters": {
"color": 7,
"content": "## This isthe Flow of login with an instagram account "
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"7f3b39ed-41e7-4bc3-8349-2dbc00fc9e00": {
"main": [
[
{
"node": "377f7600-363e-4aad-8097-2bb274643682",
"type": "main",
"index": 0
}
],
[
{
"node": "1e96c3e5-badd-425a-8ef7-86ee6dfd2cb4",
"type": "main",
"index": 0
}
]
]
},
"451acdd9-036b-4214-95fb-764a9d79ed5b": {
"main": [
[
{
"node": "3386ddd7-4762-4882-9294-9cf5a9474cdd",
"type": "main",
"index": 0
}
],
[
{
"node": "9b0172e1-6818-4ade-9afa-0e8d75571832",
"type": "main",
"index": 0
}
]
]
},
"9b0172e1-6818-4ade-9afa-0e8d75571832": {
"main": [
[
{
"node": "d05a438a-62ae-4cbd-8037-b2749196bf76",
"type": "main",
"index": 0
}
],
[
{
"node": "785f23e0-56ce-4fbc-a3c5-432c5265512a",
"type": "main",
"index": 0
}
]
]
},
"1c02bf82-9e11-42ce-a2bd-2f003c01f0e8": {
"main": [
[
{
"node": "212a64c7-a5f8-4467-b1c4-70c0d891b490",
"type": "main",
"index": 0
}
]
]
},
"1be9b1d3-c190-4d40-86e8-4aed3b0cbeb5": {
"main": [
[
{
"node": "e06d8545-f63e-4eb2-93bb-63cc14a9cbd8",
"type": "main",
"index": 0
}
]
]
},
"133b62ba-976c-4ccb-a9fb-6fb2e17a6161": {
"main": [
[
{
"node": "7674e75b-ee5c-4d8c-b4cd-66c4521fc502",
"type": "main",
"index": 0
}
]
]
},
"91395ea6-306d-4af7-8fe2-ab6c4961ce09": {
"main": [
[
{
"node": "7674e75b-ee5c-4d8c-b4cd-66c4521fc502",
"type": "main",
"index": 0
}
]
]
},
"5513f903-2bc6-486c-9ca0-9a296f4647cc": {
"main": [
[
{
"node": "91395ea6-306d-4af7-8fe2-ab6c4961ce09",
"type": "main",
"index": 0
}
]
]
},
"41afbdb4-abe3-472c-8fa7-cb53531ab00d": {
"main": [
[
{
"node": "861616b3-236b-49f0-9386-cec32ff0d253",
"type": "main",
"index": 0
}
]
]
},
"484d9c0d-7079-4ecf-ab52-ec73da08b950": {
"main": [
[
{
"node": "5ec859af-480e-4f23-bae1-9baf9d19061c",
"type": "main",
"index": 0
}
]
]
},
"669710b2-a3d4-4d51-ad13-9d67b766cc83": {
"main": [
[
{
"node": "7f3b39ed-41e7-4bc3-8349-2dbc00fc9e00",
"type": "main",
"index": 0
}
]
]
},
"7b98d241-28f9-47cf-bf8e-2389aea05984": {
"main": [
[
{
"node": "1be9b1d3-c190-4d40-86e8-4aed3b0cbeb5",
"type": "main",
"index": 0
}
]
]
},
"d04dd361-a343-4c42-913b-9e324edca763": {
"main": [
[
{
"node": "133b62ba-976c-4ccb-a9fb-6fb2e17a6161",
"type": "main",
"index": 0
}
]
]
},
"de2e47a4-70e5-47e1-8bb2-a5f52ee05cd8": {
"main": [
[
{
"node": "451acdd9-036b-4214-95fb-764a9d79ed5b",
"type": "main",
"index": 0
}
]
]
},
"d993d7e3-d356-4bf4-bf5f-ee5a64eefb06": {
"main": [
[],
[
{
"node": "669710b2-a3d4-4d51-ad13-9d67b766cc83",
"type": "main",
"index": 0
}
]
]
},
"7674e75b-ee5c-4d8c-b4cd-66c4521fc502": {
"main": [
[
{
"node": "2ece54c4-6bd2-4b4e-a8d9-0287e323b46e",
"type": "main",
"index": 0
}
],
[
{
"node": "de2e47a4-70e5-47e1-8bb2-a5f52ee05cd8",
"type": "main",
"index": 0
}
]
]
},
"6eeeeb17-6b55-43da-b548-9d0dfa3c7fa7": {
"main": [
[
{
"node": "7b98d241-28f9-47cf-bf8e-2389aea05984",
"type": "main",
"index": 0
}
]
]
},
"f66656c8-d966-491f-914c-1e165523d87a": {
"main": [
[
{
"node": "d04dd361-a343-4c42-913b-9e324edca763",
"type": "main",
"index": 0
}
]
]
},
"785f23e0-56ce-4fbc-a3c5-432c5265512a": {
"main": [
[
{
"node": "7674e75b-ee5c-4d8c-b4cd-66c4521fc502",
"type": "main",
"index": 0
}
]
]
},
"861616b3-236b-49f0-9386-cec32ff0d253": {
"main": [
[
{
"node": "d993d7e3-d356-4bf4-bf5f-ee5a64eefb06",
"type": "main",
"index": 0
}
]
]
},
"5ec859af-480e-4f23-bae1-9baf9d19061c": {
"main": [
[
{
"node": "5513f903-2bc6-486c-9ca0-9a296f4647cc",
"type": "main",
"index": 0
}
]
]
},
"3386ddd7-4762-4882-9294-9cf5a9474cdd": {
"main": [
[
{
"node": "bd720946-8b7a-45b1-9f99-460c876dd3f1",
"type": "main",
"index": 0
}
]
]
},
"bd720946-8b7a-45b1-9f99-460c876dd3f1": {
"main": [
[
{
"node": "6eeeeb17-6b55-43da-b548-9d0dfa3c7fa7",
"type": "main",
"index": 0
}
]
]
},
"e06d8545-f63e-4eb2-93bb-63cc14a9cbd8": {
"main": [
[
{
"node": "f66656c8-d966-491f-914c-1e165523d87a",
"type": "main",
"index": 0
}
]
]
},
"377f7600-363e-4aad-8097-2bb274643682": {
"main": [
[
{
"node": "1c02bf82-9e11-42ce-a2bd-2f003c01f0e8",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 리드 육성
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
시각화 참조 라이브러리에서 n8n 노드를 탐색
可视化 참조 라이브러리에서 n8n 노드를 탐색
If
Ftp
Set
+
If
Ftp
Set
113 노드I versus AI
기타
잠재 리드 생성 및 개인화 아웃리치 자동화: Apollo, AI 및 Instantly.ai
잠재 고객 생성 및 개인화 아웃리치 자동화: Apollo, AI 및 Instantly.ai
If
Set
Code
+
If
Set
Code
166 노드Ruben AI
리드 육성
Airtable, OpenAI 및 Unipile을 사용한 자동화된 LinkedIn 잠재 고객 생성 및 개인 메시지 발송
Airtable, OpenAI 및 Unipile을 사용한 자동화된 LinkedIn 리드 생성 및 개인 메시지 발송
If
Set
Code
+
If
Set
Code
143 노드Ruben AI
리드 육성
리드 생성 및 이메일 워크플로
Google 지도, SendGrid 및 AI를 사용한 B2B 잠재 고객 개발 및 이메일 마케팅 자동화
If
Set
Code
+
If
Set
Code
141 노드Ezema Kingsley Chibuzo
리드 생성
Google Maps를 사용하여 잠재 고객 생성 - AlexK1919
Google Maps를 사용하여 잠재 고객 생성
If
Set
Code
+
If
Set
Code
42 노드Alex Kim
영업
[템플릿] AI 반려동물 가게 v8
🐶 AI 펫 샵 어시스턴트 - GPT-4o, Google 캘린더 및 WhatsApp/Instagram/Facebook 통합
If
N8n
Set
+
If
N8n
Set
244 노드Amanda Benks
영업
워크플로우 정보
난이도
고급
노드 수43
카테고리1
노드 유형12
저자
Nitesh
@niteshdk11AI Automation Consultant & Founder @ Brezix Studio, helping service businesses streamline operations with custom AI assistants, CRMs, and workflow automation. Skilled in MERN, Next.js, and Python, I design solutions that save time and boost efficiency. Open to collaborations and automation projects that drive growth.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유