API - Customer

 Pour être informés de toutes les mises à jour concernant l’API v2 de SPREAD, inscrivez-vous ici : https://social-sb.com/z/newsletter-api-v1-v2

Méthodes disponibles


GET Customer

Cette méthode permet de récupérer les informations d'un profil précis.

GET ⇒ social-sb.com/api/v2/customers/{id} 

Paramètres obligatoires :

  • "id" : identifiant SPREAD

Paramètres complémentaires :

Aucun

Réponse :

Si GET ok alors

"customer": {
 "id": "123456",
 "lastName": "Doe",
 "firstName": "John",
 "email": "email-example@gmail.com",
 "country": null,
 "city": null,
 "address": null,
 "address2": null,
 "address3": null,
 "zip": null,
 "phone": null,
 "mobile": null,
 "lang": "fr",
 "birthday": null,
 "gender": null,
 "createdAt": "2018-04-10T14:15:48+0000",
 "updatedAt": "2018-05-21T14:06:47+0000",
 "isFan": "0",
 "isFollow": "0",
 "isFanLinkedin": "0",
 "isBuyer": "0",
 "actionCount": "0",
 "lastActionDt": null,
 "lastOrderDt": null,
 "cagnotteAmount": "99",
 "externalId" : null,
 "company": "",
 "fonction": "",
 "tags" : [
   "tag1", "tag2", "tag3"
 ],
 "custom_fields": [
   "34567" => "Sport:Basket",
   "56789" => "Logement:Appartement"
 ],
 "status" : "Statut bronze"
}

Sinon, affichage d'un message d'erreur.

Exemple d'appel PHP :

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://social-sb.com/api/v2/customers/123456");
curl_setopt($curl, CURLOPT_USERPWD, "cle_publique:cle_privee"); // À remplacer par les clés d'API publique et privée dans votre back office, menu "Paramétrage > Tracker" en bas de page
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_return = curl_exec($curl);
var_dump($curl_return);
curl_close($curl);


GET All Customer

Permet de récupérer tous les profils de la CRM (pour un site_id)

GET ⇒ social-sb.com/api/v2/customers

Paramètres obligatoires : 

Aucun

Paramètres complémentaires :

Aucun

Réponse :

Si GET ok alors


"customers": [
 {
 "id": "123456",
 "lastName": "Doe",
 "firstName": "John",
 "email": "email-example@gmail.com",
 "country": null,
 "city": null,
 "address": "chemin Odette Vidal",
 "address2": null,
 "address3": null,
 "zip": null,
 "phone": "0235000000",
 "mobile": "0600000000",
 "lang": "fr",
 "birthday": null,
 "gender": "female",
 "createdAt": "2017-04-12T08:10:19+0000",
 "updatedAt": "2017-04-12T10:10:35+0000",
 "isFan": "0",
 "isFollow": "0",
 "isFanLinkedin": "0",
 "isBuyer": "1",
 "actionCount": "0",
 "lastActionDt": null,
 "lastOrderDt": null,
 "cagnotteAmount": null,
 "externalId" : null,
 "company": "",
 "fonction": "",
 "tags" : [
   "tag1", "tag2", "tag3"
 ]
 },
 {
 "id": "123457",
 "lastName": "Doe",
 "firstName": "Jane",
 "email": "email-example2@gmail.com",
 "country": null,
 "city": null,
 "address": "157, place de Bouvier",
 "address2": null,
 "address3": null,
 "zip": null,
 "phone": "0235100000",
 "mobile": "0620000000",
 "lang": "fr",
 "birthday": null,
 "gender": "male",
 "createdAt": "2017-04-12T08:10:50+0000",
 "updatedAt": "2017-04-12T10:11:03+0000",
 "isFan": "0",
 "isFollow": "0",
 "isFanLinkedin": "0",
 "isBuyer": "1",
 "actionCount": "0",
 "lastActionDt": null,
 "lastOrderDt": null,
 "cagnotteAmount": null,
 "externalId" : null,
 "company": "",
 "fonction": "",
 "tags" : ""
 }
],
"count": 2,
"nextPageUrl": "http://social-sb.com/api/v2/customers?maxResults=2&startAt=2"

