Pular para o conteúdo principal
Event Streams permite que você envie dados de mensagem para fora do OneSignal em tempo real para o destino escolhido. Event streams são uma ótima maneira de conectar o OneSignal a outros produtos dentro do seu ecossistema de marketing. Eles permitem que sua equipe acione mensagens correspondentes, mantenha registros e muito mais.

Casos de uso comuns

  1. Mapeamento e personalização de jornada do cliente: transmita eventos para um CRM ou Plataforma de Dados do Cliente (CDP) para construir perfis abrangentes de clientes e adaptar campanhas em vários pontos de contato.
  2. Análise e relatórios: envie eventos de mensagem (por exemplo, envios, aberturas, cliques) para um data warehouse para analisar padrões de engajamento ou tendências de longo prazo entre canais.
  3. Relatórios de conformidade e regulatórios: transmita todos os dados de mensagens enviadas para um data warehouse para fins de auditoria e conformidade.
  4. IA e modelos preditivos: envie dados de eventos de mensagem para IA interna ou modelos preditivos para criar coortes abrangentes de clientes e entender riscos de churn — como cancelamentos de inscrição de email ou dispensas de mensagens, que podem indicar potencial churn.
  5. Automação de marketing: envie eventos de engajamento (como aberturas ou cliques de mensagem) para outras ferramentas para acionar automaticamente as próximas etapas na jornada do usuário ou atualizar perfis de clientes e atividades recentes.
  6. Fragmentação de dados: dados valiosos de clientes geralmente residem em ferramentas separadas (como plataformas de engajamento de clientes, CRMs, ferramentas de análise e data warehouses). A transmissão de eventos ajuda a centralizar esses dados, aumentando a visibilidade em dados de primeira parte valiosos e permitindo resultados de receita mais rápidos.
  7. Comunicação lenta entre sistemas: ao enviar eventos de engajamento ao vivo para outros sistemas, você pode acionar ações imediatamente após a ocorrência de um evento, em vez de esperar horas ou dias por atualizações em lote. Isso elimina a dependência de importações manuais ou sincronizações de dados.
  8. Inchaço de gastos e dívida técnica: em vez de gerenciar várias ferramentas intermediárias, você pode conectar diretamente o OneSignal ao seu data warehouse. Isso reduz a sobrecarga custosa de gerenciar múltiplas integrações ou pipelines de dados personalizados, diminui a dívida técnica e preserva recursos técnicos valiosos para produto e marketing.

Como fazer parceria com sua equipe técnica

Configurar Event Streams requer colaboração com sua equipe técnica. Aqui estão algumas dicas para facilitar a conversa:
  1. Explicar os benefícios: compartilhe sua estratégia para usar esses dados e como eles podem melhorar campanhas de marketing, personalizar experiências do usuário, consolidar dados e reduzir dívida técnica.
  2. Definir o escopo: identifique para onde você deseja que os dados sejam enviados, quais eventos deseja rastrear e o volume de dados estimado. Isso ajudará na configuração adequada do endpoint.
  3. Fornecer documentação técnica: compartilhe a documentação técnica e instruções de configuração do OneSignal. Sua equipe de desenvolvimento precisará configurar os endpoints destinatários e o event stream no OneSignal, garantindo que os dados sejam roteados corretamente.
  4. Discutir volume e gerenciamento de dados: confirme que seus sistemas podem lidar com fluxos de dados em tempo real. É recomendável que o manipulador de API registre eventos sem processamento online adicional para manter tempos de resposta baixos.
  5. Testar e solucionar problemas: realize testes para garantir que tudo esteja funcionando perfeitamente antes de entrar em produção.
Ao trabalhar em estreita colaboração com sua equipe técnica, você pode desbloquear o poder da transmissão de eventos para aprimorar sua estratégia de crescimento.

Configuração

Você pode configurar um novo event stream para seu aplicativo OneSignal em Data > Event Streams.

Requisitos

Eventos não podem ser enviados a menos que os seguintes requisitos sejam atendidos:
  • Uma URL ou endereço IP válido apontando para seu servidor HTTP(S)
  • URLs e endereços IP devem ser publicamente roteáveis
  • Domínios devem incluir um domínio de nível superior reconhecido (por exemplo, “.com”, “.net”)

Seleção de Evento

Clique em “Selecionar Eventos” para selecionar sua escolha de eventos para acionar um event stream.

