docs

API sendMessage

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-accounts.robbu.global/v1/login
Body:
{
Company“: “#####”,
Username“: “#####”,
Password“: “#####”
}

Exemplo de response

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.

Apontamento da inserção do bearer-token

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

Exemplo de body do método 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

Localização do token
  • 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.
Exemplo de template
  • 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”.