Who is this for? This workflow is for online store owners, support teams, and marketing staff who want to automatically verify WhatsApp numbers and send order invoice links or personalized order updates to customers. It’s built against WooCommerce order webhooks but can be adapted to Shopify or other e-commerce platforms that provide billing and lineitems. What this Workflow Does - Receives order events (Webhook / WooCommerce order.updated). - Normalizes the payload into a compact object: { data

Who is this for? This workflow is for online store owners, support teams, and marketing staff who want to automatically verify WhatsApp numbers and send order invoice links or personalized order updates to customers. It’s built against WooCommerce order webhooks but can be adapted to Shopify or other e-commerce platforms that provide billing and lineitems. What this Workflow Does - Receives order events (Webhook / WooCommerce order.updated). - Normalizes the payload into a compact object: { data: { customer, products, invoicelink } } via a Code node. - Iterates items in batches (SplitInBatches) to control throughput. - Cleans phone numbers (removes non-digits) and verifies WhatsApp registration using Rapiwa (/api/verify-whatsapp). - Sends templated WhatsApp messages through Rapiwa (/api/send-message) for verified numbers. - Logs every attempt into Google Sheets: one sheet for verified & sent rows, another for unverified & not sent rows. - Uses a Wait node to throttle and loop back into the batch processor. Key Features - Trigger-based automation (Webhook or WooCommerce trigger). - Payload normalization and mapping via JavaScript Code nodes. - Controlled batching (SplitInBatches) to avoid rate limits. - Pre-send verification of WhatsApp numbers using Rapiwa. - Conditional branching with the IF node to separate verified vs unverified flows. - Personalized message templates that pull customer and product fields from the mapped data. - Logging and audit trail stored in Google Sheets (two separate append flows). How to Use — Step-by-step Setup 1. Add credentials in n8n - Rapiwa: Create an HTTP Bearer credential and paste your Bearer token (example name used in the flow: Rapiwa Bearer Auth). - Google Sheets: Create an OAuth2 credential (example: Google Sheets). - WooCommerce: Add WooCommerce API credentials for the trigger (or configure Shopify credentials if adapting). 3. Import / configure nodes in n8n - Webhook (or WooCommerce Trigger): receive order payloads. Example Webhook path is present in the exported flow. - Code node Format Webhook Response Data: map body.billing, body.lineitems, body.paymenturl into { data: { customer, products, invoicelink } }. - Code node Clean WhatsApp Number: ensure the phone number is a string and strip non-digits: String(rawNumber).replace(/\D/g, ""). - HTTP Request Check valid whatsapp number Using Rapiwa: POST to with { number }. Use the Rapiwa Bearer credential. - IF If: check verification result. The flow compares {{$json.data.exists}} to "true" in the exported flow; normalize types if your API returns booleans. - HTTP Request Rapiwa Sender: POST to with number, messagetype: 'text', and a templated message (see message template in the flow). - Google Sheets Store State of Rows in Verified & Sent and Store State of Rows in Unverified & Not Sent Google Sheet Column Structure Create these columns exactly (the Google Sheets nodes in the flow expect these names): A Google Sheet formatted like this ➤ sample | Name | Number | Email | Address | Product Title | Product ID | Size | Quantity | Total Price | Product Image | Invoice Link | Product Status | Validity | Status | |-----------------|---------------|-------------------|--------------|------------------------------------------------|------------|------|----------|----------------|--------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|----------------|------------|----------| | Abdul Mannan | 8801322827799 | contact@spagreen.net | mirpur dohs | Air Force 1 Reigning Champ Dark Grey 1:1 - 40 | 251 | 40 | 1 | BDT 5800.00 | | Invoice | on-hold | verified | sent | | Abdul Mannan | 8801322827799 | contact@spagreen.net | mirpur dohs | Air Force 1 Reigning Champ Dark Grey 1:1 - 40 | 251 | 40 | 1 | BDT 5800.00 | | Invoice | on-hold | unverified | not sent | Customization Ideas - Adapt the Code mapping node for Shopify payloads or other marketplaces. - Iterate and include multiple products in the message instead of using products[0]. - Add filters in the Code node (e.g., only process orders with total > 5000). - Add fallback channels (SMS or email) for unverified numbers. - Persist logs into a database for analytics and retention beyond Google Sheets. - Add admin notifications (Slack, email) at the end of each run. Useful Links - Dashboard: - Official Website: - Documentation: Support & Help - WhatsApp: Chat on WhatsApp - Discord: SpaGreen Community - Facebook Group: SpaGreen Support - Website: - Developer Portfolio: Codecanyon SpaGreen
Download the workflow JSON file after purchase.
Open n8n → click the menu → Import from File.
Select the downloaded JSON and import.
Set up credentials for each node that requires them.
Click Execute Workflow to test, then activate.
Setup guide included
Purchase to unlock the full step-by-step guide
No reviews yet
Be the first to buy and share your experience.
Leave a review
Sign in to share your experience with this workflow.
Create a free account to purchase workflows.
Need help setting this up?
Book a 3-hour live setup session with an Agility consultant.