Skip to main content

Template components

Updated: Nov 21, 2025 Templates are made up of four primary components which you define when you create a template: header, body, footer, and buttons. The components you choose for each of your templates should be based on your business needs. The only required component is the body component. Some components support variables, whose values you can supply when using the Cloud API or On-Premises API to send the template in a template message. If your templates use variables, you must include sample variable values upon template creation.

Text header

Text headers are optional elements that can be added to the top of template messages. Each template may include only one text header. Please note that markdown special characters are not supported in this component, so we recommend avoiding their use. Text headers support 1 parameter.

Creation syntax

Creation parameters

Creation example

This example uses 1 named parameter.

Media header

Media headers can be an image, video, gif, or a document such as a PDF. All media must be uploaded with the Resumable Upload API. The syntax for defining a media header is the same for all media types. Note: Gifs are currently only available for Marketing Messages API for WhatsApp. Gifs are mp4 files with a max size of 3.5MB and larger files will be displayed as video messages.

Creation syntax

Creation parameters

Creation example

Location header

Location headers appear as generic maps at the top of the template and are useful for order tracking, delivery updates, ride-hailing pickup/dropoff, locating physical stores, etc. When tapped, the app user’s default map app will open and load the specified location. Locations are specified when you send the template. Location headers can only be used in templates categorized as UTILITY or MARKETING. Real-time locations are not supported.

Creation syntax

Creation parameters

None.

Creation example

Send syntax

Send parameters

Send example

Body

The body component represents the core text of your message template and is a text-only template component. Templates are limited to one body component. The message text in the body component accepts multiple parameters.

Creation syntax

Creation parameters

Creation example

Footers are optional text-only components that appear immediately after the body component. Templates are limited to one footer component.

Syntax

Properties

Example

Buttons

Buttons are optional interactive components that perform specific actions when tapped. Templates can have a combination of up to 10 button components in total, although there are limits to individual buttons of the same type as well as combination limits, which are described below. In addition, templates composed of 4 or more buttons, or a quick reply button and one or more buttons of another type, cannot be viewed on WhatsApp desktop clients. WhatsApp users who receive one of these template messages will be prompted to view the message on a phone instead. Buttons are defined within a single buttons component object, packed into a single buttons array. For example, this template uses a phone number button and a URL button:
If a template has more than three buttons, two buttons will appear in the delivered message, and the remaining buttons will be replaced with a See all options button. Tapping the See all options button reveals the remaining buttons.

Copy code buttons

Copy code buttons copy a text string (defined when the template is sent in a template message) to the device’s clipboard when tapped by the app user. Templates are limited to one copy code button.

Syntax

Properties

Example

Multi-product message buttons

Multi-product message buttons are special, non-customizable buttons that, when tapped, display up to 30 products from your ecommerce catalog, organized in up to 10 sections, in a single message. See Multi-Product Message Templates.

One-time password buttons

One-time password buttons are a special type of URL button component used with authentication templates. See Authentication Templates.

Phone number buttons

Phone number buttons call the specified business phone number when tapped by the app user. Templates are limited to one phone number button.

Syntax

Properties

Example

Quick reply buttons

Quick reply buttons are custom text-only buttons that immediately message you with the specified text string when tapped by the app user. A common use case is a button that allows your customer to easily opt-out of any marketing messages. Templates are limited to 10 quick reply buttons. If using quick reply buttons with other buttons, buttons must be organized into two groups: quick reply buttons and non-quick reply buttons. If grouped incorrectly, the API will return an error indicating an invalid combination. Examples of valid groupings: Quick Reply, Quick Reply Quick Reply, Quick Reply, URL, Phone URL, Phone, Quick Reply, Quick Reply Examples of invalid groupings: Quick Reply, URL, Quick Reply URL, Quick Reply, URL When using the API to send a template that has multiple quick reply buttons, you can use the index property to designate the order in which buttons appear in the template message.

Syntax

Properties

Example

SPM buttons

Single-product message (SPM) buttons are special, non-customizable buttons that can be mapped to a product in your product catalog. When tapped, they load details about the product, which it pulls from your catalog. Users can then add the product to their cart and place an order. See Single-Product Message Templates and Product Card Carousel Templates.

URL buttons

URL buttons load the specified URL in the device’s default web browser when tapped by the app user. Templates are limited to two URL buttons.

Syntax

Properties

Example

Limited-time offer

Limited-Time Offer components are special components used to create limited-time offer templates.

Example requests

Seasonal promotion

An example request to create a marketing template with the following components: a text header with a variable and sample value a text body with variables and sample values a text footer two quick-reply buttons

Order confirmation

An example request to create a utility template with the following components: a document header with a sample value a text body with variables and sample values a phone number button a URL button

Order delivery update

An example request to create a utility template with the following components: a location header a text body with variables and sample values a footer a quick reply button

Webhooks

Subscribe to the message_template_components_update webhook field to be notified of changes to a template’s components. Did you find this page helpful? Thumbs up icon Thumbs down icon ON THIS PAGE Text header Creation syntax Creation parameters Creation example Media header Creation syntax Creation parameters Creation example Location header Creation syntax Creation parameters Creation example Send syntax Send parameters Send example Body Creation syntax Creation parameters Creation example Footer Syntax Properties Example Buttons Copy code buttons Syntax Properties Example Multi-product message buttons One-time password buttons Phone number buttons Syntax Properties Example Quick reply buttons Syntax Properties Example SPM buttons URL buttons Syntax Properties Example Limited-time offer Example requests Seasonal promotion Order confirmation Order delivery update Webhooks