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)
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.
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.
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.
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);