Shopify to WhatsApp, tracking updates sent and logged
Your customers aren’t asking for “omnichannel.” They’re asking one simple thing: “Where’s my order?” And if tracking updates go out late (or not at all), support tickets pile up, refunds creep in, and your team wastes hours repeating the same answers.
This Shopify WhatsApp tracking automation hits eCommerce Managers first, but support leads and small shop owners feel it too. You get tracking messages sent automatically right when an order is fulfilled, plus a clean Google Sheets log so nothing gets lost.
You’ll see what the workflow does, the business outcomes it drives, and what you need to run it reliably in n8n.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Shopify to WhatsApp, tracking updates sent and logged
flowchart LR
subgraph sg0["Shopify Fulfillment Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch Order Details"]
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Batch Iterator", pos: "b", h: 48 }
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/shopify.svg' width='40' height='40' /></div><br/>Shopify Fulfillment Trigger"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Shape Webhook Payload"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Normalize Phone Data"]
n5@{ icon: "mdi:database", form: "rounded", label: "Log Verified to Sheet", pos: "b", h: 48 }
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Dispatch WhatsApp Notice"]
n7@{ icon: "mdi:cog", form: "rounded", label: "Pause Execution", pos: "b", h: 48 }
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Validate WhatsApp Number"]
n9@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Verification Branch", pos: "b", h: 48 }
n10@{ icon: "mdi:database", form: "rounded", label: "Log Unverified to Sheet", pos: "b", h: 48 }
n9 --> n6
n9 --> n10
n7 --> n1
n4 --> n8
n1 --> n4
n2 --> n3
n0 --> n1
n6 --> n5
n3 --> n0
n5 --> n7
n10 --> n7
n8 --> n9
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n2 trigger
class n9 decision
class n5,n10 database
class n0,n6,n8 api
class n3,n4 code
classDef customIcon fill:none,stroke:none
class n0,n2,n3,n4,n6,n8 customIcon
The Problem: Tracking Updates Slip Through the Cracks
Most stores don’t lose customers because the product is bad. They lose customers in the “in-between,” after payment, before delivery, when people get anxious and start refreshing their inbox. Shopify has the data, your carrier has the tracking number, and your team has good intentions. Still, fulfillment happens, and the customer hears nothing. Or the tracking link is pasted wrong, the phone number format breaks WhatsApp delivery, and now you’ve created more work than you saved. It’s frustrating because it feels like it should be easy.
The friction compounds quickly. Here’s where it usually breaks down.
- Support ends up sending the same tracking message dozens of times a week, which steals time from real issues.
- Phone numbers come in messy formats, so some WhatsApp messages fail silently and you don’t notice until a complaint lands.
- You can’t follow up confidently because there’s no reliable log of who was contacted, when, and with which tracking URL.
- When volume spikes, manual sending becomes inconsistent and customers get different wording and different timing.
The Solution: Auto-Send WhatsApp Tracking on Fulfillment (With a Log)
This n8n workflow listens for a Shopify fulfillment event, pulls the full order details, and prepares a personalized WhatsApp tracking message for the customer. Before it sends anything, it cleans the phone number into an international format and checks it against the Rapiwa API to confirm the number actually exists on WhatsApp. If it’s verified, the workflow sends the tracking details via WhatsApp and then writes a row into Google Sheets so your team has an audit trail. If the number is not verified, it skips messaging and still logs the order into a separate “unverified” sheet, which makes follow-up easy (email, SMS, or manual check). A short wait between sends helps prevent rate-limit headaches when multiple fulfillments arrive close together.
The workflow starts at the exact moment fulfillment is created in Shopify. It validates and routes each order down the verified or unverified path. Finally, it records what happened in Google Sheets so you can trust your own process again.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say your store fulfills about 20 orders a day. If a manual tracking update takes around 5 minutes to find the order, format the message, paste the tracking link, and note it somewhere, that’s about 100 minutes daily. With this workflow, the “work” becomes checking your Sheets log and handling exceptions, which is usually about 10 minutes a day. You get roughly 1.5 hours back every day, and customers stop chasing you for updates.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Shopify for fulfillment events and order data.
- Rapiwa to verify numbers and send WhatsApp messages.
- Google Sheets to log verified and unverified sends.
- Rapiwa Bearer Token (get it from your Rapiwa dashboard).
Skill level: Intermediate. You’ll connect credentials, map a few fields, and test with real fulfillments.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
Fulfillment triggers the workflow. When Shopify fires a fulfillment event, n8n captures it immediately, so messages go out at the moment customers expect them.
Order details are expanded and cleaned. The workflow fetches the full order via an HTTP request to Shopify, then normalizes customer names, tracking fields, and the phone number into an international format.
WhatsApp eligibility is verified. Each order is processed one-by-one in a small batch loop, then sent to Rapiwa’s verification endpoint. An If branch separates verified from unverified numbers without you touching anything.
Messages are sent and everything is logged. Verified customers receive a WhatsApp tracking message through Rapiwa, and the send is written into the “verified” Google Sheet. Unverified entries go into a separate sheet, and a short wait reduces rate-limit failures.
You can easily modify the WhatsApp message template to include delivery estimates or support contact info based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Shopify Fulfillment Trigger
This trigger starts the workflow whenever a fulfillment is created in Shopify.
- Add and open Shopify Fulfillment Trigger.
- Set Topic to
fulfillments/create. - Set Authentication to
accessToken. - Credential Required: Connect your
shopifyAccessTokenApicredentials.
Step 2: Connect Shopify Order Retrieval
This section shapes the webhook payload and fetches full order details from Shopify.
- Open Shape Webhook Payload and keep the JavaScript Code as provided to map fulfillment fields into a clean structure.
- Open Fetch Order Details and set URL to
=https://your_domain.myshopify.com/admin/api/2025-07/orders/{{ $json.order_id }}.json. - Set Method to
=GETand enable Send Headers. - In Header Parameters, set X-Shopify-Access-Token to your API key (replace
[CONFIGURE_YOUR_API_KEY]).
your_domain or the access token will cause Fetch Order Details to fail with a 401 or 404 response.Step 3: Set Up Batching and Phone Normalization
This stage batches orders, cleans phone numbers, and prepares customer data for validation.
- Open Batch Iterator and leave default settings unless you need custom batch sizes.
- Open Normalize Phone Data and keep the JavaScript Code to strip non-numeric characters and build the full customer name.
- Verify the execution flow is Fetch Order Details → Batch Iterator → Normalize Phone Data → Validate WhatsApp Number.
Step 4: Configure WhatsApp Verification and Routing
This section validates WhatsApp numbers and routes the workflow based on verification results.
- Open Validate WhatsApp Number and set URL to
=https://app.rapiwa.com/api/verify-whatsapp. - Set Method to
POSTand ensure Send Body is enabled. - Set Body Parameters → number to
={{ $json.phone }}. - Credential Required: Connect your
httpBearerAuthcredentials. - Open Verification Branch and confirm the condition uses
={{ $json.data.exists }}with the boolean operator set totrue.
$json.data.exists, the Verification Branch will always route to the unverified path.Step 5: Configure WhatsApp Dispatch and Logging
This step sends the WhatsApp message to verified numbers and logs both verified and unverified records in Google Sheets.
- Open Dispatch WhatsApp Notice and set URL to
=https://app.rapiwa.com/api/send-message. - Set Body Parameters → number to
={{ $json.data.number }}and message_type totext. - Set message to the full template value, keeping the expressions for
tracking_numberandtracking_url. - Credential Required: Connect your
httpBearerAuthcredentials. - Open Log Verified to Sheet and set Document to
[YOUR_ID]and Sheet togid=0. - Credential Required: Connect your
googleSheetsOAuth2Apicredentials. - Open Log Unverified to Sheet and mirror the same Google Sheets settings for the unverified path.
- Credential Required: Connect your
googleSheetsOAuth2Apicredentials. - Confirm the flow: Verification Branch → Dispatch WhatsApp Notice → Log Verified to Sheet → Pause Execution → Batch Iterator.
- Confirm the unverified flow: Verification Branch → Log Unverified to Sheet → Pause Execution → Batch Iterator.
Step 6: Test and Activate Your Workflow
Validate the end-to-end flow before turning the automation on.
- Click Execute Workflow and trigger a test fulfillment in Shopify.
- Verify Fetch Order Details returns the order payload and Normalize Phone Data outputs a cleaned
phone. - Confirm Validate WhatsApp Number returns
data.existsand routes correctly through Verification Branch. - Check that Dispatch WhatsApp Notice sends a message for verified numbers and that both Log Verified to Sheet and Log Unverified to Sheet append rows.
- When satisfied, toggle the workflow to Active for production use.
Common Gotchas
- Google Sheets OAuth credentials can expire or lose access to the right file. If rows stop writing, check the credential in n8n and confirm the spreadsheet sharing permissions 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 requests can fail from token issues or rate limits, and it’s easy to miss because everything is “just HTTP.” Check the execution history for 401/429 errors and confirm your Bearer Token is still valid.
Frequently Asked Questions
About 30 minutes if your Shopify, Rapiwa, and Google Sheets access is ready.
No. You will mostly connect accounts and map fields in n8n. The included formatting logic is already built into the 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 Rapiwa API costs based on your message volume.
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.
Yes, and you probably should. Update the message body in the “Dispatch WhatsApp Notice” HTTP Request node to match your brand voice and include extras like support hours or delivery notes. Common customizations include adding product-specific wording, inserting the customer’s first name, and switching the tracking URL format if your carrier changes.
Usually it’s an expired or incorrect Bearer Token in your n8n HTTP credentials. Regenerate the token in Rapiwa, then update the httpBearerAuth credential used by the “Validate WhatsApp Number” and “Dispatch WhatsApp Notice” requests. If it still fails, check for rate limiting during fulfillment spikes and confirm the connected WhatsApp number is still verified inside Rapiwa.
A lot, as long as you respect rate limits. On n8n Cloud Starter, your monthly execution cap depends on plan limits, while self-hosting has no hard execution limit (it mostly depends on your server). In practice, this workflow processes orders one-by-one with a short wait, so it’s built to stay stable during bursts instead of firing hundreds of WhatsApp calls at once.
Often, yes, because you can verify phone numbers, branch into verified/unverified paths, and maintain separate Google Sheets logs without awkward workarounds. n8n also gives you self-hosting, which matters once message volume grows. Zapier and Make are fine for simple “fulfillment → send message” flows, but they get expensive and fragile when you add validation, batching, and auditing. Frankly, the log is the difference between “we think it sent” and “we know it sent.” If you want help choosing, Talk to an automation expert.
The workflow handles the repetitive tracking updates and the bookkeeping in Sheets. You get fewer support fires, cleaner follow-ups, and a customer experience that feels intentional.
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.