Odoo × WhatsApp

Shipping updates on WhatsApp, straight from Odoo.

Odoo's order dispatched event starts a Nonito flow that sends the customer a WhatsApp message, in English or Arabic, and attributes every order that follows. WhatsApp is where customers in Egypt and the Gulf already read their messages, and it carries buttons, images and replies.

What the flow uses from Odoo.

Nonito receives orders, order status changes and customers from Odoo. For this flow it listens for one event and uses a handful of fields from it.

From OdooWhat it is for
Order dispatched
order_dispatched
Carries the delivery company and tracking number. Packed and delivered arrive as their own events, so each stage can send its own message.
Phone numberFrom the order.
Fulfilment statusThe flow follows real events, not a guessed timeline.
Tracking linkSo the customer can check without asking you.
Courier namePeople want to know who is knocking. Optional.
Delivery windowIf your courier provides one. It is the single most useful thing in the message. Optional.

The flow, as it sits in the builder.

Tell the customer where the order is before they have to ask, at every step from dispatch to the door.

Shipping updates · Odoo → WhatsAppLive in Nonito
Triggers
Trigger Event
Event:Order dispatched
Source:Odoo
Messaging
WhatsApp
Template:order_shipped
Includes:Courier + tracking
Timing
Wait for Event
Wait for:Out for delivery
Messaging
WhatsApp
Template:out_for_delivery
Timing
Wait for Event
Wait for:Delivered
Recommendations
Product Recommendations
Source:Purchase history
Messaging
WhatsApp
Template:delivered_next_pick
The same builder your team logs into. Every node here is configurable.
WhatsApp

On its way

Good news, Nour. Order #1042 is on its way with Bosta. Track it any time: yourstore.com/track

WhatsApp

Arriving today

Your order is out for delivery today, between 2pm and 5pm.

3 WhatsApp templates to copy.

Use them as they are or rewrite them in your voice. The variables in braces are filled from Odoo at send time.

On its wayEnglish

Good news, {{first_name}}. Order {{order_number}} is on its way with {{courier}}.

Track it any time:
{{tracking_link}}

Naming the courier matters more than it sounds. People want to know who is going to knock.

Arriving todayEnglish

Your order is out for delivery today, between {{delivery_window}}.

The most useful message in the set. A window is what lets someone arrange to be in, which is what stops a failed delivery.

DeliveredEnglish

Delivered. Hope you like it, {{first_name}}.

Most people who bought the {{product_name}} come back for the {{recommended_product}}.

The recommendation only works here because the customer is holding the thing it relates to. The same line a week later is just an ad.

Every message in this flow, with the reasoning behind each one: Shipping & Delivery Updates in the flow library →

How to set up shipping updates on WhatsApp from Odoo

01

Connect Odoo through Nitro

Nitro, Nonito’s enterprise platform, sends your Odoo orders and customers into the Nonito events API as they happen. It is set up with you during onboarding, against your own Odoo instance.

02

Connect WhatsApp

Bring your WhatsApp Business number or set one up through Nonito. Templates are written in English and Arabic and submitted to Meta for you.

Then build the flow

  1. Create the flow, choose Trigger Event, and select order fulfilled.
  2. Add a WhatsApp node for the dispatch message. Map the courier and the tracking link.
  3. Add a Wait for Event node set to out for delivery.
  4. Add a WhatsApp node with the delivery window.
  5. Add a second Wait for Event node set to delivered.
  6. Add a Product Recommendations node reading purchase history, then the final WhatsApp node.
  7. Add a branch for a parcel that has not moved in 48 hours, routing to a person.
  8. Send a test order through and check each message fires on the real status.
  9. Turn it on. Every order that follows a message is attributed back to this flow in the dashboard, so you can see what it earned.

Where this goes wrong

  • Three updates is the ceiling. Every status change your courier emits is not a message the customer wants.
  • If the parcel stalls, the silence is louder than the updates were. Have a plan for what happens when nothing moves for 48 hours.

Meta charges per delivered template message, and the rate depends on the country. WhatsApp API pricing by country →

Questions Odoo teams ask about this.

Can Nonito run shipping updates on WhatsApp from Odoo?

Yes. Odoo's order dispatched event starts the flow, and Nonito sends the WhatsApp message with the customer's details filled in from Odoo. It runs on its own once switched on.

Which Odoo event starts it?

Order dispatched. Carries the delivery company and tracking number. Packed and delivered arrive as their own events, so each stage can send its own message.

Do I need a WhatsApp Business API account first?

No. You can bring an existing WhatsApp Business number, or Nonito sets up the API connection and submits your templates to Meta for approval during onboarding. Approval is usually the only thing you wait on.

Can the messages go out in Arabic?

Yes. A Language node sends Arabic speakers the Arabic template and everyone else the English one, using the language on the Odoo customer record.

Is three messages too many?

These are the messages customers otherwise ask for. Each one answers a question they were about to send you, which is why they get read rather than muted.

Does this work with our courier?

It reacts to fulfilment and shipping events on your store, so any courier that writes status back will drive it. If yours does not, this flow cannot run.

Put shipping updates on WhatsApp live.

Odoo connects through Nitro during onboarding. Book a call and we will set the first flow up with you.

CHAT WITH US • CHAT WITH US •