Skip to main content
A integração via Webhook permite comunicação em tempo quase real entre o Invenio Center, o Invenio Live e sistemas externos. Eventos importantes são enviados automaticamente para o endpoint configurado, permitindo que sua operação registre, trate e analise dados de forma ágil e integrada.
Os dados são enviados em lotes de até 30 arquivos JSON, com intervalo médio de 2 segundos entre os lotes.
⚠️ Importante: A Robbu não realiza integrações customizadas com APIs dos clientes no contexto de webhooks.A plataforma envia os dados em tempo real para endpoints previamente definidos, sendo o consumo, processamento e tratamento dessas informações de responsabilidade da empresa responsável pela integração.

Eventos Disponíveis

EventoDescrição
Mensagens enviadasStatus de entrega das mensagens saintes
Mensagens recebidasNotificação de mensagens entrantes
KPI EventosIndicadores inseridos no ambiente (manual ou sistema)
CampanhasCriação e atualização de status de campanhas
CarteirasEdições e atualizações de configuração de segmentos
Templates HSMStatus, qualidade e alterações de templates
Linhas WhatsAppStatus, qualidade e alterações das linhas
UsuáriosLogs e mudanças de usuários
ProtocolosEstatísticas e dados de protocolos de atendimento
Objetos JSON enviados: contact · event · messageincoming · messageoutgoing · campaign · template · protocol · wallet · whatsappnumbers · status

Linguagens Suportadas

Os webhooks do Invenio são baseados em HTTP — qualquer linguagem que suporte servidor web pode ser utilizada.
LinguagemFramework sugerido
JavaScript / Node.jsExpress
PythonFlask, Django ou FastAPI
C# (.NET)ASP.NET Core
JavaSpring Boot
PHPLaravel, Symfony ou nativo $_POST
Go, Ruby, Rust, ElixirQualquer lib HTTP nativa

Requisitos de Infraestrutura (Produção)

Configuração mínima recomendada para o servidor endpoint:
ComponenteRequisito mínimo
ArmazenamentoSSD de 250 GB
Memória RAM16 GB
CPU4 núcleos
⚠️ O uso de HD não é recomendado — pode gerar gargalos pelo alto volume de mensagens e eventos. Monitore a infraestrutura continuamente com possibilidade de escala futura.

Configurar o Webhook no Invenio Center

Caminho: Invenio Center > Configurações > Webhook > Gerenciar
Acesso direto: Configurações
1

Preparar o servidor endpoint

Configure e publique o endpoint na sua infraestrutura (servidor, banco de dados, firewall).Certifique-se de que os IPs do Invenio estão liberados no firewall.Consulte: Lista de IPs para liberação
2

Acessar configurações do Webhook

Acesse: Invenio Center > Configurações > Webhook > Gerenciar
3

Adicionar a URL do endpoint

Cole a URL gerada pelo seu servidor/ambiente de publicação no campo disponível e clique em Salvar.
Em até 60 minutos, as requisições começarão a ser disparadas para o endpoint configurado.
Fila paralela: O Invenio disponibiliza dois campos para URLs de Webhook por padrão. A inclusão de URLs adicionais (fila paralela) está sujeita a custo extra — consulte o gerente comercial responsável pela sua conta.

Diagrama de Funcionamento


Mapeamento de Campos

Message (Mensagem)

