1. Accueil
  2. /
  3. Guide Admin
  4. /
  5. Intégrations
  6. /
  7. Mailchimp

Mailchimp

Introduction

Ce guide vise à vous accompagner dans le processus d’intégration efficace de Mailchimp avec Cirrus Shield.

Prérequis

Avant de pouvoir commencer à utiliser le service, vous devrez suivre les étapes suivantes :

Dans Mailchimp

1. Créer un compte Mailchimp

Pour commencer, vous devrez créer un compte Mailchimp. Si vous n’en avez pas déjà un, vous pouvez vous inscrire en visitant le lien suivant : https://mailchimp.com/

2. Obtenir votre clé API

Après avoir créé avec succès votre compte Mailchimp, l’étape suivante consiste à obtenir votre clé API. Cette clé vous permettra de vous connecter en toute transparence à notre service. Pour obtenir votre clé API, suivez ces étapes :

a. Accéder à la page de gestion des clés API

Cliquez sur le lien suivant pour accéder à la page de gestion des clés API de votre compte Mailchimp : https://us9.admin.mailchimp.com/account/api/?_ga=2.224117659.1627744431.1691751332-217670292.1678692587

b. Générer une nouvelle clé API

Une fois sur la page de gestion des clés API, sélectionnez l’option “Créer une clé”. Cela vous demandera de fournir un nom pour votre clé API.

c. Récupérer et enregistrer votre clé API

Après avoir donné un nom à votre clé API, le système la générera pour vous. Il est crucial de copier et de sauvegarder cette clé dans un endroit sécurisé. Vous en aurez besoin lors du processus de configuration.

Dans Cirrus Shield

  1. Installer le Plugin Mailchimp :

Commencez par vous rendre dans la section “Configuration” de Cirrus Shield, puis sélectionnez “Extensions”. À partir de là, installez le plugin Mailchimp pour activer l’intégration entre les deux plateformes.

2. Créer des Objets Essentiels : Contact, Prospect et Campagne :

Pour utiliser efficacement le plugin Mailchimp, assurez-vous d’avoir au moins l’un des objets suivants créés : “Contact,” “Lead,” ou “Campaign.” Ces objets nécessitent des champs spécifiques avec des types désignés, en particulier les champs essentiels : “Prénom,” “Nom de famille,” et “E-mail.” Référez-vous à l’image fournie ci-dessous pour des exemples des champs requis.

De plus, il est essentiel de lier la campagne créée aux objets “Contact” et/ou “Prospect”.

Pour créer un objet, accédez à “Configuration”, puis choisissez “Objets” et procédez à la création de l’objet souhaité.

Après avoir créé l’objet, accédez à “Champs personnalisés” et créez un nouveau champ en vous basant sur les champs affichés dans l’image.

N.B : Assurez-vous de créer les champs avec le même nom et le même type que ceux indiqués dans les images concernant les objets.

Il convient de faire de même pour le reste des champs en fonction de leur nom et de leur type de champ.

3. Bouton JavaScript :

Créez un bouton pour l’objet que vous allez utiliser avec Mailchimp, les objets peuvent être “Contact”, “Prospect” ou “Campagne”. Pour créer un bouton JavaScript, accédez à Configuration -> Objet -> Détails -> Boutons Personnalisés.

Ensuite, créez un bouton avec les informations suivantes :

Voici les codes que vous pouvez utiliser pour chaque objet respectivement :

Contact :