Trigger Webhook

Os dados que podem ser enviados com esses eventos são todos semelhantes o suficiente para que você possa enviar eventos acionados por múltiplos canais através do mesmo event stream. Outra abordagem seria definir múltiplos event streams, cada um para um único canal ou evento, para controle mais granular ou para reduzir a escala de dados enviados.

Event Selection

Filtros de event stream

Você pode opcionalmente refinar ainda mais os eventos especificando os identificadores de uma ou mais mensagens ou modelos, permitindo que você receba apenas eventos relacionados a mensagens específicas dentro do seu aplicativo. Consulte as instruções abaixo para habilitar a filtragem de event stream.

Filtering events by template

Os identificadores de mensagem e modelo podem ser copiados navegando até Mensagens > Push, Email, SMS ou Modelos, clicando no botão de ação da mensagem ou modelo desejado e selecionando Copiar ID da Mensagem ou Copiar ID do Modelo no menu de ação.

Copying the Template ID of a template

Alternativamente, você pode copiar o identificador de mensagem/modelo do que está visualizando diretamente da URL:
  • Template – https://dashboard.onesignal.com/apps/{APP_ID}/templates/{TEMPLATE_ID}
  • Push – https://dashboard.onesignal.com/apps/{APP_ID}/notifications/{MESSAGE_ID}
  • Email – https://dashboard.onesignal.com/apps/{APP_ID}/email/{MESSAGE_ID}
  • SMS – https://dashboard.onesignal.com/apps/{APP_ID}/sms/{MESSAGE_ID}

Configurar o Event Stream

Selecione o método HTTP, a URL e adicione cabeçalhos para o event stream. É aqui que a autenticação deve ser configurada para garantir comunicação segura entre o OneSignal e seus sistemas. A URI e os Cabeçalhos podem conter sintaxe liquid que virá tanto das propriedades do usuário quanto das propriedades do event stream.

Cabeçalhos de Autenticação

Você pode adicionar cabeçalhos de autenticação para validar que as solicitações ao seu endpoint são genuinamente do OneSignal. Métodos comuns de autenticação incluem:
  • Cabeçalho de Autorização: Adicione um cabeçalho Authorization, onde YOUR_TOKEN é fornecido pelo seu sistema ou terceiros como:
    • Basic {{YOUR_TOKEN}}
    • Bearer {{YOUR_TOKEN}}
    • ApiKey {{YOUR_API_KEY}}
  • Cabeçalhos Personalizados: Você também pode adicionar cabeçalhos personalizados como:
    • X-API-Key: {{YOUR_API_KEY}}
Nota: O OneSignal não fornece serviços de criptografia

Testando Sua Configuração

Se você está procurando uma maneira fácil de testar, use webhook.site. Encontre “Your unique URL” no centro da página. Copie essa URL e use-a no campo URL da configuração do seu event stream.

Configure Webhook

Cabeçalhos não permitidos

Os seguintes cabeçalhos são restritos e não podem ser definidos.
  • content-length
  • referer
  • metadata-flavor
  • x-google-metadata-request
  • host
  • x-onesignal*

Corpo

O corpo de um event stream será JSON. O JSON do corpo pode ser definido como pares chave/valor individuais ou como um bloco de código editável. Para alterar o método de entrada, use o primeiro menu suspenso sob o título do corpo e selecione o corpo personalizado.

Event Stream Body Options

À direita, você pode ver um exemplo de solicitação cURL construído a partir do que foi inserido durante a configuração do event stream

cURL Preview of Event Stream

Personalização

Você pode personalizar todos os campos no seu Event Stream com Dados de Event Streams predefinidos. Esses dados podem ser adicionados usando Sintaxe Liquid. Isso dá a você a flexibilidade de usar event streams para praticamente qualquer caso de uso.
Consulte Dados de Event Streams para uma lista de todos os dados de evento, mensagem e evento de usuário disponíveis para personalização.

Exemplo de corpo

