LogoLogo
No-code docsResources
  • 🖥️Welcome to the Bird API Docs
  • API Access
    • Access Policies
    • Access Roles
    • API Authorization
    • Common API usage
  • Conversations API
    • API reference
      • Channel configuration
        • Get conversations configuration
        • Update conversations configuration
      • Conversations messaging
        • Create conversation message
        • List conversation messages
        • Get conversation message
        • Update conversation message
        • Delete conversation message
        • Create pre-signed upload
      • Conversations management
        • Create conversation
        • List conversations
        • Get conversation
        • Update conversation
        • Delete conversation
      • Conversation Participants
        • Add participant to conversation
        • List participants
        • Get participant by ID
        • Get participant by identifier key and value
        • Update participant by ID
        • Update participant by identifier key and value
        • Delete participant
        • List participant conversations by ID
        • List participant conversations by identifier key and value
      • Workspace settings
        • Get antispam setting
        • Update antispam setting
        • Create allow/block rule
        • Get allow/block rule
        • List allow/block rules
        • Update allow/block rule
        • Delete allow/block rule
        • Add allow/block rules in bulk
        • Get allow/block bulk upload status
      • Events
  • Collaborations API
    • API reference
      • Agent Management
      • Team Management
      • Feeds
      • Feed item activity
      • Tags
      • Automation Rules
      • Business Hours
      • Capacity Rules
      • Routing Queues
      • Skills
      • SLA Policies
      • Macros
      • Sender Profiles
      • Ticket fields
  • Channels API
    • Supported channels
      • Programmable WhatsApp
        • Sending WhatsApp messages
        • Customer service window
        • Receiving messages
        • Message interactions
        • WhatsApp ISV integration
          • Setting up your customer workspaces
            • API Access
            • Associating your Facebook solution ID and business ID with your Bird CRM Organization
            • Creating a workspace for your customer
            • Buying a number through Bird
            • Subscribing to channel created webhooks
          • WhatsApp channel onboarding
            • Setting up the WhatsApp Embedded flow
            • Install WhatsApp phone number in Bird CRM
            • Subscribe to channel webhooks
      • Programmable SMS
        • Installing an SMS channel
          • US 10DLC API Installation
          • Toll-Free Numbers Verification API
        • Sending SMS messages
        • Receiving messages
        • Twilio Exit API
          • Using Twilio PHP SDK
          • Using Twilio Go SDK
          • Using Twilio Ruby SDK
        • Sinch Exit API
      • Programmable RCS
        • Sending messages
        • Receiving messages
        • Message interactions
      • Programmable Email
        • Sending Emails
        • Receiving messages
        • Message status
        • Message interactions
      • Programmable Line
        • Sending messages
        • Receiving messages
        • Message interactions
      • Programmable Telegram
        • Sending messages
        • Receiving messages
        • Message interactions
    • Message types
      • Text
      • Images
      • Files
      • List
      • Carousel
      • Template
    • Message status and interactions
      • Message Failure Codes
      • Message Failure Sources
        • SMS Platform Extended Error Codes
    • Send batch messages
    • API reference
      • Channel Groups
      • Messaging
      • Channels management
      • Channel connectors
      • Navigators
      • Compliance Keywords Messages
      • Conversions Sharing
      • Events
    • Rate Limit
  • Voice API
    • Installing a Voice channel
    • Voice Calls API
      • Initiate an outbound call
      • List calls from a channel
      • Get a call
      • Update a call
      • Answer a call
      • Ring a call
      • Hangup a call
      • Play a message in a call
      • Say Text-To-Speech (TTS)
      • Gather DTMF from a call
      • Forward a call
      • Record a Call
      • Record a call session
      • Update a call recording
      • List call recordings of a call
      • Get a call recording
      • Get a call insights
      • Get calls log
    • Recordings API
      • List Recordings
      • Get a Recording
      • Delete a Recording
      • List recording storage metrics
    • Transcriptions API
      • Initiate a Transcription
      • List Transcriptions
      • Get a Transcription
      • Delete a Transcription
    • Voice webhooks
    • Flash Calling API
  • Verify API
    • Verify API: Quick Start
  • Contacts API
    • Tracking Contact Events
      • API Reference
        • Get configuration
        • Track events
    • API reference
      • Manage workspace contacts
        • Create a contact
        • Get a contact
        • List contacts
        • Search contact by identifier
        • Update a contact
        • Create or update a contact by identifier
        • Delete a contact
      • Manage contact identifiers
        • Create contact identifier
        • List contact identifiers
        • Delete contact identifier
      • Manage contact attribute definition
        • Create attribute definition
        • Get attribute definition
        • List attribute definitions
      • Manage contact lists
        • Create a list
        • Get a list
        • List lists
        • Update a list
        • Delete a list
        • Add contacts to a list
        • Get contact list memberships
        • List contacts in a list
        • Remove contacts from a list
      • Lookup
        • Network/Country information for a phone number
  • Numbers API
    • API reference
      • Search Available Numbers
      • Buy a Number
      • List your Numbers
      • Get Long Code Number Details
      • Manage Endpoint Subscriptions
        • Cancel Number Subscription
      • Manage Endpoint Compliance Requirements
        • List Workspace compliace Requirements
        • Get Workspace Compliace Requirements
        • Update Workspace Compliace Requirements
      • 10DLC Compliance
        • Brands - Organization
          • Create a brand
          • List all brands
          • Get a brand
          • Update a brand
          • Delete a brand
          • Create a brand vetting
        • Brands - workspace
          • Create a brand
          • List all brands
          • Get a brand
          • Update a brand
          • Delete a brand
          • Create a brand vetting
          • List brand vettings
        • Campaigns
          • Optional: acting as Reseller
          • Create a campaign
          • List all campaigns
          • Get a campaign
          • Update a campaign
          • Delete a campaign
        • TCR Enums
        • Events
      • Toll-Free Numbers Verification API
      • Long Code Numbers
      • Short Code Numbers
      • Alphanumeric Senders
      • Events
  • Know-Your-Customer (KYC) API
    • List KYC forms
    • Get KYC form
    • Create KYC form entry
    • Update KYC form entry
    • List KYC form entries
    • Get a KYC form entry details
  • Reporting API
    • API reference
      • Channel Metrics
      • Flow Run Metrics
      • Wallet Metrics
      • Campaign Metrics
      • Message Metrics
  • Accounts API
    • API reference
      • Current user
        • Change password
        • Presigned upload
        • Memberships
        • Sessions
        • Configurations
          • Groups
            • Keys
      • IAM policies
      • Organizations
        • Upload media
        • Profile
        • Workspaces
        • Users
        • Access keys
        • Organization roles
        • Organization policies
        • Teams
          • Members
        • Approvals
          • Runs
            • Reviews
        • Configurations
          • Groups
            • Keys
      • Region groups
  • Touchpoints API
    • Supported Projects
      • Whatsapp Approved Message Templates
        • Creating WhatsApp Message templates
          • Text template blocks
          • Blocks Documentation
    • API reference
      • Projects
      • Message Templates
  • Notifications API
    • API Reference
      • Webhook subscriptions
        • Create a webhook subscription
        • List available webhook events
        • Get a webhook subscription
        • List webhook subscriptions
        • Update a webhook subscription
        • Delete a webhook subscription
        • Verifying a webhook subscription
        • Webhook subscription logs
  • Knowledge Base (KB) API
    • API reference
      • Documents
      • Folders
        • Import
      • Search
      • Presigned upload
  • Email API
    • Transmissions
    • Metrics
    • Events
    • Recipient Validation
    • SMTP API
  • Connectivity platform migration guide
    • Channels API and Conversations API
    • Migrating conversations API actions
    • Migrating WhatsApp channels
  • Client SDKs
    • Applications
    • Contact Profiles
      • Signed Identity
    • Push notifications
      • Quick Start
      • Subscribe contacts to push notification campaigns
      • Notification Display Priority
    • Event Tracking
      • Quick Start
      • Track Events
        • App
        • Audiences
        • Conference
        • Ecommerce
        • Hospitality
        • Lists
        • Messaging
        • Payments
        • Subscription
        • Suppressions
        • Survey
        • Web
    • App Inbox
      • Quick Start
      • Usage
      • Subscribe contacts to app inbox campaigns
    • SDK Integration
      • Android SDK
        • Notification Interactions
      • Swift SDK
        • Notification Interactions
      • Web SDK
        • Quick Start
        • Usage
        • API Reference
          • IdentityManager
          • BirdSdkApi
          • BirdTracker
            • Ecommerce
            • Conference
            • Messaging
            • Suppressions
            • Subscription
            • Survey
            • Web
            • Audiences
        • Web Push Notifications
          • Notification Interactions
  • Quickstarts
    • Conversations
    • Send an SMS message
    • Send an Email message
    • Send a WhatsApp message
