Rapiwaを使用してShopifyのカート離脱顧客にWhatsAppでのリマインダーを送信(製品リンク付き)
上級
これはContent Creation, Multimodal AI分野の自動化ワークフローで、19個のノードを含みます。主にIf, Code, Wait, HttpRequest, GoogleSheetsなどのノードを使用。 自動化されたShopify留置商品のWhatsAppリマインダー:Rapiwaを通じて製品リンクを含む
前提条件
- •ターゲットAPIの認証情報が必要な場合あり
- •Google Sheets API認証情報
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "H1rJA5MTCuWx5IFF",
"meta": {
"instanceId": "cb9a1e5321767b6316634728341237e564b2587ab15b74ca0a89eb02a53484d6",
"templateCredsSetupCompleted": true
},
"name": "Automate Shopify Abandoned Cart WhatsApp Reminders with Product Links via Rapiwa",
"tags": [],
"nodes": [
{
"id": "4159f1ee-7b87-4320-8716-2d601b41bcd9",
"name": "HTTPリクエスト",
"type": "n8n-nodes-base.httpRequest",
"position": [
-2064,
32
],
"parameters": {
"url": "https://salebotsg.myshopify.com/admin/api/2025-07/checkouts.json",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "i9zvAj1mpabm9ci9",
"name": "shopify-app-auth"
}
},
"typeVersion": 4.2
},
{
"id": "53535899-1bed-495b-a12c-38f7d4b38e21",
"name": "スケジュールトリガー",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-2400,
32
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "69fbf648-32c5-42cf-8c8c-f504e3faec97",
"name": "Rapiwa送信",
"type": "n8n-nodes-base.httpRequest",
"position": [
-144,
112
],
"parameters": {
"url": "=https://app.rapiwa.com/api/send-message",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "number",
"value": "={{ $json.data.number }}"
},
{
"name": "message_type",
"value": "text"
},
{
"name": "message",
"value": "=Hi {{ $('Clean WhatsApp Number').item.json.customerName }},\n\nYou left items in your cart at SpaGreen Creative. Here’s a quick look:\n\n🧾 Order Details:\n• Product: {{ $('Clean WhatsApp Number').item.json.productTitle }}\n• Qty: {{ $('Clean WhatsApp Number').item.json.quantity }}\n• Total: {{ $('Clean WhatsApp Number').item.json.totalPrice }} {{ $('Clean WhatsApp Number').item.json.presentment_currency }}\n\n🎁 Use code SPAGREEN10 for 10% OFF at checkout!\n\n👉 Complete your order: {{ $('Clean WhatsApp Number').item.json.abandonedCheckoutURL }}\n\nHurry — your cart won’t wait forever!\n\n— Team SpaGreen Creative"
},
{
"name": "status"
}
]
},
"genericAuthType": "httpBearerAuth"
},
"credentials": {
"httpBearerAuth": {
"id": "jnaHCyYia9OAFozh",
"name": "Rapiwa Bearer Auth"
}
},
"typeVersion": 4.2
},
{
"id": "c925eed9-596d-4f47-a3bb-b1e7d366a14c",
"name": "WhatsApp番号をクリーンアップ",
"type": "n8n-nodes-base.code",
"position": [
-1264,
48
],
"parameters": {
"jsCode": "const items = $input.all();\nconst updatedItems = items.map((item) => {\n let rawNumber = item?.json[\"number\"];\n rawNumber = rawNumber ? String(rawNumber) : \"\";\n const cleanedNumber = rawNumber.replace(/\\D/g, \"\");\n item.json[\"number\"] = cleanedNumber;\n return item;\n});\nreturn updatedItems;"
},
"typeVersion": 2
},
{
"id": "90aa8a3d-47eb-473f-afb4-906360350cd9",
"name": "Rapiwa1を使用した有効なWhatsApp番号の確認",
"type": "n8n-nodes-base.httpRequest",
"position": [
-976,
48
],
"parameters": {
"url": "=https://app.rapiwa.com/api/verify-whatsapp",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "number",
"value": "={{ $json.number }}"
}
]
},
"genericAuthType": "httpBearerAuth"
},
"credentials": {
"httpBearerAuth": {
"id": "jnaHCyYia9OAFozh",
"name": "Rapiwa Bearer Auth"
}
},
"typeVersion": 4.2
},
{
"id": "a35dc547-b9c5-4a4c-9d7e-7fecd812bf71",
"name": "付箋10",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1328,
-352
],
"parameters": {
"color": 6,
"width": 576,
"height": 992,
"content": "## Clean and Verify WhatsApp Numbers\nBefore sending messages, each WhatsApp number is cleaned (removing spaces and symbols) and checked to make sure it’s a real, active WhatsApp account. Only valid numbers will get a message, so you don’t waste time or credits.\n\n- **Node:** Clean WhatsApp Number\n\n**Purpose:** Removes extra characters (like spaces, dashes, or parentheses) from the phone number.\n\n**Why it's important:** WhatsApp only accepts clean numeric formats. This step avoids delivery errors.\n\n- **Node:** Check valid whatsapp number Using Rapiwa\n - Checks if the WhatsApp number is real and can receive messages.\n - Only valid numbers will get a message."
},
"typeVersion": 1
},
{
"id": "45349501-247a-443c-b58e-1cea7f8f7e35",
"name": "付箋9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-736,
-352
],
"parameters": {
"color": 5,
"width": 432,
"height": 992,
"content": "## Conditional Logic\n\nThe **If** node checks whether `data.exists == true`:\n\n- **True branch (verified):**\n - Sends a WhatsApp confirmation via Rapiwa.\n - Appends to Google Sheets with validity: verified.\n\n- **False branch (unverified):**\n - Appends data to the sheet with validity: unverified.\n"
},
"typeVersion": 1
},
{
"id": "4cffcb7b-6473-4c5d-a52c-23f33c28edfd",
"name": "付箋12",
"type": "n8n-nodes-base.stickyNote",
"position": [
-288,
-352
],
"parameters": {
"color": 4,
"width": 880,
"height": 688,
"content": "## Send Message via HTTP Request Using Rapiwa\n\n**Purpose:** Sends the actual message via the Rapiwa API.\n\n**How it works:** Makes a POST request to `https://app.rapiwa.com/api/send-message` with:\n- `number`: Cleaned WhatsApp number \n- `message`: The text from the sheet\n\n**Why it's important:** This is the core of the automation — it connects your message to WhatsApp via Rapiwa.\n\n\n\n## Change State of Rows in Sent\n**Why it's important:** So you don’t accidentally resend the same message in the next cycle. Keeps track of what’s already done.\n\nTwo separate Google Sheets nodes:\n- **Verified append row in sheet** – for valid numbers.\n- **Unverified append row in sheet** – for invalid numbers.\n- **A Google Sheet** formatted like this ➤ [sample](https://docs.google.com/spreadsheets/d/1zsVzniJTeiFOafCI_V0B3_7VnlAPQ2CTWQa-N30qCqs/edit?usp=sharing)\n"
},
"typeVersion": 1
},
{
"id": "d789b7a8-84ab-4143-98fc-d9b270302118",
"name": "付箋13",
"type": "n8n-nodes-base.stickyNote",
"position": [
-288,
352
],
"parameters": {
"color": 2,
"width": 880,
"height": 608,
"content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Append Unverified Row to Sheet\nThis node is triggered after a phone number is checked and found to be **unverified**. It appends the form submission data to the Google Sheet with the field `validity` set to `\"unverified\"`.\n\nThis node appends data to a Google Sheet when a WhatsApp number is **unverified**.\n- **A Google Sheet** formatted like this ➤ [sample](https://docs.google.com/spreadsheets/d/1zsVzniJTeiFOafCI_V0B3_7VnlAPQ2CTWQa-N30qCqs/edit?usp=sharing) \n\n\n## Wait\n\n**Purpose:** Pauses for a few seconds (e.g., 5 sec) before sending the next message.\n\n**Why it's important:** Prevents sending too many messages too quickly, which could get your WhatsApp number flagged or blocked.\n"
},
"typeVersion": 1
},
{
"id": "6da3b3f7-8e68-41fb-b889-c62a0ca8f88b",
"name": "条件分岐",
"type": "n8n-nodes-base.if",
"position": [
-576,
288
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "3ab8725a-9268-45fd-b91c-0e055fe6fa7c",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.data.exists }}",
"rightValue": "=\"true\""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "9ff80aa5-754b-4e07-b21d-c55ea9772a06",
"name": "Verified & Sentでの行の状態変更",
"type": "n8n-nodes-base.googleSheets",
"position": [
112,
112
],
"parameters": {
"columns": {
"value": {
"name": "={{ $('Clean WhatsApp Number').item.json.customerName }}",
"number": "={{ $('If').item.json.data.number }}",
"status": "sent ",
"order id": "={{ $('Clean WhatsApp Number').item.json.checkoutId }}",
"validity": "vaeified",
"item link": "={{ $('Clean WhatsApp Number').item.json.abandonedCheckoutURL }}",
"item name": "={{ $('Clean WhatsApp Number').item.json.productTitle }}",
"total price": "={{ $('Clean WhatsApp Number').item.json.totalPrice }} {{ $('Clean WhatsApp Number').item.json.presentment_currency }}"
},
"schema": [
{
"id": "name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "number",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "order id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "order id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "item name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "item name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "coupon",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "coupon",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "item link",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "item link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "total price",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "total price",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "validity",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "validity",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "status",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"row_number"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1zsVzniJTeiFOafCI_V0B3_7VnlAPQ2CTWQa-N30qCqs/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1zsVzniJTeiFOafCI_V0B3_7VnlAPQ2CTWQa-N30qCqs",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1zsVzniJTeiFOafCI_V0B3_7VnlAPQ2CTWQa-N30qCqs/edit?usp=drivesdk",
"cachedResultName": "Shopify - Send WhatsApp reminder with cart items link"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "gFH3Wjq6yYqSEAei",
"name": "Google Sheets"
}
},
"typeVersion": 4.6
},
{
"id": "44f406aa-e919-4c6a-a3fb-3eef71d5cb23",
"name": "Unverified & Not Sentでの行の状態変更",
"type": "n8n-nodes-base.googleSheets",
"position": [
-144,
416
],
"parameters": {
"columns": {
"value": {
"name": "={{ $('Clean WhatsApp Number').item.json.customerName }}",
"number": "={{ $json.data.number }}",
"status": "not sent",
"order id": "={{ $('Clean WhatsApp Number').item.json.checkoutId }}",
"validity": "unverified",
"item link": "={{ $('Loop Over Items').item.json.abandonedCheckoutURL }}",
"item name": "={{ $('Clean WhatsApp Number').item.json.productTitle }}",
"total price": "={{ $('Loop Over Items').item.json.totalPrice }} {{ $('Loop Over Items').item.json.presentment_currency }}"
},
"schema": [
{
"id": "name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "number",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "order id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "order id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "item name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "item name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "coupon",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "coupon",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "item link",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "item link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "total price",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "total price",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "validity",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "validity",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "status",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"row_number"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1zsVzniJTeiFOafCI_V0B3_7VnlAPQ2CTWQa-N30qCqs/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1zsVzniJTeiFOafCI_V0B3_7VnlAPQ2CTWQa-N30qCqs",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1zsVzniJTeiFOafCI_V0B3_7VnlAPQ2CTWQa-N30qCqs/edit?usp=drivesdk",
"cachedResultName": "Shopify - Send WhatsApp reminder with cart items link"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "gFH3Wjq6yYqSEAei",
"name": "Google Sheets"
}
},
"typeVersion": 4.6
},
{
"id": "f385eb14-50dd-4cac-82cd-30d9374adf70",
"name": "待機",
"type": "n8n-nodes-base.wait",
"position": [
112,
416
],
"webhookId": "6c474e54-eb3c-4fcd-b455-948322cd0121",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "965c02e8-8d9f-4edb-88b5-5cb8a509f633",
"name": "HTTPレスポンスデータのフォーマット",
"type": "n8n-nodes-base.code",
"position": [
-1840,
32
],
"parameters": {
"jsCode": "const checkouts = items[0].json.checkouts;\n\nif (!Array.isArray(checkouts)) {\n throw new Error(\"Checkouts not found or not an array\");\n}\n\nreturn checkouts.map((checkout) => {\n const customer = checkout.customer || {};\n const product = (checkout.line_items && checkout.line_items[0]) || {};\n\n return {\n json: {\n checkoutId: checkout.id || null,\n customerName: `${customer.first_name || ''} ${customer.last_name || ''}`.trim(),\n number: checkout.phone || customer.phone || 'N/A',\n productTitle: product.title || 'N/A',\n quantity: product.quantity || 'N/A',\n totalPrice: checkout.total_price || '0.00',\n presentment_currency: checkout.presentment_currency,\n abandonedCheckoutURL: checkout.abandoned_checkout_url || 'N/A'\n }\n };\n});\n"
},
"typeVersion": 2
},
{
"id": "01a37d2b-5e5b-4c00-ac3d-49f0fd7ce840",
"name": "アイテムをループ処理",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-1584,
32
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "a2e4b5cb-996a-4d6e-a120-4a3c1955bec8",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
-4048,
-352
],
"parameters": {
"color": 2,
"width": 1424,
"height": 2752,
"content": "# Automate Shopify Abandoned Cart WhatsApp Reminders with Product Links via Rapiwa\n\n## Overview\nThis n8n workflow automatically identifies customers who have abandoned their carts on your Shopify store, cleans and verifies their WhatsApp numbers, and sends them personalized reminders via the Rapiwa API. It also logs each interaction—whether the number was valid or not—into a connected Google Sheet. Designed for marketers, small business owners, freelancers, and support teams, this solution makes it easy to run bulk WhatsApp campaigns using just a Google Sheet and your own WhatsApp number—no need for the official WhatsApp Business API. It’s a budget-friendly, scalable, and easy-to-manage alternative for anyone looking to automate WhatsApp follow-ups without the tech hassle.\n\n## Features\n- Fetches abandoned checkouts from Shopify\n- Cleans phone numbers to WhatsApp-ready format\n- Verifies if the number is registered on WhatsApp using Rapiwa\n- Sends customized cart recovery WhatsApp messages\n- Logs status (sent/not sent) and validity (verified/unverified) in Google Sheets\n- Batches messages to avoid API rate limits or number bans\n- Automatically loops with a scheduler\n- Fully customizable messages and structure\n\n## Requirements\n- A Shopify store with abandoned checkouts\n- Rapiwa API access with Bearer token\n- Google Sheets OAuth2 credentials set up in n8n\n- WhatsApp number linked and authorized in Rapiwa\n- Google Sheet structured like this: sample sheet\n\n## Workflow Logic Breakdown\n1. Scheduled Trigger \n - Node: Schedule Trigger \n - What it does: Runs automatically based on a scheduled interval (e.g., every few hours). \n - Why it matters: Ensures the automation works in the background without manual input.\n\n2. Fetch Abandoned Checkouts \n - Node: HTTP Request \n - Endpoint: `https://salebotsg.myshopify.com/admin/api/2025-07/checkouts.json` \n - Auth: Shopify private app token via HTTP Header Auth \n - What it does: Pulls all active abandoned checkouts from Shopify. \n - Why it matters: It's the data source for your WhatsApp reminders.\n\n3. Format the API Response \n - Node: Format HTTP Response Data (Code Node) \n - What it does: Extracts customer name, phone, product title, quantity, price, and checkout URL from the raw JSON response. \n - Why it matters: Structures data for clean downstream use.\n\n4. Loop Through Each Checkout \n - Node: Loop Over Items (SplitInBatches) \n - What it does: Processes one checkout at a time. \n - Why it matters: Enables batching and individual handling.\n\n5. Clean WhatsApp Numbers \n - Node: Clean WhatsApp Number (Code Node) \n - What it does: Strips all non-numeric characters from the phone number. \n - Why it matters: WhatsApp requires properly formatted numbers.\n\n6. Check if Number is WhatsApp-Valid \n - Node: Check valid whatsapp number Using Rapiwa1 \n - API Endpoint: `https://app.rapiwa.com/api/verify-whatsapp` \n - Method: POST \n - What it does: Validates if the number is active on WhatsApp. \n - Why it matters: Saves API credits and avoids errors by skipping invalid numbers.\n\n7. Conditional Logic \n - Node: If \n - Condition: `data.exists == true` \n - What it does: Branches based on WhatsApp validity. \n - True: Number is valid, send message and log as verified. \n - False: Number is invalid, skip sending and log as unverified.\n\n### If Number Is Verified\n\n8. Send WhatsApp Message via Rapiwa \n - Node: Rapiwa Sender \n - API Endpoint: `https://app.rapiwa.com/api/send-message` \n - Method: POST \n - Auth: Bearer Token \n - Message Template:\n\n```\nHi {{ customerName }},\n\nYou left items in your cart at SpaGreen Creative. Here’s a quick look:\n\nOrder Details:\n• Product: {{ productTitle }}\n• Qty: {{ quantity }}\n• Total: {{ totalPrice }} {{ presentment_currency }}\n\nUse code SPAGREEN10 for 10% OFF at checkout!\n\nComplete your order: {{ abandonedCheckoutURL }}\n\nHurry — your cart won’t wait forever!\n\n— Team SpaGreen Creative\n```\n\n9. Log Verified + Sent \n - Node: Change State of Rows in Verified & Sent \n - What it does: Appends row to Google Sheet with:\n - `status: sent`\n - `validity: verified` \n - Why it matters: Helps keep a record and prevent re-sending.\n\nIf Number Is Not Verified\n\n10. Log Unverified + Not Sent \n - Node: Change State of Rows in Unverified & Not Sent \n - What it does: Appends row to Google Sheet with:\n - `status: not sent`\n - `validity: unverified` \n - Why it matters: Logs failed entries for review and debugging.\n\n11. Wait Between Messages \n - Node: Wait \n - What it does: Pauses (e.g., 5 seconds) between each cycle. \n - Why it matters: Prevents Rapiwa from flagging or blocking your number.\n - A Google Sheet formatted like this ➤ [sample](https://docs.google.com/spreadsheets/d/1zsVzniJTeiFOafCI_V0B3_7VnlAPQ2CTWQa-N30qCqs/edit?usp=sharing)\n\n| name | number | order id | item name | coupon | item link | total price | validity | status |\n|-----------------|---------------|----------------|----------------------------------------------------------------------------------------------|--------|-------------------------------------------|\n| Golam Rabbi | 8801758152474 | 39248398811454 | S25 Ultra 5XXXXX Price Cell Phone | | https://salebotsg.myshopify.com/946181xxxxxx&locale=en-BD | 11500.00 BDT | unverified | not sent |\n| Shakil Ahammed | 8801322827753 | 39248402153790 | S25 Ultra 5XXXXX Price Cell Phone | | https://salebotsg.myshopify.com/946181xxxxxx&locale=en-BD | 11500.00 BDT | verified | sent |\n| Shakil Ahammed | 8801322827753 | 39248403431742 | S25 Ultra 5XXXXX Price Cell Phone | | https://salebotsg.myshopify.com/946181xxxxxx&locale=en-BD | 11500.00 BDT | verified | sent |\n"
},
"typeVersion": 1
},
{
"id": "3524bc1e-7f0d-4cc2-8a45-339d60817664",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2496,
-352
],
"parameters": {
"color": 4,
"width": 256,
"height": 656,
"content": "## Scheduled Trigger \n- What it does: Runs automatically based on a scheduled interval (e.g., every few hours). \n- Why it matters: Ensures the automation works in the background without manual input."
},
"typeVersion": 1
},
{
"id": "cbacf837-95cc-4509-aa67-75b57b045e06",
"name": "付箋2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2224,
-352
],
"parameters": {
"color": 5,
"width": 528,
"height": 656,
"content": "## Fetch Abandoned Checkouts \n### Node: HTTP Request \n - Endpoint: `https://salebotsg.myshopify.com/admin/api/2025-07/checkouts.json` \n - Auth: Shopify private app token via HTTP Header Auth \n - What it does: Pulls all active abandoned checkouts from Shopify. \n - Why it matters: It's the data source for your WhatsApp reminders.\n\n## Format the API Response \n### Node: Format HTTP Response Data (Code Node) \n - What it does: Extracts customer name, phone, product title, quantity, price, and checkout URL from the raw JSON response. \n - Why it matters: Structures data for clean downstream use.\n"
},
"typeVersion": 1
},
{
"id": "35958d98-85da-45fb-ab7f-04057fd18f63",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1680,
-352
],
"parameters": {
"color": 4,
"width": 336,
"height": 656,
"content": "## Loop Through Each Checkout \n### Node: Loop Over Items (SplitInBatches) \n - What it does: Processes one checkout at a time. \n - Why it matters: Enables batching and individual handling."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "e21de6c3-502d-4100-b905-da2afd677ada",
"connections": {
"6da3b3f7-8e68-41fb-b889-c62a0ca8f88b": {
"main": [
[
{
"node": "69fbf648-32c5-42cf-8c8c-f504e3faec97",
"type": "main",
"index": 0
}
],
[
{
"node": "44f406aa-e919-4c6a-a3fb-3eef71d5cb23",
"type": "main",
"index": 0
}
]
]
},
"f385eb14-50dd-4cac-82cd-30d9374adf70": {
"main": [
[
{
"node": "01a37d2b-5e5b-4c00-ac3d-49f0fd7ce840",
"type": "main",
"index": 0
}
]
]
},
"4159f1ee-7b87-4320-8716-2d601b41bcd9": {
"main": [
[
{
"node": "965c02e8-8d9f-4edb-88b5-5cb8a509f633",
"type": "main",
"index": 0
}
]
]
},
"69fbf648-32c5-42cf-8c8c-f504e3faec97": {
"main": [
[
{
"node": "9ff80aa5-754b-4e07-b21d-c55ea9772a06",
"type": "main",
"index": 0
}
]
]
},
"01a37d2b-5e5b-4c00-ac3d-49f0fd7ce840": {
"main": [
[],
[
{
"node": "c925eed9-596d-4f47-a3bb-b1e7d366a14c",
"type": "main",
"index": 0
}
]
]
},
"53535899-1bed-495b-a12c-38f7d4b38e21": {
"main": [
[
{
"node": "4159f1ee-7b87-4320-8716-2d601b41bcd9",
"type": "main",
"index": 0
}
]
]
},
"c925eed9-596d-4f47-a3bb-b1e7d366a14c": {
"main": [
[
{
"node": "90aa8a3d-47eb-473f-afb4-906360350cd9",
"type": "main",
"index": 0
}
]
]
},
"965c02e8-8d9f-4edb-88b5-5cb8a509f633": {
"main": [
[
{
"node": "01a37d2b-5e5b-4c00-ac3d-49f0fd7ce840",
"type": "main",
"index": 0
}
]
]
},
"9ff80aa5-754b-4e07-b21d-c55ea9772a06": {
"main": [
[
{
"node": "f385eb14-50dd-4cac-82cd-30d9374adf70",
"type": "main",
"index": 0
}
]
]
},
"90aa8a3d-47eb-473f-afb4-906360350cd9": {
"main": [
[
{
"node": "6da3b3f7-8e68-41fb-b889-c62a0ca8f88b",
"type": "main",
"index": 0
}
]
]
},
"44f406aa-e919-4c6a-a3fb-3eef71d5cb23": {
"main": [
[
{
"node": "f385eb14-50dd-4cac-82cd-30d9374adf70",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級 - コンテンツ作成, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
Shopify で注文後に WhatsApp での感謝メッセージ+ロイヤリティクーポン自動送信(Rapiwa API を使用)
Rapiwa を使用してShopifyから自動のにWhatsAppで感謝メッセージとロイヤルティクーポンを送信
If
Code
Wait
+
If
Code
Wait
17 ノードSpaGreen Creative
コンテンツ作成
Rapiwa APIを使用してShopifyの注文履行を行い、WhatsApp経由で配送追跡リンクを送信
WhatsAppを通じて自動化されたShopify出荷通知
If
Code
Wait
+
If
Code
Wait
17 ノードSpaGreen Creative
コンテンツ作成
Google テーブルから Rapiwa API を使用して WhatsApp ウェルカムメッセージを自動送信
GoogleテーブルとRapiwaを使用したセールスリード向けWhatsApp歓迎メッセージの自動送信
If
Code
Wait
+
If
Code
Wait
17 ノードSpaGreen Creative
リードナーチャリング
Apollo データスクレイピングとタッチアウトフロー 1 ✅
Apollo、AI による解析と計画されたメール.follow-up によるリード生成の自動化
If
Code
Wait
+
If
Code
Wait
39 ノードDeniz
コンテンツ作成
WordPressブログの自動化プロフェッショナル版(先端研究)v2.1マーケットプラグイン
GPT-4o、Perplexity AI、そして多言語対応を使ったSEO最適化ブログ作成の自動化
If
Set
Xml
+
If
Set
Xml
125 ノードDaniel Ng
コンテンツ作成
バッチSEOコンテンツ生成とAI画像付きWebflowドラフト作成(テンプレート)
GPT、Gemini画像、Webflowデラフトで行う大量SEOコンテンツ生成
If
Set
Code
+
If
Set
Code
54 ノードDahiana
コンテンツ作成
ワークフロー情報
難易度
上級
ノード数19
カテゴリー2
ノードタイプ8
作成者
SpaGreen Creative
@spagreenSpaGreen Creative is a leading software company specializing in SaaS solutions, AI automation, and Laravel/Vue.js development. With 800+ eCommerce platforms and 8,000+ global clients, we deliver powerful tools for OTT, CRM, ERP, and WhatsApp marketing. We combine innovation and tech to build scalable digital products.
外部リンク
n8n.ioで表示 →
このワークフローを共有