Pular para o conteúdo principal

Visão geral da integração OneSignal Snowflake


Visão geral

A integração OneSignal + Snowflake suporta dois poderosos pipelines de dados:
  • Exportar: Envie automaticamente dados de eventos de mensagens (push, email, SMS, in-app) do OneSignal para o Snowflake para análise e relatórios.
  • Importar: Sincronize eventos personalizados de usuários dos seus datasets do Snowflake para o OneSignal para acionar Journeys automatizados e mensagens personalizadas.
Juntas, essas integrações oferecem controle completo sobre dados de engajamento do usuário—impulsionando análises avançadas e mensagens em tempo real baseadas em comportamento.

Exportar eventos do OneSignal para o Snowflake

Envie eventos de desempenho e engajamento de mensagens (por exemplo, envios, aberturas, cliques) para o Snowflake para:
  • Construir dashboards e relatórios personalizados
  • Rastrear tendências de entrega e engajamento entre canais
  • Combinar dados do OneSignal com outros dados de negócios para análise
Requisitos
  • Plano Professional do OneSignal (não disponível em apps gratuitos).
  • Conta Snowflake
  • Certifique-se de que sua conta Snowflake tem as funções IMPORT SHARE e CREATE DATABASE.
    • Recomendamos usar a função ACCOUNTADMIN para aceitar o compartilhamento.
Etapas de Configuração

1. Inscrever-se

Para ativar a integração Snowflake, você precisará solicitar acesso através da listagem no Marketplace do OneSignal para Message Events Data. De lá, entraremos em contato com sua equipe para obter mais informações.

2. Fornecer Informações da Conta

Uma vez que nos conectamos com sua equipe, você precisará fornecer alguns detalhes para que possamos compartilhar dados com você. Precisaremos do seu ID da Conta Snowflake e do seu ID da Organização Snowflake. A maneira mais fácil de obter essas informações é clicar no botão “Copiar identificador da conta” (como mostrado abaixo).
Você deve estar em contato conosco através da listagem no Marketplace do OneSignal. No entanto, se você tiver mais perguntas sobre fornecer informações da conta, pode enviar um email para snowflake-data-sharing@onesignal.com

Copiando identificador da conta Snowflake

Uma vez aceito no programa, fique atento para alguns itens:
  • Email do OneSignal dando as boas-vindas ao programa
  • Email do Snowflake notificando que o compartilhamento de dados está completo

Email de notificação de compartilhamento de dados do Snowflake

3. Aceitar compartilhamento de dados no Snowflake

Uma vez que você receba um email do Snowflake notificando sobre a conclusão do compartilhamento de dados, você deve conseguir fazer login no app Snowflake e aceitar o compartilhamento de dados. Navegue para DataPrivate Sharing onde você deve conseguir ver uma nova Listagem Compartilhada Privadamente. Uma vez que você clicar em Get, seus dados começarão a replicar para sua região.

Interface de compartilhamento privado do Snowflake

Nota: Se o botão Get não estiver disponível, mas um botão Request estiver, as permissões da função que está tentando fazer o compartilhamento não incluem CREATE DATABASE ou IMPORT SHARE. Sugerimos mudar para a função ACCOUNTADMIN. Levará algum tempo para os dados serem replicados. O Snowflake enviará um email adicional uma vez que os dados estejam disponíveis. Você deve ver um diálogo como este

Diálogo de status de replicação de dados

Uma vez que os dados estejam prontos para uso, sua listagem deve ter um novo botão Get disponível. Clique no botão Get e você será recebido com um novo diálogo

Diálogo de configuração de banco de dados

Defina o nome do banco de dados e funções do banco de dados para algo de sua preferência. Em seguida, clique em Get

Conclusão da configuração de compartilhamento de dados

É isso! Os dados agora estão sendo sincronizados do OneSignal para o Snowflake. A cadência de sincronização está definida para uma vez a cada 24 horas, então os dados iniciais podem não estar disponíveis até o dia seguinte.

Eventos e Propriedades

Uma visão geral dos dados disponíveis no Marketplace do Snowflake

Dados de Eventos de Mensagens

