> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tryoto.com/llms.txt
> Use this file to discover all available pages before exploring further.

# WhatsApp notifications

> Send delivery updates on WhatsApp Business: connect your account, get message templates approved, send messages by hand, and set up messages for drivers.

> [!NOTE]
>
> **Where to find it:** Settings → Customer Notifs → Whatsapp — [Open in OTO ↗](https://app.tryoto.com/whatsapp)

In much of the Middle East, WhatsApp is not a messaging app people also have — it is where they are. A delivery message that arrives there is read in the same thread as everything else that matters to them.

## Three things, in order

WhatsApp Business is stricter than SMS by design: you cannot send arbitrary text to a customer who has not written to you first. Messages have to be pre-approved templates. That shapes the setup into three steps.

| Step | Where | What it is |
| - | - | - |
| **1 · Connection** | **Add Connection** | Your WhatsApp Business account. More than one can be connected — typically one per brand. |
| **2 · Template** | **Whatsapp Templates** | The message itself, submitted to Meta for approval. |
| **3 · Setting** | **Whatsapp Settings** | What ties an approved template to an event. |

### The connection

![The WhatsApp Business connection wizard](https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-15-wa-connect.png?fit=max\&auto=format\&n=ft-bRlLvOnJkbVoC\&q=85\&s=b027ebb0a81ff10d45e15e0a3733dcff)

Fig. 1 — Three steps, and the first is a seven-step walkthrough of the Meta side — because that is where this usually goes wrong.

**Add Connection** runs as **Instructions → Credentials → Settings**. The instructions step states the prerequisite plainly: *“user must have a meta business account, a whatsapp app linked to that business account and developer account linked to the business account with needed permissions”*, then walks through seven numbered steps on Meta’s developer site.

Credentials are a **Whatsapp Business ID** and a **Whatsapp User Access Token**, and there is a **Verify Connection** button — credentials must verify before the wizard will continue.

> [!TIP]
>
> **The setup guide is in the product for a reason**
>
> Connecting WhatsApp Business means creating a Meta business account, linking an app, linking a developer account and granting permissions — four things on someone else’s platform, none of which OTO can do for you.
>
> Putting the walkthrough inside the wizard, and refusing to continue until the credentials verify, is what stops the usual failure: a connection that looks configured, saves happily, and silently sends nothing.

### The templates

![The Whatsapp Templates list](https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/cn-14-wa-templates.png?fit=max\&auto=format\&n=YkJay8Y-1RDv8ciw\&q=85\&s=8946d1ba27abb1c3ae8e8021b662d47f)

Fig. 2 — Language, category and approval status per template — and a Created by OTO column separating the ready-made ones from your own.

| | |
| - | - |
| **Template Name** | Your identifier for it. |
| **Language** | One template per language — English and العربية both observed. |
| **Category** | Meta’s own classification — **utility** or **marketing**. It affects what you are allowed to send and what it costs. |
| **Status** | **Approved**, or **Need Parameter Check** while something still has to be resolved. |
| **Created by OTO** | Whether this is one of OTO’s ready-made templates or one you wrote. |

> [!NOTE]
>
> **Utility or marketing is not a label**
>
> Meta treats the two categories differently: utility messages are the ones tied to a transaction the customer is already in, marketing messages are promotional and carry stricter consent rules and a different price.
>
> Classifying a delivery notification as marketing is a common way to make a straightforward message harder to send and more expensive than it needed to be.

### The setting

![Adding a WhatsApp setting](https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/cn-13-wa-setting.png?fit=max\&auto=format\&n=YkJay8Y-1RDv8ciw\&q=85\&s=c9e92530277ef7e6cfdf3c2d52cc2ae5)

Fig. 3 — Language is read-only — it comes from the template, not from a choice made here.

| | |
| - | - |
| **Name** <sup>required</sup> | What you call this configuration. |
| **Message Type** <sup>required</sup> | The event it answers. |
| **Connection Name** <sup>required</sup> | Which WhatsApp Business account sends it. |
| **Template Name** <sup>required</sup> | Which approved template carries the words. |
| **Language** | Filled in from the template. |
| **Brands** | Which brand this applies to. |
| **Status** <sup>required</sup> | Active or not. |

The settings list then carries one row per configuration — **Message Type · Setting Name · Connection Name · Brand Name · Language · Status** — so which brand says what, in which language, on which account, is a single table.

![The Whatsapp Settings list](https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/cn-12-wa-settings.png?fit=max\&auto=format\&n=YkJay8Y-1RDv8ciw\&q=85\&s=23fb50e814844898cddf23a2343e5dbe)

Fig. 4 — Every column filters, which matters once several brands each have their own set.

### Message types

| | |
| - | - |
| **Tracking** | Shipment updates and the tracking link. |
| **Feedback** | A request for a rating after delivery. |
| **Undelivered Attempt** | The attempt failed; here is how to reschedule. |
| **Address Verification** | Confirm or correct the delivery address. |
| **Return Request** | Start a return. |
| **Delivery OTP** | The confirmation code for handover. |

> [!WARNING]
>
> **Templates need approval, and approval takes time**
>
> WhatsApp reviews every template before it can be sent, and a rejected one cannot be used at all. That makes the template library something to set up ahead of a launch rather than during it — and it means a last-minute wording change is not a five-minute job.
>
> It is also why a WhatsApp setting cannot be activated without a valid template behind it: there is nothing to fall back on.

> [!TIP]
>
> **Why it is worth the extra setup**
>
> The template approval is a real cost. What you get for it is a message in the app your customer actually lives in, with your verified business name on it, in a thread they can reply to — rather than a text from a short code they do not recognize.
>
> For the region OTO serves, that difference in how a message is received is usually larger than the difference in how it is sent.

## Sending one by hand

**Notify** on the Shipments screen sends a WhatsApp message for a specific order, using the configured template. Unlike SMS, this is one order at a time.

## Drivers have their own

Separately from customer notifications, OTO FLEX drivers send WhatsApp messages to customers from the driver app, using their own predefined templates. Same channel, different sender and different purpose — see [Delivery](https://docs.tryoto.com/modules/oto-flex/delivery.md).

## Related

* [SMS](https://docs.tryoto.com/modules/customer-notification/sms.md) — the fallback when WhatsApp is not available.
* [Branded pages](https://docs.tryoto.com/modules/customer-notification/branded-pages.md) — what the message links to.
* [Delivery](https://docs.tryoto.com/modules/oto-flex/delivery.md) — driver-to-customer messaging.


## Related topics

- [Plans, pricing and add-ons](https://docs.tryoto.com/pricing/plans-and-packaging.md)
- [SMS, email and WhatsApp providers](https://docs.tryoto.com/integrations/messaging-providers.md)
- [SMS notifications](https://docs.tryoto.com/modules/customer-notification/sms.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.