Lista de Contactos — Segmento¶
Um segmento é um filtro de contactos guardado numa lista de contactos. As campanhas podem ser
limitadas a um ou mais segmentos (o parâmetro segments[] de Campanha), e os
contactos de um segmento podem ser listados com
GET /contact_list/<list>/contacts?segment=<segment>.
Endpoints¶
| Método | URL |
|---|---|
GET |
/contact_list/<list>/segment/<segment> |
POST |
/contact_list/<list>/segment |
PUT |
/contact_list/<list>/segment/<segment> |
DELETE |
/contact_list/<list>/segment/<segment> |
Todos os verbos requerem acesso de escrita à lista.
GET /contact_list/<list>/segment/<segment>¶
| Parâmetro | Tipo | Descrição |
|---|---|---|
page |
int | Página de contactos do segmento a devolver. Por defeito 1. |
pagesize |
int | Contactos por página. Por defeito 10. |
Devolve: O segmento, uma página dos contactos que lhe correspondem (contacts), o número de
contactos encontrados (contactCount) e o número de páginas (contactPageCount).
Exemplo:
curl -u "username:api_key" -H "Accept: application/json" \
https://app.duo.pt/contact_list/{list_id}/segment/{segment_id}
Resposta:
{
"success": true,
"data": {
"page": 1,
"pagesize": 10,
"contact_list": {
"id": 1,
"owner": 1,
"name": "Example...",
"default_email_out": null,
"unsubscribe_message": "Click the button below to unsubscribe from the list.",
"email_out_custom_fields": null,
"double_optin": false,
"optout_allowed": true,
"optout_category": null,
"optin_email": null,
"optin_sms": null,
"shared_with_children": false,
"read_shared_with_children": false,
"segments": null
},
"segment": {
"id": 7,
"list": 1,
"name": "Subscribed at example.com",
"filter": {
"operator": "AND",
"arguments": [
{"operator": "ENDSWITH", "leftArg": "email", "rightArg": "@example.com"},
{"operator": "==", "leftArg": "subscription_state", "rightArg": "SUBSCRIBED"}
]
}
},
"contacts": [
{
"contact_id": 17137542,
"subscription_status": "SUBSCRIBED",
"bouncing": false,
"telephone": "351910000001",
"email": "contact@example.com"
}
],
"contactCount": 1,
"contactPageCount": 1,
"contact_count": {
"subscribed": { "count": 1 }
}
}
}
contact_count.subscribed.count é o número total de contactos que correspondem ao segmento,
seja qual for o seu estado de subscrição.
POST /contact_list/<list>/segment¶
| Parâmetro | Tipo | Descrição |
|---|---|---|
name |
string | Nome do segmento |
filter |
string JSON | Obrigatório. O filtro de contactos, com a mesma sintaxe do parâmetro filter de Contactos. |
Aviso
O filtro não é validado quando o segmento é gravado. Um filtro que não seja JSON válido, ou
que use um leftArg ou operador desconhecido, só falha quando o segmento é usado. Teste
primeiro o filtro com GET /contact_list/<list>/contacts.
Devolve: A lista de contactos e o novo segmento.
Exemplo:
curl -u "username:api_key" -H "Accept: application/json" \
-d "name=Subscribed+at+example.com" \
--data-urlencode 'filter={"operator":"AND","arguments":[{"operator":"ENDSWITH","leftArg":"email","rightArg":"@example.com"},{"operator":"==","leftArg":"subscription_state","rightArg":"SUBSCRIBED"}]}' \
https://app.duo.pt/contact_list/{list_id}/segment
Resposta:
{
"success": true,
"data": {
"contact_list": { "id": 1, "owner": 1, "name": "Example..." },
"segment": {
"id": 7,
"list": 1,
"name": "Subscribed at example.com",
"filter": {
"operator": "AND",
"arguments": [
{"operator": "ENDSWITH", "leftArg": "email", "rightArg": "@example.com"},
{"operator": "==", "leftArg": "subscription_state", "rightArg": "SUBSCRIBED"}
]
}
},
"success": true
}
}
PUT /contact_list/<list>/segment/<segment>¶
Mesmo payload que o POST.
Envie a alteração como POST com x-verb=PUT (ver Encapsulamento de Verbos HTTP).
Devolve: A lista de contactos e o segmento editado.
Exemplo:
curl -u "username:api_key" -H "Accept: application/json" \
-d "x-verb=PUT&name=Bouncing+contacts" \
--data-urlencode 'filter={"operator":"==","leftArg":"bounce_state","rightArg":"true"}' \
https://app.duo.pt/contact_list/{list_id}/segment/{segment_id}
Resposta:
{
"success": true,
"data": {
"contact_list": { "id": 1, "owner": 1, "name": "Example..." },
"segment": {
"id": 7,
"list": 1,
"name": "Bouncing contacts",
"filter": {"operator": "==", "leftArg": "bounce_state", "rightArg": "true"}
},
"success": true
}
}
DELETE /contact_list/<list>/segment/<segment>¶
Payload: Sem payload.
Devolve: O segmento eliminado (em segment e em result).
Exemplo:
curl -u "username:api_key" -H "Accept: application/json" -X DELETE \
https://app.duo.pt/contact_list/{list_id}/segment/{segment_id}
Resposta:
{
"success": true,
"data": {
"contact_list": { "id": 1, "owner": 1, "name": "Example..." },
"segment": {
"id": 7,
"list": 1,
"name": "Bouncing contacts",
"filter": {"operator": "==", "leftArg": "bounce_state", "rightArg": "true"}
},
"result": {
"id": 7,
"list": 1,
"name": "Bouncing contacts",
"filter": {"operator": "==", "leftArg": "bounce_state", "rightArg": "true"}
}
}
}