Powered by GitBook
On this page

Was this helpful?

  1. Touchpoints API
  2. Supported Projects
  3. Whatsapp Approved Message Templates

Creating WhatsApp Message templates

Step-by-step process of creating a Whatsapp Message Template using the Touchpoints API.

Last updated 8 months ago

Was this helpful?

To create a WhatsApp template there are multiples steps:

  1. Create a Project: A project acts as an entity that houses the messaging template.

  2. Retrieve a Channel Group: Templates are linked to a WABA (WhatsApp Business Account), and the channel group holds a unique ID that identifies the WABA.

  3. Create a Channel Template: This step involves creating the actual messaging template that will be sent.

  4. Activate the Template: This action submits the template to Meta for approval.

  5. Checking the Template status: Check the current status of the template

Once the template is activate it (approved by Meta), it can be used for sending messages by following the step .

Before starting this guide make sure you have and you are using the necessary Access Policies and Roles on your Access Key.

Lets go through each of the steps in greater details.

1- Create a project

This will create a Message Template project where the WhatsApp template will be added to.

To create a project, follow these steps:

  1. Make a POST request to the /workspaces/{workspaceId}/projects endpoint.

  2. Provide the necessary request body parameters, such as the project name, description, and type.

Message Templates are referred to as channel templates through the API. In this case, we need to set the project type to"channelTemplate"

