---
title: WhatsApp
description: Configure WhatsApp as a chat provider in Notiflows
---

WhatsApp integration enables notifications via the WhatsApp Business Cloud API, reaching users on the world's most popular messaging platform.

## Configuration

To create a chat channel with WhatsApp, configure the following:

| Field | Required | Description |
|-------|----------|-------------|
| Access Token | Yes | Permanent access token from Meta Business |
| Phone Number ID | Yes | WhatsApp Business phone number ID |
| Business Account ID | Yes | WhatsApp Business Account ID |

## Prerequisites

Before configuring WhatsApp in Notiflows:

1. A [Meta Business account](https://business.facebook.com/)
2. A WhatsApp Business account linked to your Meta Business
3. A registered phone number in the WhatsApp Business Platform

## Getting Your Credentials

1. Go to [Meta for Developers](https://developers.facebook.com/)
2. Create or select an app with **WhatsApp** product enabled
3. Navigate to **WhatsApp** > **API Setup**
4. Note your **Phone Number ID** and **WhatsApp Business Account ID**
5. Generate a **permanent access token** under **System Users** in Business Settings:
   - Go to **Business Settings** > **System Users**
   - Create a system user with **Admin** role
   - Generate a token with the `whatsapp_business_messaging` permission

## Setup in Notiflows

1. Navigate to **Channels** in your project
2. Click **Create Channel**
3. Select **Chat** as the channel type
4. Select **WhatsApp** as the provider
5. Enter your Access Token, Phone Number ID, and Business Account ID
6. Save the channel

## User Channel Settings

To send WhatsApp notifications to a user, set their phone number via the Admin API:

```bash
curl -X PUT /api/admin/v1/users/:user_external_id/channel-settings/:channel_id \
  -d '{ "settings": { "phone": "+1234567890" } }'
```

| Field | Description |
|-------|-------------|
| `phone` | Recipient's phone number in E.164 format (e.g., `+1234567890`) |

## Templates

WhatsApp messages are sent as text messages. Use Liquid templating for dynamic content:

```liquid
Order #{{ data.order_id }} has been shipped! Track at {{ data.tracking_url }}
```

Available variable contexts:
- `recipient.*` — Recipient user data
- `actor.*` — User who triggered the notification
- `data.*` — Custom payload passed when triggering the notiflow

## Important Notes

- WhatsApp enforces a **24-hour messaging window**. You can only send free-form messages to users who have messaged you in the last 24 hours. Outside this window, you must use approved message templates via the Meta Business Manager.
- Messages are sent as plain text via the WhatsApp Cloud API `messages` endpoint.
