Se você estiver usando o Snowflake com a integração legada do OneSignal, consulte o guia Integração Legada do Snowflake.

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.
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
- OneSignal Plano Professional (não disponível em aplicativos gratuitos)
- Conta Snowflake
- Função SECURITYADMIN ou ACCOUNTADMIN no Snowflake (para configuração)
1. Reúna os detalhes da sua conta Snowflake
Antes de configurar a integração, colete as seguintes informações da sua conta Snowflake:- Snowflake Host: A URL da sua conta no formato
<account_identifier>.snowflakecomputing.com - Nome do banco de dados: O banco de dados onde o OneSignal gravará os dados de eventos
- Nome do schema: O schema dentro do banco de dados para as tabelas do OneSignal (será criado automaticamente pelo OneSignal)
- Nome do warehouse: O warehouse a ser usado para operações de carregamento de dados

Localização do identificador da conta Snowflake
2. Execute o script de configuração no Snowflake
Execute o seguinte script SQL no seu warehouse Snowflake para criar a função, o usuário, o warehouse e o banco de dados necessários para o OneSignal:Você pode personalizar os valores das variáveis no topo do script para corresponder às suas convenções de nomenclatura. Se você estiver usando um warehouse ou banco de dados existente, modifique o script de acordo.
3. Gere o par de chaves para autenticação
O OneSignal requer autenticação por par de chaves para acesso seguro à sua conta Snowflake. Siga estas etapas para gerar e configurar as chaves:1
Gere uma chave privada
Execute um dos seguintes comandos para gerar uma chave privada:Chave privada não criptografada (mais simples, mas menos segura):Chave privada criptografada (recomendado para produção):Se usar uma chave criptografada, você será solicitado a criar uma frase secreta. Salve esta frase secreta com segurança—você precisará dela ao configurar o OneSignal.
2
Gere a chave pública
Gere a chave pública a partir da sua chave privada:
3
Atribua a chave pública ao seu usuário Snowflake
Copie o conteúdo do arquivo de chave pública (excluindo as linhas de cabeçalho e rodapé) e execute este comando SQL no Snowflake:Substitua
<YOUR_PUBLIC_KEY_CONTENT> pelo conteúdo da chave (sem as linhas -----BEGIN PUBLIC KEY----- e -----END PUBLIC KEY-----).4. Conecte o OneSignal
1
Ative a integração
No OneSignal, navegue até Data > Integrations > Snowflake.
2
Insira os detalhes
- Host:
<your_account>.snowflakecomputing.com - Database: por exemplo,
ONESIGNAL - Schema
- Table: por exemplo,
message_events - User:
ONESIGNAL_USER(ou o nome de usuário que você criou) - Private Key: Cole o conteúdo do seu arquivo de chave privada (
rsa_key.p8) - Private Key Passphrase (opcional, somente se sua chave privada estiver criptografada)
3
Configure a integração
- Sync Frequency: com frequência de até a cada 15 minutos
- Schema/Table Names: pré-definidos como
onesignal_events_<app-id>emessage_events(editável) - Event Types: escolha quais sincronizar—selecione todos ou apenas o que você precisa
4
Selecione eventos
Selecione os eventos que você deseja receber no seu warehouse Snowflake.
5
Conclua a configuração
Clique em Save e aguarde a confirmação de sucesso
A sincronização inicial de dados pode levar de 15 a 30 minutos para aparecer no Snowflake.Enquanto espera, envie mensagens por push, e-mail, in-app ou SMS para acionar os eventos selecionados.
5. Visualize dados no Snowflake
Depois que a sincronização inicial for concluída, consulte seus dados de eventos do OneSignal:Se você encontrar problemas como schemas ausentes, erros de permissão ou eventos malformados, entre em contato com
[email protected].Eventos e propriedades de mensagem
Tipos de evento de mensagem
Propriedade:event_kind
Tipo: String
O tipo de mensagem e evento (por exemplo, message.push.received, message.push.sent).
| Evento de Mensagem (OneSignal) | event_kind | Descrição |
|---|---|---|
| Push Sent | message.push.sent | Notificação push enviada com sucesso. |
| Push Received | message.push.received | Push entregue (veja Entrega Confirmada). |
| Push Clicked | message.push.clicked | Usuário clicou no push. |
| Push Failed | message.push.failed | Falha de entrega. Veja relatórios de mensagens. |
| Push Unsubscribed | message.push.unsubscribed | Usuário cancelou inscrição de push. |
| In-App Impression | message.iam.displayed | Mensagem in-app mostrada. |
| In-App Clicked | message.iam.clicked | Mensagem in-app clicada. |
| In-App Page Viewed | message.iam.pagedisplayed | Página in-app mostrada. |
| Email Sent | message.email.sent | Email entregue. |
| Email Received | message.email.received | Email aceito pelo servidor de email do destinatário. |
| Email Opened | message.email.opened | Email aberto. Veja Relatórios de Email. |
| Email Link Clicked | message.email.clicked | Link no email clicado. |
| Email Unsubscribed | message.email.unsubscribed | Destinatário cancelou inscrição. |
| Email Marked Spam | message.email.resporedasspam | Marcado como spam. Veja Deliverability de Email. |
| Email Bounced | message.email.hardbounced | Bounce devido a falha permanente de entrega. |
| Email Failed | message.email.failed | Entrega falhou. |
| Email Suppressed | message.email.supressed | Suprimido devido a lista de supressão. |
| SMS Sent | message.sms.sent | SMS enviado. |
| SMS Delivered | message.sms.delivered | SMS entregue com sucesso. |
| SMS Failed | message.sms.failed | SMS falhou ao entregar. |
| SMS Undelivered | message.sms.undelivered | SMS rejeitado ou inalcançável. |
Schema de dados de evento
Para cada evento de mensagem gerado por um usuário, os seguintes metadados serão anexados ao registro.| Nome da Coluna | Tipo | Descrição |
|---|---|---|
event_id | UUID | Identificador único para o evento |
event_timestamp | Timestamp | Horário de ocorrência do evento |
event_kind | String | O Tipo de Evento |
subscription_device_type | String | Tipo de dispositivo (por exemplo, iOS, Android, Web, Email, SMS) |
language | String | Código de idioma da inscrição |
version | String | Versão da integração |
device_os | String | Versão do sistema operacional do dispositivo |
device_type | Number | Tipo de dispositivo numérico |
token | String | Token push, número de telefone ou email |
subscription_id | UUID | ID da inscrição |
subscribed | Boolean | Status da inscrição |
onesignal_id | UUID | ID de usuário OneSignal |
last_active | String | Timestamp da última atividade |
sdk | String | Versão do SDK OneSignal |
external_id | String | ID de usuário externo que deve corresponder ao ID de usuário da integração |
app_id | UUID | App ID do OneSignal |
template_id | UUID | Template ID (se aplicável) |
message_id | UUID | ID de lote/requisição de mensagem |
message_name | String | Nome da mensagem |
message_title | String | Título da mensagem (apenas em inglês) |
message_contents | String | Corpo da mensagem truncado (apenas em inglês) |
_created, _id, _index, _fivetran_synced | Uso interno | Metadados de sincronização Fivetran |
Notas
- Sincronizações após salvar/ativar podem levar 15-30 minutos adicionais para completar.
- Desativar ainda pode resultar em uma sincronização final após desativação.
- Para garantir sincronização eficiente de dados, nosso sistema cria e gerencia automaticamente datasets de staging. Estes datasets, nomeados com um padrão como
fivetran_{duas palavras aleatórias}_staging, armazenam temporariamente dados durante o processamento antes de serem integrados ao seu schema principal. Estes datasets de staging são essenciais para manter um fluxo de trabalho otimizado e não devem ser deletados, pois serão automaticamente recriados.
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
- 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
1
Criar função dedicada para o OneSignal
Crie uma hierarquia de funções seguindo as melhores práticas do Snowflake:
2
Criar warehouse dedicado
Crie um warehouse com custo otimizado para operações do OneSignal:
3
Criar usuário e conceder permissões
Crie o usuário do OneSignal e conceda acesso aos seus dados de eventos:
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:
5
Configurar autenticação
Configure a autenticação por par de chaves (recomendado) para maior segurança:
- Gere um par de chaves pública/privada seguindo a documentação do Snowflake
- Configure a chave pública no seu usuário Snowflake
- Use a chave privada nas configurações de conexão do OneSignal
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 OneSignal | Descrição | Obrigatório | |
|---|---|---|---|
name | event_name | Identificador de evento | Sim |
external_id | user_id | Identificador de usuário | Sim |
timestamp | event_timestamp | Quando o evento ocorreu | Não |
properties | event_data | Não |
Esquema de tabela de eventos de exemplo
Modo de consulta SQL
Escreva consultas SQL personalizadas para transformar seus dados de eventos: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: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
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