Comment on page
Outbound Zenvia
Ao habilitar a API de outbound é gerado um endpoint e um token, que serão utilizados para realizar o envio das mensagens de outbound.

Endpoint:
POST https://outbound.ms.altubots.com/zenvia/<slug>/<id_integracao>
Header:
- Content-Type: "application/json"
- Authorization: <altu token>
{
"destination": "numero_whatsapp_destino",
"templateId": "id_template",
"context": {
"status": "aprovado"
},
"fields": {
"<template_chave_1>": "<template_valor_1>",
"<template_chave_2>": "<template_valor_2>",
"...": "...",
"<template_chave_n>": "<template_valor_n>"
},
"externalId": "seu_id_mensagem",
"restartContact": false | true,
"inactivityTime": 0
}
Atributos:
- destination (obrigatório): o número de WhatsApp que irá receber a mensagem
- templateId (obrigatório): o ID do template
- context (opcional): variáveis que serão salvas no contexto do usuário
- fields (opcional): os campos disponíveis para serem usados no template. Este atributo deve ser um objeto com chaves e valores
- externalId (opcional): identificador único para a mensagem a ser enviada. Este ID será retornado nos status de envio em seu webhook de status
- restartContact (opcional): booleano para resetar as variáveis de contexto do usuário
- inactivityTime (opcional): tempo em minutos que deve ser passado desde a última interação do usuário com o assistente para que a mensagem seja enviada. Exemplo: Se o usuário está interagindo ou interagiu com assistente há 1 minuto e o tempo de inatividade necessário para mensagem ser enviada é de 2 minutos ("inactivityTime": 2), a mensagem não seria enviada. Caso a interação tivesse ocorrido 3 minutos atrás, a mensagem seria enviada.
{
"destination": "35988001234",
"templateId": "3b9c0955-bdd9-00de-4135-6cfb74f5fb2e",
"fields": {
"name": "Maria",
"value": "R$ 1670,00"
},
"externalId": "meu_id_1"
}
🟢 200
🔴 400
🔴 401
🔴 500
OK - Mensagem enviada:
A mensagem foi enviada corretamente para a Zenvia e será encaminhada para o usuário.Body (exemplo):
{
"status": "pending",
"external_id": "meu_id_1",
"message_id": 218,
"contact_id": 874
}
- status: status da mensagem enviada
- external_id: ID externo da mensagem enviada
- message_id: ID interno da mensagem enviada
- contact_id: ID do atendimento do usuário
Bad Request:
Um ou mais parâmetros não estão no formato esperado ou os parâmetros obrigatórios não foram preenchidos. Verifique o formato e a obrigatoriedade de todos os parâmetros durante a requisição.Body (exemplo):
{
"status": "error",
"message": "Invalid destination!"
}
Unauthorized:
Não foi possível autorizar a requisição. Verifique se foi definido corretamente o header Authorization com valor altu token.Body (exemplo):
{
"status": "error",
"message": "Unauthorized"
}
Internal Server Error:
Houve um erro durante o envio da mensagem.Body (exemplo):
{
"status": "error",
"message": "Unexpected error"
}
Para receber os status de mensagens enviadas pela API de outbound, deve se configurar um webhook de status semelhante ao webhook configurado na criação da integração, com o mesmo passo a passo e com as mesmas opções, ajustando:
- Tipo do evento: Selecione a opção Status para receber os status de mensagens enviadas para o usuário.
- URL: URL usada para receber os status de mensagens enviadas para seus clientes. Consulte a URL na plataforma Zenvia NLU, em Status de Mensagens da seção Webhooks
Como enviar outbounds "no-hsm"(ou notification), ou seja, não é um template aprovado, pois é uma funcionalidade que somente é utilizável dentro da sessão de 24h do WhatsApp.
Utilizar o body abaixo usando a mesma API que utiliza para o outbound com template.
Modelo
Visualização
{
"destination": "11999999999",
"contents": [
{
"type": "file",\\tipo do notification
"fileUrl": "https://file-examples-com.github.io/uploads/2017/04/file_example_MP4_640_3MG.mp4",\\arquivo a ser enviado t
"fileMimeType": "video/mp4",\\extensão do arquivo enviado
"fileCaption": "Our pic :)",\\Texto que vai abaixo do vídeo na mensagem
"fileName": "example.png"\\nome do arquivo enviado - não mudar a extensão
}
]
}

Tamanhos de arquivos:
Media | Content Type | Post-Processing Media Size* |
document | Any valid MIME type. | 100 MB |
image | image/jpeg image/png | 5 MB |
sticker | image/webp note: Animated sticker is not supported | 100 KB |
audio | | 16 MB |
video | | 16 MB |
Utilizar o body abaixo usando a mesma API que utiliza para o outbound com template.
Modelo
Visualização
{
"destination": "11999999999",
"contents": [
{
"type": "button",
"header": {\\Header é opcional
"type": "file",
"fileUrl": "https://prime.altubots.com/chats/dev/cesar/07db4c9e4559050116d38e660548749a/uploads/3660b5fe-4c62-8979-2619-761f234892bf/20200909165426883_gato.jpg"\\URL do arquivo a ser enviado
},
"body": "Gostaria de agendar o seu treinamento sobre a plataforma?",\\texto da pergunta
"footer": "Selecione uma das opcões abaixo:",\\Texto mais claro abaixo do texto da pergunta
"buttons": [\\botoes - limitado a 3 botoes
{
"id": "Agendar",\\Input que chegará no bot
"title": "Agendar treinamento"\\Texto exibido no WhatsApp
},
{
"id": "encerrar",
"title": "Encerrar"
},
{
"id": "reiniciar",
"title": "Reiniciar"
}
]
}
]
}

Utilizar o body abaixo usando a mesma API que utiliza para o outbound com template.
Modelo
Visualização
{
"destination": "11999999999",
"contents": [
{
"type": "list",
"header": "Menu de Opções",\\Texto maior de titulo da lista(opcional)
"body": "Para finalizar, selecione o módulo do treinamento você deseja fazer?",\\Texto comum de pergunta da lista(requerido)
"footer": "Selecione abaixo",\\texto mais claro abaixo do texto comum(opcional)
"button": "Opções disponíveis",\\Texto do botao que abrirá a lista - limitado a 20 caracteres(requerido)
"sections": [
{
"title": "Section Title",
"rows": [\\Classe dos botões - limitados a 10 botoes
{
"id": "builder",\\texto recebido no bot (requerido)
"title": "Builder",\\texto apresentado no WA(requerido)
"description": "Aprenda a programar no Build do ALTU"\\texto de descricao da opcao (opcional)
},
{
"id": "nlu",
"title": "NLU",
"description": "Aprenda a configurar seu NLU de forma assertiva"
},
{
"id": "builder_nlu",
"title": "Builder e NLU",
"description": "Aprenda a criar um assistente híbrido completo"
}
]
}
]
}
]
}

Utilizar o body abaixo usando a mesma API que utiliza para o outbound com template.
Modelo
Visualização
{
"destination": "11999999999",
"contents": [
{
"type": "location",
"latitude": -23.54220538772733,
"longitude": -46.65812552818576,
"name": "SMARKIO BRASIL",
"address": "Rua Sergipe, 475 - 5º Andar - Higienópolis, São Paulo - SP, 01243-001",
"url": "https://www.smarkio.com.br"
}
]
}

Last modified 1yr ago