Aller au contenu principal

Gestion des abonnés

Récupérer les informations d'un abonné

Pour récupérer les informations d'un abonné ou vérifier s'il est présent en base de données, vous devez faire un GET api/{idsite}/Subscribers

Les paramètres a spécifier dans l'url sont les suivants:

NomDescriptionTypeInformations complémentaires
idsiteIdentifiant de site MindBazNombre entierObligatoire
filter.byindique ce que contient filter.values. Les valeurs possibles sont "IdSubscriber","IdClient","Email".StringObligatoire
filter.valuesListe des valeurs à rechercher (séparés par des virgules) ex : email1@domain.com,email2@domain.comStringObligatoire
filter.idFieldsListe d'identifiants de champs séparés par des virgules (ex:0,1,7)stringAucune
filter.emailEncodingA rensigner si l'email est encodé. Les valeurs possibles sont "NONE", "MD5", "SHA1", "SHA2_256", "SHA2_512".Stringoptionnel, par defaut emailEncoding = NONE

Vous pouvez rechercher un abonné en fonction de :

  • son email : l'email stocké dans le field id 1. Vous pouvez aussi passer un email encodé (MD5, SHA2_256...) mais il faut renseigner l'encodage utilisé dans filter.emailEncoding. Attention, il ne faut pas mettre le 0x dans l'email encodé. Ex : 89D1DEEA9F6C6637964083C98E986B30
  • son id : l'identifiant de l'abonné (field id 0)
  • son idClient : votre propre identifiant client à stocker dans le champ field id 43
Best pratice

Pour des raisons de performance, il est fortement conseillé de fournir une liste de champs dans le paramètre filter.idFields et de ne pas récupérer tous les champs. Ne demandez que les champs dont vous avez besoin. Par ex, si vous faites un GET pour vérifier si l'abonné existe, utilisez filter.idFields=0 pour ne récupérer en retour que son id.

Les champs les plus souvent utilisés sont :

  • 0 : id
  • 1 : email
  • 3 : dernière date d'abonnement
  • 7 : statut de l'abonnement
  • 13 : civilité
  • 14 : nom
  • 15 : prénom

En réponse, l'api retourne un tableau d'objets Subscriber contenant les champs demandés en entrée dans le paramètre filter.idFields.

Le type Subscriber contient les champs suivant:

NomDescriptionType
idIdentifiant de l'abonnéNombre entier
fieldsChamps contenant les informations de l'abonnéCollection de SubscriberFieldData

Le type SubscriberFieldData est une collection de champs "clé/valeur" représentant comme suit:

NomDescriptionType
idFieldIdentifiant du champ (0 = id, 1 =email...)Nombre entier
valueValeur du champ (string, datetime, integer ou byte)Object
Info

Un appel API est disponible afin de récupérer la valeur "idField du champs à mettre à jour, voir la partie Gestion des champs depuis le menu.

Cette article du centre d'aide vous aidera à mieux comprendre la gestion des champs d'un abonné dans Mindbaz.

Ajouter un abonné dans la base de données

Afin d'ajouter un abonné dans votre base de données, vous devez faire un appel POST api/{idsite}/Subscribers. Cette api peut servir aussi à créer plusieurs abonnés.

Attention

Avant d'ajouté un abonné en base, vous devez vérifier s'il n'existe pas déjà. Vous ne pouvez pas créer 2 abonnés avec la même adresse email.

Les paramètres à spécifier dans l'url sont les suivants:

NomDescriptionTypeInformations complémentaires
idsiteIdentifiant de site MindBazNombre entierObligatoire

Dans le corps de la requête, les paramètres à passer sous la forme "application/json, text/json" sont un tableau d'objets Subscriber. Le type Subscriber contient les champs suivant:

NomDescriptionTypeInformations complémentaires
idIdentifiant de l'abonné (correspond également au champ field id=0)Nombre entierPour une création, vous pouvez omettre ce champ ou passer la valeur -1
fieldsChamps contenant les informations de l'abonnéCollection de SubscriberFieldDataObligatoire

Le type SubscriberFieldData est une collection de champs "clé/valeur" représentant comme suit:

NomDescriptionTypeInformations complémentaires
idFieldIdentifiant du champ (0 = id, 1 =email...)Nombre entierObligatoire
valueValeur du champ (string, datetime, integer ou byte)ObjectObligatoire
champs par défaut

Si vous ne renseignez pas de valeur pour les champs d'abonnement, un email sera automatiquement inséré en statut "abonné" avec une date d'abonnement = "maintenant" (dans les champs 2 et 3) et un statut = "abonné" (dans le champ 7).


Cas d'utilisation : collecte de l'email "montest@domain.com"

Je souhaite ajouter un abonné avec la valeur "montest@domain.com" dans le champs Email et la valeur "abonné" dans le champs "état de l'abonné".

Je vérifie si l'email existe en base. Pour cela, je fais un GET sur api/{idsite}/Subscribers?filter.by=Email&filter.values=montest@domain.com&filter.idFields=0,7.

