WhatsApp Business
Communication Meta access tokenSend WhatsApp messages and templates, and manage phone numbers, through the WhatsApp Business Cloud API from any Windmill script, flow or app.
Set up in 3 steps
Set up a Meta app
In the Meta developer console, add the WhatsApp product to an app. Its setup page shows the phone number id, the business account id and a temporary token — generate a permanent one from a system user for anything scheduled.
Add the resource in Windmill
Open Resources, add a resource of type whatsapp_business, and fill token, phone_number_id and business_account_id. api_version pins the Graph API version.
Run your first script
Fork any script below and read before writing anything.
Scripts
Building blocks, if none of the projects above fit. Fork one, run it, or call it as a step inside your own flow.
Upload Media
Update Business Profile
Send Text Message
Send Template Message
Send Reaction
Send Media Message
Send Location Message
Send Interactive Message
Mark Message as Read
List Phone Numbers
List Message Templates
Get Media URL
Get Business Profile
Download Media
Delete Message Template
Delete Media
Create Message Template
Resource type
whatsapp_business — the shape of the credential every script on this page expects.
| Field | Type | Required | What it is |
|---|---|---|---|
| api_version | string | No | Graph API version to use, e.g. 'v25.0' (optional, defaults to v25.0) |
| business_account_id | string | Yes | WhatsApp Business Account (WABA) ID, used for template and phone number management. Found in the app dashboard under WhatsApp > API Setup |
| phone_number_id | string | Yes | ID of the WhatsApp business phone number used to send messages (not the phone number itself). Found in the app dashboard under WhatsApp > API Setup |
| token | string | Yes | Permanent access token of a Meta Business System User with whatsapp_business_messaging and whatsapp_business_management permissions. Create it in Meta Business Settings > Users > System Users (https://business.facebook.com/settings/system-users), or use a temporary token from the app dashboard (https://developers.facebook.com/apps > WhatsApp > API Setup) for testing |
Questions
The token expires after 24 hours
The one the setup page shows does. Create a system user in Business Settings and generate a permanent token for it instead.
A message to a new contact is not delivered
Outside a 24-hour customer service window, WhatsApp only accepts approved message templates — free-form text is rejected.
Is my token stored on the hub?
Never. It lives only in your own Windmill workspace, encrypted at rest.