Sinon, affichage d'un message d'erreur.


Exemple d'appel PHP :

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://social-sb.com/api/v2/customers"); 
curl_setopt($curl, CURLOPT_USERPWD, "cle_publique:cle_privee"); // À remplacer par les clés d'API publique et privée dans votre back office, menu "Paramétrage > Tracker" en bas de page
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_return = curl_exec($curl);
var_dump($curl_return);
curl_close($curl);


Faire une recherche précise :

Il est possible d'affiner la liste retournée en passant des paramètres GET.

Les paramètres d'affinage possibles :

  • "createdAfter" ⇒ seuls les customers créés après la date passée en paramètre seront remontés
  • "createBefore" ⇒ seuls les customers créés avant la date passée en paramètre seront remontés
  • "modifiedAfter" ⇒ seuls les customers modifiés après la date passée en paramètre seront remontés
  • "modifiedBefore" ⇒ seuls les customers modifiés avant la date passée en paramètre seront retournés
  • "email" ⇒ seul le customer avec l'adresse email passée en paramètre sera retourné
  • "lastName" ⇒ seuls les customers ayant le même nom de famille que celui passé en paramètre seront retournés
  • "firstName" ⇒ seuls les customers ayant le même nom de famille que celui passé en paramètre seront retournés
  • "zipcode" ⇒ seuls les customers ayant le même code postal que celui passé en paramètre seront remontés
  • "city" ⇒ seuls les customers ayant la même ville que celle passée en paramètre seront retournés
  • "country" ⇒ seuls les customers ayant le même pays que celui passé en paramètre seront retournés. Attention : les valeurs du pays suivent la norme ISO ALPHA-2 Code
  • "phoneNumber" ⇒ seuls les customers ayant le même numéro de téléphone fixe seront remontés
  • "mobilePhoneNumber" ⇒ seuls les customers ayant le même numéro de téléphone mobile seront remontés
  • "caseInsensitive" ⇒ les recherches sur des chaines de caractères ne sera pas sensible à la casse. Utilisation : /customers?caseInsensitive=1
  • "showCustomFields" ⇒ permet d'afficher les valeurs des champs personnalisés des customers. Utilisation : /customers?showCustomFields=1
  • "externalId" ⇒ seul le customer ayant le même external ID que celui passé en paramètre sera remonté
  • "ids" ⇒ une liste d'IDs séparés par une virgule. Seuls les profils avec ces IDs ressortiront de l'appel. Cette option se cumule avec les filtres ci-dessus.

Les paramètres sur la pagination :

  • "startAt" ⇒ permet de commencer la liste des campagnes à partir de l'occurence passée en paramètre
  • "maxResults" ⇒ permet de limiter le nombre de campagnes remontées par pages (max 5000)


POST CreateCustomer

Permet de créer un nouveau profil.

POST ⇒ social-sb.com/api/v2/customers

Paramètres obligatoires :

  • "email" : Email du customer à créer (dans le payload "contact")

Paramètres complémentaires :

  • "lastName" : Nom de famille du customer à créer
  • "firstName" : Prénom du customer à créer
  • "country" : Pays
  • "city" : Ville
  • "address" : Adresse du customer à créer
  • "address2" : Complément d'adresse à créer
  • "address3" : Complément d'adresse à créer
  • "zip" : Code postal
  • "phone" : numéro de téléphone fixe
  • "mobile" : numéro de téléphone mobile
  • "lang" : langue du customer
  • "birthday" : Date d'anniversaire, le format doit être "YYYY-mm-dd"
  • "gender" : Genre du customer. Les valeurs possibles sont "male" ou "female"
  • "isFan" : Est fan de la page Facebook (1 = oui; 0 = non)
  • "isFollow" : Suit la page Twitter (1 = oui; 0 = non)
  • "isFanLinkedin" : Fan de la page Linkedin (1 = oui; 0 = non)
  • "isBuyer" : Est client (1 = oui, 0 = non),
  • "externalId" : Un identifiant unique du customer,
  • "company" : L'entreprise du customer,
  • "fonction" : Le job du customer,
  • "tags" : permet d'ajouter des tags de profils. Les tags doivent être renseigné dans un tableau (exemple : array("tag1", "tag2", "tag3"))
  • "custom_fields" : permet d'ajouter des valeurs aux champs personnalisés. Les champs personnalisés doivent être renseignés dans un tableau (exemple : array(id_champ_perso1 ⇒ "valeur", id_champ_perso ⇒ "valeur"))