Consulte Event Streams para mais detalhes. Para cada evento de mensagem gerado por um usuário, os seguintes metadados serão anexados ao registro.
Nome da ColunaTipoDescriçãoExemplo
event_idUUIDUm ID único que representa o eventodc76df03-287c-403a-aabd-b2d4fe44e5c6
event_kindstringO tipo de evento que ocorreu. A lista de tipos de eventos pode ser encontrada aqui.message.email.opened
event_impression_timestampunix_timestampO momento em que o OneSignal processa o evento1684951205
subscription_idUUIDUm ID único que representa o dispositivo/assinatura6e8b6978-75a4-4882-878c-2d15a78c2409
subscription_languagestringO idioma desta assinaturaen
subscription_timezoneintegerO fuso horário especificado desta assinatura-25200
subscription_device_typestringO tipo de dispositivo que esta assinatura usa.SMS
onesignal_idUUIDO onesignal_id do usuário que fez a impressãodc76df03-287c-403a-aabd-b2d4fe44e5c6
external_idstringO external_id do usuário que fez a impressãoMyExternalId
message_idUUIDUm ID único que representa a mensagemdc76df03-287c-403a-aabd-b2d4fe44e5c6
message_namestringO id legível por humanos da Notificação/MensagemCampaign 1
message_titlestringO Título da Notificação/Mensagem.Apenas em inglês no momentoBonus 50 coins when you play!
message_bodystringO Corpo da mensagem. (Truncado) Apenas em inglês no momento.Play against your friends and earn an additional...

Tipos de Eventos de Mensagens

Consulte Event Streams para mais detalhes. Eventos de Mensagens são a primeira categoria de dados que estaremos oferecendo no Marketplace do Snowflake. Entre em contato conosco em snowflake-data-sharing@onesignal.com com quaisquer solicitações de categorias adicionais de dados!

Retenção de Dados

Os dados compartilhados do OneSignal via Snowflake são retidos por um período de 30 dias. Para garantir a preservação de dados além desse prazo, recomendamos que você copie os dados relevantes para suas próprias tabelas.

Importar eventos do Snowflake

Envie dados de eventos comportamentais do Snowflake para o OneSignal para:
  • Acionar Journeys com base na atividade do usuário
  • Personalizar mensagens com base em dados comportamentais
Requisitos
  • Conta Snowflake com acesso a warehouse
  • Dados de eventos armazenados em tabelas ou views do Snowflake
  • Conectividade de rede do OneSignal para sua instância Snowflake
  • Credenciais de usuário com permissões apropriadas
Etapas de Configuração
1

Criar função dedicada para o OneSignal

Crie uma hierarquia de funções seguindo as melhores práticas do Snowflake:
-- Create a role for the census user
CREATE ROLE CENSUS_ROLE;

-- Ensure the sysadmin role inherits any privileges the census role is granted
GRANT ROLE CENSUS_ROLE TO ROLE SYSADMIN;
2

Criar warehouse dedicado

Crie um warehouse otimizado para custos para operações do OneSignal:
-- Create a warehouse for the census role, optimizing for cost over performance
CREATE WAREHOUSE CENSUS_WAREHOUSE WITH
    WAREHOUSE_SIZE = XSMALL
    AUTO_SUSPEND = 60
    AUTO_RESUME = TRUE
    INITIALLY_SUSPENDED = FALSE;

GRANT USAGE ON WAREHOUSE CENSUS_WAREHOUSE TO ROLE CENSUS_ROLE;
GRANT OPERATE ON WAREHOUSE CENSUS_WAREHOUSE TO ROLE CENSUS_ROLE;
GRANT MONITOR ON WAREHOUSE CENSUS_WAREHOUSE TO ROLE CENSUS_ROLE;
3

Criar usuário e conceder permissões

Crie o usuário OneSignal e conceda acesso aos seus dados de eventos:
-- Create the census user
CREATE USER CENSUS WITH
    DEFAULT_ROLE = CENSUS_ROLE
    DEFAULT_WAREHOUSE = CENSUS_WAREHOUSE
    PASSWORD = '<strong-unique-password>';

GRANT ROLE CENSUS_ROLE TO USER CENSUS;

-- Grant access to your event data (replace with your actual database/schema)
GRANT USAGE ON DATABASE "<your-database>" TO ROLE CENSUS_ROLE;
GRANT USAGE ON SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON ALL TABLES IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON FUTURE TABLES IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON ALL VIEWS IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON FUTURE VIEWS IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
4

Criar banco de dados de contabilidade (Advanced Sync Engine)

Crie um banco de dados privado para gerenciamento de estado de sincronização do OneSignal:
-- Create a private bookkeeping database
CREATE DATABASE "CENSUS";
GRANT ALL PRIVILEGES ON DATABASE "CENSUS" TO ROLE CENSUS_ROLE;

