curl --request POST \
--url https://api.jelou.ai/v1/bots/{botId}/templates \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"category": "UTILITY",
"language": "<string>",
"elementName": "<string>",
"template": "<string>",
"isVisible": true,
"params": [
{
"param": "<string>",
"label": "<string>",
"example": "<string>"
}
],
"paramsNumber": 123,
"displayName": "<string>",
"type": "HSM",
"mediaUrl": "<string>",
"interactiveAction": "NONE",
"buttons": [
{
"text": "<string>",
"type": "QUICK_REPLY",
"url": "<string>",
"phone_number": "<string>",
"example": "<string>"
}
],
"header": "<string>",
"exampleHeader": "<string>",
"headerParams": [
{}
],
"example": "<string>",
"extraSettings": {
"addSecurityRecommendation": true,
"codeExpirationMinutes": 45,
"allowChangeCategory": true
}
}
'{
"message": [
"<string>"
],
"status": "<string>",
"data": {}
}Crie um novo template HSM e envie-o ao WhatsApp para aprovação
curl --request POST \
--url https://api.jelou.ai/v1/bots/{botId}/templates \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"category": "UTILITY",
"language": "<string>",
"elementName": "<string>",
"template": "<string>",
"isVisible": true,
"params": [
{
"param": "<string>",
"label": "<string>",
"example": "<string>"
}
],
"paramsNumber": 123,
"displayName": "<string>",
"type": "HSM",
"mediaUrl": "<string>",
"interactiveAction": "NONE",
"buttons": [
{
"text": "<string>",
"type": "QUICK_REPLY",
"url": "<string>",
"phone_number": "<string>",
"example": "<string>"
}
],
"header": "<string>",
"exampleHeader": "<string>",
"headerParams": [
{}
],
"example": "<string>",
"extraSettings": {
"addSecurityRecommendation": true,
"codeExpirationMinutes": 45,
"allowChangeCategory": true
}
}
'{
"message": [
"<string>"
],
"status": "<string>",
"data": {}
}POST /v1/bots/{botId}/templates
| Propriedade | Tipo | Descrição |
|---|---|---|
| botId | string | ID único do bot. Exemplo: 123456789 |
| Propriedade | Tipo | Descrição |
|---|---|---|
| sendToAprove | boolean | Define se o template deve ser enviado ao WhatsApp para aprovação. |
| Propriedade | Tipo | Descrição |
|---|---|---|
| category | string | Categoria do template HSM. Valores: UTILITY, MARKETING, AUTHENTICATION |
| language | string | Idioma do template. |
| isVisible | boolean | Define se o template deve ser exibido para os operadores. |
| params | array | Estrutura de parâmetros. Para a categoria de autenticação, a Meta restringiu a um parâmetro. |
| paramsNumber | number | Número de parâmetros. Para a categoria de autenticação, a Meta restringiu a um parâmetro. |
| elementName | string | Identificador único do template. Pode conter apenas letras minúsculas, underscores (_) e números. |
| displayName | string | Nome de exibição do template. |
| template | string | Corpo do template. Para a categoria de autenticação, a Meta restringiu o conteúdo. |
| type | string | Tipo de HSM. Valores: HSM, IMAGE, VIDEO, DOCUMENT |
| mediaUrl | string | URL da mídia. Obrigatório quando o tipo de HSM é IMAGE, VIDEO, DOCUMENT. Não aplicável para a categoria de autenticação. |
| interactiveAction | string | Ação interativa do HSM. Valores: NONE, CALL_TO_ACTION, QUICK_REPLY, OTP |
| buttons | array | Estrutura de botões. Obrigatório quando a ação interativa do HSM é CALL_TO_ACTION, QUICK_REPLY ou OTP. |
| header | string | Cabeçalho do template. Aplicável apenas para templates do tipo texto. Não aplicável para a categoria de autenticação e tem limite de 60 caracteres. |
| exampleHeader | string | Exemplo de cabeçalho. Obrigatório apenas se o template tiver um cabeçalho. |
| headerParams | array | Estrutura de parâmetros. O cabeçalho suporta no máximo um parâmetro. |
| example | string | Exemplo do template. Se o template tiver um parâmetro, ele deve ser substituído por um exemplo. |
| extraSettings | object | Configurações opcionais para o template. |
Texto
curl --request POST \
--url 'https://api.jelou.ai/v1/bots/BOT_ID/templates?sendToAprove=true' \
--header 'Authorization: Basic {{Base64EncodedUsername:Password}}' \
--header 'Content-Type: application/json' \
--data '{
"displayName": "text_template_utility",
"template": "Thank you for your order, {{1}}! Your confirmation number is {{2}}. If you have any questions, contact support.",
"example": "Thank you for your order, Maria! Your confirmation number is 71936. If you have any questions, contact support.",
"elementName": "text_template_utility",
"params": [
{"param": "1", "label": "customer", "example": "Maria"},
{"param": "2", "label": "order", "example": "71936"}
],
"paramsNumber": 2,
"type": "HSM",
"language": "en",
"category": "UTILITY",
"interactiveAction": "NONE"
}'
Texto com botões de resposta rápida
curl --request POST \
--url 'https://api.jelou.ai/v1/bots/BOT_ID/templates?sendToAprove=true' \
--header 'Authorization: Basic {{Base64EncodedUsername:Password}}' \
--header 'Content-Type: application/json' \
--data '{
"displayName": "template_quick_reply",
"template": "Thank you for your order, {{1}}! Your confirmation number is {{2}}. Use the buttons to contact us.",
"example": "Thank you for your order, Maria! Your confirmation number is 57893. Use the buttons to contact us.",
"elementName": "template_quick_reply",
"params": [
{"param": "1", "label": "customer", "example": "Maria"},
{"param": "2", "label": "order", "example": "57893"}
],
"paramsNumber": 2,
"type": "HSM",
"language": "en",
"category": "UTILITY",
"interactiveAction": "QUICK_REPLY",
"buttons": [
{"text": "Contact Support", "type": "QUICK_REPLY"},
{"text": "Contact Sales", "type": "QUICK_REPLY"}
]
}'
Texto com botões CTA
curl --request POST \
--url 'https://api.jelou.ai/v1/bots/BOT_ID/templates?sendToAprove=true' \
--header 'Authorization: Basic {{Base64EncodedUsername:Password}}' \
--header 'Content-Type: application/json' \
--data '{
"displayName": "template_call_action",
"template": "Thank you for your order, {{1}}! Your confirmation number is {{2}}. Use the buttons to contact us.",
"example": "Thank you for your order, Maria! Your confirmation number is 67996. Use the buttons to contact us.",
"elementName": "template_call_action",
"params": [
{"param": "1", "label": "customer", "example": "Maria"},
{"param": "2", "label": "order", "example": "67996"}
],
"paramsNumber": 2,
"type": "HSM",
"language": "en",
"category": "UTILITY",
"interactiveAction": "CALL_TO_ACTION",
"buttons": [
{"text": "Contact Support", "type": "URL", "url": "https://apps.jelou.ai", "example": "https://apps.jelou.ai"},
{"text": "Call", "type": "PHONE_NUMBER", "phone_number": "+PHONE_NUMBER"}
]
}'
Imagem
curl --request POST \
--url 'https://api.jelou.ai/v1/bots/BOT_ID/templates?sendToAprove=true' \
--header 'Authorization: Basic {{Base64EncodedUsername:Password}}' \
--header 'Content-Type: application/json' \
--data '{
"displayName": "image_template",
"template": "Hello {{1}}. We invite you to check out our promotions.",
"example": "Hello Maria. We invite you to check out our promotions.",
"elementName": "image_template",
"params": [
{"param": "1", "label": "customer", "example": "Maria"}
],
"paramsNumber": 1,
"type": "IMAGE",
"language": "en",
"category": "MARKETING",
"mediaUrl": "https://cdn.example.com/image.jpeg",
"interactiveAction": "NONE"
}'
Documento
curl --request POST \
--url 'https://api.jelou.ai/v1/bots/BOT_ID/templates?sendToAprove=true' \
--header 'Authorization: Basic {{Base64EncodedUsername:Password}}' \
--header 'Content-Type: application/json' \
--data '{
"displayName": "document_template",
"template": "Hello {{1}}. Please find your requested document attached.",
"example": "Hello Maria. Please find your requested document attached.",
"elementName": "document_template",
"params": [
{"param": "1", "label": "customer", "example": "Maria"}
],
"paramsNumber": 1,
"type": "DOCUMENT",
"language": "en",
"category": "MARKETING",
"mediaUrl": "https://cdn.example.com/document.pdf",
"interactiveAction": "NONE"
}'
Vídeo
curl --request POST \
--url 'https://api.jelou.ai/v1/bots/BOT_ID/templates?sendToAprove=true' \
--header 'Authorization: Basic {{Base64EncodedUsername:Password}}' \
--header 'Content-Type: application/json' \
--data '{
"displayName": "video_template",
"template": "Hello {{1}}. Watch our new video.",
"example": "Hello Maria. Watch our new video.",
"elementName": "video_template",
"params": [
{"param": "1", "label": "customer", "example": "Maria"}
],
"paramsNumber": 1,
"type": "VIDEO",
"language": "en",
"category": "MARKETING",
"mediaUrl": "https://cdn.example.com/video.mp4",
"interactiveAction": "NONE"
}'
200 - Resposta bem-sucedida
{
"message": ["Template has been created."],
"status": "success",
"data": {
"template": "Hello! We are *Jelou*. \nWelcome _{{1}}_. Soon {{2}} from the team will reach out to you.",
"displayName": "Welcome",
"elementName": "test_hsm_api",
"params": [
{"label": "Customer name", "param": "1"},
{"label": "Agent name", "param": "2"}
],
"paramsNumber": 2,
"isVisible": false,
"language": "EN",
"createdAt": "2021-01-28T15:08:38.492Z",
"updatedAt": "2021-01-28T15:08:38.492Z",
"botId": "BOT_ID",
"companyId": 100,
"status": "APPROVED"
}
}
400 - Requisição Inválida
{
"message": ["Template name already exists"],
"status": "failed"
}
401 - Não Autorizado
{
"message": "Authentication failed"
}
404 - Não Encontrado
{
"message": ["The Bot could not be found at the moment."],
"statusMessage": "failed",
"error": {
"code": "E1019",
"key": "BOT_NOT_FOUND"
}
}
status na resposta indica se o seu template foi aprovado pelo WhatsApp.| Idioma | Código | Conteúdo |
|---|---|---|
| Inglês | en | {{1}} is your verification code. |
| Português (BR) | pt_BR | Seu código de verificação é {{1}}. |
| Espanhol | es | Tu código de verificación es {{1}}. |
params ao criar um template:
[
{"label": "Customer name", "param": "1"},
{"label": "Order number", "param": "2"}
]
buttons quando as ações interativas forem CALL_TO_ACTION, QUICK_REPLY ou OTP.
| Propriedade | Descrição |
|---|---|
| text | Texto do botão; este valor não pode ser atualizado. |
| type | Tipo do botão. Valor: QUICK_REPLY |
[
{"text": "More information", "type": "QUICK_REPLY"},
{"text": "Talk to an operator", "type": "QUICK_REPLY"},
{"text": "Sales", "type": "QUICK_REPLY"}
]
| Propriedade | Descrição |
|---|---|
| text | Texto do botão; este valor não pode ser atualizado. |
| type | Tipo do botão. Valores: PHONE_NUMBER, URL |
| phone_number | Número de telefone do botão. |
| url | URL do botão. |
| example | Exemplo de URL. Obrigatório quando o tipo de botão é URL. |
[
{"text": "Sales", "phone_number": "+PHONE_NUMBER", "type": "PHONE_NUMBER"},
{"type": "URL", "text": "View site", "url": "https://apps.jelou.ai/{{1}}", "example": "https://apps.jelou.ai/offers"}
]
| Propriedade | Descrição |
|---|---|
| text | Texto do botão; este valor não pode ser atualizado. |
| type | Tipo do botão. Valor: OTP |
[
{"text": "COPY CODE", "type": "OTP"}
]
| Propriedade | Tipo | Descrição |
|---|---|---|
| addSecurityRecommendation | boolean | Adiciona uma mensagem de segurança adicional em templates de autenticação. |
| codeExpirationMinutes | number | Adiciona uma mensagem de rodapé com o tempo de expiração do código. Valores entre 1 e 90 minutos. |
| allowChangeCategory | boolean | Permite que a Meta atualize a categoria do template se necessário. |
Basic authentication using Base64 encoded clientId:clientSecret
UTILITY, MARKETING, AUTHENTICATION ^[a-z0-9_]+$Mostrar atributos filhos
HSM, IMAGE, VIDEO, DOCUMENT NONE, CALL_TO_ACTION, QUICK_REPLY, OTP Mostrar atributos filhos
60Mostrar atributos filhos
Esta página foi útil?