Example request

{
    "type": "channelTemplate",
    "scope": 3,
    "name": "text_wa_1",
    "description": "My whatsapp template created via api",
    "suites": ["marketing"]
}
Key Fields
Description

scope

Select 3 as Meta requires this template to be sent for review.

suites

select the suite where this template will be used

name

Unique project name

Example response

{
    "id": "11323dfa-121f-4a4e-b4ef-35d325eaacb5",
    "name": "text_wa_1",
    "description": "My whatsapp template created via api",
    "type": "channelTemplate",
    "scope": 3,
    "supportedPlatforms": [
        "all"
    ],
    "suites": [
        "marketing"
    ],
    "draftCount": 0,
    "pendingCount": 0,
    "activeCount": 0,
    "inactiveCount": 0,
    "activeResourceId": null,
    "createdAt": "2024-09-19T17:19:04.087Z",
    "updatedAt": "2024-09-19T17:19:04.087Z"
}

Upon successful creation, you will receive a response with the details of the newly created project, including the project ID.

2- Retrieve channel group

Use the endpoint below to retrieve all channel groups associated with your WABAs. Select the channel group you wish to use for creating a template. Keep in mind that templates are linked to a specific WABA.

Example response

    "results": [
        {
            "id": "3f979241-dea3-4f55-b7bb-d769eec27e51",
            "platformId": "whatsapp",
            "platformGroupId": "114128184961630",
            "platformGroupName": "Bird WABA",
            "channelIds": [
                "7b87eea0-631e-576d-a849-ecf58e837b6a"
            ],
            "createdAt": "2024-09-19T15:00:15.849Z",
            "updatedAt": "2024-09-19T15:00:15.849Z"
        }
    ]
}
Field
Description

id

This is the channel group ID required for future calls. It has a one-to-one relationship with your WABA.

platformGroupId

This is a WABA ID

platformGroupName

This is the WABA name

channelIds

List of channels associated to given WABA

3 - Create a Channel Template

This is the actual creation of the WhatsApp template.

Once you have created a project, you can add a channel template to it. Follow these steps:

  1. Make a POST request to the /workspaces/{workspaceId}/projects/{projectId}/channel-templates endpoint.

  2. Pass the project ID and other required parameters in the request.

Create a channel template example request

{
   "defaultLocale":"en",
   "platformContent":[
      {
         "platform":"whatsapp",
         "locale":"en",
         "blocks":[
            {
               "type":"text",
               "role":"header",
               "text":{
                  "text":"My header"
               }
            },
            {
               "type":"text",
               "role":"body",
               "text":{
                  "text":"Hey {{firstname}}! Bird would love for you to schedule a demo with us."
               }
            },
            {
               "type":"text",
               "role":"footer",
               "text":{
                  "text":"Reply STOP to unsubscribe."
               }
            }
         ],
         "channelGroupIds":[
            "ec4be352-af2a-45f5-b341-b90ad6091c33"
         ]
      }
   ],
   "variables":[
      {
         "type":"string",
         "key":"firstname",
         "examplesLocale":{
            "en":{
               "exampleValueStrings":[
                  "Dan"
               ]
            }
         }
      }
   ],
   "supportedPlatforms":[
      "whatsapp"
   ],
   "shortLinks":{
      "enabled":true,
      "domain":"brd1.us"
   },
   "deployments":[
      {
         "key":"whatsappTemplateName",
         "platform":"whatsapp",
         "value":"text_wa_template_1"
      },
      {
         "key":"whatsappCategory",
         "platform":"whatsapp",
         "value":"MARKETING"
      },
      {
         "key":"whatsappAllowCategoryChange",
         "platform":"whatsapp",
         "value":"false"
      }
   ]
}
Key fields
Description

