This workflow corresponds to n8n.io template #11129 — we link there as the canonical source.
This workflow follows the Google Sheets → HTTP Request recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "hMsRsWcN09Pc6dCy",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Recover Abandoned Shopify Carts via WhatsApp Notify",
"tags": [],
"nodes": [
{
"id": "28d2c723-c020-48c9-aa50-7b76f95e4e0e",
"name": "Loop Over Items",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-16,
112
],
"parameters": {},
"typeVersion": 3
},
{
"id": "d11eb1c8-aa4f-4c37-948b-b8e4f9250da4",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-768,
208
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "2471fe6d-db56-47f5-a85c-9ff4e32f30a2",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"position": [
-240,
112
],
"parameters": {},
"typeVersion": 1
},
{
"id": "bff9c795-7545-48c5-8566-fc1f904f41e1",
"name": "Get customer info",
"type": "n8n-nodes-base.httpRequest",
"position": [
208,
128
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "06ad24e3-e0b2-4d5a-91b0-ba74b74aab8e",
"name": "Get All Abandoned checkouts",
"type": "n8n-nodes-base.httpRequest",
"position": [
-464,
112
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "d6b76f2a-0b9b-446b-9903-12a80108d721",
"name": "Get Initial Abandoned Checkout",
"type": "n8n-nodes-base.httpRequest",
"position": [
-464,
320
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "f4cf82ac-b4fc-468f-8421-839754ace3bf",
"name": "Split Out1",
"type": "n8n-nodes-base.splitOut",
"position": [
-240,
320
],
"parameters": {},
"typeVersion": 1
},
{
"id": "99526f6c-dcfb-43aa-8e81-30aac0bc11aa",
"name": "Loop Over Items1",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-16,
320
],
"parameters": {},
"typeVersion": 3
},
{
"id": "f0c10b02-856f-41c7-afdf-50f935e406cf",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
784,
336
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "e0b44380-e157-4b0c-b339-757a97aff37f",
"name": "Rapiwa (verify number)",
"type": "n8n-nodes-rapiwa.rapiwa",
"position": [
592,
336
],
"parameters": {},
"typeVersion": 1
},
{
"id": "fa7c7fac-5ac5-48c6-9ebf-1589d2e9e001",
"name": "Rapiwa (sent message)",
"type": "n8n-nodes-rapiwa.rapiwa",
"position": [
1008,
208
],
"parameters": {},
"typeVersion": 1
},
{
"id": "3750c8d9-045b-4971-af1d-38b9032eca20",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
1248,
432
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "19047f31-ec30-45af-98ee-d70a62637e0a",
"name": "Store State of Rows in Verified & Sent",
"type": "n8n-nodes-base.googleSheets",
"position": [
1248,
208
],
"parameters": {},
"typeVersion": 4.6
},
{
"id": "23a459bd-8130-41e5-8dcc-91de90cc7820",
"name": "Store State of Rows in Unverified & Not Sent",
"type": "n8n-nodes-base.googleSheets",
"position": [
1008,
432
],
"parameters": {},
"typeVersion": 4.6
},
{
"id": "91fa09e2-12bb-4c8b-b76a-41b3b6e5ec4a",
"name": "Code in JavaScript",
"type": "n8n-nodes-base.code",
"position": [
208,
336
],
"parameters": {},
"typeVersion": 2
},
{
"id": "35a44f9a-3699-40db-9143-382485abd4b1",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
560,
-32
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "2c6d1b46-63fd-484e-a443-25378d6da9a7",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-528,
-64
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "55e46e4b-99e3-48ca-8aaf-13f8969b47d9",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-528,
320
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "cbd1cf16-37e1-44fe-9067-9c429b915122",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1664,
-80
],
"parameters": {
"content": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "e8fe19d6-73a7-4f14-affc-d40c6699ba13",
"connections": {
"If": {
"main": [
[
{
"node": "Rapiwa (sent message)",
"type": "main",
"index": 0
}
],
[
{
"node": "Store State of Rows in Unverified & Not Sent",
"type": "main",
"index": 0
}
]
]
},
"Wait": {
"main": [
[]
]
},
"Split Out": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Split Out1": {
"main": [
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[],
[
{
"node": "Get customer info",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items1": {
"main": [
[],
[
{
"node": "Code in JavaScript",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Get Initial Abandoned Checkout",
"type": "main",
"index": 0
}
]
]
},
"Get customer info": {
"main": [
[]
]
},
"Code in JavaScript": {
"main": [
[
{
"node": "Rapiwa (verify number)",
"type": "main",
"index": 0
}
]
]
},
"Rapiwa (sent message)": {
"main": [
[
{
"node": "Store State of Rows in Verified & Sent",
"type": "main",
"index": 0
}
]
]
},
"Rapiwa (verify number)": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Get All Abandoned checkouts": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Get Initial Abandoned Checkout": {
"main": [
[
{
"node": "Split Out1",
"type": "main",
"index": 0
}
]
]
},
"Store State of Rows in Verified & Sent": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Store State of Rows in Unverified & Not Sent": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow is perfect for e-commerce store owners using Shopify who want to automatically recover abandoned carts through personalized WhatsApp messages. It's ideal for businesses looking to increase conversion rates without manual outreach efforts.
Source: https://n8n.io/workflows/11129/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow automates inventory management and predictive reordering for Shopify stores. It integrates Shopify, Google Sheets, and Slack to monitor inventory levels, calculate dynamic reorder points
A webhook or timer triggers the workflow to automatically fetch inventory data from multiple platforms. Stock levels are compared across stores to identify discrepancies, and any inconsistencies are u
This 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 Rap
E-commerce store owners and sales managers who want AI-powered insights from their Shopify data without manually crunching numbers every week.
This workflow connects directly to your WooCommerce store using the REST API to fetch all recent orders. It logs them in Google Sheets for easy tracking and visibility. Every day at a scheduled time,