What you’ll build
Outcome: Customers receive a branded WhatsApp message with order number and tracking context when fulfillment completes.Prerequisites
- project_contributor access
- Shopify Admin API token with
read_ordersscope - WhatsApp Business connection (WABA, phone number ID, access token)
- At least one APPROVED WhatsApp template (e.g.
order_shippedwith{{1}}= order name,{{2}}= tracking URL) - Customer phone numbers stored on Shopify orders (E.164 format, e.g.
+14155551234) - Inbound webhook subscription for your project
Connectors to install
Setup WhatsApp template
1
List templates
Run a test workflow with mcp_call →
list_message_templates and note an APPROVED template name and language code (e.g. en_US).2
Match parameters
Align template placeholders with
tool_args — typically order ID, tracking link, or customer name.Build the workflow
1
Create workflow
Name it
shopify-order-shipped-whatsapp in Workflow Studio.2
Validate webhook input
Require
order_id from the Shopify webhook payload via a lua_script step.3
Fetch order
mcp_call →
get_shopify_order with the order ID.4
Extract phone
lua_script reads customer phone from the Shopify response. Fail clearly if missing.
5
Send template
mcp_call →
send_template_message with template name and body parameters.6
Wire Shopify webhook
In Shopify Admin → Settings → Notifications → Webhooks, create a webhook for Order fulfillment pointing at your AgentRuntime inbound URL.
Validate input
order_id reaches workflow input (field names vary by webhook version — test with a sample POST).
Fetch order
Extract customer phone
Send WhatsApp template
body_parameters to match your template’s placeholder count and order.
Full workflow graph (copy-paste)
Bind yourshopify and whatsapp MCP instances on each mcp_call step. Replace template_name, language_code, and body_parameters to match your approved WhatsApp template.
Test without Shopify
Start a manual run with input:Variations
- Add human_task approval before send for high-value orders.
- Write a row to Postgres after send for an audit log.
- Use
list_shopify_fulfillmentsfor tracking numbers in template parameters.