function SendContactsBasedOnFilter()
{
    let TokenGUID = GetTokenID();
    let orgInfo = new Object();
    let userInfo = new Object();
    
    let list_name = document.getElementsByClassName("cuselText")[0].getElementsByTagName('label')[0].innerHTML;
    
    let divElement = document.getElementById("divSubDataTablePartialListView0")
    let rows = divElement.querySelectorAll('tr');
    let contactGUIDs = [];
    let contacts = [];
    let userLanguage = null;

    $.ajax({
        beforeSend: function (xhrObj) {
            xhrObj.setRequestHeader("Accept", "application/json");
        },
        type: "GET",
        async: false,
        dataType: "json",
        contentType: "application/json",
        url: "/RestApi/Query?authToken=" + TokenGUID + "&selectQuery=SELECT Name, Email, Language FROM User",
        success: function (Data) {
            if (Data.Data != undefined) {
                userInfo = Data.Data.User[0];
userLanguage = userInfo.Language;
            }
            else {
                userInfo = null;
            }
        },
        error: function (XMLHttpRequest) {
            alert(XMLHttpRequest.statusText);
        }
    });

    rows.forEach(row => {
        contactGUIDs.push(row.id);
    });

    contactGUIDs.shift();

    contactGUIDs.forEach(GUID => {
        var contact = GetDataByID(GUID,"Contact", "First_Name, Last_Name, Email");
        contacts.push(contact);
    });

if(contacts == null || contacts.length === 0){
 var message = "There are no contacts.";
 if (userLanguage === "fr") {
   message = "Il n' y a pas de contacts.";
 }
alert(message);
return;
}

    $.ajax({
        beforeSend: function (xhrObj) {
            xhrObj.setRequestHeader("Accept", "application/json");
        },
        type: "GET",
        async: false,
        dataType: "json",
        contentType: "application/json",
        url: "/RestApi/Query?authToken=" + TokenGUID + "&selectQuery=SELECT Id, Name, Country, City, Street, PostalCode FROM Organization",
        success: function (Data) {
            if (Data.Data != undefined) {
                orgInfo = Data.Data.Organization[0];
                if (Data.Data.Organization[0].Country == null) {
                    orgInfo.Country = "France";
                }
            }
            else {
                orgInfo = null;
            }
        },
        error: function (XMLHttpRequest) {
            alert(XMLHttpRequest.statusText);
        }
    });

    try {
        var settings = {
            "url": `https://mchmp.cirrus-shield.net/Mailchimp?list_name=${list_name}`,
            "method": "POST",
            "timeout": 0,
            "headers": {
                "Content-Type": "application/json"
            },
            "data": JSON.stringify({ "Contacts": contacts, "User": userInfo, "Organization": orgInfo }),
            "error": function (XMLHttpRequest) {
                alert("Error: " + XMLHttpRequest.responseText);
            }
        };

        $.ajax(settings)
            .done(function (response) {
                var message = "Contacts have been successfully sent to Mailchimp.";
if(userLanguage === "fr"){
message = "Les contacts ont été envoyés à Mailchimp avec succès";
}
                alert(message);
            });
    } catch (error) {
        console.log(error);
        alert(response);
    }
}

Prospect :

function SendLeadsBasedOnFilter()
{
    let TokenGUID = GetTokenID();
    let orgInfo = new Object();
    let userInfo = new Object();
    
    let list_name = document.getElementsByClassName("cuselText")[0].getElementsByTagName('label')[0].innerHTML;
    
    let divElement = document.getElementById("divSubDataTablePartialListView0")
    let rows = divElement.querySelectorAll('tr');
    let contactGUIDs = [];
    let contacts = [];
    let userLanguage = null;

 $.ajax({
        beforeSend: function (xhrObj) {
            xhrObj.setRequestHeader("Accept", "application/json");
        },
        type: "GET",
        async: false,
        dataType: "json",
        contentType: "application/json",
        url: "/RestApi/Query?authToken=" + TokenGUID + "&selectQuery=SELECT Name, Email, Language FROM User",
        success: function (Data) {
            if (Data.Data != undefined) {
                userInfo = Data.Data.User[0];
userLanguage  = userInfo.Language;
            }
            else {
                userInfo = null;
            }
        },
        error: function (XMLHttpRequest) {
            alert(XMLHttpRequest.statusText);
        }
    });

    rows.forEach(row => {
        contactGUIDs.push(row.id);
    });

    contactGUIDs.shift();

    contactGUIDs.forEach(GUID => {
        var contact = GetDataByID(GUID,"Lead", "First_Name, Last_Name, Email");
        contacts.push(contact);
    });

if(contacts == null || contacts.length === 0){
 var message = "There are no leads.";
 if (userLanguage === "fr") {
   message = "Il n' y a pas de prospects.";
 }
alert(message);
return;
}

    $.ajax({
        beforeSend: function (xhrObj) {
            xhrObj.setRequestHeader("Accept", "application/json");
        },
        type: "GET",
        async: false,
        dataType: "json",
        contentType: "application/json",
        url: "/RestApi/Query?authToken=" + TokenGUID + "&selectQuery=SELECT Id, Name, Country, City, Street, PostalCode FROM Organization",
        success: function (Data) {
            if (Data.Data != undefined) {
                orgInfo = Data.Data.Organization[0];
                if (Data.Data.Organization[0].Country == null) {
                    orgInfo.Country = "France";
                }
            }
            else {
                orgInfo = null;
            }
        },
        error: function (XMLHttpRequest) {
            alert(XMLHttpRequest.statusText);
        }
    });

    try {
        var settings = {
            "url": `https:// mchmp.cirrus-shield.net /Mailchimp?list_name=${list_name}`,
            "method": "POST",
            "timeout": 0,
            "headers": {
                "Content-Type": "application/json"
            },
            "data": JSON.stringify({ "Contacts": contacts, "User": userInfo, "Organization": orgInfo }),
            "error": function (XMLHttpRequest) {
                alert("Error: " + XMLHttpRequest.responseText);
console.log(XMLHttpRequest);
            }
        };

        $.ajax(settings)
            .done(function (response) {
              var message = "Leads have been successfully sent to Mailchimp.";
if(userLanguage === "fr"){
message = "Les prospects ont été envoyés à Mailchimp avec succès";
}
                alert(message);
            });
    } catch (error) {
        console.log(error);
        alert(response);
    }
}

