Passer au contenu principal

Vue d’ensemble

L’intégration OneSignal + PostgreSQL permet la synchronisation des événements personnalisés de votre base de données PostgreSQL vers OneSignal pour déclencher des campagnes de messagerie automatisées et des parcours basés sur le comportement des utilisateurs.

Exigences

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

PostgreSQL

  • PostgreSQL 9.6+ ou base de données compatible
  • Utilisateur de base de données avec les permissions appropriées
  • Accès réseau de OneSignal à votre instance PostgreSQL
  • Tables d’événements contenant des données comportementales structurées
Nous recommandons fortement de ne pas connecter OneSignal à une base de données PostgreSQL de production. Les requêtes de synchronisation d’événements sont de nature analytique et peuvent impacter les performances de production. Utilisez uniquement avec des bases de données configurées pour les charges de travail analytiques.

Configuration

1

Créer un utilisateur dédié pour OneSignal

Créez un compte utilisateur dédié avec les permissions appropriées :
-- Create OneSignal user with strong password
CREATE USER CENSUS WITH PASSWORD '<strong-unique-password>';

-- Create private bookkeeping schema for sync state (skip if read-only mode)
CREATE SCHEMA CENSUS;

-- Grant full access to bookkeeping schema (skip if read-only mode)
GRANT ALL ON SCHEMA CENSUS TO CENSUS;

-- Ensure access to existing objects in bookkeeping schema (skip if read-only mode)
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA CENSUS TO CENSUS;
2

Accorder des permissions aux données d'événements

Fournissez un accès en lecture aux schémas contenant vos données d’événements :
-- Grant schema access (repeat for each schema with event data)
GRANT USAGE ON SCHEMA "<your_schema>" TO CENSUS;

-- Grant read access to existing tables
GRANT SELECT ON ALL TABLES IN SCHEMA "<your_schema>" TO CENSUS;

-- Grant read access to future tables
ALTER DEFAULT PRIVILEGES IN SCHEMA "<your_schema>" GRANT SELECT ON TABLES TO CENSUS;

-- Grant execute permissions on functions
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA "<your_schema>" TO CENSUS;
ALTER DEFAULT PRIVILEGES IN SCHEMA "<your_schema>" GRANT EXECUTE ON FUNCTIONS TO CENSUS;
3

Se connecter à OneSignal

Dans OneSignal, allez dans Data > Integrations et cliquez sur Add Integration.
  1. Sélectionnez PostgreSQL dans la liste
  2. Entrez vos détails de connexion :
    • Hôte : Le nom d’hôte de votre serveur PostgreSQL
    • Port : Généralement 5432
    • Base de données : Le nom de votre base de données
    • Nom d’utilisateur : CENSUS
    • Mot de passe : Le mot de passe que vous avez créé
  3. Testez la connexion
  4. Configurez quelles tables contiennent vos données d’événements

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 schéma de table d’événements

-- Example PostgreSQL event table
CREATE TABLE analytics.user_events (
    event_id SERIAL PRIMARY KEY,
    event_name VARCHAR(100) NOT NULL,
    user_id VARCHAR(255) NOT NULL,
    event_timestamp TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
    event_data JSONB,
    session_id VARCHAR(255),
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

Mode requête SQL

Écrivez des requêtes SQL personnalisées pour transformer vos données d’événements :
-- Example: Recent purchase events
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_data
FROM analytics.user_events
WHERE event_timestamp >= NOW() - INTERVAL '7 days'
    AND event_name = 'purchase'
ORDER BY event_timestamp DESC;

Configuration réseau avancée

OneSignal peut se connecter aux instances PostgreSQL en utilisant des contrôles réseau avancés :
  • Listes blanches d’IP : Ajoutez les adresses IP de OneSignal à votre pare-feu et pg_hba.conf
  • Tunneling SSH : Connectez-vous via un hôte bastion pour les réseaux privés
  • Configuration VPC : Connexion directe dans les environnements cloud
  • Chiffrement TLS : Connexions sécurisées utilisant SSL/TLS

Configuration du tunnel SSH

Pour les instances PostgreSQL sur des réseaux privés :
  1. Créer un utilisateur SSH : Configurez un utilisateur dédié sur votre hôte SSH
  2. Configurer le tunnel : Activez “Utiliser le tunnel SSH” dans les paramètres d’intégration OneSignal
  3. Installer la paire de clés : Ajoutez la clé publique de OneSignal à ~/.ssh/authorized_keys
  4. Tester la connexion : Vérifiez la connectivité du tunnel

Notes

  • Plusieurs schémas : Répétez les octrois de permissions pour chaque schéma contenant des données d’événements
  • Vues avec références inter-schémas : Peuvent nécessiter des permissions de lecture supplémentaires dans les anciennes versions de PostgreSQL
  • Azure PostgreSQL : Utilisez le format username@hostname pour les instances Azure
  • AWS RDS : Utilisez le format standard username
  • Performance : Envisagez d’utiliser des réplicas en lecture pour le traitement d’événements à grande échelle

Limitations

  • Évitez de vous connecter aux bases de données de production en raison de la surcharge des requêtes analytiques
  • Les requêtes complexes inter-schémas peuvent nécessiter des permissions supplémentaires
  • Le pooling de connexions est recommandé pour le traitement d’événements à haute fréquence

FAQ

Dois-je utiliser le mode lecture seule ?

Utilisez le mode lecture seule si vous préférez une configuration plus simple et ne pouvez pas autoriser OneSignal à créer des tables. Utilisez le mode complet pour de meilleures performances avec de grands ensembles de données d’événements.

Comment gérer plusieurs schémas d’événements ?

Répétez les commandes d’octroi de permissions pour chaque schéma contenant des données d’événements. OneSignal peut lire à partir de plusieurs schémas au sein d’une seule connexion.