Create Message Template
Create Message Template creates a WhatsApp message template and submits it for Meta
review. The new template starts in status PENDING. The request body is sent to Meta as-is.
It calls POST https://graph.facebook.com/v23.0/{wabaId}/message_templates.
The activity has four tabs: Configuration, Auth, Input and Output.
Configuration
| Field | Required | Description |
|---|---|---|
| Name | Optional | Name of the step, should be unique within this workflow. |
| Description | Optional | Describe the purpose or function of this step. |
| WABA ID | Optional | WhatsApp Business Account id. Not the app id or phone number id. Sent as the wabaId path parameter; Meta needs it. |
Auth
| Field | Required | Description |
|---|---|---|
| Auth Type | Optional | OAuth 2, the only option. WhatsApp uses the Meta OAuth connection. |
| WhatsApp Connection | Optional | The WhatsApp resource, which needs the whatsapp_business_management scope. |
Input
This activity is built on the REST Client. Map the template under
body:
| Field | Required | Data Type | Description |
|---|---|---|---|
| Target | Required | Object | The HTTP request. The template goes under body. |
| Body field | Data Type | Description |
|---|---|---|
| name | String | Lowercase letters, digits and underscores; max 512 characters. |
| language | String | Language or locale, for example en or en_US. |
| category | String | UTILITY, MARKETING or AUTHENTICATION. |
| parameter_format | String | named (placeholders like {{first_name}}) or positional ({{1}}). Use named. |
| components[].type | String | HEADER, BODY, FOOTER or BUTTONS. |
| components[].format | String | Header only: TEXT, IMAGE, VIDEO, DOCUMENT or LOCATION. |
| components[].text | String | The text, with placeholders. |
| components[].example | Object | Sample values Meta reviews: body_text_named_params and header_text_named_params (named), body_text and header_text (positional), or header_handle for a media header. |
| components[].buttons[] | Array | Buttons: type (URL, PHONE_NUMBER, QUICK_REPLY, COPY_CODE, FLOW, OTP), text, url, phone_number, example. |
An image, video or document header needs an upload handle in example.header_handle, from
Meta's Resumable Upload API.
See Create a template for a full example and the rules Meta enforces (name format, no placeholder at the start or end of a text, an example for every placeholder).
Output
The activity returns an httpResponse object (status.code, status.message, headers,
body). The response body carries:
| Field | Data Type | Description |
|---|---|---|
| id | String | The new template's id. |
| status | String | Review status, usually PENDING right after creation. |
| category | String | The category Meta assigned. Meta can recategorise a template during review. |