La méthode Contacts.Merge permet de synchroniser différentes données de contacts en ajoutant des nouveaux contacts ou en modifiant les données de contacts existants. Cette méthode sert entre autres à synchroniser les statuts consentements de contacts depuis un système externe (site Web, CRM, application) vers un projet Dialog Insight. Par exemple, un visiteur sur votre site Web remplit un formulaire et coche une case pour recevoir votre infolettre. Les infos du formulaire concernant le consentement sont transférées avec un appel à la méthode Contacts.Merge. Cet article présente différentes façons d'écrire la requête selon le cas.
→ Méthode Contacts.Merge (Plateforme Canada)
→ Méthode Contacts.Merge (Plateforme France)
Lectures recommandées
Précisions sur les statuts de consentement
La valeur associée à un consentement indique si on abonne (1) ou désabonne (0) le contact.
| "optin_Newsletter": "1", |
Pour envoyer un statut d'abonnement, il faut utiliser le préfixe optin_ devant le code du champ d'abonnement.
Pour trouver le code d'un champ d'abonnement, rendez-vous dans Projet → Gestion des données → Champs de projet → Gestion des abonnements. Dans la section Abonnements (ou Consentements implicites), double-cliquez sur le champ et vous verrez le code du champ :
Dans ce cas, on écrirait optin_infolettre puisque le code est infolettre.
Cas 1 : Créer un abonné
Objectif : Créer un nouveau contact dans Dialog Insight en incluant l'abonnement à l'infolettre et les infos de base (nom et prénom).
"AuthKey": {
"idKey": 5335,
"Key": "abcdefghijklmnopkrstuvwxyz"
},
"idProject": 123456,
//Dans cet exemple, on crée 2 contacts et on les abonne à l'infolettre.
"Records": [
{
"ID": {
"key_f_EMail": "claire@domain.com"
},
"Data": {
"f_FirstName": "Claire",
"f_LastName": "Samson",
"optin_Newsletter": "1",
}
},
{
"ID": {
"key_f_EMail": "marc@domain.com"
},
"Data": {
"f_FirstName": "Marc",
"f_LastName": "Tremblay",
"optin_Newsletter": "1",
}
},
],
"MergeOptions": {
"AllowInsert": true,
"AllowUpdate": false,
"SkipDuplicateRecords": false,
"SkipUnmatchedRecords": false,
"ReturnRecordsOnSuccess": false,
"ReturnRecordsOnError": false,
"FieldOptions": null
}
}
// Mettre AllowInsert à true pour permettre l'ajout de nouveaux contacts. |
Cas 2 : Mise à jour des préférences d'abonnement
Objectif : Abonner ou désabonner un contact existant en limitant les données envoyées au champ d'abonnement (afin d'éviter d'écraser des données existantes dans le profil des contacts).
"AuthKey": {
"idKey": 5335,
"Key": "abcdefghijklmnopkrstuvwxyz"
},
"idProject": 123456,
// Dans cet exemple, on met à jour 3 contacts.
// Claire et Marc se sont abonnés à l'infolettre (1), tandis que Paul s'est désabonné (0).
"Records": [
{
"ID": {
"key_f_EMail": "claire@domain.com"
},
"Data": {
"optin_Newsletter": "1",
}
},
{
"ID": {
"key_f_EMail": "marc@domain.com"
},
"Data": {
"optin_Newsletter": "1",
}
},
{
"ID": {
"key_f_EMail": "paul@domain.com"
},
"Data": {
"optin_Newsletter": "0",
}
},
],
"MergeOptions": {
"AllowInsert": false,
"AllowUpdate": true,
"SkipDuplicateRecords": false,
"SkipUnmatchedRecords": false,
"ReturnRecordsOnSuccess": false,
"ReturnRecordsOnError": false,
"FieldOptions": null
}
}
//Mettre AllowUpdate à true pour que les contacts existants soient mis à jour. |
Cas 3 : Synchronisation complète
Objectif : Créer les nouveaux contacts et modifier les abonnements des contacts existants.
"AuthKey": {
"idKey": 5335,
"Key": "abcdefghijklmnopkrstuvwxyz"
},
"idProject": 123456,
// Dans cet exemple, on crée 2 contacts (Claire et Marc) et on les abonne à l'infolettre.
// On désabonne Paul qui est un contact existant.
"Records": [
{
"ID": {
"key_f_EMail": "claire@domain.com"
},
"Data": {
"f_FirstName": "Claire",
"f_LastName": "Samson",
"optin_Newsletter": "1",
}
},
{
"ID": {
"key_f_EMail": "marc@domain.com"
},
"Data": {
"f_FirstName": "Marc",
"f_LastName": "Tremblay",
"optin_Newsletter": "1",
}
},
{
"ID": {
"key_f_EMail": "paul@domain.com"
},
"Data": {
"optin_Newsletter": "0",
}
},
],
"MergeOptions": {
"AllowInsert": true,
"AllowUpdate": true,
"SkipDuplicateRecords": false,
"SkipUnmatchedRecords": false,
"ReturnRecordsOnSuccess": false,
"ReturnRecordsOnError": false,
"FieldOptions": null
}
}
// Mettre AllowInsert à true pour permettre l'ajout de nouveaux contacts.
// Mettre AllowUpdate à true pour que les contacts existants soient mis à jour. |
Bonnes pratiques
- Limiter les appels aux données concernant le consentement pour les mises à jour.
- Vérifier dans la liste des contacts si l'import s'est bien déroulé.
- Utiliser la propriété NullHandling pour gérer les valeurs vides.
Cet article a-t-il été utile ?
C'est super !
Merci pour votre commentaire
Désolé ! Nous n'avons pas pu vous être utile
Merci pour votre commentaire
Commentaires envoyés
Nous apprécions vos efforts et nous allons corriger l'article