🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 21, 2026

Shopify to WhatsApp, win back canceled orders

Lisa Granqvist Partner Workflow Automation Expert

Canceled orders are brutal. Not just because the revenue disappears, but because you usually notice too late, then “follow up later” turns into never.

This Shopify WhatsApp recovery automation hits ecommerce managers hardest, but store owners and retention marketers feel the same pressure. One workflow gives you fast, consistent follow-up and a clean log of what happened, so you can actually improve your recovery process.

Below is what the automation does, how it works in plain language, and what you’ll need to run it without babysitting it every day.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Shopify to WhatsApp, win back canceled orders

The Challenge: Canceled Orders That Never Get a Real Follow-Up

A Shopify cancellation is often a “soft no,” not a hard one. People cancel because of shipping confusion, payment issues, a last-second doubt, or they simply got distracted. But the typical follow-up is messy: someone exports a list, copies a phone number, drafts a message, and sends it when they have time. By then, the customer has moved on. And even when you do reach out, you rarely track outcomes consistently, which means you can’t tell what’s working or what’s just noise.

The friction compounds. Here’s where it breaks down.

  • Cancellation follow-ups happen in batches, so your message lands hours (or days) after the decision.
  • Phone numbers are frequently unverified for WhatsApp, which leads to failed sends and wasted effort.
  • Messages are inconsistent because whoever is sending them is rewriting them every time.
  • Results live in people’s heads or scattered notes, so you can’t build a repeatable recovery playbook.

The Fix: Auto-Message Cancellations on WhatsApp, Then Log Everything

This workflow listens for order cancellations in your Shopify store and reacts immediately. As soon as a cancellation hits, it pulls the customer and order details, cleans up the phone number, and checks if that number is actually registered on WhatsApp (through the Rapiwa API). If the number is valid, the workflow sends a personalized apology message that includes a one-click re-order link. If the number isn’t valid, it doesn’t guess or spam. It logs the failed attempt instead, so your team can decide what to do next (email, SMS, or no follow-up).

The workflow starts with a Shopify cancellation trigger and moves through batching so spikes don’t overwhelm your messaging provider. It then formats the data, verifies WhatsApp eligibility, sends the message, and logs “sent” or “not sent” into Google Sheets for clean reporting.

What Changes: Before vs. After

Real-World Impact

Say you get about 10 canceled orders a day. Manually, a decent follow-up takes maybe 10 minutes each (find the order, copy the number, write a message, add a reorder link, then update a sheet), which is roughly 1.5 hours daily. With this workflow, the human time drops to almost nothing: the cancellation triggers automatically, sending and logging runs in the background, and you only review the Google Sheet for exceptions. That’s about an hour back most days.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Shopify for canceled order trigger and customer data
  • WhatsApp messaging provider to send WhatsApp messages (Rapiwa or similar)
  • Rapiwa API key (get it from your Rapiwa dashboard)
  • Google Sheets to log sent/unverified outcomes

Skill level: Intermediate. You’ll connect credentials, map a few fields, and tweak a message template.

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

A Shopify cancellation kicks it off. The moment an order is canceled, n8n receives the event and collects the order and customer details you’ll want in your message.

Orders are processed in manageable batches. If you get a burst of cancellations (sales events, stock issues, payment outages), the workflow iterates through them and can pause between runs using a wait interval, which helps avoid hitting provider limits.

The data gets cleaned and verified. The workflow formats the order data, normalizes the phone number, then checks WhatsApp registration via the Rapiwa “number verify” step. A simple decision branch routes “verified” one way and “unverified” another.

Messages go out and results get logged. Verified numbers receive a personalized apology plus a re-order link, then the workflow logs the status in Google Sheets. Unverified attempts are also logged, so you can follow up through a different channel later.

You can easily modify the message text and the Google Sheets columns based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Shopify Trigger

This workflow starts when a Shopify order is cancelled and then batches items for processing.

  1. Add the Shopify Cancel Trigger node and set Topic to orders/cancelled.
  2. Set Authentication to accessToken.
  3. Credential Required: Connect your shopifyAccessTokenApi credentials in Shopify Cancel Trigger.
  4. Connect Shopify Cancel Trigger to Batch Item Iterator to start batch handling.

If you only expect single cancellations, the default Batch Item Iterator settings are sufficient.

Step 2: Connect Google Sheets

Both logging nodes write results to Google Sheets after verification or failure.

  1. Open Log Verified Dispatch and set Operation to append.
  2. Set Document ID to [YOUR_ID] and Sheet Name to gid=0.
  3. Keep the field mappings, including name as {{ $('Normalize WhatsApp Number').item.json.customer.name }} and re-order link as {{ $('Order Data Formatter').item.json.orderUrl }}.
  4. Credential Required: Connect your googleSheetsOAuth2Api credentials in Log Verified Dispatch.
  5. Repeat the same Google Sheets setup for Log Unverified Attempt with Operation set to append.
  6. Credential Required: Connect your googleSheetsOAuth2Api credentials in Log Unverified Attempt.

⚠️ Common Pitfall: Make sure your sheet columns match the field IDs like name, number, and staus to avoid append errors.

Step 3: Set Up Processing Nodes

