Send thank-you messages & loyalty coupons via WhatsApp from Shopify using WA
Ready for 3.0Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.
Nodes used (7)
- Loop Over Items (Split in Batches)
n8n-nodes-base.splitInBatches - If
n8n-nodes-base.if - Code
n8n-nodes-base.code - HTTP Request
n8n-nodes-base.httpRequest - Google Sheets
n8n-nodes-base.googleSheets - Wait
n8n-nodes-base.wait - Manual Trigger
n8n-nodes-base.manualTrigger
What it does
Shopify Auto Send WhatsApp Thank-You Messages & Loyalty Coupon Using Rapiwa API Who is this for? This workflow is for Shopify store owners, marketers, and support teams who want to automatically message their high-value customers on WhatsApp when new discount codes are created. What this workflow does - Fetches customer data from Shopify - Filters customers where totalspent > 5000 - Cleans phone numbers (removes non-digit characters) and normalizes them to an international format - Verifies numbers via the Rapiwa API (verify-whatsapp endpoint) - Sends coupon or thank-you messages to verified numbers via the Rapiwa send-message endpoint - Logs each send attempt to Google Sheets with status and validity - Uses batching (SplitInBatches) and Wait nodes to avoid rate limits Key features - Automated trigger: Shopify webhook (discounts/create) or manual trigger - Targeted sending to high-value customers - Pre-send verification to reduce failed sends - Google Sheets logging and status updates - Rate-limit protection using Wait node How to use? Step-by-step setup 1) Prepare a Google Sheet - Columns: name, number, status, validity, check (optional) - Example row: Abdul Mannan | 8801322827799 | not sent | unverified | check 2) Configure n8n credentials - Shopify: store access token (X-Shopify-Access-Token) - Rapiwa: Bearer token (HTTP Bearer credential) - Google Sheets: OAuth2 credentials and sheet access 3) Configure the nodes - Webhook/Trigger: Shopify discounts/create or Manual Trigger - HTTP Request (Shopify): /admin/api/<version>/customers.json - Code node: filter customers totalspent > 5000 and map fields - SplitInBatches: batching/looping - Code (clean number): waNoStr.replace(/\D/g, "") - HTTP Request (Rapiwa verify): POST https://app.rapiwa.com/api/verify-whatsapp body { number } - IF node: check data.exists to decide branch - HTTP Request (Rapiwa send-message): POST https://app.rapiwa.com/api/send-message body { number, messagetype, message } - Google Sheets Append/Update: write status and validity - Wait: add 2–5 seconds delay between sends 4) Test with a small batch - Run manually with 2–5 records first and verify results Google Sheet column structure A Google Sheet formatted like this ➤ Sample | Name | Number | Status | Validity | | -------------- | ------------- | -------- | ---------- | | Abdul Mannan | 8801322827798 | not sent | unverified | | Abdul Mannan | 8801322827799 | sent | verified | Requirements - Shopify Admin API access (store access token) - Rapiwa account and Bearer token - Google account and Google Sheet (OAuth2 setup) - n8n instance (nodes used: HTTP Request, Code, SplitInBatches, IF, Google Sheets, Wait) Customization ideas - Adjust the filter (e.g., order count, customer tags) - Use message templates to insert name and coupon code per customer - Add an SMS or email fallback for unverified numbers - Send a run summary to admin (Slack / email) - Store logs in a database for deeper analysis Important notes - data.exists may be a boolean or a string — normalize it in a Code node before using in an IF node - Ensure Google Sheets column names match exactly - Store Rapiwa and Shopify tokens securely in n8n credentials - Start with small batches for testing and scale gradually Useful Links - Dashboard: https://app.rapiwa.com - Official Website: https://rapiwa.com - Documentation: https://docs.rapiwa.com Support & Help - WhatsApp: Chat on WhatsApp - Discord: SpaGreen Community - Facebook Group: SpaGreen Support - Website: https://spagreen.net - Developer Portfolio: Codecanyon SpaGreen