Google Maps、GPT-4、WhatsApp を使用したビジネスパートナー獲得の自動化
上級
これはAI Chatbot, Multimodal AI分野の自動化ワークフローで、64個のノードを含みます。主にIf, Set, Code, Wait, Limitなどのノードを使用。 Google Maps、GPT-4、WhatsAppを使用したビジネスパートナーの開拓の自動化
前提条件
- •Google Drive API認証情報
- •ターゲットAPIの認証情報が必要な場合あり
- •Google Sheets API認証情報
- •OpenAI API Key
- •PostgreSQLデータベース接続情報
- •Pinecone API Key
使用ノード (64)
If
Set
Code
Wait
Limit
SplitOut
Perplexity
StickyNote
GoogleDrive
HttpRequest
GoogleSheets
Apify
ManualTrigger
Agent
ScheduleTrigger
GoogleSheetsTool
GoogleDriveTrigger
Gowa
LmChatOpenAi
WahaTrigger
RerankerCohere
EmbeddingsOpenAi
MemoryPostgresChat
VectorStorePinecone
DocumentDefaultDataLoader
TextSplitterRecursiveCharacterTextSplitter
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"meta": {
"instanceId": "80799738a461abecc25fdcc95f6189e3b19776deff8b13da09e8ba127d0e4c8d",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "3e22ea96-f717-4b7d-9a09-e6ea5fcf63ce",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
1248,
608
],
"parameters": {
"color": 5,
"width": 1420,
"height": 620,
"content": "# Company Knowledge Base Section\n"
},
"typeVersion": 1
},
{
"id": "b7ceebe5-a95c-4da3-b1bf-9922b0befd82",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
608
],
"parameters": {
"color": 7,
"width": 1232,
"height": 312,
"content": "# Data Scraping & Cleaning Section\n"
},
"typeVersion": 1
},
{
"id": "b3b1e4b1-7991-47d8-9bdc-d0072ee2cb23",
"name": "付箋6",
"type": "n8n-nodes-base.stickyNote",
"disabled": true,
"position": [
0,
1808
],
"parameters": {
"color": 4,
"width": 1232,
"height": 468,
"content": "# Reply Handling Section"
},
"typeVersion": 1
},
{
"id": "f7e4e683-aec0-496b-8b99-5819f81be60c",
"name": "付箋7",
"type": "n8n-nodes-base.stickyNote",
"disabled": true,
"position": [
0,
1264
],
"parameters": {
"color": 4,
"width": 1232,
"height": 468,
"content": "# Outbound Messaging Section"
},
"typeVersion": 1
},
{
"id": "ffb9d104-ef88-4902-948e-3bea9e948dd2",
"name": "付箋2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1248,
1264
],
"parameters": {
"color": 5,
"width": 1420,
"height": 476,
"content": "# Send Message"
},
"typeVersion": 1
},
{
"id": "51d9511d-6c8b-4774-a147-158c2bbcd73a",
"name": "付箋4",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
944
],
"parameters": {
"color": 7,
"width": 1232,
"height": 296,
"content": "# Data Enrichment Section"
},
"typeVersion": 1
},
{
"id": "2238a081-e661-46de-9030-6640039a24c3",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1248,
1808
],
"parameters": {
"color": 5,
"width": 1436,
"height": 476,
"content": "# Send Message"
},
"typeVersion": 1
},
{
"id": "2f6091cb-7e88-4d01-9786-3cb7ece2c58b",
"name": "受信メッセージ",
"type": "@devlikeapro/n8n-nodes-waha.wahaTrigger",
"position": [
-240,
1440
],
"webhookId": "3e46dcc4-3f09-45cd-84b4-ad803688d840",
"parameters": {},
"typeVersion": 202502
},
{
"id": "1be34db3-dba7-4a87-97b3-bb9e4a056749",
"name": "手動トリガー - スクレイピング開始",
"type": "n8n-nodes-base.manualTrigger",
"position": [
112,
720
],
"parameters": {},
"typeVersion": 1
},
{
"id": "dc1a18aa-ad2d-49d0-b29d-cda2f5af1338",
"name": "日次アウトバウンドスケジュール",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
48,
1072
],
"parameters": {
"rule": {
"interval": [
{
"field": "months"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "78110e8e-267c-4bc7-8377-bb81c68eb74b",
"name": "アウトバウンドメッセージスケジュール",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
48,
1440
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "7c63402c-0f59-4d54-8408-f90a1151975b",
"name": "ナレッジベース更新トリガー",
"type": "n8n-nodes-base.googleDriveTrigger",
"position": [
1328,
736
],
"parameters": {
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "specificFile",
"fileToWatch": {
"__rl": true,
"mode": "list",
"value": "13YClv41pt53diWxfd69pMo4lMlFL6-BlF2UHrGLv3SA",
"cachedResultUrl": "https://docs.google.com/document/d/13YClv41pt53diWxfd69pMo4lMlFL6-BlF2UHrGLv3SA/edit?usp=drivesdk",
"cachedResultName": "RC - Knowledge Docs"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "fuHkhehnD5D9woJc",
"name": "email d1"
}
},
"typeVersion": 1
},
{
"id": "497b37ef-b0eb-411d-9de7-0b7743c8d8ea",
"name": "スクレイピングパラメータ設定",
"type": "n8n-nodes-base.set",
"position": [
320,
720
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "07316f79-4f95-48ff-a238-cab510439809",
"name": "Location Category",
"type": "string",
"value": "\"bar\", \"restaurant\", \"mall\""
},
{
"id": "e80e3961-4f18-4e38-8642-4c35075f13a1",
"name": "lokasi",
"type": "string",
"value": "Jakarta"
},
{
"id": "a9996b6d-0bdb-4aa6-8b86-bd36acb6ad21",
"name": "jumlah leads",
"type": "number",
"value": 150
},
{
"id": "0b41b3c1-21f6-4f6b-9125-3cc19371e495",
"name": "minimum Stars",
"type": "string",
"value": "four"
},
{
"id": "e923310c-71f4-4bc8-89af-5331b286beee",
"name": "Skip Closed Place",
"type": "boolean",
"value": true
}
]
}
},
"typeVersion": 3.4
},
{
"id": "c6769765-1aba-4682-8eaf-bccff2223a4b",
"name": "WhatsAppセッションデータ抽出",
"type": "n8n-nodes-base.set",
"position": [
128,
1904
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b79a668e-b625-491f-b008-40d63dfc01c6",
"name": "session",
"type": "string",
"value": "={{ $json.payload.from.replace(\"@c.us\", \"\") }}"
},
{
"id": "13dec802-3597-471e-9d7c-85693c8362df",
"name": "message",
"type": "string",
"value": "={{ $json.payload.body }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "13f1ed51-d927-4e94-978e-5156109636ed",
"name": "アウトバウンドセッションデータ準備",
"type": "n8n-nodes-base.set",
"position": [
784,
1408
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b79a668e-b625-491f-b008-40d63dfc01c6",
"name": "session",
"type": "string",
"value": "={{ $json['Phone Number'] }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "5ec46caa-1ac0-4c87-a329-782606b7d564",
"name": "返信メッセージデータ整形",
"type": "n8n-nodes-base.set",
"position": [
1328,
1920
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "275dd51e-077a-41ff-aa6f-adcb2b10c51f",
"name": "number",
"type": "string",
"value": "={{ $('Extract WhatsApp Session Data').item.json.session }}"
},
{
"id": "b41121cf-9f9e-4560-a033-7be5ba1556f4",
"name": "message",
"type": "string",
"value": "={{ $json.output }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ae1f1a0d-22c5-4d01-ba87-895ab51eed5f",
"name": "アウトバウンドメッセージデータ整形",
"type": "n8n-nodes-base.set",
"position": [
1344,
1408
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "275dd51e-077a-41ff-aa6f-adcb2b10c51f",
"name": "number",
"type": "string",
"value": "={{ $('Prepare Outbound Session Data').item.json.session }}"
},
{
"id": "b41121cf-9f9e-4560-a033-7be5ba1556f4",
"name": "message",
"type": "string",
"value": "={{ $json.output }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "bd902835-a438-4352-ad15-34ee9cf2e0dc",
"name": "Google Mapsスクレイパー実行",
"type": "@apify/n8n-nodes-apify.apify",
"position": [
528,
720
],
"parameters": {
"actorId": {
"__rl": true,
"mode": "list",
"value": "nwua9Gu5YrADL7ZDj",
"cachedResultUrl": "https://console.apify.com/actors/nwua9Gu5YrADL7ZDj/input",
"cachedResultName": "Google Maps Scraper (compass/crawler-google-places)"
},
"timeout": {},
"customBody": "={\n \"includeWebResults\": false,\n \"language\": \"en\",\n \"leadsEnrichmentDepartments\": [\n \"marketing\"\n ],\n \"locationQuery\": \"{{ $json.lokasi }}\",\n \"maxCrawledPlacesPerSearch\": {{ $json['jumlah leads'] }},\n \"maxImages\": 0,\n \"maximumLeadsEnrichmentRecords\": 0,\n \"placeMinimumStars\": \"{{ $json['minimum Stars'] }}\",\n \"scrapeContacts\": true,\n \"scrapeDirectories\": false,\n \"scrapeImageAuthors\": false,\n \"scrapePlaceDetailPage\": false,\n \"scrapeReviewsPersonalData\": true,\n \"scrapeTableReservationProvider\": false,\n \"searchStringsArray\": [\n {{ $json['Location Category'] }}\n ],\n \"skipClosedPlaces\": {{ $json['Skip Closed Place'] }}\n}"
},
"credentials": {
"apifyApi": {
"id": "PioAH7ltHRaW2Pzs",
"name": "d1 apify"
}
},
"typeVersion": 1
},
{
"id": "159bcdcb-6021-40e9-a1b9-f97c9c510fb1",
"name": "スクレイピング済みビジネスデータ取得",
"type": "n8n-nodes-base.httpRequest",
"position": [
752,
720
],
"parameters": {
"url": "https://api.apify.com/v2/acts/compass~crawler-google-places/runs/last/dataset/items",
"options": {},
"authentication": "predefinedCredentialType",
"nodeCredentialType": "apifyApi"
},
"credentials": {
"apifyApi": {
"id": "PioAH7ltHRaW2Pzs",
"name": "d1 apify"
},
"httpHeaderAuth": {
"id": "yWZbJyI6bjl8ofdj",
"name": "LLamaIndex"
}
},
"typeVersion": 4.2
},
{
"id": "1876c723-a614-4bfb-84b7-3a2196c66191",
"name": "未加工ビジネスリード保存",
"type": "n8n-nodes-base.googleSheets",
"position": [
960,
720
],
"parameters": {
"columns": {
"value": {
"City": "={{ $json.city || \"not found\" }}",
"Email": "={{ $json.emails[0] || \"not found\" }}",
"State": "={{ $json.state || \"not found\" }}",
"Title": "={{ $json.title }}",
"Address": "={{ $json.address }}",
"Website": "={{ $json.domain || \"not found\" }}",
"Category": "={{ $json.categoryName }}",
"Facebook": "={{ $json.facebooks[0] || \"not found\" }}",
"Linkedin": "={{ $json.linkedIns[0] || \"not found\" }}",
"Place Id": "={{ $json.placeId }}",
"Instagram": "={{ $json.instagrams[0] || \"not found\" }}",
"Company name": "=",
"Phone Number": "={{ $json.phones[0] || $json.phonesUncertain[0] || \"not found\" }}",
"Review Count": "={{ $json.reviewsCount }}",
"Average Stars": "={{ $json.totalScore }}"
},
"schema": [
{
"id": "Place Id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Place Id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Title",
"type": "string",
"display": true,
"required": false,
"displayName": "Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Category",
"type": "string",
"display": true,
"required": false,
"displayName": "Category",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "City",
"type": "string",
"display": true,
"required": false,
"displayName": "City",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "State",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "State",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Address",
"type": "string",
"display": true,
"required": false,
"displayName": "Address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company name",
"type": "string",
"display": true,
"required": false,
"displayName": "Company name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Website",
"type": "string",
"display": true,
"required": false,
"displayName": "Website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Phone Number",
"type": "string",
"display": true,
"required": false,
"displayName": "Phone Number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Instagram",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Instagram",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Facebook",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Facebook",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Linkedin",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Linkedin",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Review Count",
"type": "string",
"display": true,
"required": false,
"displayName": "Review Count",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Average Stars",
"type": "string",
"display": true,
"required": false,
"displayName": "Average Stars",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Place Id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws/edit#gid=0",
"cachedResultName": "Raw Data"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws/edit?usp=drivesdk",
"cachedResultName": "Recharge Database"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "g8FvI9bN9Fdqd2sZ",
"name": "email d1"
}
},
"typeVersion": 4.6
},
{
"id": "933567e2-44d9-4378-be40-7e340f901f9d",
"name": "アウトバウンド候補取得",
"type": "n8n-nodes-base.googleSheets",
"position": [
224,
1440
],
"parameters": {
"options": {
"returnFirstMatch": true
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws/edit#gid=0",
"cachedResultName": "Raw Data"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws/edit?usp=drivesdk",
"cachedResultName": "Recharge Database"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "g8FvI9bN9Fdqd2sZ",
"name": "email d1"
}
},
"typeVersion": 4.7
},
{
"id": "5f7a6066-d195-4d74-9e6d-f9379c9df61d",
"name": "未エンリッチレコード取得",
"type": "n8n-nodes-base.googleSheets",
"position": [
208,
1072
],
"parameters": {
"options": {
"returnFirstMatch": false
},
"filtersUI": {
"values": [
{
"lookupValue": "no",
"lookupColumn": "enriched"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws/edit#gid=0",
"cachedResultName": "Raw Data"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws/edit?usp=drivesdk",
"cachedResultName": "Recharge Database"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "g8FvI9bN9Fdqd2sZ",
"name": "email d1"
}
},
"typeVersion": 4.7
},
{
"id": "c0d49668-0674-4aee-9a98-281bf3b6aa53",
"name": "アウトバウンドバッチサイズ制限",
"type": "n8n-nodes-base.limit",
"position": [
400,
1440
],
"parameters": {},
"typeVersion": 1
},
{
"id": "347be385-a3a8-42fc-b52e-577db5dc2808",
"name": "エンリッチメントバッチサイズ制限",
"type": "n8n-nodes-base.limit",
"position": [
400,
1072
],
"parameters": {
"maxItems": 20
},
"typeVersion": 1
},
{
"id": "6ace837b-b562-437d-a922-b453d5859c5f",
"name": "電話番号存在確認",
"type": "n8n-nodes-base.if",
"position": [
592,
1440
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "9b9cb4bc-8868-431d-a007-8a4650976d33",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json['Phone Number'] }}",
"rightValue": ""
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "20e00445-9d82-46d2-85f1-48b9c35a000d",
"name": "返信処理AIエージェント",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
352,
1904
],
"parameters": {
"text": "={{ $json.message }}",
"options": {
"systemMessage": "=[Yourcompany] Sales Assistant - Siska (Reply Handler)\nYou are \"Siska\" from [Yourcompany], handling replies from potential partners after opening messages have been sent.\nConversation Flow Analysis\nAnalyze replies and follow the appropriate flow:\n1. Partner Directly Provides PIC Contact\nDetection: Reply contains name, position, phone number, or contact email\nResponse: \"Thank you for the information! Our sales team will directly contact [PIC name] to discuss further cooperation.\"\nAction: Save contact to database using append tool\n2. Partner Asks About Partnership Format\nDetection: Questions like \"what kind of partnership?\", \"how does the cooperation work?\", \"what's being offered?\"\nResponse: Explain casually using knowledge base:\n\"Oh, so here's how it works... we provide vending machines for powerbank rental at your location. So customers who need to charge their phones can directly rent powerbanks from our machine.\nBy the way, are you the one handling partnerships here? Or is there a specific PIC who usually manages partnerships like this?\"\n3. Partner Requests Proposal\nDetection: Requests like \"send proposal first\", \"can you email the proposal?\", \"do you have a company profile?\"\nResponse: \"Alright, we'll send the proposal shortly. Thank you for your interest in partnering with ReCharge!\"\nAction: Note proposal request\n4. Partner Agrees to Meeting/Call\nDetection: Positive responses like \"yes, that's fine\", \"it can be explained\", \"please call\"\nResponse: \"Great! We can meet in person to explain in more detail. When would be a good time for you?\"\nAction: Note willingness for offline meeting\n5. Identifying the Right PIC\n\nIf speaking with the right PIC: Offer offline meeting\nIf not the right PIC: \"I see, so who would be the PIC who usually handles partnerships or cooperation here? So I can coordinate directly with the person in charge.\"\n\n6. Partner Not Interested/Declining\nDetection: Rejections like \"not interested\", \"don't need it\", \"not currently needed\"\nResponse: \"Thank you for your time. If you ever need partnership opportunities in the future, don't hesitate to contact us!\"\nTools Usage:\n\nPinecone: Use to explain ReCharge cooperation details\nGoogle Sheets: Use ONLY when receiving PIC contact or partnership info. Data format:\n\nPlace: Company/location name (from previous conversation context)\nname: PIC name\ntitle: PIC position\nphone_number: PIC phone number\n\n\n\nData Context:\n\nALWAYS remember company/location name from previous messages in conversation history\nIf not available in history, ask \"Sorry, is this for partnership with which company/location?\"\n\nResponse Guidelines:\n\nAlways use polite and professional Indonesian language\nUse line breaks for better readability\nMatch the partner's energy level\nFocus on clear next steps\n\nImportant Notes:\n\nDon't over-explain if partner has already provided contact\nAlways confirm the next action to be taken\nMaintain friendly but professional tone"
},
"promptType": "define"
},
"typeVersion": 2
},
{
"id": "094266f6-0115-488d-8efc-84ca507d0241",
"name": "アウトバウンドメッセージ生成器",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
960,
1408
],
"parameters": {
"text": "=company name: {{ $('Get Outbound Candidates').item.json.Title }}\n\nAddress: {{ $('Get Outbound Candidates').item.json.Address }}",
"options": {
"systemMessage": "=# ReCharge Outbound Message Initiator - Jessica\n\nYou are \"Jessica\", a sales representative from [Yourcompany]. Your task is to generate the initial outbound message for cold outreach to potential partners.\n\n## Your Role:\nGenerate a personalized greeting message in Indonesian for starting conversations with potential business partners.\n\n## Message Template:\nAlways use this exact format:\n\"Halo Selamat [waktu], \n\nPerkenalkan saya Siska dari [Yourcompany]. Salam kenal. \n\nSaya ingin bertanya kalau saya ingin bekerjasama dengan [nama lokasi/brand] saya bisa kontak kebagian apa?\"\n\n## Instructions:\n- Replace [waktu] with appropriate time greeting:\n * Pagi (06:00-11:59)\n * Siang (12:00-17:59) \n * Sore (18:00-23:59)\n- Replace [nama lokasi/brand] with the business name from the input data\n- This is ONLY for the initial outbound message\n- Keep the message professional and friendly\n- Do not engage in conversation - just deliver the opening message\n\n## Important Notes:\n- This session will be stored using the phone number as session key\n- Reply handling will be managed by a separate workflow\n- Do not access knowledge base for this simple greeting\n- Focus only on generating the opening message"
},
"promptType": "define"
},
"typeVersion": 2
},
{
"id": "ae6b7c14-c225-40be-ab23-e07197c29e95",
"name": "返信処理LLM",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
192,
2112
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "1HtrtVva93jpyBdb",
"name": "Recharge"
}
},
"typeVersion": 1.2
},
{
"id": "ebfb929e-c163-43ba-bc79-f81e592c1b0e",
"name": "アウトトバウンドメッセージLLM",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
944,
1552
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "1HtrtVva93jpyBdb",
"name": "Recharge"
}
},
"typeVersion": 1.2
},
{
"id": "648673dc-cb91-4072-8f9b-622cf8633ddf",
"name": "ビジネスデータエンリッチメント",
"type": "n8n-nodes-base.perplexity",
"position": [
736,
1072
],
"parameters": {
"model": "sonar-pro",
"options": {},
"messages": {
"message": [
{
"role": "system",
"content": "=You are a web-grounded data enricher for Indonesian business listings. Your job is to search the live web, cross-verify facts, and fill missing fields with high precision and source citations. Follow these rules strictly:\n\nScope & Matching\n\nTarget entity is a physical place (Google Maps Place). Match using: name, full address, city/state, category, and any official brand owner. Prefer sources that show the exact address or a clear “official” site/social of the venue.\n\nIf there’s any doubt (similar mall names/brands), treat as ambiguous and return null with a note; do not guess.\n\nResearch Requirements\n\nUse multiple reputable sources (official site, official social profiles, Google Business/Maps, authoritative news or operator/brand pages).\n\nPrefer the official website of the venue/brand/operator over directories. If no website exists but an official Instagram or Facebook page exists, you may use that as website only if it’s clearly the official presence of the venue.\n\nExtract public contact email and phone (published for customers). Don’t invent generic addresses (e.g., info@...) unless it is explicitly listed.\n\nNormalization\n\nwebsite: canonical HTTPS URL, strip tracking params, no URL shorteners, no generic domains like just instagram.com—use the page URL (e.g., https://www.instagram.com/livingworlddenpasar/).\n\nphone_number: E.164 with Indonesia code, e.g., +62361xxxxxxx or +628xx... for mobiles. Remove spaces/dashes.\n\nemail: lowercase, single address (prefer the most official/general contact).\n\ninstagram, facebook, linkedin: full canonical profile/page URLs (no querystrings).\n\nKeep all other provided fields as-is unless obviously misspelled (don’t “fix” names).\n\nOutput Contract (strict)\nReturn only JSON, no prose. Use this exact shape:\n\n{\n \"row_number\": <number>,\n \"place_id\": \"<string>\",\n \"title\": \"<string>\",\n \"category\": \"<string>\",\n \"city\": \"<string>\",\n \"state\": \"<string>\",\n \"address\": \"<string>\",\n \"company_name\": \"<string|null>\",\n \"website\": \"<string|null>\",\n \"email\": \"<string|null>\",\n \"phone_number\": \"<string|null>\",\n \"instagram\": \"<string|null>\",\n \"facebook\": \"<string|null>\",\n \"linkedin\": \"<string|null>\",\n \"review_count\": <number|null>,\n \"average_stars\": <number|null>,\n \"enriched\": \"yes\",\n \"sources\": {\n \"company_name\": [\"<url>\", \"...\"],\n \"website\": [\"<url>\", \"...\"],\n \"email\": [\"<url>\", \"...\"],\n \"phone_number\": [\"<url>\", \"...\"],\n \"instagram\": [\"<url>\", \"...\"],\n \"facebook\": [\"<url>\", \"...\"],\n \"linkedin\": [\"<url>\", \"...\"]\n },\n \"confidence\": {\n \"company_name\": 0.0,\n \"website\": 0.0,\n \"email\": 0.0,\n \"phone_number\": 0.0,\n \"instagram\": 0.0,\n \"facebook\": 0.0,\n \"linkedin\": 0.0\n },\n \"notes\": \"<short explanation of any ambiguities or choices; empty string if none>\"\n}\n\n\nScoring & Nulls\n\nEach confidence is 0.0–1.0. Use ≤0.6 if inferred from indirect/secondary sources; ≥0.8 if confirmed on the official site or multiple agreeing sources.\n\nIf not found or ambiguous, set the field to null, provide a short reason in notes, and still include the most relevant sources you checked.\n\nFormatting\n\nOutput must be valid JSON and only that JSON. No markdown code fences in the final answer to the user."
},
{
"content": "=Enrich the following venue record. Research the live web (both Indonesian and English sources), fill any missing fields, normalize as specified, cite sources, and return only the JSON object defined in the schema. If any field can’t be verified confidently, return null and explain briefly in notes.\n\n{\n \"row_number\": {{ $json.row_number }},\n \"place_id\": {{ JSON.stringify($json['Place Id'] ?? null) }},\n \"title\": {{ JSON.stringify($json.Title ?? null) }},\n \"category\": {{ JSON.stringify($json.Category ?? null) }},\n \"city\": {{ JSON.stringify($json.City ?? null) }},\n \"state\": {{ JSON.stringify($json.State ?? null) }},\n \"address\": {{ JSON.stringify($json.Address ?? null) }},\n \"company_name\": null,\n \"website\": {{ JSON.stringify($json.Website ?? null) }},\n \"email\": {{ JSON.stringify($json.Email ?? null) }},\n \"phone_number\": {{ JSON.stringify($json['Phone Number'] ?? null) }},\n \"instagram\": {{ JSON.stringify($json.Instagram ?? null) }},\n \"facebook\": {{ JSON.stringify($json.Facebook ?? null) }},\n \"linkedin\": {{ JSON.stringify($json.Linkedin ?? null) }},\n \"review_count\": {{ $json['Review Count'] }},\n \"average_stars\": {{ $json['Average Stars'] }}\n}\n\nImportant:\nReplace placeholder/invalid values (like \"instagram.com\", \"not found\") with either a normalized value or null.\nKeep row_number, place_id, title, category, city, state, address, review_count, and average_stars unless you find a definitive correction on an official source—if corrected, explain in notes.\nReturn only JSON, no markdown."
}
]
},
"requestOptions": {}
},
"credentials": {
"perplexityApi": {
"id": "ehKjRIzdruqK7qdG",
"name": "Recharge"
}
},
"typeVersion": 1
},
{
"id": "a3f4bee9-0ff4-4587-b3f7-3ac3db25fefd",
"name": "ナレッジドキュメントダウンロード",
"type": "n8n-nodes-base.googleDrive",
"position": [
1520,
736
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "list",
"value": "13YClv41pt53diWxfd69pMo4lMlFL6-BlF2UHrGLv3SA",
"cachedResultUrl": "https://docs.google.com/document/d/13YClv41pt53diWxfd69pMo4lMlFL6-BlF2UHrGLv3SA/edit?usp=drivesdk",
"cachedResultName": "RC - Knowledge Docs"
},
"options": {},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "fuHkhehnD5D9woJc",
"name": "email d1"
}
},
"typeVersion": 3
},
{
"id": "ef12e3bb-2179-454b-9a1b-19321d190a6e",
"name": "LlamaIndex経由ドキュメント解析",
"type": "n8n-nodes-base.httpRequest",
"position": [
1344,
960
],
"parameters": {
"url": "https://api.cloud.llamaindex.ai/api/v1/parsing/upload",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"sendHeaders": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "file",
"parameterType": "formBinaryData",
"inputDataFieldName": "data"
}
]
},
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "yWZbJyI6bjl8ofdj",
"name": "LLamaIndex"
}
},
"typeVersion": 4.2
},
{
"id": "cc16d612-fb94-45b1-95c4-3cc819cc92f8",
"name": "ドキュメント処理監視",
"type": "n8n-nodes-base.httpRequest",
"position": [
1568,
960
],
"parameters": {
"url": "=https://api.cloud.llamaindex.ai/api/v1/parsing/job/{{ $json.id }}",
"options": {},
"sendHeaders": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "yWZbJyI6bjl8ofdj",
"name": "LLamaIndex"
}
},
"typeVersion": 4.2
},
{
"id": "298ea1b3-98f6-4313-93c0-cc7a2ba570fe",
"name": "解析完了確認",
"type": "n8n-nodes-base.if",
"position": [
1776,
960
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "921ff875-817d-47fd-bd47-530ebdc21902",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "SUCCESS"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "8b006db9-519f-4ae0-af21-14ec4bca65d8",
"name": "ステータス再確認前待機",
"type": "n8n-nodes-base.wait",
"position": [
2000,
976
],
"webhookId": "92fa8df2-5959-4461-ab7b-416829f9ec56",
"parameters": {
"amount": 10
},
"typeVersion": 1.1
},
{
"id": "8b4ab5ef-4d45-4ce0-88b5-d98d6af77366",
"name": "解析済みコンテンツ取得",
"type": "n8n-nodes-base.httpRequest",
"position": [
2016,
784
],
"parameters": {
"url": "=https://api.cloud.llamaindex.ai/api/v1/parsing/job/{{ $json.id }}/result/markdown",
"options": {},
"sendHeaders": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "yWZbJyI6bjl8ofdj",
"name": "LLamaIndex"
}
},
"typeVersion": 4.2
},
{
"id": "a9de398c-76fd-4b8d-af8b-6ca68c626c5a",
"name": "ナレッジ埋め込み保存",
"type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
"position": [
2240,
784
],
"parameters": {
"mode": "insert",
"options": {
"pineconeNamespace": "RechargeKnowledge"
},
"pineconeIndex": {
"__rl": true,
"mode": "list",
"value": "n8n-recharge",
"cachedResultName": "n8n-recharge"
}
},
"credentials": {
"pineconeApi": {
"id": "6blFBkVF9ypi8cAI",
"name": "Rechargenewapikey"
}
},
"typeVersion": 1.3
},
{
"id": "0c0db18f-7204-4f0e-bd0c-9bd4376c1f80",
"name": "ナレッジベース検索",
"type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
"position": [
656,
2016
],
"parameters": {
"mode": "retrieve-as-tool",
"topK": 10,
"options": {
"pineconeNamespace": "recharge knowledge"
},
"useReranker": true,
"pineconeIndex": {
"__rl": true,
"mode": "list",
"value": "n8n-recharge",
"cachedResultName": "n8n-recharge"
},
"toolDescription": "you can get information about recharge from this vector store",
"includeDocumentMetadata": false
},
"credentials": {
"pineconeApi": {
"id": "6blFBkVF9ypi8cAI",
"name": "Rechargenewapikey"
}
},
"typeVersion": 1.3
},
{
"id": "f87ee941-52ef-44e9-bb24-fac525921041",
"name": "返信会話メモリ",
"type": "@n8n/n8n-nodes-langchain.memoryPostgresChat",
"position": [
368,
2112
],
"parameters": {
"tableName": "[Yourcompany]chathistories",
"sessionKey": "={{ $('Extract WhatsApp Session Data').item.json.session }}",
"sessionIdType": "customKey",
"contextWindowLength": 20
},
"credentials": {
"postgres": {
"id": "I2V3PQ8pGBvAG5QR",
"name": "Neon - Recharge"
}
},
"typeVersion": 1.3
},
{
"id": "3d5289af-d373-4ce6-8727-d1ec5f1d5867",
"name": "アウトバウンド会話メモリ",
"type": "@n8n/n8n-nodes-langchain.memoryPostgresChat",
"position": [
1104,
1552
],
"parameters": {
"tableName": "[Yourcompany]ChatHistories",
"sessionKey": "={{ $('Prepare Outbound Session Data').item.json.session }}",
"sessionIdType": "customKey",
"contextWindowLength": 20
},
"credentials": {
"postgres": {
"id": "I2V3PQ8pGBvAG5QR",
"name": "Neon - Recharge"
}
},
"typeVersion": 1.3
},
{
"id": "8760cfdd-6c98-4ab3-80e8-e27b7e0afe11",
"name": "ナレッジ埋め込みモデル",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
2224,
1024
],
"parameters": {
"model": "text-embedding-3-large",
"options": {}
},
"credentials": {
"openAiApi": {
"id": "1HtrtVva93jpyBdb",
"name": "Recharge"
}
},
"typeVersion": 1.2
},
{
"id": "6f6cab58-9ba5-4fb0-a24c-644f15f854c6",
"name": "クエリ埋め込みモデル",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
752,
2112
],
"parameters": {
"model": "text-embedding-3-large",
"options": {}
},
"credentials": {
"openAiApi": {
"id": "1HtrtVva93jpyBdb",
"name": "Recharge"
}
},
"typeVersion": 1.2
},
{
"id": "f284d3e6-b0bf-47fb-a535-5119e69f9e4d",
"name": "検索結果再ランキング",
"type": "@n8n/n8n-nodes-langchain.rerankerCohere",
"position": [
928,
2112
],
"parameters": {
"modelName": "rerank-multilingual-v3.0"
},
"credentials": {
"cohereApi": {
"id": "9zpR9HJeSI6Nah6l",
"name": "Recharge Indo"
}
},
"typeVersion": 1
},
{
"id": "1f62db90-540c-4832-8953-ca7a19fde69c",
"name": "ドキュメントコンテンツローダー",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
2368,
896
],
"parameters": {
"options": {},
"textSplittingMode": "custom"
},
"typeVersion": 1.1
},
{
"id": "05e0775e-8fcf-489b-b3f1-3315bc9b3fac",
"name": "テキストチャンク処理",
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"position": [
2416,
1024
],
"parameters": {
"options": {},
"chunkOverlap": 200
},
"typeVersion": 1
},
{
"id": "c248ae60-25a7-47bb-a540-097b8e6218a5",
"name": "処理用レコード分割",
"type": "n8n-nodes-base.splitOut",
"position": [
560,
1072
],
"parameters": {
"options": {},
"fieldToSplitOut": "=Place Id, Title, Category, City, State, Address, Company name, Website, Email, Phone Number, Instagram, Facebook, Linkedin, Review Count, Average Stars, enriched"
},
"typeVersion": 1
},
{
"id": "fc79b84c-0f7f-4a31-97ad-79bf05213428",
"name": "エンリッチメント応答解析",
"type": "n8n-nodes-base.code",
"position": [
880,
1072
],
"parameters": {
"jsCode": "/**\n * n8n Code node (JavaScript)\n * Input : items dari HTTP Request (Perplexity chat/completions)\n * Output: HANYA kolom spreadsheet (tanpa meta _sources/_confidence/_notes/_raw_enriched_json)\n */\n\nfunction pickBody(payload) {\n // HTTP node kadang return \"Full Response\" (punya key 'body')\n if (payload && typeof payload === 'object' && payload.body !== undefined) {\n return payload.body;\n }\n return payload;\n}\n\nfunction firstOrSelf(v) {\n return Array.isArray(v) ? (v[0] ?? null) : v;\n}\n\nfunction extractContent(perp) {\n const c =\n perp?.choices?.[0]?.message?.content ??\n perp?.data?.choices?.[0]?.message?.content ??\n null;\n\n if (typeof c !== 'string') {\n throw new Error('Perplexity response tidak berisi choices[0].message.content (string).');\n }\n\n // bersihin kemungkinan code fences ```json ... ```\n const cleaned = c.trim()\n .replace(/^```(?:json)?\\s*/i, '')\n .replace(/```$/i, '')\n .trim();\n\n let obj;\n try {\n obj = JSON.parse(cleaned);\n } catch (e) {\n throw new Error('Gagal parse JSON dari Perplexity content: ' + e.message + ' | content=' + cleaned.slice(0, 300));\n }\n return obj;\n}\n\nfunction toSheetRow(enriched) {\n // Balikin HANYA kolom yang ada di sheet\n return {\n \"row_number\": enriched?.row_number ?? null,\n \"Place Id\": enriched?.place_id ?? null,\n \"Title\": enriched?.title ?? null,\n \"Category\": enriched?.category ?? null,\n \"City\": enriched?.city ?? null,\n \"State\": enriched?.state ?? null,\n \"Address\": enriched?.address ?? null,\n \"Company name\": (enriched?.company_name ?? null) || null,\n \"Website\": enriched?.website ?? null,\n \"Email\": enriched?.email ?? null,\n \"Phone Number\": enriched?.phone_number ?? null,\n \"Instagram\": enriched?.instagram ?? null,\n \"Facebook\": enriched?.facebook ?? null,\n \"Linkedin\": enriched?.linkedin ?? null,\n \"Review Count\": enriched?.review_count ?? null,\n \"Average Stars\": enriched?.average_stars ?? null,\n \"enriched\": enriched?.enriched ?? \"yes\"\n };\n}\n\nconst results = [];\n\nfor (const item of items) {\n try {\n // 1) Ambil payload utama\n let payload = pickBody(item.json);\n\n // 2) Kalau string, coba parse JSON dulu\n if (typeof payload === 'string') {\n try { payload = JSON.parse(payload); } catch (_) { /* biarin */ }\n }\n\n // 3) Ambil objek pertama kalau payload array\n payload = firstOrSelf(payload);\n\n if (!payload || typeof payload !== 'object') {\n throw new Error('Payload kosong atau bukan object.');\n }\n\n // 4) Ekstrak JSON dari message.content\n const enriched = extractContent(payload);\n\n // 5) Map ke kolom sheet (tanpa meta)\n const row = toSheetRow(enriched);\n\n results.push({ json: row });\n } catch (err) {\n results.push({\n json: {\n _error: true,\n _message: String(err?.message || err)\n }\n });\n }\n}\n\nreturn results;"
},
"typeVersion": 2
},
{
"id": "49b3c664-ac01-45c9-a045-362d0bd171e8",
"name": "エンリッチ済みビジネスデータ保存",
"type": "n8n-nodes-base.googleSheets",
"position": [
1056,
1072
],
"parameters": {
"columns": {
"value": {
"City": "={{ $json.City || \"not found\" }}",
"Email": "={{ $json.Email || \"not found\" }}",
"State": "={{ $json.State || \"not found\" }}",
"Title": "={{ $json.Title }}",
"Address": "={{ $json.Address }}",
"Website": "={{ $json.domain || \"not found\" }}",
"Category": "={{ $json.Category }}",
"Facebook": "={{ $json.Facebook || \"not found\" }}",
"Linkedin": "={{ $json.Linkedin || \"not found\" }}",
"Place Id": "={{ $json[\"Place Id\"] }}",
"enriched": "={{ $json.enriched }}",
"Instagram": "={{ $json.Instagram || \"not found\" }}",
"Company name": "={{ $json[\"Company name\"] || \"not found\" }}",
"Phone Number": "={{ $json['Phone Number'] || \"not found\" }}"
},
"schema": [
{
"id": "Place Id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Place Id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Title",
"type": "string",
"display": true,
"required": false,
"displayName": "Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Category",
"type": "string",
"display": true,
"required": false,
"displayName": "Category",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "City",
"type": "string",
"display": true,
"required": false,
"displayName": "City",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "State",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "State",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Address",
"type": "string",
"display": true,
"required": false,
"displayName": "Address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company name",
"type": "string",
"display": true,
"required": false,
"displayName": "Company name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Website",
"type": "string",
"display": true,
"required": false,
"displayName": "Website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Phone Number",
"type": "string",
"display": true,
"required": false,
"displayName": "Phone Number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Instagram",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Instagram",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Facebook",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Facebook",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Linkedin",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Linkedin",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Review Count",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Review Count",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Average Stars",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Average Stars",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "enriched",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "enriched",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Place Id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws/edit#gid=0",
"cachedResultName": "Raw Data"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws/edit?usp=drivesdk",
"cachedResultName": "Recharge Database"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "g8FvI9bN9Fdqd2sZ",
"name": "email d1"
}
},
"typeVersion": 4.6
},
{
"id": "46debf17-0bee-4cb4-adef-8c5071e0e49b",
"name": "タイピング表示 - 返信",
"type": "@aldinokemal2104/n8n-nodes-gowa.gowa",
"position": [
1856,
1920
],
"parameters": {
"operation": "sendChatPresence",
"phoneNumber": "={{ $('Format Reply Message Data').item.json.number }}"
},
"credentials": {
"goWhatsappApi": {
"id": "qlHDF2q2tx6Rmqyk",
"name": "WA-Jessica"
}
},
"typeVersion": 1,
"alwaysOutputData": false
},
{
"id": "d2135259-dba9-40ca-8892-e6189a8f9a2c",
"name": "タイピング表示 - アウトバウンド",
"type": "@aldinokemal2104/n8n-nodes-gowa.gowa",
"position": [
1856,
1344
],
"parameters": {
"operation": "sendChatPresence",
"phoneNumber": "={{ $('Format Outbound Message Data').item.json.number }}"
},
"credentials": {
"goWhatsappApi": {
"id": "qlHDF2q2tx6Rmqyk",
"name": "WA-Jessica"
}
},
"typeVersion": 1,
"alwaysOutputData": false
},
{
"id": "949fbd50-3994-4aa1-b720-f99c7947716d",
"name": "既読前待機 - 返信",
"type": "n8n-nodes-base.wait",
"position": [
1584,
1920
],
"webhookId": "ed41f74c-fadc-4c9a-b06c-b2500b6c5980",
"parameters": {
"amount": "={{ Math.random()*5 + 1 }}"
},
"typeVersion": 1.1
},
{
"id": "974de0f2-7b95-4d6a-a0cf-c103b7fb9941",
"name": "既読前待機 - アウトバウンド",
"type": "n8n-nodes-base.wait",
"position": [
1584,
1344
],
"webhookId": "c17e16f6-c298-4cb1-b57c-9629f94d4ab2",
"parameters": {
"amount": "={{ Math.random()*5 + 1 }}"
},
"typeVersion": 1.1
},
{
"id": "332c0ddf-04c4-4133-9511-a2487616e1cc",
"name": "タイピング遅延シミュレート - アウトバウンド",
"type": "n8n-nodes-base.wait",
"position": [
1584,
1552
],
"webhookId": "23758f37-3e5f-4199-a38c-8ef0ea0c06a0",
"parameters": {
"amount": "={{ Math.random()*5+3 }}"
},
"typeVersion": 1.1
},
{
"id": "295c78f4-0146-421b-b0ae-46045e0328cf",
"name": "タイピング遅延シミュレート - 返信",
"type": "n8n-nodes-base.wait",
"position": [
1584,
2112
],
"webhookId": "d06abd8b-1472-47d9-bdf5-3064d2acccff",
"parameters": {
"amount": "={{ Math.random()*5+3 }}"
},
"typeVersion": 1.1
},
{
"id": "46330ff4-38ef-44b9-8630-113b0a6e82c8",
"name": "既読マーク - 返信",
"type": "@aldinokemal2104/n8n-nodes-gowa.gowa",
"position": [
2160,
1920
],
"parameters": {
"resource": "message",
"messageId": "={{ $json.results.message_id }}",
"operation": "readMessage",
"phoneOrGroupId": "={{ $('Format Reply Message Data').item.json.number }}"
},
"credentials": {
"goWhatsappApi": {
"id": "qlHDF2q2tx6Rmqyk",
"name": "WA-Jessica"
}
},
"typeVersion": 1
},
{
"id": "f5a32fff-8e38-465e-853b-204d53001b0f",
"name": "既読マーク - アウトバウンド",
"type": "@aldinokemal2104/n8n-nodes-gowa.gowa",
"position": [
2144,
1344
],
"parameters": {
"resource": "message",
"messageId": "={{ $json.results.message_id }}",
"operation": "readMessage",
"phoneOrGroupId": "={{ $('Format Outbound Message Data').item.json.number }}"
},
"credentials": {
"goWhatsappApi": {
"id": "qlHDF2q2tx6Rmqyk",
"name": "WA-Jessica"
}
},
"typeVersion": 1
},
{
"id": "10c5fcd5-f69c-4d3b-bd9e-3cc7d103596d",
"name": "タイピング表示停止 - 返信",
"type": "@aldinokemal2104/n8n-nodes-gowa.gowa",
"position": [
1856,
2112
],
"parameters": {
"operation": "sendChatPresence",
"phoneNumber": "={{ $('Format Reply Message Data').item.json.number }}",
"chatPresenceAction": "stop"
},
"credentials": {
"goWhatsappApi": {
"id": "qlHDF2q2tx6Rmqyk",
"name": "WA-Jessica"
}
},
"typeVersion": 1
},
{
"id": "38280d58-1a6c-4f71-8444-d527b47e984f",
"name": "タイピング表示停止 - アウトバウンド",
"type": "@aldinokemal2104/n8n-nodes-gowa.gowa",
"position": [
1856,
1552
],
"parameters": {
"operation": "sendChatPresence",
"phoneNumber": "={{ $('Format Outbound Message Data').item.json.number }}",
"chatPresenceAction": "stop"
},
"credentials": {
"goWhatsappApi": {
"id": "qlHDF2q2tx6Rmqyk",
"name": "WA-Jessica"
}
},
"typeVersion": 1
},
{
"id": "f77d68c8-4924-4a9a-9019-7888f616683d",
"name": "WhatsApp返信送信",
"type": "@aldinokemal2104/n8n-nodes-gowa.gowa",
"position": [
2160,
2112
],
"parameters": {
"message": "={{ $('Format Reply Message Data').item.json.message }}",
"phoneNumber": "={{ $('Format Reply Message Data').item.json.number }}"
},
"credentials": {
"goWhatsappApi": {
"id": "qlHDF2q2tx6Rmqyk",
"name": "WA-Jessica"
}
},
"typeVersion": 1
},
{
"id": "0cb74981-770a-4cf7-bac5-add0f5564c75",
"name": "アウトバウンドWhatsAppメッセージ送信",
"type": "@aldinokemal2104/n8n-nodes-gowa.gowa",
"position": [
2144,
1552
],
"parameters": {
"message": "={{ $('Format Outbound Message Data').item.json.message }}",
"phoneNumber": "={{ $('Format Outbound Message Data').item.json.number }}"
},
"credentials": {
"goWhatsappApi": {
"id": "qlHDF2q2tx6Rmqyk",
"name": "WA-Jessica"
}
},
"typeVersion": 1
},
{
"id": "c003b1f5-ab16-459c-9d43-2b943d0ab121",
"name": "リード連絡先情報保存",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
544,
2112
],
"parameters": {
"columns": {
"value": {
"name": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('name', ``, 'string') }}",
"Place": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Place', ``, 'string') }}",
"title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('title', ``, 'string') }}",
"phone number": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('phone_number', ``, 'string') }}"
},
"schema": [
{
"id": "Place",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Place",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "data source",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "data source",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "name",
"type": "string",
"display": true,
"required": false,
"displayName": "name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "title",
"type": "string",
"display": true,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "email",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "phone number",
"type": "string",
"display": true,
"required": false,
"displayName": "phone number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "linkedin",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "linkedin",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1542739970,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws/edit#gid=1542739970",
"cachedResultName": "Leads Collected"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws/edit?usp=drivesdk",
"cachedResultName": "Recharge Database"
},
"descriptionType": "manual",
"toolDescription": "=IMPORTANT: Use this tool ONLY to store PIC contact given by partner or save proposal inquiry. \n\nField to save: \n- Place (location or brand)\n- Name (PIC Name)\n- Title (PIC Title)\n- Phone Number (PIC Phone Number or whatsapp)\n\nMakesure all fields are available. Don't put \"unknown\", \"empty\", or similar things, if not full fields available, ask for the informations"
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "g8FvI9bN9Fdqd2sZ",
"name": "email d1"
}
},
"typeVersion": 4.7
},
{
"id": "064b6908-e5ac-46f3-a94d-45dee80abfe0",
"name": "コンタクト済みマーク",
"type": "n8n-nodes-base.googleSheets",
"position": [
2448,
1456
],
"parameters": {
"columns": {
"value": {
"Outreach": "yes",
"Place Id": "={{ $('Limit Outbound Batch Size').item.json['Place Id'] }}"
},
"schema": [
{
"id": "Place Id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Place Id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Title",
"type": "string",
"display": true,
"required": false,
"displayName": "Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Category",
"type": "string",
"display": true,
"required": false,
"displayName": "Category",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "City",
"type": "string",
"display": true,
"required": false,
"displayName": "City",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "State",
"type": "string",
"display": true,
"required": false,
"displayName": "State",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Address",
"type": "string",
"display": true,
"required": false,
"displayName": "Address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company name",
"type": "string",
"display": true,
"required": false,
"displayName": "Company name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Website",
"type": "string",
"display": true,
"required": false,
"displayName": "Website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Phone Number",
"type": "string",
"display": true,
"required": false,
"displayName": "Phone Number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Instagram",
"type": "string",
"display": true,
"required": false,
"displayName": "Instagram",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Facebook",
"type": "string",
"display": true,
"required": false,
"displayName": "Facebook",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Linkedin",
"type": "string",
"display": true,
"required": false,
"displayName": "Linkedin",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Review Count",
"type": "string",
"display": true,
"required": false,
"displayName": "Review Count",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Average Stars",
"type": "string",
"display": true,
"required": false,
"displayName": "Average Stars",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "enriched",
"type": "string",
"display": true,
"required": false,
"displayName": "enriched",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Outreach",
"type": "string",
"display": true,
"required": false,
"displayName": "Outreach",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Respond",
"type": "string",
"display": true,
"required": false,
"displayName": "Respond",
"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": [
"Place Id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws/edit#gid=0",
"cachedResultName": "Raw Data"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OFD8EwqoJutRMwXaSxmvwIDVrgbQxmpU0mRd_jgd5Ws/edit?usp=drivesdk",
"cachedResultName": "Recharge Database"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "g8FvI9bN9Fdqd2sZ",
"name": "email d1"
}
},
"typeVersion": 4.7
},
{
"id": "7e7d14f8-f8fe-40d5-ae90-f27e3cf5ea24",
"name": "付箋5",
"type": "n8n-nodes-base.stickyNote",
"position": [
2704,
608
],
"parameters": {
"width": 496,
"height": 768,
"content": "# Required Credentials\n\n## 🔑 API Keys & Services\n\n**Google Services**\n- Google Sheets OAuth2 - [Setup Guide](https://console.cloud.google.com/apis/credentials)\n- Google Drive OAuth2 - [Setup Guide](https://console.cloud.google.com/apis/credentials)\n\n**AI & ML Services**\n- OpenAI API - [Get API Key](https://platform.openai.com/api-keys)\n- Pinecone Vector DB - [Get API Key](https://app.pinecone.io/)\n- Cohere Reranker - [Get API Key](https://dashboard.cohere.ai/api-keys)\n- LlamaIndex Cloud - [Get API Key](https://cloud.llamaindex.ai/)\n- Perplexity API - [Get API Key](https://www.perplexity.ai/settings/api)\n\n**Communication**\n- GOWA - [GO Whatsap](https://github.com/aldinokemal/go-whatsapp-web-multidevice)\n- WAHA - [Whatasapp HTTP API](https://waha.devlike.pro/)\n\n**Data Collection**\n- Apify Scraping Service - [Get API Token](https://console.apify.com/account/integrations)\n\n**Database**\n- PostgreSQL/Neon - [Create Database](https://console.neon.tech/)\n\n## 📋 Setup Checklist\n- [ ] All credentials configured in n8n\n- [ ] Google Sheets permissions granted\n- [ ] WhatsApp webhook configured\n- [ ] Pinecone index created: n8n-recharge\n- [ ] PostgreSQL tables: rechargechathistories, RechargeChatHistories"
},
"typeVersion": 1
},
{
"id": "3b611e60-ea00-4509-bf98-6ac802244006",
"name": "付箋8",
"type": "n8n-nodes-base.stickyNote",
"position": [
2704,
1408
],
"parameters": {
"width": 496,
"height": 608,
"content": "# Database Schema & Setup Requirements\n\n## **Google Sheets Structure**\n- **Raw Data Sheet**: Business listings with contact info, social media, ratings\n- **Leads Sheet**: Qualified prospects with PIC details\n\n## **PostgreSQL Tables**\n- **Chat History**: Conversation memory and session management\n- **User Sessions**: WhatsApp number mapping and state tracking\n\n## **Pinecone Configuration**\n- **Vector Index**: Company knowledge base storage\n- **Embeddings**: text-embedding-3-large (3072 dimensions)\n- **Namespaces**: Separate knowledge domains\n\n## **File Storage**\n- **Knowledge Base**: Google Drive document auto-sync\n- **Templates**: Message templates and scripts"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"2f6091cb-7e88-4d01-9786-3cb7ece2c58b": {
"main": [
[],
[
{
"node": "c6769765-1aba-4682-8eaf-bccff2223a4b",
"type": "main",
"index": 0
}
]
]
},
"ae6b7c14-c225-40be-ab23-e07197c29e95": {
"ai_languageModel": [
[
{
"node": "20e00445-9d82-46d2-85f1-48b9c35a000d",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"ebfb929e-c163-43ba-bc79-f81e592c1b0e": {
"ai_languageModel": [
[
{
"node": "094266f6-0115-488d-8efc-84ca507d0241",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"0c0db18f-7204-4f0e-bd0c-9bd4376c1f80": {
"ai_tool": [
[
{
"node": "20e00445-9d82-46d2-85f1-48b9c35a000d",
"type": "ai_tool",
"index": 0
}
]
]
},
"05e0775e-8fcf-489b-b3f1-3315bc9b3fac": {
"ai_textSplitter": [
[
{
"node": "1f62db90-540c-4832-8953-ca7a19fde69c",
"type": "ai_textSplitter",
"index": 0
}
]
]
},
"5f7a6066-d195-4d74-9e6d-f9379c9df61d": {
"main": [
[
{
"node": "347be385-a3a8-42fc-b52e-577db5dc2808",
"type": "main",
"index": 0
}
]
]
},
"6f6cab58-9ba5-4fb0-a24c-644f15f854c6": {
"ai_embedding": [
[
{
"node": "0c0db18f-7204-4f0e-bd0c-9bd4376c1f80",
"type": "ai_embedding",
"index": 0
}
]
]
},
"20e00445-9d82-46d2-85f1-48b9c35a000d": {
"main": [
[
{
"node": "5ec46caa-1ac0-4c87-a329-782606b7d564",
"type": "main",
"index": 0
}
]
]
},
"f284d3e6-b0bf-47fb-a535-5119e69f9e4d": {
"ai_reranker": [
[
{
"node": "0c0db18f-7204-4f0e-bd0c-9bd4376c1f80",
"type": "ai_reranker",
"index": 0
}
]
]
},
"dc1a18aa-ad2d-49d0-b29d-cda2f5af1338": {
"main": [
[
{
"node": "5f7a6066-d195-4d74-9e6d-f9379c9df61d",
"type": "main",
"index": 0
}
]
]
},
"1f62db90-540c-4832-8953-ca7a19fde69c": {
"ai_document": [
[
{
"node": "a9de398c-76fd-4b8d-af8b-6ca68c626c5a",
"type": "ai_document",
"index": 0
}
]
]
},
"933567e2-44d9-4378-be40-7e340f901f9d": {
"main": [
[
{
"node": "c0d49668-0674-4aee-9a98-281bf3b6aa53",
"type": "main",
"index": 0
}
]
]
},
"8b4ab5ef-4d45-4ce0-88b5-d98d6af77366": {
"main": [
[
{
"node": "a9de398c-76fd-4b8d-af8b-6ca68c626c5a",
"type": "main",
"index": 0
}
]
]
},
"1876c723-a614-4bfb-84b7-3a2196c66191": {
"main": [
[]
]
},
"648673dc-cb91-4072-8f9b-622cf8633ddf": {
"main": [
[
{
"node": "fc79b84c-0f7f-4a31-97ad-79bf05213428",
"type": "main",
"index": 0
}
]
]
},
"298ea1b3-98f6-4313-93c0-cc7a2ba570fe": {
"main": [
[
{
"node": "8b4ab5ef-4d45-4ce0-88b5-d98d6af77366",
"type": "main",
"index": 0
}
],
[
{
"node": "8b006db9-519f-4ae0-af21-14ec4bca65d8",
"type": "main",
"index": 0
}
]
]
},
"5ec46caa-1ac0-4c87-a329-782606b7d564": {
"main": [
[
{
"node": "949fbd50-3994-4aa1-b720-f99c7947716d",
"type": "main",
"index": 0
}
]
]
},
"c0d49668-0674-4aee-9a98-281bf3b6aa53": {
"main": [
[
{
"node": "6ace837b-b562-437d-a922-b453d5859c5f",
"type": "main",
"index": 0
}
]
]
},
"fc79b84c-0f7f-4a31-97ad-79bf05213428": {
"main": [
[
{
"node": "49b3c664-ac01-45c9-a045-362d0bd171e8",
"type": "main",
"index": 0
}
]
]
},
"f87ee941-52ef-44e9-bb24-fac525921041": {
"ai_memory": [
[
{
"node": "20e00445-9d82-46d2-85f1-48b9c35a000d",
"type": "ai_memory",
"index": 0
}
]
]
},
"78110e8e-267c-4bc7-8377-bb81c68eb74b": {
"main": [
[
{
"node": "933567e2-44d9-4378-be40-7e340f901f9d",
"type": "main",
"index": 0
}
]
]
},
"8760cfdd-6c98-4ab3-80e8-e27b7e0afe11": {
"ai_embedding": [
[
{
"node": "a9de398c-76fd-4b8d-af8b-6ca68c626c5a",
"type": "ai_embedding",
"index": 0
}
]
]
},
"094266f6-0115-488d-8efc-84ca507d0241": {
"main": [
[
{
"node": "ae1f1a0d-22c5-4d01-ba87-895ab51eed5f",
"type": "main",
"index": 0
}
]
]
},
"8b006db9-519f-4ae0-af21-14ec4bca65d8": {
"main": [
[
{
"node": "cc16d612-fb94-45b1-95c4-3cc819cc92f8",
"type": "main",
"index": 0
}
]
]
},
"a3f4bee9-0ff4-4587-b3f7-3ac3db25fefd": {
"main": [
[
{
"node": "ef12e3bb-2179-454b-9a1b-19321d190a6e",
"type": "main",
"index": 0
}
]
]
},
"bd902835-a438-4352-ad15-34ee9cf2e0dc": {
"main": [
[
{
"node": "159bcdcb-6021-40e9-a1b9-f97c9c510fb1",
"type": "main",
"index": 0
}
]
]
},
"159bcdcb-6021-40e9-a1b9-f97c9c510fb1": {
"main": [
[
{
"node": "1876c723-a614-4bfb-84b7-3a2196c66191",
"type": "main",
"index": 0
}
]
]
},
"347be385-a3a8-42fc-b52e-577db5dc2808": {
"main": [
[
{
"node": "c248ae60-25a7-47bb-a540-097b8e6218a5",
"type": "main",
"index": 0
}
]
]
},
"cc16d612-fb94-45b1-95c4-3cc819cc92f8": {
"main": [
[
{
"node": "298ea1b3-98f6-4313-93c0-cc7a2ba570fe",
"type": "main",
"index": 0
}
]
]
},
"ae1f1a0d-22c5-4d01-ba87-895ab51eed5f": {
"main": [
[
{
"node": "974de0f2-7b95-4d6a-a0cf-c103b7fb9941",
"type": "main",
"index": 0
}
]
]
},
"46330ff4-38ef-44b9-8630-113b0a6e82c8": {
"main": [
[
{
"node": "295c78f4-0146-421b-b0ae-46045e0328cf",
"type": "main",
"index": 0
}
]
]
},
"3d5289af-d373-4ce6-8727-d1ec5f1d5867": {
"ai_memory": [
[
{
"node": "094266f6-0115-488d-8efc-84ca507d0241",
"type": "ai_memory",
"index": 0
}
]
]
},
"c248ae60-25a7-47bb-a540-097b8e6218a5": {
"main": [
[
{
"node": "648673dc-cb91-4072-8f9b-622cf8633ddf",
"type": "main",
"index": 0
}
]
]
},
"6ace837b-b562-437d-a922-b453d5859c5f": {
"main": [
[
{
"node": "13f1ed51-d927-4e94-978e-5156109636ed",
"type": "main",
"index": 0
}
]
]
},
"497b37ef-b0eb-411d-9de7-0b7743c8d8ea": {
"main": [
[
{
"node": "bd902835-a438-4352-ad15-34ee9cf2e0dc",
"type": "main",
"index": 0
}
]
]
},
"c6769765-1aba-4682-8eaf-bccff2223a4b": {
"main": [
[
{
"node": "20e00445-9d82-46d2-85f1-48b9c35a000d",
"type": "main",
"index": 0
}
]
]
},
"ef12e3bb-2179-454b-9a1b-19321d190a6e": {
"main": [
[
{
"node": "cc16d612-fb94-45b1-95c4-3cc819cc92f8",
"type": "main",
"index": 0
}
]
]
},
"13f1ed51-d927-4e94-978e-5156109636ed": {
"main": [
[
{
"node": "094266f6-0115-488d-8efc-84ca507d0241",
"type": "main",
"index": 0
}
]
]
},
"c003b1f5-ab16-459c-9d43-2b943d0ab121": {
"ai_tool": [
[
{
"node": "20e00445-9d82-46d2-85f1-48b9c35a000d",
"type": "ai_tool",
"index": 0
}
]
]
},
"46debf17-0bee-4cb4-adef-8c5071e0e49b": {
"main": [
[
{
"node": "46330ff4-38ef-44b9-8630-113b0a6e82c8",
"type": "main",
"index": 0
}
]
]
},
"295c78f4-0146-421b-b0ae-46045e0328cf": {
"main": [
[
{
"node": "10c5fcd5-f69c-4d3b-bd9e-3cc7d103596d",
"type": "main",
"index": 0
}
]
]
},
"10c5fcd5-f69c-4d3b-bd9e-3cc7d103596d": {
"main": [
[
{
"node": "f77d68c8-4924-4a9a-9019-7888f616683d",
"type": "main",
"index": 0
}
]
]
},
"7c63402c-0f59-4d54-8408-f90a1151975b": {
"main": [
[
{
"node": "a3f4bee9-0ff4-4587-b3f7-3ac3db25fefd",
"type": "main",
"index": 0
}
]
]
},
"0cb74981-770a-4cf7-bac5-add0f5564c75": {
"main": [
[
{
"node": "064b6908-e5ac-46f3-a94d-45dee80abfe0",
"type": "main",
"index": 0
}
]
]
},
"1be34db3-dba7-4a87-97b3-bb9e4a056749": {
"main": [
[
{
"node": "497b37ef-b0eb-411d-9de7-0b7743c8d8ea",
"type": "main",
"index": 0
}
]
]
},
"f5a32fff-8e38-465e-853b-204d53001b0f": {
"main": [
[
{
"node": "332c0ddf-04c4-4133-9511-a2487616e1cc",
"type": "main",
"index": 0
}
]
]
},
"d2135259-dba9-40ca-8892-e6189a8f9a2c": {
"main": [
[
{
"node": "f5a32fff-8e38-465e-853b-204d53001b0f",
"type": "main",
"index": 0
}
]
]
},
"332c0ddf-04c4-4133-9511-a2487616e1cc": {
"main": [
[
{
"node": "38280d58-1a6c-4f71-8444-d527b47e984f",
"type": "main",
"index": 0
}
]
]
},
"38280d58-1a6c-4f71-8444-d527b47e984f": {
"main": [
[
{
"node": "0cb74981-770a-4cf7-bac5-add0f5564c75",
"type": "main",
"index": 0
}
]
]
},
"949fbd50-3994-4aa1-b720-f99c7947716d": {
"main": [
[
{
"node": "46debf17-0bee-4cb4-adef-8c5071e0e49b",
"type": "main",
"index": 0
}
]
]
},
"974de0f2-7b95-4d6a-a0cf-c103b7fb9941": {
"main": [
[
{
"node": "d2135259-dba9-40ca-8892-e6189a8f9a2c",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級 - AIチャットボット, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
n8nノードの探索(可視化リファレンスライブラリ内)
n8nノードを可視化リファレンスライブラリで探索
If
Ftp
Set
+
If
Ftp
Set
113 ノードI versus AI
その他
リオーダー #1
Apify、GPT-4o、WhatsAppを使った営業のな冷水電話パイプラインの自動化
Set
Code
Webhook
+
Set
Code
Webhook
48 ノードKhairul Muhtadin
リードナーチャリング
リランキング #1
ウェブスクレイピング、GPT-4o、WhatsAppを使用した电话営業の自動化
Set
Code
Webhook
+
Set
Code
Webhook
48 ノードKhaisa Studio
リードナーチャリング
ペットショップ 4
ペットショップ予約AIエージェント
If
Set
Code
+
If
Set
Code
187 ノードBruno Dias
人工知能
[テンプレート] AIペットショップ v8
AIペットショップアシスタント - GPT-4o、Googleカレンダー、WhatsApp/Instagram/Facebookを統合
If
N8n
Set
+
If
N8n
Set
244 ノードAmanda Benks
営業
AI エージェント レストラン [テンプレート]
🤖 WhatsApp、Instagram、MessengerのAIレストランアシスタント
If
N8n
Set
+
If
N8n
Set
239 ノードAmanda Benks
その他