Skip to main content

Visão geral da integração OneSignal Snowflake


Visão geral

A integração OneSignal + Snowflake suporta dois pipelines de dados poderosos:
  • Exportação: Envie automaticamente dados de eventos de mensagens (push, e-mail, SMS, in-app) do OneSignal para o Snowflake para análise e relatórios.
  • Importação: Sincronize eventos personalizados de usuários dos seus conjuntos de dados do Snowflake para o OneSignal para acionar Jornadas automatizadas e mensagens personalizadas.
Juntas, essas integrações oferecem controle completo sobre os dados de engajamento do usuário—alimentando 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:
  • Criar dashboards e relatórios personalizados
  • Rastrear tendências de entrega e engajamento em todos os canais
  • Combinar dados do OneSignal com outros dados de negócios para análise
Requisitos
  • OneSignal Plano Professional (não disponível em aplicativos gratuitos).
  • Conta Snowflake
  • Certifique-se de que sua conta Snowflake tenha as funções IMPORT SHARE e CREATE DATABASE.
    • Recomendamos usar a função ACCOUNTADMIN para aceitar o compartilhamento.
Etapas de configuração

1. Inscreva-se

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

2. Forneça informações da conta

Depois que nos conectarmos com sua equipe, você precisará nos 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 “Copy account identifier” (conforme mostrado abaixo).
Você deve estar em contato conosco através da listagem do OneSignal no Marketplace. No entanto, se você tiver mais perguntas sobre como fornecer informações da conta, pode enviar um e-mail para [email protected]

Copiando o identificador da conta Snowflake

Depois de ser aceito no programa, fique atento aos seguintes itens:
  • E-mail do OneSignal dando as boas-vindas ao programa
  • E-mail do Snowflake notificando que o compartilhamento de dados está completo

E-mail de notificação de compartilhamento de dados do Snowflake

3. Aceite o compartilhamento de dados no Snowflake

Depois de receber um e-mail do Snowflake notificando que o compartilhamento de dados está completo, você deverá fazer login no aplicativo Snowflake e aceitar o compartilhamento de dados. Navegue até DataPrivate Sharing, onde você deve ver uma nova Privately Shared Listing. Depois de clicar em Get, seus dados começarão a ser replicados para sua região.

Interface de compartilhamento privado do Snowflake

Observação: Se o botão Get não estiver disponível, mas houver um botão Request, 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 que os dados sejam replicados. O Snowflake enviará um e-mail adicional assim que os dados estiverem disponíveis. Você deve ver uma caixa de diálogo como esta

Caixa de diálogo de status de replicação de dados

Quando os dados estiverem prontos para uso, sua listagem deve ter um novo botão Get disponível. Clique no botão Get e você será recebido com uma nova caixa de diálogo

Caixa de diálogo de configuração do banco de dados

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

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

Pronto! Os dados agora estão sendo sincronizados do OneSignal para o Snowflake. A cadência de sincronização é definida como uma vez a cada 24 horas, portanto, 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.
Column NameTypeDescriptionExample
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 usaSMS
onesignal_idUUIDO onesignal_id do usuário que gerou a impressãodc76df03-287c-403a-aabd-b2d4fe44e5c6
external_idstringO external_id do usuário que gerou a impressãoMyExternalId
message_idUUIDUm ID único que representa a mensagemdc76df03-287c-403a-aabd-b2d4fe44e5c6
message_namestringO ID legível da Notificação/MensagemCampaign 1
message_titlestringO título da Notificação/Mensagem.Somente inglês no momentoBonus 50 coins when you play!
message_bodystringO corpo da mensagem. (Truncado) Somente inglês no momentoPlay against your friends and earn an additional...

Tipos de eventos de mensagens

Consulte Event Streams para mais detalhes. Os eventos de mensagens são a primeira categoria de dados que ofereceremos no Marketplace do Snowflake. Entre em contato conosco em [email protected] com qualquer solicitação de categorias adicionais de dados!

Retenção de dados

Os dados compartilhados do OneSignal através do Snowflake são retidos por um período de 30 dias. Para garantir a preservação de dados além desse período, 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 Jornadas com base na atividade do usuário
  • Personalizar mensagens com base em dados comportamentais
Requisitos
  • Acesso a Event Streams para eventos de mensagem de saída (Limitações de plano e excedentes se aplicam)
  • Acesso a Custom Events para sincronização de eventos de entrada (Limitações de plano e excedentes se aplicam)
  • Plano de Conta Atualizado (não disponível em apps gratuitos)
  • Conta Snowflake com acesso ao warehouse
  • Dados de eventos armazenados em tabelas ou visualizações 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 com custo otimizado 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 do 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 o Basic Sync Engine ou modo somente leitura.
5

Configurar autenticação

Configure a autenticação por par de chaves (recomendado) para maior segurança:
  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
Como alternativa, você pode usar autenticação por senha (obsoleto - será bloqueado em novembro de 2025).
6

Conectar ao OneSignal

No OneSignal, vá para Data > Integrations e clique em Add Integration.Selecione Snowflake e forneça os seguintes detalhes de conexão:
  • Account Name: Seu identificador de conta Snowflake (por exemplo, abc123.us-east-1)
  • Warehouse: CENSUS_WAREHOUSE
  • User: CENSUS
  • Database: Nome do banco de dados dos seus dados de eventos
  • Schema: Nome do schema dos seus dados de eventos
  • Authentication: Key-pair (forneça a chave privada e frase secreta opcional)

Mapeamento de dados de evento

Mapeie seu para o formato de eventos personalizados do OneSignal:
Campo OneSignalDescriçãoObrigatório
nameevent_nameIdentificador de eventoSim
external_iduser_idIdentificador de usuárioSim
timestampevent_timestampQuando o evento ocorreuNão
propertiesevent_dataNão

Esquema de tabela de eventos de exemplo

-- 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

Gerenciamento de custos do warehouse

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

Suporte a sincronizações ao vivo

Para processamento de eventos em tempo real, habilite o 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 obter os intervalos de IP atuais.

Limitações

  • Consultas analíticas complexas podem impactar o desempenho e os custos do warehouse
  • A autenticação por 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 um e-mail para [email protected] 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 por 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 tenha capacidade suficiente para suas necessidades de processamento de eventos.

Como posso otimizar custos?

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