These nodes format order data and normalize the phone number before verification.

  1. In Order Data Formatter, keep the JavaScript that builds a simplified order object and returns return [{ json: result }];.
  2. Connect Batch Item Iterator output (second output) to Order Data Formatter, then to Normalize WhatsApp Number.
  3. In Normalize WhatsApp Number, keep the code that removes non-digits and writes to item.json.address.billing.phone.
  4. Connect Normalize WhatsApp Number to WhatsApp Number Verify.

Step 4: Configure WhatsApp Verification and Messaging

This step verifies the WhatsApp number, branches based on verification, and sends the apology message.

  1. In WhatsApp Number Verify, set Operation to verifyWhatsAppNumber and Number to {{ $json.address.billing.phone }}.
  2. Credential Required: Connect your rapiwaApi credentials in WhatsApp Number Verify.
  3. In Verification Branch, configure the condition Left Value to {{ $json.data.exists }} with a boolean is true check.
  4. Connect the true output of Verification Branch to Send Apology Message, and the false output to Log Unverified Attempt.
  5. In Send Apology Message, set Number to {{ $('Normalize WhatsApp Number').item.json.address.billing.phone }} and keep the message template in Message Type.
  6. Credential Required: Connect your rapiwaApi credentials in Send Apology Message.

You can customize the apology message while keeping the embedded expressions like {{ $('Normalize WhatsApp Number').item.json.customer.name }} and {{ $('Normalize WhatsApp Number').item.json.orderUrl }}.

Step 5: Configure Output Logging and Throttling

Verified and unverified outcomes are logged, then a wait ensures paced processing.

  1. Connect Send Apology Message to Log Verified Dispatch to record successful sends.
  2. Ensure Log Verified Dispatch maps fields like number to {{ $json.to }} and validity to verified.
  3. Connect both Log Verified Dispatch and Log Unverified Attempt to Pause Interval.
  4. Connect Pause Interval back to Batch Item Iterator to continue processing remaining items.

⚠️ Common Pitfall: If you remove Pause Interval, large volumes may hit API rate limits for WhatsApp verification or sending.

Step 6: Test and Activate Your Workflow

Validate the end-to-end flow before turning it on in production.

  1. Use Shopify Cancel Trigger to trigger a test cancellation event from Shopify.
  2. Confirm the flow runs through Order Data Formatter, Normalize WhatsApp Number, and WhatsApp Number Verify.
  3. Verify that verified numbers send through Send Apology Message and log into Log Verified Dispatch.
  4. Verify that unverified numbers log into Log Unverified Attempt.
  5. Click Activate to enable the workflow for live cancellations.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • Shopify credentials can expire or need specific permissions. If things break, check your Shopify app access scopes and n8n credential settings first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Rapiwa (or any WhatsApp API) can reject numbers that aren’t in international format. If delivery drops, inspect the “Normalize WhatsApp Number” output and fix formatting before you change anything else.

Common Questions

How quickly can I implement this Shopify WhatsApp recovery automation?

About an hour if your Shopify and WhatsApp provider accounts are ready.

Can non-technical teams implement this Shopify WhatsApp recovery?

Yes, but you’ll want someone comfortable mapping fields and testing with dummy cancellations. No coding is required if you keep the default formatting and message template.

Is n8n free to use for this Shopify WhatsApp recovery workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in your WhatsApp provider costs, which are usually per message.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

How do I adapt this Shopify WhatsApp recovery solution to my specific challenges?

Swap the message copy inside the “Send Apology Message” step and adjust fields in the “Order Data Formatter” code step to match your tone and the details you want to reference. Common tweaks include adding a support contact line, changing the re-order link format, and logging extra columns in Google Sheets (like cancel reason or product category). If you prefer Twilio instead of Rapiwa, you can replace the WhatsApp verify/send steps with Twilio’s WhatsApp API calls while keeping the same verification branch logic.

Why is my Rapiwa connection failing in this workflow?

Usually it’s an invalid or expired API key in n8n. It can also be account permissions on the Rapiwa side, or phone numbers not being normalized to the country code format the API expects.

What’s the capacity of this Shopify WhatsApp recovery solution?

On n8n Cloud Starter, you can typically run thousands of executions per month, which is enough for many small stores. If you self-host, there’s no execution cap, so capacity mostly depends on your server and your WhatsApp provider’s rate limits. This workflow is designed with batching and a wait interval, so it’s more stable during spikes. If you’re processing lots of cancellations at once, increase the pause duration and watch the Google Sheets logging step for quota issues.

Is this Shopify WhatsApp recovery automation better than using Zapier or Make?

For this workflow, n8n has a few advantages: more complex logic with branching at no extra cost, a self-hosting option for unlimited executions, and easier control over batching and retries. Zapier or Make can still work, but WhatsApp verification plus conditional sending often turns into a higher-tier plan and a harder-to-debug setup. If you’re only sending a basic “sorry” message with no verification or logging, simpler tools may be fine. If you want a durable recovery system you can tune over time, n8n is usually the calmer choice. Talk to an automation expert if you’re not sure which fits.

You don’t need more reminders to “follow up faster.” You need a system that does it, logs it, and keeps you honest about what actually recovers revenue.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal