docs

A integração via Webhook tem como objetivo disponibilizar em real time todas as interações
realizadas nas plataformas Invenio Center e Invenio Live.

👉 Mensagens enviadas e atualização de status de entrega
👉 Mensagem recebida e atualização de status de recebimento
👉 Eventos
👉 Campanhas e atualização de status

Mensagens #

Para realizar a busca dos dados referente às interações do sistema, primeiramente é necessário
disponibilizar um endpoint onde sua requisição deverá retornar o código 200 de retorno http,
para que o serviço identifique que o envio do json com as informações foi realizado com
sucesso. Em questão de segundos, nosso serviço executa o envio dos logs pendentes de envio,
podendo trazer em um único arquivo diversos blocos. Todos os horários enviados estão no formato UTC.
Abaixo, teremos exemplos da disposição dos campos no envio desses blocos em json.

Mapeamento #

messageIndica que o objeto é uma mensagem
message.receivedAtData da recepção da mensagem
message. sentAtData de envio da mensagem
message. directionInformar se é entrada ou saída de mensagem (pode ser “outgoing
para envio ou “incoming” para entrada)
message. idId da mensagem
message. channelEnumerador referente à mensagem
1 – E-mail
2 – SMS
3 – Whatsapp
4 – Chat
5 – Facebook
6 – Telegram
7 – Voz
8 – Instagram
9 – Viber
message.typeTipo do envio da mensagem para casos outgoing
message.textIndica o texto da mensagem
message.campaignIdId da campanha para casos outgoing
message.sourceObjeto contendo informações da pessoa
message.source.countryCodeCódigo do País para casos outgoing
message.source.phoneNumberTelefone de contato para casos outgoing
message.source.emailEm casos outgoing
message.source.senderInforma o responsável pelo disparo da mensagem (apenas
em casos envio – outgoing)
message.contact.lastWalletNameInforma o nome do último segmento do contato
message.contact.lastWalletCodeInforma o código do último segmento do contato
destinationInforma o contato de destino, nele consta um objeto com novos
parâmetros.
destination.countryCodeCódigo do país
destination.phoneNumberTelefone de contato
destination.emailE-mail de contato
locationDetalha as informações referente à localização enviada pelo cliente
location.latitudeLatitude da localização
location.longitudeLongitude da localização
fileObjeto contendo informações do arquivo recebido ou enviado
file.urlURL do arquivo
file.nameNome do arquivo
file.extensionExtensão do arquivo
contactObjeto contendo informações do contato/pessoa
contact.robbuidId do prospect na Robbu
contact.name Nome do prospect
contact.customCodeCódigo do cliente
contact.idCPF/CNPJ do cliente
contact.mainSMSForma de contato SMS
contact.mainSMS.countryCode Código do país
contact.mainSMS.phoneNumberTelefone de contato
contact.mainEmail Endereço de e-mail de contato
contact.mainWhatsapp Forma do contato WhatsApp
contact.mainWhatsapp.countryCode Código do país
contact.mainWhatsapp.phoneNumberTelefone de contato
contact.queueFila da operação
contact.queue.waitingSinceData e hora de entrada do contato na fila da operação (em casos outgoing)
contact.queue.firstAnswerAtData e hora da última mensagem enviada ao contato pela operação (em casos outgoing)
lastWalletCodeCódigo da última carteira adicionada ao cadastro do cliente
lastWalletNameNome da última carteira adicionada ao cadastro do cliente
eventIndica que o objeto é um evento/tabulação e cada evento possui os seguintes parâmetros
event.createdAtData da inclusão do evento
event.idId do evento na Robbu
event.descriptionDescrição do evento
event.noteDescrição do evento
event.customCodeCódigo customizado do evento
event.finalizedIndica se é um evento finalizador
event.senderUsuário responsável pelo evento
event.typeTipo do evento: negativo, neutro ou positivo
event.contactObjeto contendo informações do contato/pessoa
event.contact.robbuidId do prospect na Robbu
event.contact.nameNome do prospect
event.contact.customCodeCódigo do cliente
event.contact.idCPF/CNPJ do cliente
event.contact.mainSMSForma de contato
event.contact.mainSMS.countrycodeCódigo do país
event.contact.mainSMS.phoneNumberTelefone de contato
event.contact.mainEmailEndereço de e-mail de contato
event.WhatsappForma de contato
event.Whatsapp.countrycodeCódigo do país
event.Whatsapp.phoneNumberTelefone de contato
campaignIndica que o objeto é uma campanha criada, e cada objeto desse tipo
possui os seguintes parâmetros abaixo:
campaign.createdAt Data e hora de criação da campanha
campaign.createdByUsuário responsável pela campanha
campaign.idId da campanha
campaign.channelEnumerador do canal de recepção da mensagem
1 – E-mail
2 – SMS
3 – Whatsapp
4 – Chat
5 – Facebook
6 – Telegram
7 – Voz
8 – Instagram
9 – Viber
campaign.startAtData e hora de início da campanha
campaign.sizeQuantidade de mensagens a serem enviadas
campaign.messageTemplate enviado na campanha
campaign.hoursToDiscardQuantidade de horas usadas para descartar pessoas
campaign.type Detalhes do tipo da campanha
campaign.type.code Código interno do tipo de campanha
• “EM” – E-mail
• “SL” – SMS Long
• “SS” – SMS Short
• “VW” – Voz Way
• “WB” – Whatsapp Broadcast
• “WE” – WhatsApp Oficial Exclusivo
• “WP” – Whastapp Prospect Convencional
• “WO” ou “WC” – Whatsapp Oficial Compartilhado
campaign.type.descriptionDescrição do tipo de campanha
campaign.splitSendParâmetros utilizados estabelecidos quando houver uma quebra
no envio da campanha
campaign.splitSend.percentagePorcentagem de envio
campaign.splitSend.minutesQuantidade de minutos para envio dos blocos de mensagens
campaign.mailingInformações do mailing utilizado na campanha
campaign.mailing.descriptionDescrição do mailing
campaign.mailing.importedAtData e hora da importação do mailing
campaign.mailing.importedByUsuário responsável pela importação do mailing
campaign.mailing.sizeQuantidade de registros no mailing
campaign.mailing.walletClientCodeCódigo da carteira do mailing
statusIndica que o objeto é um status da campanha ou da mensagem
status.messageTrará, em tempo real, o status do envio das mensagens avulsas,
conforme padrão abaixo
status.message.idId da mensagem
status.message.sourceInforma o dado que originou o contato, nele consta um objeto com
novos parâmetros
status.message.source.sender Informa o responsável pelo disparo da mensagem
status.message.sentToProviderAtData e hora de envio da mensagem
status.message.deliveredAtData e hora de entrega da mensagem
status.message.readAtData e hora da leitura da mensagem
status.message.failedAtData e hora da falha na entrega da mensagem
status.message.errorCodeCódigo da falha na entrega da mensagem
status.message.destinationInforma o contato de destino, nele consta um objeto com novos
parâmetros
status.message.providerOperadora, em caso de comunicação via SMS
status.campaignTrará em tempo real o status do momento da campanha
disparada, desde o início até a conclusão dos disparos, conforme padrão abaixo
status.campaign.idId da campanha
status.campaign.totalsentTotal de mensagens enviadas até o momento
status.campaign.lastSentAtData e hora da última mensagem enviada na campanha
status.campaign.statusCodeStatus atual da campanha
Enumerador:
“C” – Cancelada
“E” – Campanha não enviada
“F” – Finalizada
“I” – Iniciada
“P” – Aguardando Processamento

Mensagem de entrada – Exemplo de json #

[{
	"message": {
		"receivedAt": "2020-01-31T02:01:03",
		"direction": "incoming",
		"id": 13232322244444,
		"channel": 3,
		"text": "Olá, teste whats!",
		"source": {
			"countryCode": 55,
			"phoneNumber": 11999999992
		},
		"destination": {
			"countryCode": 55,
			"phoneNumber": 11944497777
		},
		"location": {
			"latitude": -23.5535317,
			"longitude": -46.6631181
		},
		"file": {
			"url": "http://s.robbu.com.br/arquivo?hash=ROBBU",
			"name": "robbu",
			"extension": "pdf"
		},
		"contact": {
			"robbuid": 11111111111,
			"name": "TESTE ROBBU",
			"customCode": "1372511",
			"id": "00000000000",
			"mainWhatsapp": {
				"countryCode": 55,
				"phoneNumber": 11999999992
			},
			"mainSMS": {
				"countryCode": 55,
				"phoneNumber": 11999999992
			},
			"mainEmail": "teste@robbu.global"
		}
	}
}]

Mensagem de Saida- Exemplo de json #

[{
	"message": {
		"sentAt": "2020-01-31T02:05:21.2900000",
		"direction": "outgoing",
		"id": 1323232224455555,
		"channel": 3,
		"type": "",
		"text": "Teste envio whats!",
		"campaignId": 1234,
		"source": {
			"countryCode": 55,
			"phoneNumber": 11944497777,
			"sender": ""
		},
		"destination": {
			"countryCode": 55,
			"phoneNumber": 11999999992
		},
		"file": {
			"url": "http://s.robbu.com.br/arquivo?hash=ROBBU",
			"name": "robbu",
			"extension": "pdf"
		},
		"contact": {
			"robbuid": 11111111111,
			"name": "TESTE ROBBU",
			"customCode": "1372511",
			"id": "00000000000",
			"mainWhatsapp": {
				"countryCode": 55,
				"phoneNumber": 11999999992
			},
			"mainSMS": {
				"countryCode": 55,
				"phoneNumber": 11999999992
			},
			"mainEmail": "teste@robbu.global",
			"queue": {
				"waitingSince": "2021-03-08 12:00:00",
				"firstAnswerAt": "2021-03-08 11:30:00"
			}
		}
	}
}]

Status de Mensagem – Exemplo de json #

[{
	"status": {
		"message": {
			"id": 1323232224455555,
			"source": {
				"sender": "User1"
			},
			"sentToProviderAt": "2020-01-31T15:50:39.9312405",
			"deliveredAt": "2020-01-31T15:51:52.9707831",
			"readAt": "2020-01-31T15:53:14.6399299"
		}
	}
}]

Eventos – Exemplo de json #

[{
	"event": {
		"createdAt": "2020-01-31T02:05:21.0566667",
		"id": 13232322244599998,
		"description": "[CR] Saudacao Final",
		"note": "Saudacao Final",
		"customCode": "298",
		"finalized": false,
		"sender": "",
		"type": "Neutro",
		"contact": {
			"robbuid": 11111111111,
			"name": "TESTE ROBBU",
			"customCode": "1372511",
			"id": "00000000000",
			"mainWhatsapp": {
				"countryCode": 55,
				"phoneNumber": 11999999992
			},
			"mainSMS": {
				"countryCode": 55,
				"phoneNumber": 11999999992
			},
			"mainEmail": "teste@robbu.global"
		}
	}
}]

Campanha – Exemplo de json #

[{
	"campaign": {
		"createdAt": "2020-01-27T22:01:12.2766667",
		"createdBy": "User Robbu",
		"id": 994545,
		"channel": 1,
		"startAt": "2020-01-27T21:59:00",
		"size": 3102,
		"message": "<html><body>Envio campanha email!<\/body><\/html>",
		"hoursToDiscard": 0,
		"type": {
			"code": "EM",
			"description": "EMAIL"
		},
		"splitSend": {
			"percentage": 100.00,
			"minutes": 0
		},
		"mailing": {
			"description": "disparo_email",
			"importedAt": "2020-01-27T21:54:16.5500000",
			"importedBy": "User Robbu",
			"size": 3102,
			"walletClientCode": "1000"
		}
	}
}]

Campanha status – Exemplo de json #

[{
	"status": {
		"campaign": {
			"id": 994545,
			"totalSent": 91,
			"lastSentAt": "2020-01-31T16:10:12.0633333",
			"statusCode": "F"
		}
	}
}]