defaultLocale

This locale will be used as a fallback if the locale specified for content is not supported.

platformContent

variables

List of variables to be used in a template.

supportedPlatforms

Platforms where this template can be used. Since this message is just meant to be used in Whatsapp, we will just include this platform.

deployments

platformContent.channelGroupIds

Channel group id obtained on the previous API call which relates to yourn WABA

deployments.whatsappAllowCategoryChange

Default: false If set to true, Meta will assign a category based on their template guidelines. If omitted, the template will not be automatically categorized and may be rejected if it is deemed miscategorized.

deployments.whatsappTemplateName

This is the name of the template that will be registered with Meta

If successful, you will receive a response containing the details of the newly created channel template, including its ID. The template will have a status of Draft.

platformContent: This defines the template structure, referred to as "blocks." The structure of this object varies depending on the type of template you're creating. On the subpage, you'll find examples of different block types and their combinations.

Response

{
    "id": "34dcb086-82c7-47f2-8939-7f0057def64e",
    "projectId": "11323dfa-121f-4a4e-b4ef-35d325eaacb5",
    "defaultLocale": "en",
    "status": "draft",
    "assets": [],
    "styles": [
        ...
    ],
    "deployments": [
        {
            "key": "whatsappTemplateName",
            "locale": null,
            "platform": "whatsapp",
            "channelIds": null,
            "value": "text_wa_template_1"
        },
        {
            "key": "whatsappCategory",
            "locale": null,
            "platform": "whatsapp",
            "channelIds": null,
            "value": "MARKETING"
        },
        {
            "key": "whatsappAllowCategoryChange",
            "locale": null,
            "platform": "whatsapp",
            "channelIds": null,
            "value": "false"
        }
    ],
    "variables": [
        {
            "key": "firstname",
            "type": "string",
            "format": "none",
            "examplesLocale": {
                "en": {
                    "exampleValueStrings": [
                        "Dan"
                    ]
                }
            }
        }
    ],
    "genericContent": [],
    "platformContent": [
        {
            "locale": "en",
            "type": null,
            "platform": "whatsapp",
            "channelIds": null,
            "channelGroupIds": [
                "3f979241-dea3-4f55-b7bb-d769eec27e51"
            ],
            "blocks": [
                {
                    "type": "text",
                    "role": "header",
                    "text": {
                        "text": "My header"
                    }
                },
                {
                    "type": "text",
                    "role": "body",
                    "text": {
                        "text": "Hey {{firstname}}! Bird would love for you to schedule a demo with us"
                    }
                },
                {
                    "type": "text",
                    "role": "footer",
                    "text": {
                        "text": "Reply STOP to unsubscribe."
                    }
                }
            ]
        }
    ],
    "supportedPlatforms": [
        "whatsapp"
    ],
    "shortLinks": {
        "enabled": true,
        "domain": "brd1.us"
    },
    "createdAt": "2024-09-20T09:11:46.28Z",
    "updatedAt": "2024-09-20T09:11:46.28Z",
    "isCloneable": true,
    "editorId": "57fee30f-3e5c-41a9-9c86-70743e866c94",
    "editorType": "accesskey"
}

Key fields
Description

projectId

The project ID is required when sending a template message via channels API

status

Draft indicates the template has been created and the next step is to activate it

id

Template id. Required to be use on the next steps to activate the template

On the above screenshot we can see the recent created template on our Bird CRM UI (Message Templates).

4 - Activate template

After creating the WhatsApp Message Template, you need to activate it to make it available for use. Follow these steps:

  1. Make a PUT request to the /workspaces/{workspaceId}/projects/{projectId}/channel-templates/{channelTemplateId}/activate endpoint.

  2. Pass the workspace ID, project ID, and channel template ID in the request URL.

  3. Send the request.

"status": "pending"

Please note that the exact details and procedures of the WhatsApp approval process may vary, and it's recommended to refer to WhatsApp's official documentation. If the approval is successful the message template will be marked as active and will be ready to use.

