Skip to main content
This workflow sends a WhatsApp update each time an order’s status changes in HubSpot: confirmed, dispatched, out for delivery, delayed and delivered. On delivery day, customers who won’t be in can choose a safe place or another day in a short form, and your team gets a task with their choice.

At a glance

How it works

This diagram shows one update per status, and the extra steps when a customer can’t take a delivery.

Before you start

  • Connect Flowella to HubSpot and store WhatsApp numbers in international format, such as +447700900123. See Phone number format.
  • Use a contact-based workflow. Flowella’s actions only run on contacts, so copy each order’s details from the order or deal to contact properties, with your shop’s HubSpot integration or an order-based workflow. Contact properties hold one order at a time, so the latest update wins.
  • Only message customers who agreed to receive order updates on WhatsApp, for example with a tick box at checkout. Meta requires opt-in, even for Utility templates.
  • Sync a HubSpot delivery options form to a WhatsApp Flow and create a template from it. See Send the Flow to customers.
Create these contact properties: Keep Delivery estimate as text in local time. Flowella sends HubSpot date properties as dd.MM.yyyy HH:mm in UTC.

Create the templates

Each template updates the customer about their own order, names it, and promotes nothing, so it fits Utility under Meta’s template categorisation guidelines. Keep vouchers and product suggestions out: Meta lists even a delay apology that adds account credit as Marketing. {{1}} is the first name, {{2}} is Order number, {{3}} is Delivery estimate and {{4}} is Tracking link. Put the tracking link in the body, as shown: HubSpot sends can’t give a URL button a different link for each order.

Build the workflow

1

Set the trigger

Create a contact-based workflow that enrols contacts when Order status is known. Turn on re-enrolment for Order status, so every change sends a new update.
2

Send the update for each status

Add a Branch on Order status with one path per value. On each path, add Send WhatsApp Template with the matching template, and map Template Variables 1 to 4 to first name, Order number, Delivery estimate and Tracking link, as far as the template needs them.
3

Wait for a reply on delivery day

On the out for delivery path, add Delay until event: Text Reply, for up to 4 hours. Then add a Branch on Last WhatsApp reply message (flowella_last_reply_message). A tap on Change delivery sends the button text as the reply, so match it exactly. Other replies get Create task for support to answer in the inbox.
4

Send the delivery options form

On the Change delivery path, add Send WhatsApp Template with the delivery options form. Flowella’s HubSpot actions send a Flow only as a template button, so Send WhatsApp Message won’t work here. Then add Delay until event: Form Completed, filtered by Form Name equal to your delivery options form, for up to 2 hours.
5

Pass the choice to your team

Form Completed fires only for WhatsApp Flow submissions, and the answers are in the properties the form wrote. If the form is completed, add Create task for your dispatch team with Delivery preference and Delivery instructions in the notes. The submission opens the 24-hour window, so you can then add Send WhatsApp Message: Thanks, we have passed your choice to our delivery team. Flowella can’t change the carrier booking for you. If the form times out, add Create task to call the customer.
To ask for a review after delivery, enrol delivered customers in the Reviews and recovery recipe, which invites every customer in the same way.

Test the workflow

Give a test contact your own number, then change Order status through each value. Check that one message arrives per change, and that the enrolment history shows each send step as completed. On out for delivery, tap Change delivery, complete the form and check the task.

Troubleshooting

Variations

Click and collect. A template with a location header can show the collection point. Map its latitude and longitude to the Template Variable slots after the body variables. See Location headers.
Last modified on October 24, 2026