Reúne todas as informações relacionadas às mensagens trafegadas no contato, tanto de entrada quanto de saída. Inclui o conteúdo da mensagem, identificadores únicos para rastreio e dados como data, hora e canal de envio, permitindo o acompanhamento completo das interações.
CampoDescriçãoTipo
MessageSentToProviderAtData/hora do envio ao provedorDatetime
MessageDeliveredAtData/hora da entregaDatetime
MessageReadAtData/hora da leituraDatetime
MessageFailedAtData/hora da falha na entregaDatetime
MessagemSentAtData/hora do envioDatetime
MessageReceivedAtData/hora do recebimentoDatetime
MessageCampaignidID da campanhaInt
MessageTypeTipo de envioString
MessageDirectionincoming (entrada) ou outgoing (saída)String
MessageIdID da mensagemLong
MessageChannelCanal (ver enumeração)Int
MessageTextTexto da mensagemString
MessageSourceCountryCodeCódigo do país do remetenteInt
MessageSourcePhoneNumberTelefone do remetenteLong
MessageSourceEmailE-mail do remetenteString
MessageDestinationCountryCodeCódigo do país do destinatárioInt
MessageDestinationPhoneNumberTelefone do destinatárioLong
MessageDestinationEmailE-mail do destinatárioString
ContactRobbuIdID do contato na RobbuLong
ContactNameNome do contatoString
ContactIDID do contatoString
ContactCustomCodeCódigo do clienteString
ContactMainEmailE-mail principalString
ContactMainWhatsAppCountryCodeCódigo do país (WhatsApp)Int
ContactMainWhatsAppPhoneNumberNúmero WhatsApp principalLong
ContactMainSmsCountryCodeCódigo do país (SMS)Int
ContactMainSmsPhoneNumberNúmero SMS principalLong
QueueWaitingSinceInício da espera na filaDatetime
QueueFirstAnswerAtPrimeira resposta ao contatoDatetime
ContactLastWalletCodeCódigo do último segmentoString
ContactLastWalletNameNome do último segmentoString
ContactLastChannelDescriptonÚltimo canal do contatoString
ContactCreatedAtData/hora de inclusão do contatoDatetime
ContactLastAnswearAtÚltima mensagem enviada ao contatoDatetime
ContactLastIncomingMessageAtÚltima mensagem recebida do contatoDatetime
DigitalPostmanEnvio via Carteiro DigitalBool
LocationLatitudeLatitude de localizaçãoDouble
LocationLongitudeLongitude de localizaçãoDouble
FileUrlURL do arquivoString
FileNameNome do arquivoString
FileExtensionExtensão do arquivoString
ProtocolMessageIdID do protocoloLong
ProtocolMessageNumberNúmero do protocoloString
MessageErrorCodeCódigo de falha na entregaString
ErrorMessageDescrição do erroString
MessageChannelDescriptionDescrição do canalString
MessageTemplateNameNome do templateString
MessageTemplateIdID do templateLong
Enumeração – MessageChannel: 1 E-mail · 2 SMS · 3 WhatsApp · 4 Chat · 5 Facebook · 6 Telegram · 7 Voz · 8 Instagram · 9 Viber
"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"
  }
}
"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

Responsável por informar o estado atual da mensagem ao longo do seu ciclo de vida. Contempla informações como status de envio (enviado, entregue, lido ou falha), além de datas e horários relevantes de cada etapa, permitindo o monitoramento completo da evolução da mensagem.
CampoDescriçãoTipo
MessageStatusIdID do statusLong
SourceStatusSenderRemetente do statusString
MessageStatusSentToProviderAtEnvio ao provedorDatetime
MessageStatusDeliveredAtEntregaDatetime
MessageStatusReadAtLeituraDatetime
MessageStatusSentAtEnvio da mensagemDatetime
MessageStatusFailedAtFalha no envioDatetime
MessageStatusDigitalPostmanEnvio via Carteiro DigitalBool
MessageStatusErrorCodeCódigo de erroString
MessageStatusErrorMessageDescrição do erroString
ContactStatusRobbuIdID do contato na RobbuLong
"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"
  }
}

Event (KPI Evento)

Reúne os dados de eventos da plataforma, incluindo eventos sistêmicos e personalizados, utilizados no mapeamento do fluxo de comunicação. Esses eventos representam ações ou gatilhos que influenciam o comportamento e o processamento das interações.
CampoDescriçãoTipo
IDID do eventoLong
DescriptionDescrição do eventoString
NoteObservaçãoString
CustomCodeCódigo customizadoString
SenderUsuário responsávelString
FinalizedEvento finalizadorBool
TypeTipo: negativo, neutro ou positivoString
ProtocolNumberNúmero do protocoloString
ProtocolIDID do protocoloLong
ContactRobbuIdID único do contatoLong
ContactNameNome do contatoString
ContactIDID do contatoString
ContactCustomCodeCódigo do clienteString
ContactMainEmailE-mail principalString
ContactMainWhatsAppCountryCodeCódigo do país (WhatsApp)Int
ContactMainWhatsAppPhoneNumberNúmero WhatsApp principalLong
ContactMainSmsCountryCodeCódigo do país (SMS)Int
ContactMainSmsPhoneNumberNúmero SMS principalLong
QueueWaitingSinceInício da espera na filaDatetime
QueueFirstAnswerAtPrimeira respostaDatetime
ContactLastWalletCodeCódigo do último segmentoString
ContactLastWalletNameNome do último segmentoString
ContactLastChannelDescriptonÚltimo canalString
ContactCreatedAtInclusão do contatoDatetime
ContactLastAnswearAtÚltima mensagem enviadaDatetime
ContactLastIncomingMessageAtÚltima mensagem recebidaDatetime
"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"
  }
}

Campaign (Campanha)