5 - Checking the status

You need to set up a Whatsapp Channel first before completing this step. For more info please visit our or check the .

This is the content that is specific to a platform, in this case, we are adding content for Whatsapp. In the section, there is more info on the type of blocks you can add as content. Here is important to specify your channelGroupIds array with the corresponding ID. For more information about channel groups visit the .

Information about the template used by Whatsapp on deployment. You can read more about Whatsapp templates .

If the call is successful, you will receive a 200 OK response indicating that the WhatsApp template has been submitted for approval and has a pending status. WhatsApp reviews the submitted template to ensure it complies with its guidelines. They assess factors such as the template structure, content, language, and intended use case. You can read more about this on .

Blocks Documentation
Channels API reference
here
  • 1- Create a project
  • POSTCreate project
  • 2- Retrieve channel group
  • GETGet enriched Channel groups for ChannelTemplate
  • 3 - Create a Channel Template
  • POSTCreate channeltemplate
  • 4 - Activate template
  • PUTActivate ChannelTemplate
  • PUTDeactivate ChannelTemplate
  • 5 - Checking the status
  • GETGet ChannelTemplate
here
API Access
Channels API

Get enriched Channel groups for ChannelTemplate

get
Authorizations
Path parameters
workspaceIdstringRequired
Responses
200
OK
application/json
404
Workspace not found
application/json
422
Invalid request
application/json
get

Activate ChannelTemplate

put
Authorizations
Path parameters
workspaceIdstringRequired
projectIdstringRequired
channelTemplateIdstringRequired
Responses
200
Activated
404
Project, channeltemplate or workspace not found
application/json
422
Failed to activate channeltemplate
application/json
put

No content

Deactivate ChannelTemplate

put
Authorizations
Path parameters
workspaceIdstringRequired
projectIdstringRequired
channelTemplateIdstringRequired
Responses
200
Deactivated
404
Project, channeltemplate or workspace not found
application/json
422
Failed to deactivate channeltemplate
application/json
put

No content

Get ChannelTemplate

get
Authorizations
Path parameters
workspaceIdstringRequired
projectIdstringRequired
channelTemplateIdstringRequired
Responses
200
OK
application/json
404
Project, channeltemplate or workspace not found
application/json
422
No active channeltemplate marked as latest
application/json
get

Create project

post
Authorizations
Path parameters
workspaceIdstringRequired
Body
namestringOptional
descriptionstringOptional
typestring · enumRequired

enum for all the different project types Touchpoints API supports.

Possible values:
scopenumber · enumOptional

dictionary:

  • 0 DEFAULT: This should indicate that the project is of our current scope (can be used across all BirdCRM services).
  • 1 SAVED_TEMPLATE: This should indicate that the project is a saved template, meaning that it came from extending one of BirdCRM library templates. They can be used for creating other Projects, such as inline campaigns and flows content.
  • 2 INLINE_MESSAGE: This should indicate that the project is an inline message, meaning that it was created from a campaign or flow using a library template or a saved template. They are linked to an specific instance of other BirdCRM services (Campaigns, Flows, etc.).
  • 3 (PLATFORM_REVIEWED_TEMPLATE): This should indicate that the project is a platform reviewed template, meaning the template must go through a external platform review.
Possible values:
tagsstring[] | nullableOptional

Tags for this project