Réponse :

Si POST ok alors

"customer": {
 "id": "123456",
 "lastName": "Doe",
 "firstName": "John",
 "email": "email-example@gmail.com",
 "country": null,
 "city": null,
 "address": null,
 "address2": null,
 "address3": null,
 "zip": null,
 "phone": null,
 "mobile": null,
 "lang": "fr",
 "birthday": null,
 "gender": null,
 "createdAt": "2018-04-10T14:15:48+0000",
 "updatedAt": "2018-05-21T14:06:47+0000",
 "isFan": "0",
 "isFollow": "0",
 "isFanLinkedin": "0",
 "isBuyer": "0",
 "actionCount": "0",
 "lastActionDt": null,
 "lastOrderDt": null,
 "cagnotteAmount": "99",
 "externalId": null,
 "company": "",
 "fonction": "",
 "tags" : ""
}

Sinon, affichage d'un message d'erreur.


Exemple d'appel PHP :

$curl_post_data = array(
    'customer' => array (
        'email' => 'email-example@sb.am',
        'firstName' => 'John',
        'lastName' => 'Doe',
		'tags'  => array(
            "tag1", "tag2", "tag3"
        ),
		'custom_fields' => array(
            "1234" => "1",              // boutons radios (Oui / Non)
            "1235" => "42",             // numérique
            "1236" => "valeur",         // boutons radios (choix unique)
            "1237" => "2018-02-13",     // date
            "1238" => "un texte",       // texte
            "1239" => "valeur1|valeur7" // cases à cocher (choix multiple)
        )
    )
);

$curl_post_data = json_encode($curl_post_data);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://social-sb.com/api/v2/customers");
curl_setopt($curl, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_USERPWD, "cle_publique:cle_privee"); // À remplacer par les clés d'API publique et privée dans votre back office, menu "Paramétrage > Tracker" en bas de page
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data );
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_return = curl_exec($curl);
var_dump($curl_return);
curl_close($curl);



PUT UpdateCustomer

Permet de mettre à jour les informations d'un profil.

PUT ⇒ social-sb.com/api/v2/customers/{id}

Vous pouvez utiliser l'API UpdateCustomer pour mettre à jour l'email de vos profils existants dans SPREAD.

Si vous utilisez cette API pour ça, pensez bien à ajouter l'ID externe dans les paramètres de votre appel !


Paramètres obligatoires :

"email" : Email du customer à créer (dans le payload "contact")

Paramètres complémentaires :

  • "id" : ID externe - Voir cette documentation
  • "lastName" : Nom de famille du customer à créer
  • "firstName" : Prénom du customer à créer
  • "country" : Pays
  • "city" : Ville
  • "address" : Adresse du customer à créer. En seul champ
  • "zip" : Code postal
  • "phone" : numéro de téléphone fixe
  • "mobile" : numéro de téléphone mobile
  • "lang" : langue du customer
  • "birthday" : Date d'anniversaire, le format doit être "YYYY-mm-dd"
  • "gender" : Genre du customer. Les valeurs possibles sont "male" ou "female"
  • "isFan" : Est fan de la page Facebook (1 = oui; 0 = non)
  • "isFollow" : Suit la page Twitter (1 = oui; 0 = non)
  • "isFanLinkedin" : Fan de la page Linkedin (1 = oui; 0 = non)
  • "isBuyer" : Est client (1 = oui, 0 = non)
  • "tags" : permet d'ajouter des tags de profils. Les tags doivent être renseigné dans un tableau (exemple : array("tag1", "tag2", "tag3"))
  • "custom_fields" : permet d'ajouter des valeurs aux champs personnalisés. Les champs personnalisés doivent être renseignés dans un tableau (exemple : array(id_champ_perso1 ⇒ "valeur", id_champ_perso ⇒ "valeur"))

