Ir para o conteúdo

Lista de Contactos — Contacto

Um contacto é uma entidade dentro de uma lista de contactos que contém os dados necessários para gerar e enviar mensagens.

Endpoints

Método URL
GET /contact_list/<list>/contact/<contact>
POST /contact_list/<list>/contact
PUT /contact_list/<list>/contact/<contact>
DELETE /contact_list/<list>/contact/<contact>

GET /contact_list/<list>/contact/<contact>

Payload: Sem payload.

Devolve: O contacto.

Example:

curl -u "username:api_key" -H "Accept: application/json" \
  https://app.duo.pt/contact_list/{list_id}/contact/{contact_id}

Response:

{
  "success": true,
  "data": {
    "contact_list_contact": {
      "id": 1,
      "list": 1,
      "email": "contact@example.com",
      "telephone": "351910000001",
      "subscription_status": "SUBSCRIBED",
      "bouncing": false
    }
  }
}

POST /contact_list/<list>/contact

Nota

Um contacto deve ter pelo menos um número de telefone ou um email. Listas sem double opt-in não podem ter contactos com estado de subscrição PENDING. Os campos personalizados são sempre opcionais.

Parâmetro Tipo Descrição
email string Email do contacto
telephone string Número de telefone do contacto
subscription_status string Um de SUBSCRIBED, PENDING, UNSUBSCRIBED
bouncing boolean Se o contacto está marcado como não recebendo payloads
custom_field[<id>] string Valor para um campo personalizado. Substituir <id> pelo ID do campo (ex. custom_field[42]). Pode aparecer várias vezes para diferentes IDs.

Devolve: O novo contacto.

Example:

curl -u "username:api_key" -H "Accept: application/json" \
  -d "email=contact@example.com&telephone=351910000000&subscription_status=SUBSCRIBED" \
  https://app.duo.pt/contact_list/{list_id}/contact

Response:

{
  "success": true,
  "data": {
    "contact_list": {
      "id": 1,
      "owner": 1,
      "name": "Example...",
      "default_email_out": null,
      "unsubscribe_message": "You have been unsubscribed.",
      "email_out_custom_fields": null,
      "double_optin": false,
      "optout_allowed": false,
      "optout_category": null,
      "optin_email": null,
      "optin_sms": null,
      "shared_with_children": false,
      "read_shared_with_children": false,
      "segments": null
    },
    "transactionalAutomationNodes": [],
    "contact_list_contact": {
      "id": 1,
      "list": 1,
      "email": "contact@example.com",
      "telephone": "351910000001",
      "subscription_status": "SUBSCRIBED",
      "bouncing": false
    },
    "success": true
  }
}

PUT /contact_list/<list>/contact/<contact>

Mesmo payload que o POST.

Aviso

O PUT repõe o subscription_status para PENDING quando os parâmetros são enviados como application/x-www-form-urlencoded. Para preservar o estado existente, envie o PUT com Content-Type: application/json e inclua "subscription_status": "SUBSCRIBED" no body JSON.

Devolve: O contacto editado.

Example:

curl -u "username:api_key" -H "Accept: application/json" -X PUT \
  -d "email=updated@example.com&subscription_status=SUBSCRIBED&bouncing=false" \
  https://app.duo.pt/contact_list/{list_id}/contact/{contact_id}

Response:

{
  "success": true,
  "data": {
    "contact_list": {
      "id": 1,
      "owner": 1,
      "name": "Example...",
      "default_email_out": null,
      "unsubscribe_message": "You have been unsubscribed.",
      "email_out_custom_fields": null,
      "double_optin": false,
      "optout_allowed": false,
      "optout_category": null,
      "optin_email": null,
      "optin_sms": null,
      "shared_with_children": false,
      "read_shared_with_children": false,
      "segments": null
    },
    "contact_list_contact": {
      "id": 1,
      "list": 1,
      "email": "contact@example.com",
      "telephone": "351910000001",
      "subscription_status": "PENDING",
      "bouncing": false
    },
    "success": true
  }
}

DELETE /contact_list/<list>/contact/<contact>

Payload: Sem payload.

Devolve: O contacto eliminado.

Example:

curl -u "username:api_key" -H "Accept: application/json" -X DELETE \
  https://app.duo.pt/contact_list/{list_id}/contact/{contact_id}

Response:

{
  "success": true,
  "data": {
    "contact_list_contact": {
      "id": 1,
      "list": 1,
      "email": "contact@example.com",
      "telephone": "351910000001",
      "subscription_status": "PENDING",
      "bouncing": false
    }
  }
}