directoryIdstring · uuid | nullableOptional
Responses
201
Created
application/json
404
Workspace not found
application/json
409
Duplicate project
application/json
422
Invalid project
application/json
post
POST /workspaces/{workspaceId}/projects HTTP/1.1
Host: 
Authorization: Bearer jwt
Content-Type: application/json
Accept: */*
Content-Length: 158

{
  "name": "text",
  "description": "text",
  "type": "chatwidget",
  "scope": 0,
  "suites": [
    "marketing"
  ],
  "tags": [
    "text"
  ],
  "directoryId": "123e4567-e89b-12d3-a456-426614174000"
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "workspaceId": "123e4567-e89b-12d3-a456-426614174000",
  "name": "text",
  "description": "text",
  "type": "chatwidget",
  "scope": 0,
  "supportedPlatforms": [
    "all"
  ],
  "locales": [
    "en"
  ],
  "activeResourceId": "123e4567-e89b-12d3-a456-426614174000",
  "draftCount": 1,
  "pendingCount": 1,
  "activeCount": 1,
  "inactiveCount": 1,
  "createdAt": "2025-06-02T09:56:41.667Z",
  "updatedAt": "2025-06-02T09:56:41.667Z",
  "approvedTemplateChannelsId": [
    "123e4567-e89b-12d3-a456-426614174000"
  ],
  "approvedTemplateChannelGroupIds": [
    "123e4567-e89b-12d3-a456-426614174000"
  ],
  "suites": [
    "marketing"
  ],
  "clonedFrom": "123e4567-e89b-12d3-a456-426614174000",
  "metadata": [
    {
      "key": "text",
      "value": "text"
    }
  ],
  "tags": [
    "text"
  ],
  "directoryId": "123e4567-e89b-12d3-a456-426614174000"
}
GET /workspaces/{workspaceId}/projects/channel-templates/channel-groups HTTP/1.1
Host: 
Authorization: Bearer jwt
Accept: */*
{
  "results": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "platformGroupName": "text",
      "platformGroupId": "text",
      "platformId": "text",
      "channels": [
        {
          "id": "123e4567-e89b-12d3-a456-426614174000",
          "name": "text",
          "identifier": "text"
        }
      ],
      "createdAt": "2025-06-02T09:56:41.667Z",
      "updatedAt": "2025-06-02T09:56:41.667Z"
    }
  ]
}

Create channeltemplate