Campagne :

function SendCampaignMembers()
{
    var TokenGUID = GetTokenID();
    var orgInfo = new Object();
    var userInfo = new Object();
    var test = document.querySelectorAll("#cell1id");
    var list_name = test[0].textContent;
    var contacts = [];
    var userLanguage = null;
    var campaign_members = GetDataByColumn("Campaign", GetRecordGUID(), "Campaign_Member", "Name, Member");

$.ajax({
        beforeSend: function (xhrObj) {
            xhrObj.setRequestHeader("Accept", "application/json");
        },
        type: "GET",
        async: false,
        dataType: "json",
        contentType: "application/json",
        url: "/RestApi/Query?authToken=" + TokenGUID + "&selectQuery=SELECT Name, Email, Language FROM User",
        success: function (Data) {
            if (Data.Data != undefined) {
                userInfo = Data.Data.User[0];
                userLanguage = userInfo.Language;
            }
            else {
                userInfo = null;
            }
        },
        error: function (XMLHttpRequest) {
            alert(XMLHttpRequest.statusText);
        }
    });



    if (campaign_members == null || campaign_members.length === 0) {
var message = "There are no campaign members.";
if(userLanguage === "fr"){
message = "Il n'y a aucun membre de campagne.";
}
        alert(message);
        return;
    }

    campaign_members.forEach(element =>
    {
        var contact = GetDataByID(element.Member, "Contact", "First_Name, Last_Name, Email");
        if (contact == null)
        {
            contact = GetDataByID(element.Member, "Lead", "First_Name, Last_Name, Email");
        }
        contacts.push(contact);
    });

    $.ajax({
        beforeSend: function (xhrObj) {
            xhrObj.setRequestHeader("Accept", "application/json");
        },
        type: "GET",
        async: false,
        dataType: "json",
        contentType: "application/json",
        url: "/RestApi/Query?authToken=" + TokenGUID + "&selectQuery=SELECT Id, Name, Country, City, Street, PostalCode FROM Organization",
        success: function (Data) {
            if (Data.Data != undefined) {
                orgInfo = Data.Data.Organization[0];
                if (Data.Data.Organization[0].Country == null) {
                    orgInfo.Country = "France";
                }
            }
            else {
                orgInfo = null;
            }
        },
        error: function (XMLHttpRequest) {
            alert(XMLHttpRequest.statusText);
        }
    });
    
    try {
        var settings = {
            "url": `https://mchmp.cirrus-shield.net/Mailchimp?list_name=${list_name}`,
            "method": "POST",
            "timeout": 0,
            "headers": {
                "Content-Type": "application/json"
            },
            "data": JSON.stringify({ "Contacts": contacts, "User": userInfo, "Organization": orgInfo }),
            "error": function (XMLHttpRequest) {
                alert("Error: " + XMLHttpRequest.responseText);
            }
        };

        $.ajax(settings)
            .done(function (response) {
var message = "Contacts have been successfully sent to Mailchimp.";
if(userLanguage === "fr"){
message = "Les contacts ont été envoyés à Mailchimp avec succès";
}
                alert(message);
            });
    } catch (error) {
        console.log(error);
        alert(response);
    }
}

Assurez-vous ensuite de modifier la visibilité du bouton en fonction des utilisateurs qui l’utiliseront. Vous pouvez le faire en accédant à l’objet où vous avez créé le bouton -> Détails du bouton -> Profils.

Et enfin, vous pourrez voir le bouton dans la page de détails de l’enregistrement de l’objet spécifique que vous avez choisi.

Configuration

Pour configurer le plugin que vous avez installé, vous devrez accéder aux détails du plugin Mailchimp installé.

Cela vous dirigera vers la page de configuration. Lancez le processus de configuration en saisissant vos identifiants Cirrus Shield (nom d’utilisateur et mot de passe) ainsi que vos identifiants Mailchimp (jeton d’accès). Après avoir saisi les informations nécessaires, cliquez sur “Créer” pour enregistrer la configuration dans Cirrus Shield.

Cet article vous a-t-il été utile ? Non Oui

Comment pouvons-nous aider ?