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.

Request

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.

Exemplo

{
    "destination": "35988001234",
    "templateId": "3b9c0955-bdd9-00de-4135-6cfb74f5fb2e",
    "fields": {
        "name": "Maria",
        "value": "R$ 1670,00"
    },
    "externalId": "meu_id_1"
}

Responses

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

Webhook de Status

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

Opção para Rich Notification - HSM

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.

Estrutura - Enviar arquivo

Utilizar o body abaixo usando a mesma API que utiliza para o outbound com template.

{
    "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

Estrutura - Botoes

Utilizar o body abaixo usando a mesma API que utiliza para o outbound com template.

{
    "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"
                }
            ]
        }
    ]
}

Estrutura - Lista Modal

Utilizar o body abaixo usando a mesma API que utiliza para o outbound com template.

{
    "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"
                        }
                    ]
                }
            ]
        }
    ]
}

Estrutura - Localização

Utilizar o body abaixo usando a mesma API que utiliza para o outbound com template.

{
    "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 updated