Apresenta os dados da campanha disparada, contemplando informações da campanha em si, e não das mensagens individuais. Inclui identificador, canal, tipo, datas, volume de envio, status e dados do mailing, além de informações de criação e configuração, permitindo acompanhar e analisar o desempenho da campanha.
CampoDescriçãoTipo
CreatedAtData/hora de criaçãoDatetime
CreatedByUsuário responsávelString
IdID da campanhaInt
ChannelCanal (ver enumeração)Int
ChannelDescriptionDescrição do canalString
StartAtInício da campanhaDatetime
SizeQuantidade de mensagensInt
MessageTemplate enviadoString
HoursToDiscardHoras para descarte por atendimento ativoInt
TypeCampaignCodeCódigo interno do tipoString
TypeCampaignDescriptionTipo: SMS, WhatsApp, E-mail, VozString
SplitSendPercentage% de fracionamentoDouble
SplitSendMinutesIntervalo (min) entre enviosInt
MailingDescriptionDescrição do mailingString
MailingImportedAtImportação do mailingDatetime
MailingImportedByUsuário que importouString
MailingSizeRegistros no mailingInt
MailingWalletClientCodeCódigo da carteiraString
TotalSentTotal enviadoInt
CampaignLastSentAtÚltima mensagem enviadaDatetime
CampaignStatusCodeCódigo de statusString
CampaignDescriptionDescrição do tipo de campanhaString
Enumeração – Channel: 1 E-mail · 2 SMS · 3 WhatsApp · 4 Chat · 5 Facebook · 6 Telegram · 7 Voz · 8 Instagram · 9 Viber TypeCampaignCode: EM E-mail · SL SMS Long · SS SMS Short · VW Voz Way · WB WhatsApp Broadcast · WE WhatsApp Oficial Exclusivo · WP WhatsApp Prospect · WO/WC WhatsApp Oficial Compartilhado CampaignStatusCode: C Cancelada · E Não enviada · F Finalizada · I Iniciada · P Aguardando processamento
"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"
  }
}
"status": {
  "campaign": {
    "id": 994545,
    "totalSent": 91,
    "lastSentAt": "2020-01-31T16:10:12.0633333",
    "statusCode": "F"
  }
}

Template

Contém os dados do template, sem relação direta com envios de mensagens. Apresenta informações de identificação e estrutura, além de eventos como criação, alterações e mudanças de status ao longo do seu ciclo de vida.
CampoDescriçãoTipo
IdID do templateLong
NameNome do templateString
EventAção: Updated ou CreatedString
EventAtData/hora de inclusão/alteraçãoDatetime
StatusStatus na Meta: Approved · Reject · Deleted · DisabledString
QualityQualidade na Meta: Green · Yellow · Red · Deleted · DisabledString
CategoryCategoria: Utility · Marketing · Service · AuthenticationString
LanguageIdioma do templateString
"template": {
  "id": 53129216,
  "name": "bv_atualizar_informacoes_020",
  "event": "updated",
  "eventAt": "2025-02-28T12:10:24.2981975Z",
  "status": "APPROVED",
  "quality": "UNKNOWN",
  "category": "MARKETING",
  "language": "pt_BR"
}

Protocol (Protocolo)

Refere-se ao identificador do atendimento, vinculando a mensagem a um protocolo específico. Permite organizar e rastrear conversas, trazendo dados como ID do protocolo, data de criação, status e informações de encerramento do atendimento.
CampoDescriçãoTipo
EventAção: Updated ou CreatedString
EventAtData/hora de inclusãoDatetime
IdID do protocoloLong
NumberNúmero do protocoloString
GeneratedAtData/hora de geraçãoDatetime
GenerationChannelDescriptionCanal do protocoloString
GenerationWalletNameNome do segmentoString
GenerationWalletCodeCódigo do segmentoString
GenerationWalletIdID do segmentoLong
SegmentIdID do segmentoLong
SegmentNameNome do segmentoString
ContactProtocolIdID do protocolo do contatoString
ContactProtocolRobbuIdID na RobbuLong
FirstMessageIdrAtPrimeira mensagem na IDRDatetime
LastMessageIdrAtÚltima mensagem na IDRDatetime
IdrClosedAtEncerramento na IDRDatetime
LastMessageContactIdrAtÚltima mensagem do contato para IDRDatetime
FirstMessageFromHumanAttendanceAtPrimeira mensagem da operaçãoDatetime
IdrMessagesCountTotal de mensagens da IDRLong
HumanAttendanceMessagesCountTotal de mensagens de atendentesLong
IncomingMessagesCountTotal de mensagens recebidasLong
HumanAttendanceAnswersCountTotal de respostas de atendentesLong
ContactAnswersCountTotal de respostas do contatoLong
HumanAttendanceAnswersTotalTimeInSecondsSoma (seg) das respostas da operaçãoLong
ContactAnswersTotalTimeInSecondsSoma (seg) das respostas do contatoLong
IdrAnswersTotalTimeInSecondsSoma (seg) das respostas da IDRLong
IdrAnswersCountTotal de respostas da IDRLong
ClosedAtEncerramento do protocoloDatetime
ClosingUserInfoUsuário que encerrouString
ClosingEventIdID do evento de encerramentoLong
ClosingEventNameNome do evento de encerramentoString
ClosingEventCodeCódigo do evento de encerramentoString
AbandonedAtAbandono do protocoloDatetime

