View Categories

API – Contactos

2 minutos de lectura

Te permite agregar, editar y recuperar información de contacto a través de la API.

Las llamadas API se realizan por canal. Los tokens se pueden generar mediante el icono de llave, junto al canal deseado en Settings/Channels. Hay un límite de 100 llamadas al API por minuto.

Solicitudes #

La API de contactos se compone de varias solicitudes:

  • Obtener contacto por campo personalizado
  • Obtener contacto por ID
  • Actualizar contacto por ID
  • Añadir etiqueta por ID
  • Eliminar etiqueta por ID
  • Crear contacto

Obtener Contacto por Campo Personalizado #

Esta solicitud devuelve una lista de objetos Contact con paginación.

/v1/contact/by_custom_field

Ejemplo GET Request #

curl -X GET \
      'https://chatcentral.orade.com/api/v1/contact/by_custom_field?name=firstName&value=Juan%20Ejemplo' \
      -H 'Authorization: Bearer {channel_token}' \
      -H 'Content-Type: application/json'

Respuesta – Success (HTTP status → 200) #

{
      "data": [
        {
          "id": "1776025372480910",
          "custom_fields": {
            "firstName": "Mahin",
            "lastName": "Dar",
            "locale": "en_GB",
            "timezone": "5",
            "gender": "male",
            "phone": "123123",
            "email": "juanej@orade.com",
            "customerid": "1"
          },
          "tags": [
            "Blog Updates",
            "Platform Updates"
          ],
          "created_at": 1575618542
        }
      ],
      "links": {
        "first": "http://chatcentral.orade.com/api/v1/contact/by_custom_field?page=1",
        "last": "http://chatcentral.orade.com/api/v1/contact/by_custom_field?page=1",
        "prev": null,
        "next": null
      },
      "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://chatcentral.orade.com/api/v1/contact/by_custom_field",
        "per_page": 10,
        "to": 1,
        "total": 1
     }
   }

Get Contact by ID – Obtener Contacto por ID #

Esta solicitud devuelve un único objeto de Contact.

/v1/contact/{contact_id}

Ejemplo GET Request #

curl -X GET \
      https://chatcentral.orade.com/api/v1/contact/1776025372480910 \
      -H 'Authorization: Bearer {channel_token}' \
      -H 'Content-Type: application/json' \

Respuesta – Success (HTTP status → 200) #

{
       "data": {
           "id": "1776025372480910",
           "custom_fields": {
               "firstName": "Mahin",
               "lastName": "Dar",
               "locale": "en_GB",
               "timezone": "5",
               "gender": "male",
               "phone": "123123",
               "email": "juanej@orade.com",
               "customerid": "1"
            },
            "tags": [
              "Blog Updates",
              "Platform Updates"
            ],
            "created_at": 1575618542
        }
    }

Update Contact by ID – Actualizar Contacto por ID #

Esta solicitud actualiza el valor de un campo personalizado de contacto.

/v1/contact/{contact_id}

Ejemplo PUT Request #

curl -X PUT \
      https://chatcentral.orade.com/api/v1/contact/1776025372480910 \
      -H 'Authorization: Bearer {channel_token}' \
      -H 'Content-Type: application/json' \
      -d '{
        "custom_fields": [
            {
                "name": "firstName",
                "value": "Juan Ejemplo"
            },
            {
                "name": "lastName",
                "value": "Dar"
            }
       ]
    }'

Respuesta – Success (HTTP status → 200) #

{
      "data": {
        "id": "cus_112233344555"
      }
    }

Limitantes #

Máximo 30 campos actualizados por solicitud.

Ten en cuenta que en el caso de Viber Channel – debido a una cierta limitación – el ID de contacto debe proporcionarse en un formato codificado en Base64.

Add Tag by ID – Agregar Etiqueta por ID #

Esta solicitud agrega una etiquetas para un Contacto.

/v1/contact/{contact_id}/tags

Ejemplo POST Request #

curl -X POST \
      https://chatcentral.orade.com/api/v1/contact/1776025372480910/tags \
      -H 'Authorization: Bearer {channel_token}' \
      -H 'Content-Type: application/json' \
      -d '{
        "tags": [
            "Blog Updates",
            "Platform Updates"
        ]
    }'

Respuesta – Success (HTTP status → 200) #

{
        "status": "success",
        "message": "Contact Tags have been added successfully.",
        "data": []
    }

Limitantes #

Máximo 10 etiquetas agregadas por solicitud.

Remove Tag by ID – Eliminar Etiquetas por ID #

Esta solicitud elimina las etiquetas de un contacto.

/v1/contact/{contact_id}/tags

Ejemplo DELETE Request #

curl -X DELETE \
      https://chatcentral.orade.com/api/v1/contact/1776025372480910/tags \
      -H 'Authorization: Bearer {channel_token}' \
      -H 'Content-Type: application/json' \
      -d '{
        "tags": [
            "Blog Updates",
            "Platform Updates"
        ]
    }'

Respuesta – Success (HTTP status → 200) #

{
        "status": "success",
        "message": "Contact Tags deleted successfully.",
        "data": []
    }

Limitantes #

Máximo 10 etiquetas eliminadas por solicitud.

IMPORTANTE: Ten en cuenta que en el caso de Viber Channel – debido a una cierta limitación – el ID de contacto debe proporcionarse en un formato codificado en Base64.

Crear contacto #

Esta solicitud crea un Contacto y establece valores para sus Campos personalizados.

/v1/contact

Ejemplo GET Request #

curl -X POST \
      https://chatcentral.orade.com/api/v1/contact/ \
      -H 'Authorization: Bearer {channel_api_token}' \
      -H 'Content-Type: application/json' \
      -d '{
        "custom_fields": [
            {
                "name": "phone",
                "value": "03244077087"
            },
            {
                "name": "firstName",
                "value": "Juan Ejemplo"
            },
            {
                "name": "lastName",
                "value": "Dar"
            }
        ]
    }'

Respuesta – Success (HTTP status → 200) #

{
        "data": {
            "id": "cus_112233344555"
        }
    }

Códigos de Error #

Unauthorized (HTTP Status → 401) #

{
        "status": "error",
        "message": "API Token is invalid.",
        "data": []
    }

Too Many Requests (HTTP Status → 429) #

{
      "status": "error",
      "message": "Too many requests",
      "data": []
}

Method Not Allowed (HTTP Status → 405) #

{
      "status": "error",
      "message": "405 Method Not Allowed.",
      "data": []
}

General (HTTP Status → 403) #

{
      "status": "error",
      "message": "Message String",
      "data": []
}

Limitantes #

Máximo 30 campos creados por solicitud.

Funciona con BetterDocs