Passer au contenu principal

Aperçu

L’intégration OneSignal + SQL Server permet la synchronisation d’événements personnalisés depuis votre base de données Microsoft SQL Server vers OneSignal pour déclencher des campagnes de messagerie automatisées et des Journeys basés sur le comportement des utilisateurs. SQL Server est le système de gestion de base de données relationnelle de Microsoft conçu pour les applications d’entreprise et l’entreposage de données.

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)

SQL Server

  • Instance SQL Server avec accès réseau
  • Utilisateur de base de données avec les autorisations appropriées
  • Tables d’événements contenant des données comportementales structurées
  • Connectivité réseau de OneSignal vers votre instance SQL Server

Configuration

1

Créer un utilisateur dédié pour OneSignal

Créez un compte utilisateur dédié avec un mot de passe fort et unique :
-- Create census user with the ability to sign in with a password
CREATE USER CENSUS WITH PASSWORD = '<strong-unique-password>';

-- Give the census user the ability to connect to database
GRANT CONNECT TO CENSUS;
Toutes les commandes SQL Server s’exécuteront dans la base de données spécifiée lors de l’exécution du script.
2

Accorder les autorisations de lecture

Fournissez un accès en lecture seule à vos données d’événements :
-- Give the census user the ability to read tables within the database
EXEC sp_addrolemember 'db_datareader', CENSUS;

-- Grant census user ability to read data from within a schema
-- Run this for each schema you intend OneSignal to access
GRANT SELECT, VIEW DEFINITION ON SCHEMA::<your-schema> TO CENSUS;
Remplacez <your-schema> par le nom réel de votre schéma contenant les données d’événements. Répétez cette commande pour chaque schéma auquel vous souhaitez que OneSignal accède.
3

Configurer le moteur de synchronisation avancé (Optionnel)

Pour des performances améliorées, créez un schéma de comptabilité pour l’état de synchronisation de OneSignal :
-- Create a private bookkeeping schema where Census can store sync state
CREATE SCHEMA CENSUS AUTHORIZATION CENSUS;

-- Give the census user full access to the bookkeeping schema
GRANT ALTER, DELETE, EXECUTE, INSERT, REFERENCES, SELECT,
          UPDATE, VIEW DEFINITION ON SCHEMA::CENSUS TO CENSUS;

-- Give the census user the ability to create tables within the database
GRANT CREATE TABLE TO CENSUS;
Ignorez cette étape si vous utilisez le moteur de synchronisation de base ou le mode lecture seule.
4

Se connecter à OneSignal

Dans OneSignal, allez dans Data > Integrations et cliquez sur Add Integration.Sélectionnez SQL Server et fournissez les détails de connexion suivants :
  • Hôte : Le nom d’hôte ou l’adresse IP de votre instance SQL Server
  • Port : 1433 (par défaut) ou votre port personnalisé
  • Base de données : Le nom de votre base de données
  • Nom d’utilisateur : CENSUS
  • Mot de passe : Le mot de passe de l’étape 1

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 SQL Server event table
CREATE TABLE analytics.user_events (
    event_id BIGINT IDENTITY(1,1) PRIMARY KEY,
    event_name NVARCHAR(100) NOT NULL,
    user_id NVARCHAR(255) NOT NULL,
    event_timestamp DATETIME2 DEFAULT GETUTCDATE(),
    event_data NVARCHAR(MAX),
    session_id NVARCHAR(255),
    device_type NVARCHAR(50)
);

Mode de requête SQL

Écrivez des requêtes SQL personnalisées pour transformer vos données d’événements :
-- Example: Recent high-value events
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_data
FROM analytics.user_events
WHERE event_timestamp >= DATEADD(day, -7, GETUTCDATE())
    AND JSON_VALUE(event_data, '$.value') > 100
ORDER BY event_timestamp DESC;

Configuration réseau avancée

OneSignal peut se connecter avec succès aux instances SQL Server qui utilisent des contrôles réseau avancés, y compris les contraintes de région, les listes d’autorisation d’adresses IP ou le tunneling SSH. Pour plus d’informations sur la configuration de l’accès réseau, contactez votre administrateur SQL Server ou le support OneSignal.

Options du moteur de synchronisation

Moteur de synchronisation de base

  • Accès en lecture seule à vos données d’événements
  • Suivi de l’état géré par l’infrastructure OneSignal
  • Configuration plus simple avec des autorisations minimales

Moteur de synchronisation avancé

  • Performances améliorées avec suivi d’état local
  • Nécessite des autorisations supplémentaires pour créer des tables
  • Recommandé pour le traitement d’événements à haut volume

Limitations

  • Les requêtes complexes peuvent impacter les performances de la base de données pendant les périodes de fort trafic
  • Les opérations JSON nécessitent SQL Server 2016 ou ultérieur pour des performances optimales
  • Toutes les autorisations sont accordées au niveau de la base de données spécifiée lors de la configuration

FAQ

Puis-je me connecter à plusieurs schémas SQL Server ?

Oui, vous pouvez accorder à l’utilisateur CENSUS l’accès à plusieurs schémas en exécutant l’instruction GRANT SELECT, VIEW DEFINITION ON SCHEMA::<schema> pour chaque schéma contenant des données d’événements.

Quelles versions de SQL Server sont prises en charge ?

OneSignal prend en charge les versions modernes de SQL Server. Pour les opérations JSON dans les requêtes d’événements, SQL Server 2016 ou ultérieur est recommandé.

Dois-je utiliser le moteur de synchronisation avancé ?

Non, le moteur de synchronisation de base fonctionne bien pour la plupart des cas d’utilisation. Utilisez le moteur de synchronisation avancé si vous avez besoin de performances améliorées et pouvez autoriser OneSignal à créer des tables dans votre instance SQL Server.