- Autenticação
- Enviar mensagem
- Especificações do Body
- Responde das Chamadas
- Exemplo de Requisições
- Envio de mensagem via Whatsapp utilizando um HSM (nos casos de contatos ativos) com variáveis dinâmicas:
- Envio de mensagem via Whatsapp utilizando um HSM (nos casos de contatos ativos) sem ariáveis dinâmicas:
- Envio de mensagem via Whatsapp com um texto livre, nos casos em que não for um contato ativo:
- Envio de mensagem via Whatsapp com um arquivo:
- Envio de mensagem via SMS:
- Envio de mensagem via email saindo pelo domínio padrão da Robbu ou do segmento vinculado ao contato:
- Envio de mensagem via email saindo por um domínio específico configurado no Invenio:
Este documento traz as especificações técnicas para chamada da API “SendMessage” que faz disparos de mensagens via Invenio, independente do canal.
Autenticação #
Para efetuar chamadas em nosso portal de integrações primeiro é necessário a obtenção do Token de acesso. Deverá ser utilizada a seguinte requisição do tipo POST:
URL: https://api.robbu.global/v1/login
Body:
{
“Company“: “#####”,
“Username“: “#####”,
“Password“: “#####”
}
Obs: Não é obrigatório gerar um novo token a cada disparo de mensagem, pois o próprio campo “expires_in” traz a quantidade em segundos de sua validade (porém por padrão podem considerar como limite, a expiração do token em 3333 dias).
Quando executada essa rota de “login” por mais de uma vez em sequência, o token anterior é invalidado. Nesse caso a sugestão é ideal é criar um processo que armazena e só gera um novo token quando a execução da API que efetiva o disparo da mensagem retornar como “Não Autorizado”.
Após a obtenção do token de acesso, você estará apto a utilizar a chamada para envio de mensagens, bastando informar a autenticação de tipo “Bearer token” e preenchendo no campo token a informação “acess_token” recebida na API anterior.
Enviar mensagem #
Para efetuar o envio de mensagens deverá ser utilizada a seguinte requisição do tipo POST:
URL: https://api.robbu.global/v1/sendmessage
Body:
{
"invenioPrivateToken": "xxxxxx-xxxxxxx-xxxxxxxx-xxxxxxxx",
"text": "olá usuário",
"emailSubject": "",
"channel": 3,
"templateName": "template1",
"attendantUserName": "Usuário 1",
"templateParameters": [
{
"parameterName": "PrimeiroNome",
"parameterValue": "Nome alternativo"
},
{
"parameterName": "Coringa1",
"parameterValue": "01/01/1993"
}
],
"source": {
"countryCode": 55,
"phoneNumber": 1112345678,
"prospect": false
},
"destination": {
"countryCode": 55,
"phoneNumber": 11992568547,
"email": ""
},
"discardSettings": {
"recentContactLastHours": 0,
"InAttendance": true
},
"contact": {
"name": "Ana da Silva",
"customCode": "5150",
"id": "85695874563",
"tag": "nometag",
"jokers": [
"coringa1",
"coringa2",
"coringa3",
"coringa4",
"coringa5"
],
"walletClientCode": "CodDefault",
"updateIfExists": true
},
"voiceSettings": {
"callId": "123123"
},
"files": [
{
"address": "https://robbublob.blob/download/boletoteste.pdf",
"base64": "...u5y3i4y5iu345yu345yu345y5y4...",
"name": "seuboleto.pdf"
}
]
}
Especificações do Body #
invenioPrivateToken: Token privado do Invenio localizado no ambiente administrativo da empresa a partir do menu “Configurações -> Conta” no portal Invenio Center.
https://inveniocenter.robbu.global/painel/configuracoes/conta
- text: O texto da mensagem que será enviado. Se o template HSM estiver preenchido este texto é ignorado.
- emailSubject: O título do email (considerando que o canal utilizado será o email)
- channel: O canal de envio da mensagem sendo (1 – Email, 2 – SMS, 3 – Whatsapp).
- templateName: Deverá ser preenchido caso o envio for HSM. O nome do template criado e aprovado junto ao Facebook.
- attendantUserName: Deverá ser preenchido com o nome do usuário no Invenio quando houver a necessidade de fidelizar essa pessoa a fila de algum login específico. Se o campo não vier preenchido, nada é definido na pessoa com relação à fidelidade (mantém a situação atual).
- templateParameters.parameterName: Nos casos em que o template a ser enviado é dinâmico, ou seja, contém variáveis, esse campo deverá receber a referência do nome da variável para que o valor dela seja informado no próximo parâmetro.
- templateParameters.parameterValue: Nos casos em que o template a ser enviado é dinâmico, ou seja, contém variáveis, esse campo deverá receber a referência do valor da variável para que o sistema substitua com o texto informado nesse parâmetro.
- source.countryCode: O código do país do número que enviará a mensagem
- source.phoneNumber: O telefone que enviará a mensagem, sendo DDD + número.
- source.prospect: O campo deverá ser informado quando a mensagem a ser disparada seguir por um dos números de prospect integrados ao Invenio. Nesse caso o campo recebe o valor “true”.
- destination.countryCode: O código do país do telefone que receberá a mensagem.
- destination.phoneNumber: O telefone que receberá a mensagem, sendo DDD + número.
- destination.email: O e-mail que receberá a mensagem.
- discardsettings.recentContactLastHours: Vai ignorar o envio da mensagem se existe contato (entrada ou saída) nas últimas X horas.
- discardsettings.inAttendance: vai ignorar o envio da mensagem se o cliente estiver fidelizado com algum operador.
- contact.name: O nome do contato que receberá a mensagem.
- contact.customCode: O código do cliente que será utilizado para o contato que receberá a mensagem.
- contact.id: O cpf/cnpj do contato que receberá a mensagem.
- contact.tag: O campo hashtag do contato que receberá a mensagem
- contact.jokers: Deverá ser preenchido caso o envio for HSM e existir definições de campos coringa no template aprovado junto ao Facebook.
- walletClientCode: O código do segmento, cadastrado pelo cliente dentro do Invenio.
- updateIfExists: Se o contato deverá ser atualizado caso já esteja cadastrado dentro do Invenio.
- voiceSettings.callId: Call ID de voz, ele é necessário nos fluxos voltados a esse tipo de canal (informação interna Robbu).
- files.address: Nos casos onde houver a necessidade do envio de um arquivo, esse campo recebe a referência da URL dessa mídia.
- files.base64: Nos casos onde houver a necessidade do envio de um arquivo, esse campo recebe a referência do código em base64 dessa mídia.
- files.name: Nos casos onde houver a necessidade do envio de um arquivo, esse campo recebe o nome do arquivo disparado.
Responde das Chamadas #
A chamada possuirá os seguintes códigos de retorno:
200: A mensagem foi enviada corretamente
400: Parâmetros incorretos
500: Algum erro ocorrido no processo de envio.
Exemplo de Requisições #
Envio de mensagem via Whatsapp utilizando um HSM (nos casos de contatos ativos) com variáveis dinâmicas: #
- Channel: Deve ser informado o canal referente ao whatsapp
- TemplateName: Nome do HSM a ser disparado
- Template Parameters: É necessário informar apenas quando o HSM possui variáveis dinâmicas.
- Destination: Deverão ser informadas as informações apenas do telefone do contato a receber a mensagem.
- countryCode: Código do país do contato
- phoneNumber: DDD + Número do telefone do contato
- Source: Deverão ser informadas as informações apenas do telefone de saída, a linha que irá enviar a mensagem.
- countryCode: Código do país do contato
- phoneNumber: DDD + Número do telefone do contato
- Contact: Não é necessário informar, apenas se quiserem salvar alguma informação de cadastro do cliente como o nome da pessoa, cpf, etc. Considerando que o campo “updateIfExists” estiver como true.
Envio de mensagem via Whatsapp utilizando um HSM (nos casos de contatos ativos) sem ariáveis dinâmicas: #
A diferença para o exemplo citado acima é que o bloco “templateParameters” pode ser disponibilizado sem informações.
Envio de mensagem via Whatsapp com um texto livre, nos casos em que não for um contato ativo: #
A diferença é que não será necessário ser informado o nome do HSM (templateName) e os
dados dinâmicos de variáveis (templateParameters) e o campo “text” receberá a mensagem a
ser enviada, sem restrições.
Envio de mensagem via Whatsapp com um arquivo: #
O bloco “files” precisa conter os dados de URL ou base64 do arquivo.
Envio de mensagem via SMS: #
Nesse cenário, o ideal é informar o canal referente ao SMS e sem o campo “source”, pois essa mensagem não sairá por uma linha em específico.
Envio de mensagem via email saindo pelo domínio padrão da Robbu ou do segmento vinculado ao contato: #
Nesse caso, o canal precisa ser referente ao email, o título dessa mensagem no campo “titleEmail” e no bloco destination” o único campo que deverá ser informado é o “email”, sem os campos “countryCode” e “phoneNumber”.
Envio de mensagem via email saindo por um domínio específico configurado no Invenio: #
Nesse caso, o canal precisa ser referente ao email, o título dessa mensagem no campo “titleEmail” e no bloco destination” o único campo que deverá ser informado é o “email”, sem os campos “countryCode” e “phoneNumber”. O email de disparo deverá ser informado no bloco “source”, no campo “email”.