User (Usuário)

Apresenta os dados do usuário na plataforma, de forma independente das interações com mensagens. Contempla informações relacionadas à identificação e ao perfil do usuário, além de eventos como criação, atualização e grupos de acesso, permitindo o acompanhamento e controle operacional.
CampoDescriçãoTipo
IdID do usuárioLong
NameNome de loginString
EventAção: Updated ou CreatedString
EventAtData/hora de criação/ediçãoDatetime
CompletenameNome completoString
AcessGroupGrupo de acessoString
AcessGroupDescriptionDescrição do grupoString
EmailAddressE-mail do usuárioString
LastLoginAtÚltimo loginDatetime
IsActiveAtivo/inativoBool
LastQueueUpdateAtÚltima atualização da filaDatetime
LastPasswordChangeATÚltima troca de senhaDatetime
IsLoggedLogado no momentoBool

Wallet (Carteira / Segmento)

Representa os dados da carteira (segmento) na plataforma, de forma independente dos envios de mensagens. Inclui informações de identificação e configuração, além de eventos como criação e atualização, permitindo o gerenciamento e a organização dos segmentos.
CampoDescriçãoTipo
IdID do segmentoLong
NameNome do segmentoString
CodeCódigo do segmentoString
EventAção: Updated · Created · DeletedString
EventAtData/horaDatetime
DistributionMethodMétodo de distribuiçãoString
DistributionMethodDescriptionDescrição do métodoString

WhatsApp Numbers (Linhas WhatsApp)

Contém os dados dos números de WhatsApp cadastrados na plataforma, de forma independente das mensagens. Inclui informações cadastrais, configurações e o histórico de alterações, como atualizações e mudanças de status ao longo do tempo.
CampoDescriçãoTipo
EventAção: Created ou UpdatedString
EventAtData/horaDatetime
IdID da linhaLong
WalletIdID do segmentoLong
StatusQualidade na Meta: Green · Yellow · Red · UnknownString
CountryCodeCódigo do paísString
AreaCodeCódigo de áreaString
PhoneNumberNúmero de telefoneString
IsActiveLinha ativaBool
BroadCastLimitPerDayLimite diário de envios (Meta)Int
CanSendHsmHabilitada para HSMBool
"whatsappNumber": {
  "event": "updated",
  "eventAt": "2025-02-26T19:18:48.5888674+00:00",
  "id": 1234567,
  "walletId": 7654321,
  "status": "YELLOW",
  "countryCode": "55",
  "areaCode": "11",
  "phoneNumber": "11111111",
  "isActive": true,
  "broadcastLimitPerDay": 1000,
  "canSendHsm": true
}

Configurações Gerais da Conta

Configurações do ambiente Invenio Center

Lista de IPs para Firewall

IPs que devem ser liberados no firewall

⁉️ Perguntas Frequentes (FAQ)

São enviados blocos JSON dos seguintes objetos: contact · event · messageincoming · messageoutgoing · campaign · template · protocol · wallet · whatsappnumbers · status
Em lotes de até 30 arquivos JSON com intervalo médio de 2 segundos entre os lotes.
Em até 60 minutos após o salvamento da URL do endpoint no Invenio Center.
É altamente recomendado usar HTTPS para segurança no transporte dos dados. Além disso, libere os IPs oficiais do Invenio no firewall para garantir conectividade.Consulte: Lista de IPs
Para ambientes de produção: SSD 250 GB · 16 GB RAM · CPU 4 núcleos.⚠️ HD não é recomendado pelo alto volume de eventos. Preveja escalabilidade futura.
Sim. A solução é compatível com ambos — a tecnologia do banco de dados e infraestrutura ficam a critério do cliente, desde que a TI garanta operação e manutenção.
A fila paralela permite configurar URLs adicionais além das duas padrão. Essa configuração pode gerar cobrança adicional — consulte o gerente comercial responsável pela sua conta.
Caminho: Invenio Center > Configurações > Webhook > GerenciarApós publicar o serviço e liberar o firewall, informe a URL do endpoint e salve.