Utility Template Library is generally available. However, features are still fluid and subject to changes.
The Utility Template Library makes it faster and easier for businesses to create utility templates for common use cases, like payment reminders, delivery updates and more.
These pre-written templates have already been categorized and priced as utility. These templates contain fixed content that cannot be edited and parameters you can adapt for business or user-specific information.
You can browse and create templates using the Utility Template Library in WhatsApp Manager, or programmatically via the API.
Follow the instructions below to create templates using the Utility Template Library in WhatsApp Manager .
1: In the sidebar of WAM, under Message Templates, select Create Template.
2: Under Browse the WhatsApp Template Library , select Browse Templates.
3: You will now see all currently available utility templates. Use the search bar to search by topic or use case, or use the dropdown options on the sidebar to filter the results.
Note that hovering over a template will show you its parameter values.
4: To create a template, select oneby clicking on it. Then, add your template name, select the language, and fill out the button details. Once you have completed these steps, click Submit.
Note: If you choose Customize template, your template will have to go through review before you are able to send messages.
When a template contains the value library_template_name
in the GET <WABAID>/message_templates?name=<TEMPLATE_NAME>
response, it is a template created from the Utility Template Library and is subject to type checks and restrictions.
The templates in the library contain both fixed content and parameters. The parameters represent spaces in the template where variable information can be inserted, such as names, addresses, and phone numbers.
In the example above, parameters like the name Jim
or the business name CS Mutual
can be modified to accept variables like your customer's name and your business's name.
Messages sent using templates from Utility Template Library are subject to parameter checks during send time. Values used in parameters that are outside of the established ranges listed below will cause the message send to fail.
All parameters are length restricted. If you receive an error, try again with a shorter value.
ADDRESS
A location address.
1 Hacker Way, Menlo Park, CA 94025
TEXT
Basic text.
regarding your order.
12 pack of paper towels
your request
puchase
Jasper's Market
AMOUNT
A number signifying a quantity.
145
USD $375.32
€1,376.22 EUR
RS 1200
DATE
A standard calendar date.
2021-04-19
13/03/2021
5th January 1982
08.22.1991
January 1st, 2024
05 12 2022
PHONE NUMBER
A telephone number.
+1 4256789900
+91-7884-789122
+39 87 62232
EMAIL
A standard email address.
1hackerway@meta.com
yourcustomername@gmail.com
abusinessorcustomername@hotmail.com
NUMBER
A number.
23444
90001234921388904
453638
Forms are only available to accounts who have had their message limits increased.
Some templates in Utility Template Library are interactive forms that are powered by WhatsApp Flows.
In WhatsApp Manager, you can identify these specific templates by the "Form" label they contain. The current supported use cases are Customer Feedback and Delivery Failure.
When calling the GET /message_template_library
endpoint, the type
key in the buttons
array will show as "FORMS"
.
{ "name": "delivery_failed_2_form", "language": "en_US", "category": "UTILITY", "topic": "ORDER_MANAGEMENT", "usecase": "DELIVERY_FAILED", "industry": [ "E_COMMERCE" ], "body": "We were unable to deliver order {{1}} today. Please {{2}} to schedule another delivery attempt.", "body_params": [ "#12345", "try a redelivery" ], "body_param_types": [ "TEXT", "TEXT" ], "buttons": [ { "type": "FLOW", "text": "Reschedule" } ], "id": "7138055039625658" },
The Utility Template Library API has two endpoints:
// Used to browse available utility templates GET /message_template_library
// Used when you are ready to create a template from the library. POST /<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates
Templates with Header
param types of Document
only support PDFs
To browse and filter available templates, use the message_template_library
endpoint.
Once you find the template you are interested in, note the name as you will use it when creating the template via the POST
method.
// Get all available templates GET /message_template_library // Search for substring GET /message_template_library?search=<SEARCH_KEY> // Filter by template topic GET/message_template_library?topic=<TOPIC> // Filter by template use case GET/message_template_library?usecase=<USECASE> // Filter by template industry GET/message_template_library?industry=<INDUSTRY> // Filter by template language GET/message_template_library?language=<LANGUAGE>
Placeholder | Description | Sample Value |
---|---|---|
String |
Optional. A substring you are searching for in the content, name, header, body, or footer of the template. |
|
Enum |
Optional. The topic of the template. See Template Filters below |
|
Enum |
Optional. The use case of the template. See Template Filters below |
|
Enum |
Optional. The industry of the template. See Template Filters below |
|
Enum |
Optional. The template language locale code. |
|
curl 'https://graph.facebook.com/ v20.0
/102290129340398/message_templates?search="payments"'
-H 'Authorization: Bearer EAAJB...'
{ "name": "low_balance_warning_1", "language": "en_US", "category": "UTILITY", "topic": "PAYMENTS", "usecase": "LOW_BALANCE_WARNING", "industry": [ "FINANCIAL_SERVICES" ], "header": "Your account balance is low", "body": "Hi {{1}}, This is to notify you that your {{2}} in your {{3}} account, ending in {{4}} is below your pre-set {{5}} of {{6}}. Click the button to deposit more {{7}}. {{8}}", "body_params": [ "Jim", "available funds", "CS Mutual checking plus", "1234", "limit", "$75.00", "funds", "CS Mutual" ], "buttons": [ { "type": "URL", "text": "Make a deposit", "url": "https://www.example.com/" }, { "type": "PHONE_NUMBER", "text": "Call us", "phone_number": "+18005551234" } ], "id": "7147013345418927" }
There are several templates to choose from in the Utility Template Library. You can use the API to filter them based on a few factors.
Industry |
---|
|
|
Topic |
---|
|
|
|
|
Use Case | |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Note: The modification of rules surrounding body properties for this endpoint is for the explicit purpose of showcasing how to use the endpoint with Utility Template Library.
To create a new template using the Utility Template Library, call the existing <WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates
endpoint using the body properties below.
POST /<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates
{ "name": "<NAME>", "category": "UTILITY", "language": "en_US", “library_template_name”: “<LIBRARY_TEMPLATE_NAME>”, "library_template_button_inputs": "[ {'type': 'URL', 'url': {'base_url' : 'https://www.example.com/{{1}}', 'url_suffix_example' : 'https://www.example.com/demo'}}, {type: 'PHONE_NUMBER', 'phone_number': '+16315551010'} ]" }
Placeholder | Description | Sample Value |
---|---|---|
String |
Required. The name you are providing for your template. Maximum 512 characters. |
|
Enum |
Required. The template category. Must be |
|
Enum |
Required. The template language locale code. |
|
String |
Required. The exact name of the Utility Template Library template. |
|
Array of objects |
Optional. The website and/or phone number of the business being used in the template. Note: For utility templates that have button inputs, this property is not optional. |
|
curl 'https://graph.facebook.com/v19.0/102290129340398/message_templates' -H 'Authorization: Bearer EAAJB...' -H 'Content-Type: application/json' -d ' { "name": "my_delivery_update", "language": "en_US", "category": "UTILITY", “library_template_name”: “delivery_update_1”, "library_template_button_inputs": "[ {'type': 'URL', 'url': {'base_url' : 'https://www.example.com/{{1}}', 'url_suffix_example' : 'https://www.example.com/order_update}} ]" }
{ "id": "{hsm-id}", "status": "APPROVED", "category": "UTILITY" }
To learn how to send templated messages, view the Send Templates guide