Saltar al contenido principal

Resumen

La integración de OneSignal + MotherDuck permite la sincronización automática de eventos personalizados desde tus bases de datos de MotherDuck a OneSignal para activar campañas de mensajería automatizadas y Journeys basados en comportamiento de usuario. MotherDuck es un servicio DuckDB-en-la-nube que proporciona capacidades OLAP (Procesamiento Analítico en Línea) rápidas con la simplicidad de SQL.

Requisitos

MotherDuck

  • Cuenta de MotherDuck con acceso a base de datos
  • Token de servicio para autenticación
  • Base de datos que contenga datos de eventos
  • Tablas o vistas con información de eventos estructurada

Configuración

1

Crear token de servicio de MotherDuck

Genera un token de acceso para que OneSignal se conecte a MotherDuck:
  1. Inicia sesión en la interfaz web de MotherDuck en app.motherduck.com
  2. Haz clic en tu perfil en la esquina superior izquierda
  3. Navega a Settings > General > Access Tokens
  4. Haz clic en Create Token
  5. Establece la fecha de vencimiento (o déjala ilimitada)
  6. Copia el token de servicio generado
2

Preparar tus datos de eventos

Asegúrate de que tu base de datos de MotherDuck contenga tablas de eventos estructuradas correctamente:
-- 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 a OneSignal

In OneSignal, go to Data > Integrations and click Add Integration.Selecciona MotherDuck y proporciona:
  • Service Token: Token del Paso 1
  • Database Name: El nombre de tu base de datos de MotherDuck
  • Connection String: md:nombre_de_tu_base_de_datos
4

Configurar sincronización de datos

Selecciona las tablas o escribe consultas SQL personalizadas para definir qué datos de eventos sincronizar:
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_properties
FROM user_events
WHERE event_timestamp >= CURRENT_DATE - INTERVAL 7 DAYS

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

Ejemplo de consulta de eventos

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

Modo de tabla

Sincroniza tablas completas directamente desde tu base de datos de MotherDuck. OneSignal mapeará automáticamente las columnas a campos de eventos.

Modo de consulta SQL

Escribe consultas SQL personalizadas de DuckDB para transformar y filtrar tus datos 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)

Limitaciones

  • La complejidad de consultas afecta el rendimiento de sincronización
  • Conjuntos de resultados grandes pueden impactar la velocidad de sincronización
  • El análisis de JSON requiere tipado de columnas apropiado

Preguntas frecuentes

¿Cómo optimizo el rendimiento de consultas en MotherDuck?

Aprovecha las ventajas del almacenamiento columnar de DuckDB seleccionando solo las columnas necesarias y aplicando filtros temprano en tus consultas.

¿Puedo sincronizar desde múltiples bases de datos de MotherDuck?

Sí, puedes crear integraciones separadas para cada base de datos de MotherDuck en tu cuenta.