What to paste in Shopify Flow Body
In your workflow’s Send HTTP request (or similar) action, set the request body to JSON and paste the example from the right-hand Instructions panel: choose your store data type (Orders, Abandoned Checkout, etc.), set Flow HTTP body (JSON), then copy the Flow body payload block (use ⧉ to copy). Replace nothing except what Flow already resolves with Liquid (e.g. {{order.shippingAddress.phone}}).
Example — Flow body (orders)
The highlighted property is critical: template_handle must match the Template handle field on this SMS template exactly (including spelling and casing).
{
"recipient_phone": "{{order.shippingAddress.phone}}",
"template_handle": "order_confirmed",
"customer_first_name": "{{order.customer.firstName}}",
"order_name": "{{order.name}}",
"page_status_url": "{{order.statusPageUrl}}"
}
Why the format must be correct
- The body must be valid JSON: double-quoted keys and string values, commas between properties, no trailing comma after the last field.
- recipient_phone must resolve to a real phone number after Flow runs; wrong or missing phone means the SMS cannot be delivered.
- URL fields (names ending in _url) should be full https:// URLs once Liquid is applied so the app can shorten and send them.
Template handle must match this app
The template_handle in your Flow JSON must be exactly the same as the Template handle field on the template you save here (same spelling and casing). That is how the app chooses which message body and variables to use. If it does not match, the send may fail or use the wrong template.
What this dropdown is for
Use Types Store Data (or Reference endpoint in Edit) to choose which Shopify Flow trigger data you are working with. This changes the variable list and copy-paste payload examples shown on the right.
- Orders: order confirmation/updates with order-level variables and status links.
- Abandoned Checkout: checkout recovery flows using {{recovery_url}}, {{total_price}}, and checkout fields.
- Customer: customer profile or welcome flows with customer variables.
- Fulfillment: shipping updates with {{tracking_url}} and fulfillment status fields.
Pick the same data type as your Shopify Flow trigger so your payload keys and SMS placeholders match available variables.
Flow or SMS Template mode
This dropdown controls how metadata is shown for the selected store data type:
- Flow HTTP body (JSON): shows copy-paste JSON payload for Shopify Flow “Send HTTP request”.
- SMS message body (placeholders): shows message-ready placeholders you can use in Message body.
How to use: first choose the store data type, then switch to Flow mode to copy payload JSON, and switch to SMS mode to write the template text using available variables.
Keep variable naming consistent between both modes (for example recovery_url in JSON corresponds to {{recovery_url}} in SMS).
Match Shopify Flow body
The handle you save here must be exactly the same as the template_handle value in your Flow action’s HTTP request body (JSON). That field tells the app which SMS template to load.
- If they differ (typo, extra space, different casing), Flow may send successfully but the wrong template is used—or no template is found.
- Use the same spelling as in your payload examples, e.g. "template_handle": "order_confirmed" here must be order_confirmed in this field.
- Stick to one handle per workflow; change the handle in Flow and here together whenever you rename it.
Write the exact SMS text your customer will receive.
- Keep it short and clear (usually 1 to 3 lines).
- Use placeholders like {{customer_first_name}}, {{order_name}}, {{ order.totalPriceSet.shopMoney.amount}}.
- Only use placeholders listed in the Instructions panel for your selected endpoint.
- Do not include JSON in message body. Message body is plain text SMS.
Hi {{customer_first_name}}! Your TinapaisLife order {{order_name}} has been confirmed. You can track it here: {{status_url}}
Thank you po, {{order.billingAddress.firstName}}! Order #: {{order.name}} worth {{order.totalPriceSet.shopMoney.amount}} at TinapaisLife.com. Since it is COD and our Dispatch will call/text to confirm before shipping, pa-respond na lang po. For inquiries call: 09549865647
Note: Order WITH Gourmet Tinapa Nationwide delivery
Thank you po, {{order.billingAddress.firstName}}! for your Order at TinapaisLife.com. Please send payment to BPI Checking Account Number: 4641101821 under GRAN CASA BLANCA CORP. Since your order has a Gourmet Tinapa, delivery will be within 6-7 days to ensure freshness. Once confirmed, dispatch will contact you. Total: {{order.totalPriceSet.shopMoney.amount}}, Order #: {{order.name}}
Orders (Paid through Paymongo)
Note: Order (Paid WITH Order Status Page UR)
Thank you po {{order.billingAddress.firstName}}, your Order #: {{order.name}} at TinapaisLife.com is marked PAID. Since your order has a Gourmet Tinapa, delivery will be within 6-7 days to ensure freshness. Our dispatch will call/text to confirm before shipping, pa-respond na lang po. Order details: {{order_status_page_url}}
Note: Order (Paid WITHOUT Order Status Page UR)
Thank you po {{order.billingAddress.firstName}}, your Order #: {{order.name}} at TinapaisLife.com is marked PAID. Our dispatch will call/text to confirm before shipping, pa-respond na lang po.
Orders (Manual Payment using your GCash App)
Thank you po {{order.billingAddress.firstName}}, for your order at TinapaisLife.com. Please pay po via GCASH account 09524813576 (ROMMELL NARVAEZ). Dispatch will contact you once paid. Total: {{order.totalPriceSet.shopMoney.amount}} Order {{order.name}}
Orders Beyond Fulfillment Hours
Thank you po, {{order.billingAddress.firstName}}! Order #: {{order.name}} worth {{order.totalPriceSet.shopMoney.amount}} at TinapaisLife.com. Since it is COD, our Dispatch will call/text tomorrow to confirm before shipping, pa-respond na lang po. For inquiries call: 09549865647
Note: Order (Fulfillment Delivery WITH Order Tracking UR)
Great news from Tinapaislife.com, your Order #: {{order.name}} is on its way. Please check your order upon delivery. If we received no feedback within 3 days, we will consider the items complete and accepted. Salamat Po! Track here: {{status_url}}
Note: Order (Fulfillment Delivery WITHOUT Order Tracking UR)
Great news from Tinapaislife.com, your Order #: {{order.name}} is on its way. Please check your order upon delivery. If we received no feedback within 3 days, we will consider the items complete and accepted. Salamat Po!
Abandoned checkout sample
Hi {{customer_first_name}}! Nakalimutan mo ata yung items mo worth Php {{total_price}} sa TinapaisLife. Baka gusto mo na silang i-check out! Shop na! {{recovery_url}}
Hi {{customer_first_name}}! Welcome to TinapaisLife. We're happy to have you with us. Stay tuned for new updates and exclusive offers.
Configure the HTTP request action
In Shopify Flow, add Send HTTP request (or your app’s HTTP action) and match the values shown in Instructions on the right:
- Method: POST
- URL: your app base URL + /flow/http/send-sms (copy from Step 2).
- Headers: Content-Type: application/json and X-Flow-Secret with the secret from .env (copy from Step 3).