Réponse :

Si OK alors...

"customer": {
 "id": "123456",
 "lastName": "Doe",
 "firstName": "John",
 "email": "email-example@gmail.com",
 "country": null,
 "city": null,
 "address": null,
 "address2": null,
 "address3": null,
 "zip": null,
 "phone": null,
 "mobile": null,
 "lang": "fr",
 "birthday": null,
 "gender": null,
 "createdAt": "2018-04-10T14:15:48+0000",
 "updatedAt": "2018-05-21T14:06:47+0000",
 "isFan": "0",
 "isFollow": "0",
 "isFanLinkedin": "0",
 "isBuyer": "0",
 "actionCount": "0",
 "lastActionDt": null,
 "lastOrderDt": null,
 "cagnotteAmount": "99",
 "externalId": null,
 "company": "",
 "fonction": "",
 "tags" : ""
}

Exemple d'appel PHP :

$curl_post_data = array(
    'customer' => array (
        'email' => 'email-example@sb.am',
        'firstName' => 'John',
        'lastName' => 'Doe'
    )
);

$curl_post_data = json_encode($curl_post_data);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://social-sb.com/api/v2/customers/14764505");
curl_setopt($curl, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_USERPWD, "cle_publique:cle_privee"); // À remplacer par les clés d'API publique et privée dans votre back office, menu "Paramétrage > Tracker" en bas de page
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data );
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_return = curl_exec($curl);
var_dump($curl_return);
curl_close($curl);


PUT UpdateEmail

Permet de modifier l'adresse email d'un profil.

PUT ⇒ social-sb.com/api/v2/customers/email/update

Paramètres obligatoires :

  • "old_email"
  • "new_email"

Paramètres complémentaires :

Aucun

Réponse :

Si OK alors 

"customer": {
 "id": "123456",
 "lastName": "Doe",
 "firstName": "John",
 "email": "email-example@gmail.com",
 "country": null,
 "city": null,
 "address": null,
 "address2": null,
 "address3": null,
 "zip": null,
 "phone": null,
 "mobile": null,
 "lang": "fr",
 "birthday": null,
 "gender": null,
 "createdAt": "2018-04-10T14:15:48+0000",
 "updatedAt": "2018-05-21T14:06:47+0000",
 "isFan": "0",
 "isFollow": "0",
 "isFanLinkedin": "0",
 "isBuyer": "0",
 "actionCount": "0",
 "lastActionDt": null,
 "lastOrderDt": null,
 "cagnotteAmount": "99",
 "externalId": null,
 "company": "",
 "fonction": "",
 "tags" : ""
}

Exemple d'appel PHP :

$curl_post_data = array(
    'customer' => array (
        'old_email' => 'oldemail@gmail.com',
        'new_email' => 'newemail@gmail.com'
    )
);

$curl_post_data = json_encode($curl_post_data);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://social-sb.com/api/v2/customers/email/update");
curl_setopt($curl, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_USERPWD, "cle_publique:cle_privee"); // À remplacer par les clés d'API publique et privée dans votre back office, menu "Paramétrage > Tracker" en bas de page
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data );
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_return = curl_exec($curl);
var_dump($curl_return);
curl_close($curl);


DELETE Customer

Permet de supprimer un profil.

DELETE ⇒ social-sb.com/api/v2/customers/{id}

Paramètres obligatoires :

  • "id" identifiant SPREAD

Paramètres complémentaires :

Aucun

Réponse :

Si GET ok ⇒

"response": "Customer deleted."

Sinon, affichage message d'erreur.


Exemple d'appel PHP :

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://social-sb.com/api/v2/customers/123456");
curl_setopt($curl, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_USERPWD, "cle_publique:cle_privee"); // À remplacer par les clés d'API publique et privée dans votre back office, menu "Paramétrage > Tracker" en bas de page
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_return = curl_exec($curl);
var_dump($curl_return);
curl_close($curl);