Vue d'ensemble technique
La fonctionnalité Événement CRM en temps réel est parfaite si vous souhaitez réagir rapidement aux événements provenant de votre système CRM et si vous avez besoin que les données de Symplify soient aussi à jour que possible à tout moment. Elle est idéale si vous disposez déjà d'un courtier de messages dans lequel vous publiez les événements de l'application, ou si vous souhaitez éviter une intégration explicite avec l'API Symplify REST.
Notez que la fonctionnalité d'événement CRM en temps réel n'est pas destinée ou adaptée aux opérations de masse, par exemple la synchronisation quotidienne des données des utilisateurs ou la génération de messages de masse. Pour ces types de demandes, nous recommandons d'utiliser les fonctions d'importation et de transaction par lots.
Dans une configuration d'événement CRM en temps réel, Symplify est configuré pour écouter les messages d'un Message Broker (SQS ou RabbitMQ), et chargé de prendre des mesures en fonction des messages entrants. Tant que le format des messages entrants suit le format recommandé décrit ci-dessous, aucune intégration supplémentaire n'est nécessaire. Si votre courtier de messages produit des messages dans un autre format, cela nécessitera une mise en œuvre personnalisée de notre part, ainsi que des coûts d'intégration supplémentaires.
Configuration
La configuration se fait à l'aide de l'interface d'administration Symplify et comprend :
- Identifiant du point final/URI/identifiant de la file d'attente
- Information d'authentification
- Pour RabbitMQ, il s'agira d'un nom d'utilisateur/mot de passe pour un utilisateur ayant un accès lecture à la file d'attente spécifiée.
- Pour le SQS, il s'agira de la clé + la clé secrète d'un utilisateur de l'API IAM du SQS ayant un accès en lecture à la file d'attente spécifiée. Vous pouvez également accorder l'accès en lecture à votre file d'attente à notre compte AWS, ce qui élimine complètement la nécessité d'enregistrer les informations d'identification dans Symplify.
- Type de message -> Association des actions (voir ci-dessous)
Traitement des événements
Les événements sont traités dans l'ordre dans lequel ils sont reçus du courtier de messages. Nous comptons sur le courtier de messages pour assurer une commande correcte et une livraison "unique" des événements. Cela signifie que si le courtier livre exactement le même message d'événement plus d'une fois (livraison de message "au moins une fois"), ces deux événements seront traités. C'est un élément dont il faut tenir compte lors de la mise en place de ce type d'intégration. Nous recommandons d'utiliser un courtier de messages qui prend en charge la livraison de messages commandés "une seule fois".
Événements et Format
Les payloads des événements entrants doivent être au format JSON. Nous recommandons vivement d'utiliser le format d'événement par défaut décrit ci-dessous.
S'il vous est impossible de produire des événements dans le format d'événement par défaut, Symplify peut mettre en œuvre un convertisseur de message personnalisé moyennant des frais supplémentaires.
Tous les messages que vous souhaitez faire transformer par un convertisseur de messages Symplify personnalisé devront être tapés soit par un attribut d'en-tête, soit par un attribut de message, selon la technologie utilisée par votre file d'attente de messages. Votre format d'événement personnalisé sera transformé à l'aide du convertisseur sur mesure en événements standard décrits ci-dessous. Par conséquent, pour que nous puissions mettre en œuvre un convertisseur personnalisé, nous avons besoin que les événements de votre système contiennent toutes les informations nécessaires pour remplir nos objets d'événements standard.
Les événements suivants sont actuellement disponibles (d'autres événements pourraient être ajoutés à l'avenir). Vous pouvez choisir de n'utiliser qu'un sous-ensemble de ces événements dans votre intégration particulière :
- GENERIC_USER
- USER_BLOCKED
- USER_CONSENT_UPDATE
- USER_REGISTRATION
- USER_UPDATE
- WITHDRAWAL_REQUESTED
- WITHDRAWAL_APPROVED
- WITHDRAWAL_REJECTED
- WITHDRAWAL_CANCELLED
- DEPOSIT_REQUESTED
- DEPOSIT_APPROVED
- DEPOSIT_REJECTED
- DEPOSIT_CANCELLED
Les événements sont une représentation à haut niveau que quelque chose s'est passé dans votre système. Du côté de Symplify, un type d'événement spécifique sera associé à une ou plusieurs actions. Un exemple serait une action "USER_REGISTRATION" dans votre système, que nous pouvons utiliser pour une action "Créer un contact" suivie d'une action "Entrer dans le parcours" pour ajouter l'utilisateur au parcours. Tout cela est déterminé par la configuration et peut être modifié dynamiquement en cours d'exécution.
Actions Symplify
À chacun des événements ci-dessus, pertinents pour votre intégration, vous pouvez joindre une série d'actions à réaliser par Symplify. Les actions présentement disponibles et leur configuration sont les suivantes :
-
Créer contact
- List id
- Default email subscription status (Defaults to true)
- Default mobile subscription status (Default to true)
-
Mise à jour d'un récipient
- List id
-
Définir une propriété
- List id
- Property id
- Property Value
-
Créer une ligne d'historique des achats - DÉSUET! Voir DataDocs
- List Id
-
Entrer dans un parcours
- Journey Id
-
Anonymiser le récipient
- List Id
- Find by (Original Id or Email Address)
-
Bloquer temporairement un récipient
- List Id
- Find by (Original Id or Email Address)
- Block for (unit)
- Block for time type(minutes, hours, days, months, years)
Association les données de vos messages aux Attributs Symplify
Afin d'associer les données que nous recevons de vos messages avec les attributs Symplify, vous devrez créer un attribut destinataire pour chaque champ que vous souhaitez remplir. Pour chacun de ces champs, vous devrez donner à l'en-tête du fichier le même nom que celui de l'attribut dans votre message.
Exemple: Prenez le payload suivant :
{
...
"properties": {
"attrTest": "Some value"
}
}
Vous allez créer un attribut de cette manière :
Format du message par défaut
L'intégration la plus simple possible avec Symplify peut être réalisée en utilisant le format de message par défaut décrit ci-dessous. Il n'est pas nécessaire de disposer de tous les différents types de messages ; un sous-ensemble peut être utilisé si c'est tout ce dont vous avez besoin pour l'intégration particulière.
GENERIC_USER
{
"type": "GENERIC_USER",
"mappingSelector": "CREATE_USER_SE",
"contactId": "abc123",
"properties": {
"prop1": "value1",
"prop2": "value2"
}
}
- mappingSelector: un champ de texte arbitraire qui sera utilisé pour distinguer l'action à laquelle l'événement doit être associé. Ce champ est facultatif. Si aucun sélecteur de correspondance n'est fourni, la valeur par défaut est la même que celle du champ de type. NOTE! le champ type ou mappingSelector est utilisé pour associer l'événement à des actions. Si vous utilisez les mappingSelector, veuillez les nommer afin de faciliter leur correspondance.
- contactId: Identifiant unique partagé de l'utilisateur entre votre système et Symplify
- properties: Informations qui doivent être enregistrées pour l'utilisateur dans Symplify. Les propriétés peuvent inclure n'importe quel attribut mappé comme décrit ci-dessus.
USER_BLOCKED
{
"type": "USER_BLOCKED",
"mappingSelector": "SE",
"contactId": "abc123",
"properties": {
"prop1": "value1",
"prop2": "value2"
}
}
- mappingSelector: un champ de texte arbitraire qui sera utilisé pour distinguer l'action à laquelle l'événement doit être associé. Ce champ est facultatif. Si aucun sélecteur de correspondance n'est fourni, la valeur par défaut est la même que celle du champ de type. NOTE! le champ type ou mappingSelector est utilisé pour associer l'événement à des actions. Si vous utilisez les mappingSelector, veuillez les nommer afin de faciliter leur correspondance.
- contactId: Identifiant unique partagé de l'utilisateur entre votre système et Symplify
- properties: Informations qui doivent être enregistrées pour l'utilisateur dans Symplify. Les propriétés peuvent inclure n'importe quel attribut mappé comme décrit ci-dessus.
USER_REGISTRATION
{
"type": "USER_REGISTRATION",
"contactId": "abc123",
"properties": {
"prop1": "value1",
"prop2": "value2"
}
}
- contactId: Identifiant unique partagé de l'utilisateur entre votre système et Symplify
- properties: Informations qui doivent être enregistrées pour l'utilisateur dans Symplify. Les propriétés peuvent inclure n'importe quel attribut mappé comme décrit ci-dessus.
USER_UPDATE
{
"type": "USER_UPDATE",
"contactId": "abc123",
"properties": {
"prop1": "value1",
"prop2": "value2"
}
}
- contactId: Identifiant unique partagé de l'utilisateur entre votre système et Symplify
- properties: Informations qui doivent être enregistrées pour l'utilisateur dans Symplify. Les propriétés peuvent inclure n'importe quel attribut mappé comme décrit ci-dessus.
USER_CONSENT_UPDATE
{
"type": "USER_CONSENT_UPDATE",
"contactId": "abc123",
"channel": "EMAIL",
"consented": true,
"properties": {
"prop1": "value1",
"prop2": "value2"
}
}
- contactId: Identifiant unique partagé de l'utilisateur entre votre système et Symplify
- properties: Informations qui doivent être enregistrées pour l'utilisateur dans Symplify. Les propriétés peuvent inclure n'importe quel attribut mappé comme décrit ci-dessus.
- channel: Le canal auquel ce consentement s'applique (un des EMAIL, SMS, PUSH, INAPP, PRINT, PAGE ou AUDIO).
- consented: Que l'utilisateur ait choisi de donner son consentement ou non.
Legacy Message Format
WITHDRAWAL_REQUESTED
{
"type": "WITHDRAWAL_REQUESTED",
"contactId": "abc123",
"timestamp": "2020-02-05T13:20:00",
"amount": 100.50,
"transactionId": "abc123",
"vendor": "someVendor",
"paymentType": "VISA",
"properties": {
"prop1": "value1",
"prop2": "value2"
}
}
- contactId: Identifiant unique partagé de l'utilisateur entre votre système et Symplify
- properties: Informations qui doivent être enregistrées pour l'utilisateur dans Symplify. Les propriétés peuvent inclure n'importe quel attribut mappé comme décrit ci-dessus.
- timestamp: Chaîne de charactères pour la date, au format ISO-8601.
- amount: La quantité
- transactionId: Identifiant de transaction unique de votre système (facultatif)
- vendor: Identifiant du vendeur à partir de votre système (facultatif)
- paymentType: l'identifiant du type de paiement (facultatif)
WITHDRAWAL_APPROVED
{
"type": "WITHDRAWAL_APPROVED",
"contactId": "abc123",
"timestamp": "2020-02-05T13:20:00",
"amount": 100.50,
"transactionId": "abc123",
"vendor": "someVendor",
"paymentType": "VISA",
"properties": {
"prop1": "value1",
"prop2": "value2"
}
}
- contactId: Identifiant unique partagé de l'utilisateur entre votre système et Symplify
- properties: Informations qui doivent être enregistrées pour l'utilisateur dans Symplify. Les propriétés peuvent inclure n'importe quel attribut mappé comme décrit ci-dessus.
- timestamp: Chaîne de charactères pour la date, au format ISO-8601.
- amount: La quantité
- transactionId: Identifiant de transaction unique de votre système (facultatif)
- vendor: Identifiant du vendeur à partir de votre système (facultatif)
- paymentType: l'identifiant du type de paiement (facultatif)
WITHDRAWAL_REJECTED
{
"type": "WITHDRAWAL_REJECTED",
"contactId": "abc123",
"timestamp": "2020-02-05T13:20:00",
"amount": 100.50,
"transactionId": "abc123",
"vendor": "someVendor",
"paymentType": "VISA",
"properties": {
"prop1": "value1",
"prop2": "value2"
}
}
- contactId: Identifiant unique partagé de l'utilisateur entre votre système et Symplify
- properties: Informations qui doivent être enregistrées pour l'utilisateur dans Symplify. Les propriétés peuvent inclure n'importe quel attribut mappé comme décrit ci-dessus.
- timestamp: Chaîne de charactères pour la date, au format ISO-8601.
- amount: La quantité
- transactionId: Identifiant de transaction unique de votre système (facultatif)
- vendor: Identifiant du vendeur à partir de votre système (facultatif)
- paymentType: l'identifiant du type de paiement (facultatif)
WITHDRAWAL_CANCELLED
{
"type": "WITHDRAWAL_CANCELLED",
"contactId": "abc123",
"timestamp": "2020-02-05T13:20:00",
"amount": 100.50,
"transactionId": "abc123",
"vendor": "someVendor",
"paymentType": "VISA",
"properties": {
"prop1": "value1",
"prop2": "value2"
}
}
- contactId: Identifiant unique partagé de l'utilisateur entre votre système et Symplify
- properties: Informations qui doivent être enregistrées pour l'utilisateur dans Symplify. Les propriétés peuvent inclure n'importe quel attribut mappé comme décrit ci-dessus.
- timestamp: Chaîne de charactères pour la date, au format ISO-8601.
- amount: La quantité
- transactionId: Identifiant de transaction unique de votre système (facultatif)
- vendor: Identifiant du vendeur à partir de votre système (facultatif)
- paymentType: l'identifiant du type de paiement (facultatif)
DEPOSIT_REQUESTED
{
"type": "DEPOSIT_REQUESTED",
"contactId": "abc123",
"timestamp": "2020-02-05T13:20:00",
"amount": 100.50,
"transactionId": "abc123",
"vendor": "someVendor",
"paymentType": "VISA",
"properties": {
"prop1": "value1",
"prop2": "value2"
}
}
- contactId: Identifiant unique partagé de l'utilisateur entre votre système et Symplify
- properties: Informations qui doivent être enregistrées pour l'utilisateur dans Symplify. Les propriétés peuvent inclure n'importe quel attribut mappé comme décrit ci-dessus.
- timestamp: Chaîne de charactères pour la date, au format ISO-8601.
- amount: La quantité
- transactionId: Identifiant de transaction unique de votre système (facultatif)
- vendor: Identifiant du vendeur à partir de votre système (facultatif)
- paymentType: l'identifiant du type de paiement (facultatif)
DEPOSIT_APPROVED
{
"type": "DEPOSIT_APPROVED",
"contactId": "abc123",
"timestamp": "2020-02-05T13:20:00",
"amount": 100.50,
"transactionId": "abc123",
"vendor": "someVendor",
"paymentType": "VISA",
"properties": {
"prop1": "value1",
"prop2": "value2"
}
}
- contactId: Identifiant unique partagé de l'utilisateur entre votre système et Symplify
- properties: Informations qui doivent être enregistrées pour l'utilisateur dans Symplify. Les propriétés peuvent inclure n'importe quel attribut mappé comme décrit ci-dessus.
- timestamp: Chaîne de charactères pour la date, au format ISO-8601.
- amount: La quantité
- transactionId: Identifiant de transaction unique de votre système (facultatif)
- vendor: Identifiant du vendeur à partir de votre système (facultatif)
- paymentType: l'identifiant du type de paiement (facultatif)
DEPOSIT_REJECTED
{
"type": "DEPOSIT_REJECTED",
"contactId": "abc123",
"timestamp": "2020-02-05T13:20:00",
"amount": 100.50,
"transactionId": "abc123",
"vendor": "someVendor",
"paymentType": "VISA",
"properties": {
"prop1": "value1",
"prop2": "value2"
}
}
- contactId: Identifiant unique partagé de l'utilisateur entre votre système et Symplify
- properties: Informations qui doivent être enregistrées pour l'utilisateur dans Symplify. Les propriétés peuvent inclure n'importe quel attribut mappé comme décrit ci-dessus.
- timestamp: Chaîne de charactères pour la date, au format ISO-8601.
- amount: La quantité
- transactionId: Identifiant de transaction unique de votre système (facultatif)
- vendor: Identifiant du vendeur à partir de votre système (facultatif)
- paymentType: l'identifiant du type de paiement (facultatif)
DEPOSIT_CANCELLED
{
"type": "DEPOSIT_CANCELLED",
"contactId": "abc123",
"timestamp": "2020-02-05T13:20:00",
"amount": 100.50,
"transactionId": "abc123",
"vendor": "someVendor",
"paymentType": "VISA",
"properties": {
"prop1": "value1",
"prop2": "value2"
}
}
- contactId: Identifiant unique partagé de l'utilisateur entre votre système et Symplify
- properties: Informations qui doivent être enregistrées pour l'utilisateur dans Symplify. Les propriétés peuvent inclure n'importe quel attribut mappé comme décrit ci-dessus.
- timestamp: Chaîne de charactères pour la date, au format ISO-8601.
- amount: La quantité
- transactionId: Identifiant de transaction unique de votre système (facultatif)
- vendor: Identifiant du vendeur à partir de votre système (facultatif)
- paymentType: l'identifiant du type de paiement (facultatif)