Selecione o “Custom Body” no menu suspenso:
{
  "Event Data": {
    "event.kind": "{{ event.kind }}",
    "event.id": "{{ event.id }}",
    "event.timestamp": "{{ event.timestamp }}",
    "event.datetime": "{{ event.datetime }}",
    "event.app_id": "{{ event.app_id }}",
    "event.subscription_device_type": "{{ event.subscription_device_type }}",
    "event.subscription_id": "{{ event.subscription_id }}",
    "event.onesignal_id": "{{ event.onesignal_id }}",
    "event.external_id": "{{ event.external_id }}"
  },
  "Message Data": {
    "message.id": "{{ message.id }}",
    "message.name": "{{ message.name }}",
    "message.title": "{{ message.title.en }}",
    "message.contents": "{{ message.contents.en }}",
    "template_id": "{{ message.template_id }}",
    "message.template_id": "{{ message.template_id }}",
    "message.url": "{{ message.url }}",
    "message.app_url": "{{ message.app_url }}",
    "message.web_url": "{{ message.web_url }}"
  }
}

Custom Body

Usando Sintaxe Liquid em JSON

Ao usar sintaxe Liquid dentro de JSON, a citação adequada depende do tipo de dados: Diretrizes para Formatação JSON
  • StringsDevem ser envolvidas em aspas.
  • NúmerosNão envolver em aspas.
  • ObjetosNão devem ser envolvidos em aspas.
Exemplos

Strings

✅ Correto
// Envolva valores de string em aspas
{
  "user_id": "{{ user.onesignal_id }}"
}
❌ Incorreto
{
  "user_id": {{ user.onesignal_id }}
}

Números e Booleanos

✅ Correto
// Não envolva números ou booleanos em aspas
{
  "user_score": {{ user.tags.score }}
}
❌ Incorreto
{
  "user_score": "{{ user.tags.score }}"
}

Objetos

✅ Correto
// Não envolva objetos em aspas.
{
  "user_data": {{ user.tags }}
}
❌ Incorreto
{
  "user_data": "{{ user.tags }}"
}
Melhores práticas para lidar com condicionais multilíngues na sintaxe liquid Para evitar problemas com condicionais baseados em idioma
  1. Use Verificações Diretas de Idioma: Sempre verifique user.language diretamente em condicionais, não em variáveis como userLang, para melhor compatibilidade.
  2. Comece Simples: Comece com frases básicas e, em seguida, adicione complexidade gradualmente.
  3. Evite Aninhamento Excessivo: Mantenha as condicionais planas para evitar problemas de análise.
  4. Teste a Pontuação Básica Primeiro: Comece com frases e pontuação simples antes de usar caracteres especiais.
  5. Use Valores Padrão: Garanta um idioma padrão (por exemplo, inglês) em caso de traduções ausentes.
  6. Atenha-se às Chaves Padrão: Use chaves padrão do OneSignal como content/title/en para confiabilidade.
Essa abordagem minimiza erros de análise e garante compatibilidade com o sistema.
Para detalhes e opções sobre como personalizar suas mensagens usando sintaxe Liquid, confira nosso Guia de Uso de Sintaxe Liquid.

Resultados e Depuração

Você pode ver como seu event stream está se saindo ao longo de um período de tempo na página de relatório do event stream na aba Relatório. Isso incluirá números de todos os tempos, o status atual do seu event stream e dados de séries temporais mostrando que tipo de respostas o hook tem recebido. Qualquer resposta HTTP na faixa de 200 indica que um evento foi recebido com sucesso, enquanto respostas nas faixas de 400 e 500 indicam erros. Um timeout significa que o servidor do outro lado não conseguiu responder dentro de um período de tempo razoável, então o OneSignal fechou a conexão e assumiu que falhou. Você pode ver uma amostra de solicitações recentes na aba Logs para ainda mais detalhes. Isso mostrará solicitações reais e as respostas do outro lado (se aplicável). Se o seu event stream tiver problemas, este é um ótimo lugar para olhar primeiro. Se você precisar alterar/atualizar seu event stream, você pode editá-lo na página do formulário e enviar solicitações de teste para ver todos os detalhes necessários até acertar.

Event Stream Logs and Metrics

Tentativas / Desabilitação