CREATE SCHEMA "CENSUS"."CENSUS";
GRANT ALL PRIVILEGES ON SCHEMA "CENSUS"."CENSUS" TO ROLE CENSUS_ROLE;
GRANT CREATE STAGE ON SCHEMA "CENSUS"."CENSUS" TO ROLE CENSUS_ROLE;
Pule esta etapa se estiver usando Basic Sync Engine ou modo somente leitura.
5

Configurar autenticação

Configure autenticação por par de chaves (recomendado) para segurança aprimorada:
  1. Gere um par de chaves pública/privada seguindo a documentação do Snowflake
  2. Configure a chave pública no seu usuário Snowflake
  3. Use a chave privada nas configurações de conexão do OneSignal
Alternativamente, você pode usar autenticação por senha (descontinuada - será bloqueada em novembro de 2025).
6

Conectar ao OneSignal

In OneSignal, go to Data > Integrations and click Add Integration.Selecione Snowflake e forneça os seguintes detalhes de conexão:
  • Nome da Conta: Seu identificador de conta Snowflake (por exemplo, abc123.us-east-1)
  • Warehouse: CENSUS_WAREHOUSE
  • Usuário: CENSUS
  • Banco de Dados: Nome do banco de dados de eventos
  • Schema: Nome do schema de dados de eventos
  • Autenticação: Par de chaves (forneça chave privada e senha opcional)

Event data mapping

Map your to OneSignal’s custom events format:
OneSignal FieldDescriptionRequired
nameevent_nameEvent identifierYes
external_iduser_idUser identifierYes
timestampevent_timestampWhen event occurredNo
propertiesevent_dataNo

Exemplo de Schema de Tabela de Eventos

-- Example Snowflake event table
CREATE TABLE analytics.user_events (
    event_id STRING,
    event_name STRING NOT NULL,
    user_id STRING NOT NULL,
    event_timestamp TIMESTAMP_TZ DEFAULT CURRENT_TIMESTAMP(),
    event_properties VARIANT,
    session_id STRING,
    device_type STRING
);

Modo de Consulta SQL

Escreva consultas SQL personalizadas para transformar seus dados de eventos:
-- Example: Recent high-value events
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_properties
FROM analytics.user_events
WHERE event_timestamp >= DATEADD(day, -7, CURRENT_TIMESTAMP())
    AND event_properties:value::NUMBER > 100
ORDER BY event_timestamp DESC;

Configuração avançada

Gerenciando Custos de Warehouse

  • Use tamanho de warehouse X-Small para otimização de custos
  • Configure auto-suspend (60 segundos) e auto-resume
  • Agende sincronizações durante horários fora de pico
  • Considere compartilhar warehouse com outros sistemas de processamento em lote

Suporte a Sincronizações ao Vivo

Para processamento de eventos em tempo real, habilite rastreamento de alterações nas suas tabelas de eventos:
ALTER TABLE "analytics"."user_events" SET CHANGE_TRACKING = TRUE;

Segurança de Rede

Se estiver usando a política de rede Allowed IPs do Snowflake, adicione os endereços IP do OneSignal à sua lista de permissões. Entre em contato com o suporte do OneSignal para os intervalos de IP atuais.

Limitações

  • Consultas analíticas complexas podem impactar o desempenho e custos do warehouse
  • Autenticação de Usuário/Senha será descontinuada em novembro de 2025
  • O banco de dados CENSUS é reservado apenas para operações do OneSignal

Desconectar compartilhamento de dados com o OneSignal

Envie-nos um email em snowflake-data-sharing@onesignal.com para solicitar a desativação do seu compartilhamento de dados com o OneSignal.

FAQ

Qual método de autenticação devo usar?

Use autenticação por par de chaves (recomendado). A autenticação de Usuário/Senha será bloqueada pelo Snowflake a partir de novembro de 2025.

Posso usar um warehouse existente?

Sim, você pode compartilhar um warehouse com outros sistemas de processamento em lote como dbt ou Fivetran para otimizar custos. Certifique-se de que o warehouse tem capacidade suficiente para suas necessidades de processamento de eventos.

Como posso otimizar custos?

  • Use tamanho de warehouse X-Small
  • Configure auto-suspend agressivo (60 segundos)
  • Agende sincronizações durante horários fora de pico
  • Use sincronizações horárias/diárias em vez de sincronização contínua