Passer au contenu principal

Vue d’ensemble

L’intégration OneSignal + MotherDuck permet la synchronisation automatique des événements personnalisés depuis vos bases de données MotherDuck vers OneSignal pour déclencher des campagnes de messagerie automatisées et des parcours basés sur le comportement des utilisateurs. MotherDuck est un service DuckDB dans le cloud qui offre des capacités OLAP (Traitement analytique en ligne) rapides avec la simplicité du SQL.

Prérequis

  • Accès aux Event Streams pour les événements de message sortants (Les limitations de forfait et les dépassements s’appliquent)
  • Accès aux Événements personnalisés pour la synchronisation des événements entrants (Les limitations de forfait et les dépassements s’appliquent)
  • Forfait de compte mis à jour (non disponible sur les applications gratuites)

MotherDuck

  • Compte MotherDuck avec accès à la base de données
  • Token de service pour l’authentification
  • Base de données contenant les données d’événement
  • Tables ou vues avec des informations d’événement structurées

Configuration

1

Créer un token de service MotherDuck

Générez un token d’accès pour permettre à OneSignal de se connecter à MotherDuck :
  1. Connectez-vous à l’interface web MotherDuck sur app.motherduck.com
  2. Cliquez sur votre profil dans le coin supérieur gauche
  3. Naviguez vers Paramètres > Général > Tokens d’accès
  4. Cliquez sur Créer un token
  5. Définissez la date d’expiration (ou laissez illimité)
  6. Copiez le token de service généré
2

Préparer vos données d'événement

Assurez-vous que votre base de données MotherDuck contient des tables d’événements correctement structurées :
-- Exemple de structure de table d'événements
CREATE TABLE user_events (
    event_name VARCHAR,
    user_id VARCHAR,
    event_timestamp TIMESTAMP,
    event_properties JSON,
    session_id VARCHAR
);
3

Se connecter à OneSignal

Dans OneSignal, allez dans Data > Integrations et cliquez sur Add Integration.Sélectionnez MotherDuck et fournissez :
  • Token de service : Token de l’étape 1
  • Nom de la base de données : Le nom de votre base de données MotherDuck
  • Chaîne de connexion : md:votre_nom_de_base_de_données
4

Configurer la synchronisation des données

Sélectionnez les tables ou rédigez des requêtes SQL personnalisées pour définir quelles données d’événement synchroniser :
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_properties
FROM user_events
WHERE event_timestamp >= CURRENT_DATE - INTERVAL 7 DAYS

Mappage des données d’événement

Mappez vos au format des événements personnalisés de OneSignal :
Champ OneSignalDescriptionRequis
nameevent_nameIdentifiant de l’événementOui
external_iduser_idIdentifiant de l’utilisateurOui
timestampevent_timestampQuand l’événement s’est produitNon
propertiesevent_dataNon

Exemple de requête d’événement

-- Requête d'événement optimisée pour la synchronisation OneSignal
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

Modes de traitement

Mode table

Synchronisez des tables entières directement depuis votre base de données MotherDuck. OneSignal mappera automatiquement les colonnes aux champs d’événement.

Mode requête SQL

Rédigez des requêtes SQL DuckDB personnalisées pour transformer et filtrer vos données d’événement :
-- Agrégation d'événements avancée
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)

Limitations

  • La complexité des requêtes affecte les performances de synchronisation
  • Les grands ensembles de résultats peuvent impacter la vitesse de synchronisation
  • L’analyse JSON nécessite un typage de colonne approprié

FAQ

Comment optimiser les performances des requêtes dans MotherDuck ?

Utilisez les avantages du stockage en colonnes de DuckDB en sélectionnant uniquement les colonnes nécessaires et en appliquant les filtres tôt dans vos requêtes.

Puis-je synchroniser depuis plusieurs bases de données MotherDuck ?

Oui, vous pouvez créer des intégrations distinctes pour chaque base de données MotherDuck dans votre compte.