Quando uma solicitação de Event Stream falha por qualquer motivo recuperável (por exemplo, código de status 429), o OneSignal tentará enviar o evento novamente após um breve atraso. Isso acontecerá algumas vezes com atrasos crescentes entre as solicitações. Se tentativas suficientes falharem seguidas, o hook será marcado como ‘falhou permanentemente’ e não será mais tentado novamente. Se muitas solicitações separadas falharem seguidas, isso provavelmente se deve a um problema na extremidade receptora; a extremidade receptora pode ter erros ou ter alterado/desabilitado algo. O OneSignal continuará a enviar solicitações até certo ponto, mas se as solicitações continuarem a falhar, o event stream pode ser desabilitado pelo OneSignal. Se isso acontecer, certifique-se de gastar algum tempo solucionando problemas, corrigindo e testando o event stream antes de reabilitá-lo. Uma API com desempenho ruim pode levar à desabilitação do event stream. É importante que a API que ingere um event stream seja capaz de lidar com o volume de eventos produzido pelos envios de mensagens. Revisar o volume de envios de mensagens produzidos pelo seu aplicativo refletirá o desempenho exigido da sua API. Recomendamos que a API que recebe o event stream registre um evento sem nenhum outro processamento online. Isso manterá os tempos de resposta baixos e evitará quaisquer problemas relacionados à latência. Tempo de resposta lento ou respostas com código de status 429 da sua API podem causar um acúmulo de eventos. Um acúmulo consistente de eventos levará o OneSignal a desabilitar o event stream para que você possa atualizar sua API para lidar com a taxa de transferência necessária. O OneSignal enviará e-mails para administradores de aplicativos e administradores de organizações quando um event stream começar a experimentar um volume significativo de eventos com falha (mas ainda não foi desabilitado), bem como um e-mail quando o event stream for desabilitado quando muitos eventos falharem ao enviar. Também haverá um banner na página de índice de event streams notificando um usuário do OneSignal sobre problemas com um de seus event streams. Cada Event Stream tem um event.id único para cada evento. Isso pode ser usado como um cabeçalho ou no corpo da mensagem como uma forma de verificar e potencialmente desduplicar solicitações se você vir as mesmas chegando.

Dicas para Sucesso

  • Normalmente, você desejará que os event streams se conectem aos seus próprios servidores, não a serviços de terceiros.
    • Embora não haja nada de errado em se conectar diretamente a um terceiro, o seguinte pode ser mais difícil de gerenciar: Será mais desafiador configurar/depurar
  • O volume de solicitações não será gerenciado no OneSignal.
    • Os eventos de event stream serão enviados tão rápido quanto os usuários atingirem as etapas em sua jornada e isso pode sobrecarregar outros serviços, atingir limites de taxa ou aumentar SUA conta inesperadamente. Isso é especialmente comum ao tentar usar outro canal de mensagens para algo como SMS. A flexibilidade dos event streams significa que o OneSignal não sabe o que você está tentando realizar com eles, então você pode querer criar um serviço simples próprio que aceite as solicitações do event stream e, em seguida, lide corretamente com seus limites de conexão de terceiros, limites de taxa e fila.
  • Muitos serviços têm APIs HTTP públicas, o que significa que você pode se conectar a eles com um event stream; procure seus documentos de API e exemplos de como fazer uma solicitação HTTP para encontrar o lugar certo para começar.

Limitações de dados de eventos de mensagem

Os dados de mensagens enviadas por nossas Journeys ou API estão disponíveis em nosso sistema apenas por 30 dias. Isso significa que quaisquer eventos de mensagem (como cliques, aberturas, cancelamentos de inscrição, etc.) que aconteçam 30+ dias após a mensagem de Journey ou API ser enviada, não estarão disponíveis no event stream. Isso pode aparecer como dados em branco ou ausentes em suas análises. Para contornar essa limitação, você pode correlacionar o message_id desses eventos de clique/abertura/cancelamento de inscrição com o evento enviado original que tem o mesmo message_id. O evento sent original deve ter os dados de mensagem relevantes (título, modelo, etc).

Testes

Use uma ferramenta como https://webhook.site/ e defina a Your unique URL fornecida no parâmetro URL no Event Stream com o método POST.

A URL corresponde à "Your unique URL" de webhook.site

Defina os eventos que você deseja rastrear. Neste exemplo, usaremos os eventos push, mas qualquer um funcionará.

Eventos de mensagem push selecionados, mas qualquer um pode ser usado para testes.

Neste exemplo, usaremos o Exemplo de corpo acima. Salve o evento e coloque-o no ar. Envie uma mensagem para acionar o evento. Em webhook.site veremos o evento com os seguintes dados:

Exemplo usando webhook.site

Isso mostra o seguinte:
  • Host: o endereço IP de onde a solicitação veio. Consulte Visão geral da API REST para uma lista de IPs possíveis.
  • Request Content: os dados enviados dentro do corpo do event stream.