CreateTemplate#
Используйте этот метод для создания нового шаблона
Запрос#
Для создания нового шаблона требуется выполнить запрос по адресу:
POST {{apiUrl}}/waInstance{{idInstance}}/createTemplate/{{apiTokenInstance}}
Для получения параметров запроса idInstance, apiTokenInstance и apiUrl обратитесь к разделу Перед началом работы.
Параметры запроса#
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
elementName | string | Да | Имя шаблона. Имя элемента уникально для пространства имен WABAs. Поле может содержать только строчные буквы, цифры и символы подчеркивания. |
languageCode | string | Да | Код языка для шаблона. Все коды языков смотрите в таблице ниже |
category | string | Да | Категория вашего шаблона. Возможные значения: AUTHENTICATION, MARKETING and UTILITY. При отправке другого значения вы получите сообщение об ошибке: failed. Invalid category provided, kindly use category from these options AUTHENTICATION,MARKETING,UTILITY. |
templateType | string | Да | Тип шаблона: TEXT, IMAGE, VIDEO, DOCUMENT. |
vertical | string | Да | Краткое описание шаблона для прохождения верификации Meta*. Лимит символов: 180. |
content | string | Да* | Тело шаблона. Максимальная длина: 550 символов. При превышении лимита отображаются первые 5 строк, остальной текст скрывается под кнопкой «Далее». Допустимо использовать до 10 emoji. * Для шаблона категории AUTHENTICATION поле не является обязательным. * Рекомендуется оставить поле пустым для автоматического применения стандартного значения: Ваш код подтверждения — *{{1}}*. |
header | string | Нет | Заголовок шаблона. Применимо для templateType = Text. Лимит символов: 60. |
exampleHeader | string | Нет* | Пример текста заголовка шаблона. Неприменимо для типа шаблона: CATALOG. Используйте в exampleHeader только строчные буквы, так как использование заглавных букв приводит к ошибке. * При использовании поля header в запросе поле является обязательным |
footer | string | Нет | Нижний колонтитул шаблона. Лимит символов: 60. |
buttons | array | Нет* | Кнопки сообщения Для шаблона категории AUTHENTICATION обязательно наличие минимум одной кнопки типа OTP. Пример параметра запроса: "buttons": "[{'type':'OTP','otp_type':'COPY_CODE'}]" |
example | string | Да* | Ваш текст с подставленными примерами значений переменных вместо параметров в методе SendTemplates * Для шаблона категории AUTHENTICATION поле не является обязательным. * Рекомендуется оставить поле пустым для автоматического применения стандартного значения: Ваш код подтверждения — *1234*. |
enableSample | boolean | Нет | Параметр, который требуется для создания всех типов шаблонов. |
allowTemplateCategoryChange | boolean | Нет | Устаревший параметр. Игнорируется при передаче. |
addSecurityRecommendation | boolean | Нет | Опция для категории AUTHENTICATION, к содержимому добавляет заявление об отказе от ответственности. В целях безопасности не передавайте этот код. |
codeExpirationMinutes | number | Нет | Опция для категории AUTHENTICATION, в нижний колонтитул добавляет следующий текст: Срок действия этого кода истекает через <NUM_MINUTES> минут. Срок действия кода должен составлять от 1 до 90 минут. |
Код поддерживаемых языков
| Language | Code |
|---|---|
| Африкаанс | af |
| Албанский | sq |
| Арабский | ar |
| Азербайджанский | az |
| Бенгальский | bn |
| Болгарский | bg |
| Каталанский | ca |
| Китайский (CHN) | zh_CN |
| Китайский (HKG) | zh_HK |
| Китайский (TAI) | zh_TW |
| Хорватский | hr |
| Чешский | cs |
| Датский | da |
| Голландский | nl |
| Английский | en |
| Английский (UK) | en_GB |
| Английский (US) | en_US |
| Эстонский | et |
| Филиппинский | fil |
| Финский | fi |
| Французский | fr |
| Грузинский | ka |
| Немецкий | de |
| греческий | el |
| Гуджарати | gu |
| Хауса | ha |
| иврит | he |
| Хинди | hi |
| Венгерский | hu |
| индонезийский | id |
| ирландский | ga |
| итальянский | it |
| японский | ja |
| Каннада | kn |
| Казахский | kk |
| Киньяруанда | rw_RW |
| корейский | ko |
| Кыргыз (Кыргызстан) | ky_KG |
| Лаосский | lo |
| латышский | lv |
| Литовский | lt |
| македонский | mk |
| малайский | ms |
| Малаялам | ml |
| Маратхи | mr |
| Норвежский | nb |
| Персидский | fa |
| польский | pl |
| Португальский (BR) | pt_BR |
| Португальский (POR) | pt_PT |
| панджаби | pa |
| Румынский | ro |
| Русский | ru |
| Сербский | sr |
| словацкий | sk |
| Словенский | sl |
| испанский | es |
| испанский (ARG) | es_AR |
| испанский (SPA) | es_ES |
| испанский (MEX) | es_MX |
| Суахили | sw |
| Шведский | sv |
| Тамильский | ta |
| Tтелугу | te |
| тайский | th |
| турецкий | tr |
| украинский | uk |
| Урду | ur |
| Узбекский | uz |
| вьетнамский | vi |
| Зулу | zu |
Поля массива buttons#
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
type | string | Да | Тип отправляемой кнопки. Возможные типы: - QUICK_REPLY - позволяет отправить ответ нажатием кнопки с заготовленным текстом. - URL - позволяет по нажатию кнопки открыть ссылку. - PHONE_NUMBER - позволяет нажатием кнопки начать звонок. |
text | string | Да | Текст на кнопке. Для типов QUICK_REPLY и URL максимальная длина составляет 25 символов. Для типа PHONE_NUMBER максимальная длина составляет 20 символов. |
phone_number | string | Нет | Поле для кнопки с типом PHONE_NUMBER. Номер телефона, на который будет осуществляться звонок при нажатии на кнопку. |
url | string | Нет | Поле для кнопки с типом URL. Ссылка, на которую будет осуществляться переход при нажатии на кнопку. |
Пример тела запроса#
Пример тела запроса создания шаблона категории MARKETING:#
{
"elementName": "ticket_check_url_4245343",
"languageCode": "en_US",
"category": "MARKETING",
"templateType": "TEXT",
"vertical": "TEXT",
"content": "your ticket has been confirmed for {{1}} persons on date {{2}}.",
"header": "This is the header",
"exampleHeader": "This is the header",
"footer": "This is the footer",
"buttons": "[{'type':'PHONE_NUMBER','text':'Call Us','phone_number':'919872329959'},{'type':'URL','text':'Book A Demo','url':'https://Greenwaba.io/{{1}}','example':['https://Greenwaba.io/abc'], {'type':'QUICK_REPLY','text':'Demo Button'}]",
"example": "your ticket has been confirmed for 4 persons on date 2020-05-04.",
"enableSample": true,
"allowTemplateCategoryChange": true
}
Пример тела запроса создания шаблона категории AUTHENTICATION:#
{
"elementName": "ticket_check_url_4245343",
"languageCode": "en_US",
"category": "AUTHENTICATION",
"templateType": "TEXT",
"vertical": "TEXT",
"content": "*{{1}}* is your verification code.",
"buttons": "buttons": "[{'type':'OTP','otp_type':'COPY_CODE'}]",
"example": "*1234* is your verification code.",
"enableSample": true,
"allowTemplateCategoryChange": true
}
Пример тела зпроса создания шаблона категории IMAGE:#
{
"elementName": "ticket_confirmation_notification",
"languageCode": "en_US",
"category": "MARKETING",
"templateType": "IMAGE",
"vertical": "Ticket confirmation notification",
"content": "Your ticket has been confirmed for {{1}} persons on date {{2}}. Thank you for using our service!",
"example": "Your ticket has been confirmed for 4 persons on date 2025-05-04. Thank you for using our service!",
"enableSample": true,
"allowTemplateCategoryChange": true,
"mediaUrl": "https://my.site.com/img/image_for_ticket_template.jpeg"
}
Пример тела зпроса создания шаблона категории VIDEO:#
{
"elementName": "ticket_confirmation_notification",
"languageCode": "en_US",
"category": "MARKETING",
"templateType": "VIDEO",
"vertical": "Ticket confirmation notification with video",
"content": "Your ticket has been confirmed for {{1}} persons on date {{2}}. Thank you for using our service!",
"example": "Your ticket has been confirmed for 4 persons on date 2025-05-04. Thank you for using our service!",
"enableSample": true,
"allowTemplateCategoryChange": true,
"mediaUrl": "https://my.site.com/video/video_for_ticket_template.mp4"
}
Пример тела зпроса создания шаблона категории DOCUMENT:#
{
"elementName": "ticket_confirmation_notification",
"languageCode": "en_US",
"category": "MARKETING",
"templateType": "DOCUMENT",
"vertical": "Ticket confirmation notification with document",
"content": "Your ticket has been confirmed for {{1}} persons on date {{2}}. Thank you for using our service!",
"example": "Your ticket has been confirmed for 4 persons on date 2025-05-04. Thank you for using our service!",
"enableSample": true,
"allowTemplateCategoryChange": true,
"mediaUrl": "https://my.site.com/doc/document_for_ticket_template.pdf"
}
Ответ#
Поля ответа#
| Поле | Тип | Описание |
|---|---|---|
template | object | Объект созданного шаблона |
Объект template#
| Поле | Тип | Описание |
|---|---|---|
buttonSupported | string | Типы кнопок, используемые в шаблоне. |
category | string | Категория шаблона. |
containerMeta | string | Полностью сформированный запрос, отправленный на верификацию в Meta*. |
createdOn | number | Timestamp создания шаблона (в миллисекундах). |
data | string | Поле data из шаблона, текстовое представление шаблона. |
elementName | string | Имя шаблона, заданное в теле запроса CreateTemplate. |
languageCode | string | Язык шаблона, заданный в теле запрсоа CreateTemplate. |
languagePolicy | string | Служебное поле определения языка для Meta*. |
meta | string | Поле, содержащее пример шаблона. |
modifiedOn | number | Timestamp редактирования шаблона (в миллисекундах). Равен createdOn при создании шаблона. |
namespace | string | Идентификатор аккаунта WABA. |
priority | number | Приоритет шаблону, задаваемый Meta*. |
quality | string | Служебное поле оценивания шаблона со стороны Meta*. |
retry | number | Количество повторной отправки шаблона на верификацию в Meta*. |
stage | string | Служебное поле стадии обработки запроса Meta*. |
status | string | Статус верификации Meta* по шаблону. Может принимать значения: PENDING (на рассмотрении), APPROVED (шаблон верифицирован и может быть отправлен), REJECTED (шаблон не прошел верификацию, Meta считает шаблон подозрительным), FAILED (шаблон не прошел верификацию, ошибка в теле запроса. Причина указана в дополнительном поле reason), PAUSED (работа шаблона приостановлена). |
templateType | string | Тип шаблона |
vertical | string | Краткое описание шаблона для прохождения верификации Meta*. |
templateId | string | ID созданного шаблона для взаимодействия с ним. |
Пример тела ответа#
Код успешного состояния: 200 OK.
{
"template": {
"appId": "****f7-***33-4**d-8f***-c***d*****",
"category": "MARKETING",
"createdOn": 1652768999707,
"data": "Hi, you Welcome to Header.\nHi, {{1}}. This is the template for header testing.\nHi, Welcome to Footer. | [call,917676767676] | [ur,https://www.fb.com]",
"elementName": "test_template12332",
"id": "f****a-f****-4**2-8***4-dc****ea",
"languageCode": "en",
"languagePolicy": "deterministic",
"master": true,
"meta": "{\"example\":\"Hi, [john]. This is the template for header testing.\"}",
"modifiedOn": 1652768999707,
"namespace": "e***3_e5**_**de_***3_20****1b",
"status": "PENDING",
"templateType": "TEXT",
"vertical": "Header",
"allowTemplateCategoryChange": "true"
}
}
Ошибки CreateTemplate#
Перечень общих для всех методов ошибок смотрите в разделе Стандартные ошибки.
- Организация Meta, а также её продукты Instagram и Facebook, на которые мы ссылаемся в этой статье, признаны экстремистскими на территории РФ.
Пример кода на curl#
curl --location '{{apiUrl}}/waInstance{{idInstance}}/createTemplate/{{apiTokenInstance}}' \
--header 'Content-Type: application/json' \
--data 'elementName=ticket_check_url_4245343' \
--data 'languageCode=en_US' \
--data 'category=MARKETING' \
--data 'templateType=TEXT' \
--data 'vertical=TEXT' \
--data 'content=your ticket has been confirmed for {{1}} persons on date {{2}}.' \
--data 'header=This is the header' \
--data 'exampleHeader=This is the header' \
--data 'footer=This is the footer' \
--data 'buttons=[{'type':'PHONE_NUMBER','text':'Call Us','phone_number':'919872329959'},{'type':'URL','text':'Book A Demo','url':'https://Greenwaba.io/{{1}}','example':['https://Greenwaba.io/abc']}, {'type':'QUICK_REPLY','text':'Demo Button'}]' \
--data 'example=your ticket has been confirmed for 4 persons on date 2020-05-04.' \
--data 'enableSample=true' \
--data 'allowTemplateCategoryChange=true'