Send Automatic SMS When Zendrop Order Arrives at Facility
Automatically sends an SMS message to your customer the moment their Zendrop shipment arrives at the fulfillment facility. Keep customers informed without lifting a finger.
- 1
Set up the Zendrop Webhook Trigger
Add a
Webhooknode as your trigger. Set the HTTP method toPOSTand copy the generated webhook URL. In your Zendrop dashboard under Settings > Webhooks, paste this URL and select the 'Order Status Updated' event. Zendrop will now POST to n8n every time an order status changes. - 2
Filter for 'Arrived at Facility' Status Only
Add an
IFnode connected to the Webhook node. In the condition, set the left value to{{$json["status"]}}and the right value to the exact stringarrived_at_facility(check your Zendrop webhook docs for the exact status key). Only orders matching this status will continue through the workflow. - 3
Look Up Customer Phone Number from Google Sheets
Add a
Google Sheetsnode set to theReadoperation. Connect your Google Sheets credential. Point it to your spreadsheet that contains columnsorder_idandphone_number. In theFilterssection, match theorder_idcolumn to{{$json["order_id"]}}from the webhook payload. This returns the customer's phone number for the matching order. - 4
Build the SMS Message
Add a
Setnode to construct a clean message variable. Create a field calledsms_bodywith the value:Hi! Your order #{{$json["order_id"]}} has arrived at our fulfillment facility and will ship very soon. Thank you for your patience!Also pass through thephone_numberfield from the Google Sheets lookup using{{$node["Google Sheets"].json["phone_number"]}}. - 5
Send the SMS via Twilio
Add an
HTTP Requestnode to call the Twilio API. Set the method toPOSTand the URL tohttps://api.twilio.com/2010-04-01/Accounts/YOUR_ACCOUNT_SID/Messages.json. Under Authentication, chooseBasic Authand enter your Twilio Account SID as the username and Auth Token as the password. In theBody Parameters, addToset to{{$json["phone_number"]}},Fromset to your Twilio phone number, andBodyset to{{$json["sms_body"]}}.
Frequently asked questions
What if Zendrop uses a different status label than 'arrived_at_facility'?
Log a test webhook from Zendrop first by triggering a status change and checking the raw payload in n8n's execution log. Find the exact string used in the `status` field and update your IF node condition to match it exactly.
Do I need to pre-populate the Google Sheet with every order?
Yes. You can automate this by adding a separate n8n workflow that captures new orders from your store (via Shopify or WooCommerce webhook) and appends the order ID and customer phone number to the sheet automatically, so the lookup always has fresh data.
Can I use a different SMS provider instead of Twilio?
Absolutely. Replace the HTTP Request node with any SMS provider that has a REST API, such as Vonage or MessageBird. The workflow logic stays identical — just update the URL, authentication, and body parameter names to match your chosen provider's API documentation.