Pular para o conteúdo principal

Visão geral

A integração OneSignal + MotherDuck permite a sincronização automática de eventos personalizados dos seus bancos de dados MotherDuck para o OneSignal para acionar campanhas de mensagens automatizadas e Journeys com base no comportamento do usuário. MotherDuck é um serviço DuckDB-na-nuvem que fornece capacidades OLAP (Processamento Analítico Online) rápidas com a simplicidade do SQL.

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)

MotherDuck

  • Conta MotherDuck com acesso ao banco de dados
  • Token de serviço para autenticação
  • Banco de dados contendo dados de eventos
  • Tabelas ou visualizações com informações de eventos estruturadas

Configuração

1

Criar token de serviço MotherDuck

Gere um token de acesso para o OneSignal se conectar ao MotherDuck:
  1. Faça login na Interface Web do MotherDuck em app.motherduck.com
  2. Clique em seu perfil no canto superior esquerdo
  3. Navegue até Settings > General > Access Tokens
  4. Clique em Create Token
  5. Defina a data de expiração (ou deixe ilimitado)
  6. Copie o token de serviço gerado
2

Preparar seus dados de eventos

Certifique-se de que seu banco de dados MotherDuck contenha tabelas de eventos adequadamente estruturadas:
-- Example event table structure
CREATE TABLE user_events (
    event_name VARCHAR,
    user_id VARCHAR,
    event_timestamp TIMESTAMP,
    event_properties JSON,
    session_id VARCHAR
);
3

Conectar ao OneSignal

No OneSignal, vá para Data > Integrations e clique em Add Integration.Selecione MotherDuck e forneça:
  • Service Token: Token do Passo 1
  • Database Name: Nome do seu banco de dados MotherDuck
  • Connection String: md:your_database_name
4

Configurar sincronização de dados

Selecione as tabelas ou escreva consultas SQL personalizadas para definir quais dados de eventos sincronizar:
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_properties
FROM user_events
WHERE event_timestamp >= CURRENT_DATE - INTERVAL 7 DAYS

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

Exemplo de Consulta de Evento

-- Optimized event query for OneSignal sync
SELECT
    event_name,
    user_id,
    event_timestamp,
    {
        'source': 'motherduck',
        'session_id': session_id,
        'device_type': device_type,
        'value': event_value
    }::JSON as event_properties
FROM analytics.user_events
WHERE event_timestamp >= CURRENT_TIMESTAMP - INTERVAL 1 DAY
ORDER BY event_timestamp DESC

Modos de Processamento

Modo de Tabela

Sincronize tabelas inteiras diretamente do seu banco de dados MotherDuck. O OneSignal mapeará automaticamente as colunas para campos de evento.

Modo de Consulta SQL

Escreva consultas SQL DuckDB personalizadas para transformar e filtrar seus dados de eventos:
-- Advanced event aggregation
SELECT
    'daily_summary' as event_name,
    user_id,
    DATE_TRUNC('day', event_timestamp) as event_timestamp,
    {
        'total_events': COUNT(*),
        'unique_sessions': COUNT(DISTINCT session_id),
        'last_activity': MAX(event_timestamp)
    }::JSON as event_properties
FROM user_events
WHERE event_timestamp >= CURRENT_DATE - INTERVAL 7 DAYS
GROUP BY user_id, DATE_TRUNC('day', event_timestamp)

Limitações

  • A complexidade da consulta afeta o desempenho de sincronização
  • Conjuntos de resultados grandes podem impactar a velocidade de sincronização
  • A análise JSON requer tipagem adequada de coluna

FAQ

Como otimizo o desempenho de consulta no MotherDuck?

Use as vantagens de armazenamento colunar do DuckDB selecionando apenas as colunas necessárias e aplicando filtros no início de suas consultas.

Posso sincronizar de múltiplos bancos de dados MotherDuck?

Sim, você pode criar integrações separadas para cada banco de dados MotherDuck em sua conta.