Ici, je demande les idFields 0 et 7 pour connaitre l'id et le statut de son abonnement.

Comme l'abonné n'existe pas, j'obtiens ce retour :

{
"success": true,
"data": null,
"error": null,
"typeName": "Subscriber[]"
}

Si l'abonné existait, j'aurais obtenu son id en retour:

{
"success": true,
"data": [
{
"id": 123456,
"fields": [
{
"idField": 0,
"value": 123456
},
{
"idField": 7,
"value": 0
}
]
}
],
"error": null,
"typeName": "Subscriber[]"
}
INFO

Un statut "abonné" correspond à la valeur 0.

Voici les différentes valeurs possible pour le statut d'abonnement : 0:Abonné;1:Désabonné;2:Désabonnement manuel;3:Assainissement / Domaine invalide;4:Assainissement / Syntaxe invalide;5:Assainissement / Liste repoussoir;6:Assainissement / Doublon;7:Assainissement NPAI;8:En attente de confirmation d'inscription;9:Spam;10:En attente de validation;11:Test FAI;12:Désabonnement groupe

Pour insérer le nouvel abonné en base, je fais un POST sur api/{idsite}/Subscribers. Comme c'est une création, je ne spécifie pas le champs "id" de l'utilisateur.

[
{
"fields": [
{
"idField": 1,
"value": "montest@domain.com"
},
{
"idField": 7,
"value": 0
}
]
}
]

En retour d'appel j'obtiens les informations de l'abonné nouvellement créé:

{
"success": true,
"data": [
{
"id": 723081,
"fields": [
{
"idField": 0,
"value": 723081
},
{
"idField": 1,
"value": "montest@domain.com"
},
{
"idField": 2,
"value": "2021-08-24T15:00:29.409141+02:00"
},
{
"idField": 3,
"value": "2021-08-24T15:00:29.409141+02:00"
},
{
"idField": 7,
"value": 0
},
{
"idField": 37,
"value": "domain.com"
}
]
}
],
"error": null,
"typeName": "Subscriber[]"
}
info

Lorsque vous collectez des abonnés, nous vous conseillons d'utiliser les champs première provenance (field id 5) et dernière provenance (field id 6) pour y stocker l'origine de collecte de l'adresse email. Les champs Mode de collecte (field id 21) et Type de collecte (field id 22) ont été créé également pour vous aider à catégoriser les provenances de votre collecte.

Une api subscriptions a été créée spécialement pour vous aider à mieux gérer vos abonnements.

attention

Une validation de l'email est faite avant l'insertion en base. Si l'email n'est pas valide, l'insertion n'est pas faite! Dans ce cas, l'api retourne quand même un success:true mais avec un id:-1 pour cet email.


Mise à jour d'un abonné dans la base de données

La mise a jour d'un abonné fonctionne comme la création. Il faut vérifier si l'email exite en base, récupérer son id et le passer dans le paramètre id en faisant un PUT api/{idsite}/Subscribers.

Cas d'utilisation 2 :Mise à jour de l'abonné

Je souhaite mettre à jour l'abonné précédement créé en passant son "état abonné" à désabonné. Je n'oublie pas de mettre à jour aussi la date de désabonnement (field id 4). Je fais un PUT sur api/{idsite}/Subscribers :

Comme c'est une mise à jour sur un abonné existant, je spécifie le champs "id" de l'utilisateur précédement créé.

[
{
"id": 723081,
"fields": [
{
"idField": 7,
"value": 1
},
{
"idField": 4,
"value": "2023/01/04 17:39"
}
]
}
]

En retour j'obtiens la confirmation de la mise à jour du champs

{
"success": true,
"data": [
{
"id": 723081,
"fields": [
{
"idField": 0,
"value": 723081
},
{
"idField": 7,
"value": 1
},
{
"idField": 4,
"value":"2023-01-04T17:39:00+01:00"
}
]
}
],
"error": null,
"typeName": "Subscriber[]"
}

Modifier plusieurs abonnés

Pour les appels POST et PUT, le paramètre d'entrée subscribers est une collection. Il est donc possible de mettre à jour n abonné(s) en un seul appel (avec un max de 5000 abonnés).

Par exemple pour créer plusieurs abonnés dans le même appel, je fais un POST avec :

[
{
"fields": [
{
"idField": 1,
"value": "montest@domain.com"
},
{
"idField": 7,
"value": 0
}
]
},
{
"fields": [
{
"idField": 1,
"value": "montestbis@domain.com"
},
{
"idField": 7,
"value": 0
}
]
}
]
info

si vous voulez faire des modifications et des insertions dans le même appel, cela est possible avec le POST. Si vous fournissez un id de subscriber valide au POST, il fera également la mise à jour de ses champs!

attention

Si une erreur intervient au milieu de la collection, cela interrompt le traitement et les emails suivants ne sont pas traités.

Bonne pratique

Si vous avez de gros volumes d’abonnés à insérer en base de données, nous vous conseillons d’utiliser l’api d’import pour cela. Vous aurez de meilleures performances!”