Automatisation des messages directs et de l'interaction sur Instagram avec Google Sheets et Puppeteer
Ceci est unLead Nurturingworkflow d'automatisation du domainecontenant 43 nœuds.Utilise principalement des nœuds comme If, Code, Wait, Limit, Filter. Automatiser les messages privés et l'engagement Instagram avec Google Sheets et Puppeteer
- •Point de terminaison HTTP Webhook (généré automatiquement par n8n)
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Informations d'identification Google Sheets API
Nœuds utilisés (43)
Catégorie
{
"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": "Ajouter ou mettre à jour une ligne dans 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": "Boucler sur les éléments2",
"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": "Obtenir la/les ligne(s) dans 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": "Boucler sur les éléments3",
"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": "Obtenir la/les ligne(s) dans 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 en 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 en 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": "Mettre à jour la ligne dans 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": "Répondre à 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": "Mettre à jour la ligne dans 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": "Répondre à 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
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé - Nurturing de leads
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
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.
Partager ce workflow