post
Authorizations
Path parameters
workspaceIdstringRequired
projectIdstringRequired
Body
descriptionstringOptional
defaultLocaleall ofOptional
string · enumOptionalExample: enPossible values:
shortLinksobject | nullableOptional
Other propertiesanyOptional
Responses
201
Created
application/json
400
Default locale must exist in the content property
application/json
404
Workspace not found
application/json
409
Duplicate channeltemplate
application/json
422
Invalid channeltemplate
application/json
post
POST /workspaces/{workspaceId}/projects/{projectId}/channel-templates HTTP/1.1
Host: 
Authorization: Bearer jwt
Content-Type: application/json
Accept: */*
Content-Length: 1881

{
  "description": "text",
  "defaultLocale": "text",
  "assets": [
    {
      "key": "logoUrl",
      "isDefault": true,
      "valueString": "text"
    }
  ],
  "styles": [
    {
      "key": "text",
      "valueString": "text",
      "isDefault": true
    }
  ],
  "variables": [
    {
      "key": "text",
      "description": "text",
      "type": "string",
      "format": "none",
      "sourceUrl": {
        "fullyReplaced": true,
        "value": "text"
      },
      "characterLimit": 1,
      "examplesLocale": {
        "ANY_ADDITIONAL_PROPERTY": {
          "exampleValueStrings": [
            "text"
          ],
          "exampleValues": [
            {
              "sections": [
                {
                  "id": "text",
                  "multipleSelection": true,
                  "title": "text",
                  "items": [
                    {
                      "id": "text",
                      "type": "reply-action",
                      "reference": "text",
                      "role": "text",
                      "hidden": true,
                      "replyAction": {
                        "text": "text",
                        "imageUrl": "text",
                        "payload": "text"
                      }
                    }
                  ]
                }
              ]
            }
          ]
        }
      }
    }
  ],
  "deployments": [
    {
      "key": "whatsappCategory",
      "value": "text",
      "locale": "text",
      "platform": "text"
    }
  ],
  "genericContent": [
    {
      "locale": "en",
      "type": "text",
      "blocks": [
        {
          "id": "text",
          "reference": "text",
          "role": "text",
          "hidden": true,
          "type": "action",
          "action": {
            "type": "link",
            "id": "text",
            "reference": "text",
            "role": "text",
            "hidden": true,
            "link": {
              "text": "text",
              "url": "https://example.com"
            }
          }
        }
      ]
    }
  ],
  "platformContent": [
    {
      "locale": "en",
      "type": "text",
      "platform": "text",
      "channelIds": [
        "123e4567-e89b-12d3-a456-426614174000"
      ],
      "channelGroupIds": [
        "123e4567-e89b-12d3-a456-426614174000"
      ],
      "blocks": [
        {
          "id": "text",
          "reference": "text",
          "role": "text",
          "hidden": true,
          "type": "action",
          "action": {
            "type": "link",
            "id": "text",
            "reference": "text",
            "role": "text",
            "hidden": true,
            "link": {
              "text": "text",
              "url": "https://example.com"
            }
          }
        }
      ],
      "approvals": [
        {
          "approvalReference": "123e4567-e89b-12d3-a456-426614174000",
          "platformReference": "text",
          "platformAccountIdentifier": "text",
          "reasonCode": "whatsapp_scam",
          "reasonDescription": "text",
          "status": "pending",
          "platformStatus": "whatsapp_approved",
          "channelIds": [
            "123e4567-e89b-12d3-a456-426614174000"
          ],
          "channelGroupId": "123e4567-e89b-12d3-a456-426614174000",
          "platform": "whatsapp"
        }
      ]
    }
  ],
  "supportedPlatforms": [
    "all"
  ],
  "shortLinks": {},
  "ANY_ADDITIONAL_PROPERTY": "anything"
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "projectId": "123e4567-e89b-12d3-a456-426614174000",
  "status": "draft",
  "localeStatuses": {
    "ANY_ADDITIONAL_PROPERTY": "draft"
  },
  "description": "text",
  "defaultLocale": "en",
  "assets": [
    {
      "key": "logoUrl",
      "isDefault": true,
      "valueString": "text"
    }
  ],
  "styles": [
    {
      "key": "text",
      "valueString": "text",
      "isDefault": true
    }
  ],
  "deployments": [
    {
      "key": "whatsappCategory",
      "value": "text",
      "locale": "text",
      "platform": "text"
    }
  ],
  "variables": [
    {
      "key": "text",
      "description": "text",
      "type": "string",
      "format": "none",
      "sourceUrl": {
        "fullyReplaced": true,
        "value": "text"
      },
      "characterLimit": 1,
      "examplesLocale": {
        "ANY_ADDITIONAL_PROPERTY": {
          "exampleValueStrings": [
            "text"
          ],
          "exampleValues": [
            {
              "sections": [
                {
                  "id": "text",
                  "multipleSelection": true,
                  "title": "text",
                  "items": [
                    {
                      "id": "text",
                      "type": "reply-action",
                      "reference": "text",
                      "role": "text",
                      "hidden": true,
                      "replyAction": {
                        "text": "text",
                        "imageUrl": "text",
                        "payload": "text"
                      }
                    }
                  ]
                }
              ]
            }
          ]
        }
      }
    }
  ],
  "genericContent": [
    {
      "locale": "en",
      "type": "text",
      "blocks": [
        {
          "id": "text",
          "reference": "text",
          "role": "text",
          "hidden": true,
          "type": "action",
          "action": {
            "type": "link",
            "id": "text",
            "reference": "text",
            "role": "text",
            "hidden": true,
            "link": {
              "text": "text",
              "url": "https://example.com"
            }
          }
        }
      ]
    }
  ],
  "platformContent": [
    {
      "locale": "en",
      "type": "text",
      "platform": "text",
      "channelIds": [
        "123e4567-e89b-12d3-a456-426614174000"
      ],
      "channelGroupIds": [
        "123e4567-e89b-12d3-a456-426614174000"
      ],
      "blocks": [
        {
          "id": "text",
          "reference": "text",
          "role": "text",
          "hidden": true,
          "type": "action",
          "action": {
            "type": "link",
            "id": "text",
            "reference": "text",
            "role": "text",
            "hidden": true,
            "link": {
              "text": "text",
              "url": "https://example.com"
            }
          }
        }
      ],
      "approvals": [
        {
          "approvalReference": "123e4567-e89b-12d3-a456-426614174000",
          "platformReference": "text",
          "platformAccountIdentifier": "text",
          "reasonCode": "whatsapp_scam",
          "reasonDescription": "text",
          "status": "pending",
          "platformStatus": "whatsapp_approved",
          "channelIds": [
            "123e4567-e89b-12d3-a456-426614174000"
          ],
          "channelGroupId": "123e4567-e89b-12d3-a456-426614174000",
          "platform": "whatsapp"
        }
      ]
    }
  ],
  "supportedPlatforms": [
    "all"
  ],
  "createdAt": "2025-06-02T09:56:41.667Z",
  "updatedAt": "2025-06-02T09:56:41.667Z",
  "isCloneable": true,
  "editorId": "123e4567-e89b-12d3-a456-426614174000",
  "editorType": "text",
  "publisherId": "123e4567-e89b-12d3-a456-426614174000",
  "publisherType": "text",
  "shortLinks": {},
  "clonedFrom": "123e4567-e89b-12d3-a456-426614174000",
  "reviewInfo": {
    "approvalFlowId": "123e4567-e89b-12d3-a456-426614174000",
    "approvalRunId": "123e4567-e89b-12d3-a456-426614174000",
    "status": "pending",
    "currentStep": 1
  }
}
PUT /workspaces/{workspaceId}/projects/{projectId}/channel-templates/{channelTemplateId}/activate HTTP/1.1
Host: 
Authorization: Bearer jwt
Accept: */*
PUT /workspaces/{workspaceId}/projects/{projectId}/channel-templates/{channelTemplateId}/deactivate HTTP/1.1
Host: 
Authorization: Bearer jwt
Accept: */*
GET /workspaces/{workspaceId}/projects/{projectId}/channel-templates/{channelTemplateId} HTTP/1.1
Host: 
Authorization: Bearer jwt
Accept: */*
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "projectId": "123e4567-e89b-12d3-a456-426614174000",
  "status": "draft",
  "localeStatuses": {
    "ANY_ADDITIONAL_PROPERTY": "draft"
  },
  "description": "text",
  "defaultLocale": "en",
  "assets": [
    {
      "key": "logoUrl",
      "isDefault": true,
      "valueString": "text"
    }
  ],
  "styles": [
    {
      "key": "text",
      "valueString": "text",
      "isDefault": true
    }
  ],
  "deployments": [
    {
      "key": "whatsappCategory",
      "value": "text",
      "locale": "text",
      "platform": "text"
    }
  ],
  "variables": [
    {
      "key": "text",
      "description": "text",
      "type": "string",
      "format": "none",
      "sourceUrl": {
        "fullyReplaced": true,
        "value": "text"
      },
      "characterLimit": 1,
      "examplesLocale": {
        "ANY_ADDITIONAL_PROPERTY": {
          "exampleValueStrings": [
            "text"
          ],
          "exampleValues": [
            {
              "sections": [
                {
                  "id": "text",
                  "multipleSelection": true,
                  "title": "text",
                  "items": [
                    {
                      "id": "text",
                      "type": "reply-action",
                      "reference": "text",
                      "role": "text",
                      "hidden": true,
                      "replyAction": {
                        "text": "text",
                        "imageUrl": "text",
                        "payload": "text"
                      }
                    }
                  ]
                }
              ]
            }
          ]
        }
      }
    }
  ],
  "genericContent": [
    {
      "locale": "en",
      "type": "text",
      "blocks": [
        {
          "id": "text",
          "reference": "text",
          "role": "text",
          "hidden": true,
          "type": "action",
          "action": {
            "type": "link",
            "id": "text",
            "reference": "text",
            "role": "text",
            "hidden": true,
            "link": {
              "text": "text",
              "url": "https://example.com"
            }
          }
        }
      ]
    }
  ],
  "platformContent": [
    {
      "locale": "en",
      "type": "text",
      "platform": "text",
      "channelIds": [
        "123e4567-e89b-12d3-a456-426614174000"
      ],
      "channelGroupIds": [
        "123e4567-e89b-12d3-a456-426614174000"
      ],
      "blocks": [
        {
          "id": "text",
          "reference": "text",
          "role": "text",
          "hidden": true,
          "type": "action",
          "action": {
            "type": "link",
            "id": "text",
            "reference": "text",
            "role": "text",
            "hidden": true,
            "link": {
              "text": "text",
              "url": "https://example.com"
            }
          }
        }
      ],
      "approvals": [
        {
          "approvalReference": "123e4567-e89b-12d3-a456-426614174000",
          "platformReference": "text",
          "platformAccountIdentifier": "text",
          "reasonCode": "whatsapp_scam",
          "reasonDescription": "text",
          "status": "pending",
          "platformStatus": "whatsapp_approved",
          "channelIds": [
            "123e4567-e89b-12d3-a456-426614174000"
          ],
          "channelGroupId": "123e4567-e89b-12d3-a456-426614174000",
          "platform": "whatsapp"
        }
      ]
    }
  ],
  "supportedPlatforms": [
    "all"
  ],
  "createdAt": "2025-06-02T09:56:41.667Z",
  "updatedAt": "2025-06-02T09:56:41.667Z",
  "isCloneable": true,
  "editorId": "123e4567-e89b-12d3-a456-426614174000",
  "editorType": "text",
  "publisherId": "123e4567-e89b-12d3-a456-426614174000",
  "publisherType": "text",
  "shortLinks": {},
  "clonedFrom": "123e4567-e89b-12d3-a456-426614174000",
  "reviewInfo": {
    "approvalFlowId": "123e4567-e89b-12d3-a456-426614174000",
    "approvalRunId": "123e4567-e89b-12d3-a456-426614174000",
    "status": "pending",
    "currentStep": 1
  }
}
platform documentation
our docs