Segments
Adresse d'appel
| Centre de données | URL |
|---|---|
| Singapour | https://email.api.engagelab.cc |
| Turquie | https://emailapi-tr.engagelab.com |
Lorsque vous utilisez l'API REST, assurez-vous que le centre de données sélectionné correspond à la base URL appropriée.
POST/v1/marketing/lists/segments
Créer
URL
https://email.api.engagelab.cc/v1/marketing/lists/segments
Méthode de requête HTTP
POST
Content-Type
application/json; charset=utf-8
En-têtes de la requête
| En-tête | Type | Obligatoire | Description |
|---|---|---|---|
| Authorization | string | true | Basic base64(api_user:api_key) |
Paramètres du corps de la requête
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| segment_name | string | true | Nom du segment (48 caractères maximum, ne prend pas en charge les caractères suivants : ^,?,+,.,*,,[,],(,) ) |
| type | integer | true | Type de segment (0 ou 1) 0. par champ ; 1. par campagne |
| condition | object | true | Condition du segment |
| relation | string | true | Relation des conditions (and ou or) |
| items | object[] | true | Conditions (jusqu'à 10 conditions de filtrage prises en charge, toutes les conditions ont la même relation, soit toutes and soit toutes or) |
| campaign_id | integer | false | ID de la campagne Si field_name=campaign, cette valeur est requise, et le statut de la campagne correspondante doit être en cours ou terminé |
| field_name | string | true | 1. Si type=0 field_name est le nom du champ, value est la valeur du champ ; field_name est "tag", value=nom du tag 2. Si type=1 field_name doit être campaign, value est l'un de "sent","open","click","unopen","unclick","notsent", dans ce cas campaign_id est requis et correspond à l'ID de la campagne |
| op | string | true | Opérateur (== , != , > , >= , < , <= , contain , does not contain) Quand field_name=campaign, op doit être == ; Quand field_name est un nom d'attribut ou tag, veuillez consulter conditions de filtrage pour les opérateurs disponibles |
| value | string | true | Lorsque fieldName est "tag", value=nomTag ; Lorsque fieldName est un nom de champ, veuillez consulter conditions de filtrage pour le format ; Lorsque fieldName = "campaign", value est l'un de sent, open, click, unopen, unclick, notsent |
Remarque :
- Veuillez consulter la relation correspondante entre field_name et op conditions de filtrage
Exemple de requête
curl -X POST -H 'Content-Type: application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/lists/segments --data '{
"segment_name": "Utilisateur Hubei",
"type": 0,
"condition": {
"relation": "and",
"items": [
{
"field_name": "Name",
"op": "contain",
"value": "Lei Li"
}
]
}
}'
Exemple de réponse
Réponse-Succès
HttpStatus: 200
{
"result": {
"segment_id": "6566f6392c16e71300b1b1e9",
"user_id": 104201,
"segment_name": "MyCustomField",
"type": 0,
"list_id": 96112,
"status": "2",
"create_time": "2023-11-29 16:28:41+0800",
"update_time": "2023-11-29 16:33:58+0800",
"member_total": 1,
"condition": {
"relation": "and",
"items": [
{
"field_name": "Name",
"op": "contain",
"value": "Lei li"
}
]
},
"process": {
"statusDesc": "segmentation terminée",
"complete": true,
"percent": 100
}
}
}
Réponse-Erreur
{
"code": 30035,
"message": "[segment_name]:Les caractères spéciaux tels que ^, ?, +, ., \\, [, ], (, ), ne peuvent pas être utilisés"
}
Supprimer
URL
https://email.api.engagelab.cc/v1/marketing/lists/segments/{segment_id}
Méthode de requête HTTP
DELETE
Content-Type
application/x-www-form-urlencoded;charset=utf-8
En-têtes de la requête
| En-tête | Type | Obligatoire | Description |
|---|---|---|---|
| Authorization | string | true | Basic base64(api_user:api_key) |
Exemple de requête
curl -X DELETE -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/lists/segments/6566f12d1e9adc15e3efd4
Exemple de réponse
Réponse-Succès
HttpStatus: 200
{
"count": 1
}
Réponse-Erreur
{
"code": 30036,
"message": "not found"
}
Mettre à jour
URL
https://email.api.engagelab.cc/v1/marketing/lists/segments/{segment_id}
Méthode de requête HTTP
PUT
Content-Type
application/json; charset=utf-8
En-têtes de la requête
| En-tête | Type | Obligatoire | Description |
|---|---|---|---|
| Authorization | string | true | Basic base64(api_user:api_key) |
Paramètres du corps de la requête
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| segment_name | string | false | Nom du groupe (jusqu'à 48 caractères) |
| type | integer | true | Type de groupe (0 ou 1) 0. par champ (groupé par attribut) ; 1. par campagne (groupé par performance) |
| condition | object | true | Condition du groupe |
| relation | string | true | Relation des conditions (and ou or) |
| items | object[] | true | Conditions (jusqu'à 10 conditions de filtrage prises en charge, toutes doivent avoir la même relation - soit toutes and soit toutes or) |
| campaign_id | integer | false | ID de la tâche marketing Si field_name=campaign, cette valeur est requise, et le statut de la tâche pour l'ID correspondant doit être en cours ou terminé |
| field_name | string | true | 1. Si type=0 2. Si type=1 field_name doit être campaign, value peut être "sent", "open", "click", "unopen", "unclick", "notsent", dans ce cas, campaignId est requis et doit correspondre à l'ID de la campagne |
| op | string | true | Opérateur (==, !=, >, >=, <, <=, contain, does not contain) Quand field_name=campaign, op doit être == ; quand field_name est un nom d'attribut ou tag, veuillez consulter conditions de filtrage pour les options disponibles |
| value | string | true | Lorsque field_name est "tag", value=nom du tag ; Lorsque field_name est un nom d'attribut, consultez conditions de filtrage pour le format ; lorsque field_name = "campaign", value doit être l'un de sent, open, click, unopen, unclick, notsent |
Remarque
- Veuillez consulter la relation correspondante entre field_name et op conditions de filtrage.
Exemple de requête
curl -X PUT -H 'Content-Type: application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/lists/segments/62849dc690d79d4947dd033d --data '{
"segment_name": "Âge entre 13 et 45",
"type": 0,
"condition": {
"relation": "and",
"items": [
{
"field_name": "Age",
"op": ">=",
"value": "13"
},
{
"field_name": "Age",
"op": "<=",
"value": "45"
}
]
}
}'
Paramètres de réponse
| paramètres | Type | Description |
|---|---|---|
| segment_id | string | ID du segment |
| segment_name | string | Nom du segment |
| list_id | integer | ID de la liste associée |
| status | string | Statut du segment (-1 : Échec, 1 : Mise à jour, 2 : Mise à jour terminée) |
| create_time | string | Date de création (UTC+8) |
| update_time | string | Date de mise à jour (UTC+8) |
| member_total | integer | Nombre total de membres dans le groupe |
| type | integer | Type de segment (0 ou 1) - 0 : par champ (groupé par attribut), 1 : par campagne (groupé par efficacité d'envoi) |
| condition | object | Condition du segment |
| relation | string | Relation des conditions (and, or) |
| items | object[] | Conditions |
| campaign_id | integer | ID de la campagne |
| field_name | string | Nom du champ |
| op | string | Opérateur |
| value | string | Valeur du champ |
| process | object | Avancement du traitement du groupe |
| status_desc | string | Description du statut du traitement |
| complete | Boolean | true : terminé, false : non terminé |
| percent | integer | Pourcentage d'achèvement |
Exemple de réponse
Réponse-Succès
HttpStatus: 200
{
"result": {
"segment_id": "6566f91fceac8f702f24dbba",
"user_id": 104201,
"segment_name": "Âge entre 13 et 45",
"type": 0,
"list_id": 96112,
"status": "2",
"create_time": "2023-11-29 16:41:03+0800",
"update_time": "2023-11-29 17:08:43+0800",
"member_total": 10,
"condition":{
"relation": "and",
"items":[
{
"campaign_id": null,
"field_name": "Age",
"op": ">=",
"value": "13"
},
{
"campaign_id": null,
"field_name": "Age",
"op": "<=",
"value": "45"
}
]
},
"process": {
"statusDesc": "segmentation terminée",
"complete": true,
"percent": 100
}
}
}
Réponse-Erreur
{
"code": 30036,
"message": "not found"
}
Détails du segment
URL
https://email.api.engagelab.cc/v1/marketing/lists/segments/{segment_id}
Méthode de requête HTTP
GET
Content-Type
application/x-www-form-urlencoded;charset=utf-8
En-têtes de la requête
| En-tête | Type | Obligatoire | Description |
|---|---|---|---|
| Authorization | string | true | Basic base64(api_user:api_key) |
Exemple de requête
curl -X GET -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/lists/segments/62849dc690d79d4947dd033d
Paramètres de réponse
| paramètres | Type | Description |
|---|---|---|
| segment_id | string | ID du segment |
| segment_name | string | Nom du segment |
| list_id | integer | ID de la liste associée |
| status | string | Statut du segment (-1. Échec, 1. Mise à jour, 2. Mise à jour terminée) |
| create_time | string | Date de création (UTC+8) |
| update_time | string | Date de mise à jour (UTC+8) |
| member_total | integer | Nombre total de membres dans le groupe |
| type | integer | Type de segment (0 ou 1) |
| condition | object | Conditions du segment |
| relation | string | Relation des conditions (and, or) |
| items | object[] | Conditions |
| campaign_id | integer | ID de la campagne |
| field_name | string | Nom du champ |
| op | string | Opérateur |
| value | string | Valeur du champ |
| process | object | Avancement du traitement du segment |
| status_desc | string | Description du statut du traitement |
| complete | Boolean | true si terminé, false si non terminé |
| percent | integer | Pourcentage d'avancement |
Exemple de réponse
Réponse-Succès
HttpStatus:200
{
"result": {
"segment_id": "6566f6392c16e71300b1b1e9",
"user_id": 104201,
"segment_name": "MyCustomField",
"relation": "and",
"type": 0,
"list_id": 96112,
"status": "2",
"create_time": "2023-11-29 16:28:41+0800",
"update_time": "2023-11-29 16:33:58+0800",
"member_total": 1,
"condition": {
"relation": "and",
"items":[{
"campaign_id": null,
"field_name": "CustomField",
"op": "contain",
"value": "CustomField"
}
]
},
"process": {
"statusDesc": "segmentation terminée",
"complete": true,
"percent": 100
}
}
}
Réponse-Erreur
{
"code": 30036,
"message": "not found"
}
Liste des segments
URL
https://email.api.engagelab.cc/v1/marketing/lists/segments
Méthode de requête HTTP
GET
Content-Type
application/x-www-form-urlencoded;charset=utf-8
En-têtes de la requête
| En-tête | Type | Obligatoire | Description |
|---|---|---|---|
| Authorization | string | true | Basic base64(api_user:api_key) |
Paramètres de requête
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| segment_name | string | false | Nom du segment, prend en charge la recherche floue |
| type | integer | false | Type de segment (0 ou 1) 0. par champ (grouper par champ) ; 1. par campagne (grouper par performance) |
| offset | integer | false | Position de départ de la requête, plage de valeurs [0-], par défaut 0 |
| limit | integer | false | Nombre de résultats à interroger, plage de valeurs [1-100], par défaut 10 |
Exemple de requête
curl -X GET -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/lists/segments?offset=0&limit=10&segmentName=abc_by_name&type=0
Paramètres de réponse
| Paramètres | Type | Description |
|---|---|---|
| list | array | Liste des membres |
| segment_id | string | ID du segment |
| segment_name | string | Nom du segment |
| list_id | integer | ID d'association de la liste |
| status | string | Statut du segment (-1 : Échec, 1 : Mise à jour, 2 : Mis à jour) |
| create_time | string | Date de création (UTC+8) |
| update_time | string | Date de mise à jour (UTC+8) |
| member_total | integer | Nombre total de membres dans le segment |
| type | integer | Type de segment (0 ou 1) - 0 : par champ, 1 : par campagne |
| condition | object | Conditions du segment |
| relation | string | Relation des conditions (and, or) |
| items | object[] | Conditions |
| campaign_id | integer | ID de la campagne |
| field_name | string | Nom du champ |
| op | string | Opérateur |
| value | string | Valeur du champ |
| process | object | Avancement du traitement du segment |
| status_desc | string | Description du statut du traitement |
| complete | Boolean | true si terminé, false si non terminé |
| percent | integer | Pourcentage d'avancement |
| total | integer | Nombre total d'enregistrements |
| count | integer | Nombre d'enregistrements résultants |
Exemple de réponse
Réponse-Succès
HttpStatus: 200
{
"result": [
{
"segment_id": "6566f6392c16e71300b1b1e9",
"segment_name": "MyCustomField",
"type": 0,
"list_id": 96112,
"status": "2",
"create_time": "2023-11-29 16:28:41+0800",
"update_time": "2023-11-29 16:33:58+0800",
"member_total": 1,
"condition": {
"relation": "and",
"items": [
{
"campaign_id": null,
"field_name": "CustomField",
"op": "contain",
"value": "CustomField"
}
]
},
"process": {
"statusDesc": "segmentation terminée",
"complete": true,
"percent": 100
}
},
{
"segment_id": "6566f2dd1e9adc15e3efd47e",
"segment_name": "Groupe d'utilisateurs Age>=20",
"type": 0,
"list_id": 96112,
"status": "2",
"create_time": "2023-11-29 16:14:21+0800",
"update_time": "2023-11-29 16:14:23+0800",
"member_total": 10,
"condition": {
"relation": "and",
"items": [
{
"campaign_id": null,
"field_name": "Age",
"op": ">=",
"value": "20"
}
]
},
"process": {
"statusDesc": "segmentation terminée",
"complete": true,
"percent": 100
}
}
],
"total": 4,
"count": 2
}
Réponse-Erreur
{
"code": 30035,
"message": "type only be 0 (by field) or 1 (by campaign)"
}
Interroger le processus du segment
URL
https://email.api.engagelab.cc/v1/marketing/lists/segments/{segment_id}/process
Méthode de requête HTTP
GET
Content-Type
application/x-www-form-urlencoded;charset=utf-8
En-têtes de la requête
| En-tête | Type | Obligatoire | Description |
|---|---|---|---|
| Authorization | string | true | Basic base64(api_user:api_key) |
Exemple de requête
curl -X GET -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/lists/segments/62849dc690d79d4947dd033d/process
Exemple de réponse
Réponse-Succès
HttpStatus: 200
{
"result": {
"percent": 68,
"complete": false,
"statusDesc": "segmentation en cours, veuillez ne pas utiliser ce segment pour envoyer des e-mails"
}
}
Réponse-Erreur
{
"code": 30036,
"message": "not found"
}
Liste des membres du segment
URL
https://email.api.engagelab.cc/v1/marketing/lists/segments/{segment_id}/members
Méthode de requête HTTP
POST
Content-Type
application/json; charset=utf-8
En-têtes de la requête
| En-tête | Type | Obligatoire | Description |
|---|---|---|---|
| Authorization | string | true | Basic base64(api_user:api_key) |
Paramètres de requête
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| offset | integer | false | Position de départ de la requête, plage valide : [0-], par défaut 0 |
| limit | integer | false | Nombre d'entrées à interroger, plage valide : [1-100], par défaut 10 |
Paramètres du corps de la requête
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| condition | object | false | Condition de regroupement |
| relation | string | true | Relation des conditions (and ou or) |
| items | object[] | true | Conditions (jusqu'à 10 conditions de filtrage prises en charge, toutes avec la même relation and ou or) |
| field_name | string | true | field_name est le nom de l'attribut, value est la valeur de l'attribut ; lorsque field_name est "tag", value=nom du tag |
| op | string | true | Opérateur (==, !=, >, >=, <, <=, contain, does not contain) |
| value | string | true | Lorsque field_name = "tag", value = nom du tag ; Lorsque field_name est un nom d'attribut, consultez conditions de filtrage pour le format |
Remarque :
- Veuillez consulter la relation correspondante entre field_name et op conditions de filtrage
Exemple de requête
curl -X POST -H 'Content-Type: application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/lists/segments/62908150eb5e955d6d214da6/members?offset=0&limit=10 --data '{
"condition": {
"relation": "and",
"items": [
{
"field_name": "Email",
"op": "contain",
"value": "tw"
}
]
}
}'
Paramètres de réponse
| paramètres | Type | Description |
|---|---|---|
| list | array[object] | Tableau de la liste |
| id | string | ID du membre |
| list_id | integer | ID de la liste |
| string | Adresse e-mail | |
| phone | string | Numéro de téléphone |
| name | string | Nom |
| create_time | string | Date de création (UTC+8) |
| update_time | string | Date de mise à jour de l'abonnement (UTC+8) |
| unsubscribe_time | string | Date de désabonnement (UTC+8) |
| fields | object | Champs du membre |
| tag_ids | string[] | Ensemble d'ID de tag |
| tag_names | string[] | Ensemble de noms de tag |
| total | integer | Nombre total d'enregistrements |
Exemple de réponse
Réponse-Succès
HttpStatus: 200
{
"result": [
{
"id": "629d6650490f33c5eef1caa6",
"list_id": 63486,
"email": "paulchen0518@yahoo.com.tw",
"phone": null,
"name": "shanshan",
"create_time": "2022-06-06T10:28:32+0800",
"update_time": "2022-06-06T10:28:32+0800",
"unsubscribe_time": null,
"fields": {
"Gender": "Female"
},
"tags": null,
"tag_names": []
},
{
"id": "629d665a490f33c5eef2932f",
"list_id": 63486,
"email": "q510518@yahoo.com.tw",
"phone": null,
"name": "",
"create_time": "2022-06-06T10:28:42+0800",
"update_time": "2022-06-06T10:28:42+0800",
"unsubscribe_time": null,
"fields": {
"Gender": ""
},
"tag_ids": null,
"tag_names": []
}
],
"total": 2
}
Réponse-Erreur
{
"code": 30000,
"message": "Échec de l'authentification"
}
Supprimer des membres du segment
URL
https://email.api.engagelab.cc/v1/marketing/lists/segments/{segment_id}/members
Méthode de requête HTTP
DELETE
Content-Type
application/json; charset=utf-8
En-têtes de la requête
| En-tête | Type | Obligatoire | Description |
|---|---|---|---|
| Authorization | string | true | Basic base64(api_user:api_key) |
Paramètres du corps de la requête
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| member_ids | string[] | true | liste d'ID membres |
Exemple de requête
curl -X DELETE -H 'Content-Type: application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/lists/segments/62849dc690d79d4947dd033d/members --data '{
"member_ids": [
"asdfsdf2211212aa",
"2sadfs288332223s"
]
}'
Exemple de réponse
Réponse-Succès
HttpStatus: 200
{
"count": 100
}
Réponse-Erreur
{
"code": 30000,
"message": "Échec de l'authentification"
}

