Extremos de la campaña

Una campaña hace referencia a una función de marcado automático saliente que se comunica de forma secuencial con una lista de contactos, inicia llamadas salientes y conecta cada contacto con un agente disponible. Los extremos de la campaña proporcionan acceso a los datos relacionados con la campaña, lo que permite recuperar objetos de campaña y de contacto.

  • El objeto Campaign representa una sola campaña dentro de la plataforma.

  • El objeto Contact representa un contacto individual de la campaña dentro de una campaña específica.

Los extremos de la campaña permiten a los usuarios agregar, actualizar y borrar contactos de una campaña existente. Los extremos disponibles incluyen los siguientes:

Estado del contacto de la campaña

El campo de estado puede estar en cualquiera de los siguientes estados:

Estado del contacto de la campaña Descripción
Próximamente El contacto es el próximo al que se llamará.
Marcando Se está marcando el contacto en este momento.
En cola Se puso en cola la llamada para un contacto determinado.
Conectado El contacto se conectó con un agente.
Finalizado La llamada se completó.
Transferido Se transfirió la llamada.
Transferida y finalizada Se transfirió y, luego, se completó la llamada.
No se retiró El usuario final no respondió o nunca se comunicó con él.
No se pudo establecer contacto La llamada nunca llegó al contacto.
Abandonado por el contacto En la vista previa, el usuario final cuelga antes de conectarse con un agente. Tanto para la marcación progresiva como para la predictiva, el usuario final cuelga la llamada dentro de los 5 segundos posteriores a la conexión con el agente.
Omitido El agente omitió el contacto y estará disponible para conectarse con otro agente.
Omitida y cerrada En la vista previa, el agente omite y cierra un contacto. Ahora, este contacto siempre se omitirá en esta campaña.
Número no válido Contacto con número de teléfono no válido.
Error de la empresa de transporte Este error depende del operador.
Abandonado por el marcador El marcador abandonó el contacto.
Se cortó el buzón de voz En el modo predictivo, el marcador determina que el usuario final es una máquina (es decir, un correo de voz).
Error general del marcador La llamada falló debido a un error del marcador.
Volver a marcar programado Estado temporal. Se programó una nueva llamada para el futuro.
No llamar El número estaba en la lista de números de No llamar.
Número de salida no válido Contacto con número de salida no válido.
Número de teléfono bloqueado Contacto con un número internacional no válido o bloqueado.

Cómo agregar un solo contacto a una campaña

Parámetro Obligatorio Tipo de datos Definición
campaign_id TRUE Número entero Es el ID de la campaña a la que se agregará un contacto.

Endpoint:

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "name": "string",
    "email": "customer@somedomain.com",
    "phone_number": "+1 111-111-1111",
    "outbound_number": "+1 760-867-5309",
    "external_unique_id": "UID_123456"
}

Ejemplo de solicitud y respuestas

En las siguientes secciones, se proporcionan ejemplos de solicitudes al extremo.

Cómo agregar un solo contacto a una campaña

En este ejemplo, se muestra cómo agregar un contacto a un ID de campaña específico.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Consulta:

Clave Valor Descripción
campaign_id integer ID de la campaña a la que se agregará el contacto

Cuerpo:

{
    "name": "string",
    "email": "customer@somedomain.com",
    "phone_number": "+1 111-111-1111",
    "outbound_number": "+1 760-867-5309",
    "external_unique_id": "UID_123456"
}
Respuesta
{
    "valid_contacts": [
        {
            "name": "string",
            "email": "customer@somedomain.com",
            "phone_number": "+1 111-111-1111",
            "outbound_number": "+1 760-867-5309",
            "external_unique_id": "UID_123456"
        }
    ],
    "invalid_contacts": []
}

Código de estado: 200

Obtén los contactos de una campaña

Parámetro Obligatorio Tipo de datos Definición
campaign_id TRUE Número entero Es el ID de la campaña de la que se recuperarán los contactos.

Endpoint:

Method: GET
Type:
URL: https://{subdomain}.​{domain}​/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts

Encabezados:

Clave Valor Descripción
Content-Type application/json

Consulta:

Clave Valor Descripción
campaign_id integer ID de la campaña a la que se agregará el contacto

Ejemplo de solicitud y respuestas

En las siguientes secciones, se proporcionan ejemplos de solicitudes al extremo.

Obtén los contactos de una campaña

En el siguiente ejemplo, se muestra cómo recuperar los contactos para el ID de campaña determinado.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Consulta:

Clave Valor Descripción
campaign_id integer Es el ID de la campaña sobre la que se realizará la consulta.
Respuesta
[
  {
      "name": "string",
      "email": "customer@somedomain.com",
      "phone_number": "+1 111-111-1111",
      "outbound_number": "+1 760-867-5309",
      "external_unique_id": "UID_123456"
  }
]

Código de estado: 200

Importa varios contactos a una campaña

Parámetro Obligatorio Tipo de datos Definición
archivo TRUE String Archivo JSON que contiene los múltiples contactos que se agregarán a una campaña.
campaign_id TRUE Número entero Es el ID de la campaña a la que se agregarán los contactos.

Endpoint:

Method: POST
Type: FORM DATA
URL: https://{​subdomain}​.{​domain}​/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts/import

Encabezados:

Clave Valor Descripción
Content-Type multipart/form-data

Cuerpo:

'DATOS DEL FORMULARIO'

Contenido del archivo:

[
  {
      "name": "string",
      "email": "customer@somedomain.com",
      "phone_number": "+1 111-111-1111",
      "outbound_number": "+1 760-867-5309",
      "external_unique_id": "UID_123456"
  }
]

Ejemplo de solicitud y respuestas

En las siguientes secciones, se proporcionan ejemplos de solicitudes al extremo.

Cómo importar varios contactos desde un archivo

En este ejemplo, se muestra cómo agregar contactos a una campaña en función de un archivo que se publica en el extremo. El archivo se publica como datos de formulario.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type multipart/form-data

Consulta:

Clave Valor Descripción
campaign_id integer ID de la campaña a la que se agregarán los contactos

Contenido del archivo:

[
  {
      "name": "string",
      "email": "customer@somedomain.com",
      "phone_number": "+1 111-111-1111",
      "outbound_number": "+1 760-867-5309",
      "external_unique_id": "UID_123456"
  }
]
Respuesta

None

Código de estado: 202 (Aceptado)

Trabajos

Parámetro Obligatorio Tipo de datos Definición
job_id TRUE Número entero ID del trabajo que deseas recuperar
campaign_id TRUE Número entero Es el ID de la campaña a la que pertenece el ID del trabajo.

Endpoint:

Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts/jobs/{job_id}

Encabezados:

Clave Valor Descripción
Content-Type application/json

Ejemplo de solicitud y respuestas

En las siguientes secciones, se proporcionan ejemplos de solicitudes al extremo.

Se completó correctamente

En el siguiente ejemplo, se muestra cómo recuperar el trabajo y determinar si se completó correctamente.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Consulta:

Clave Valor Descripción
campaign_id 1 ID de la campaña a la que pertenece el trabajo
job_id 530 Es el ID del trabajo cuyo estado se verificará.
Respuesta
{
    "id": 530,
    "status": "completed",
    "type": "Jobs::Bulk::Campaign::ParentJob"
}

Código de estado: 200

La importación aún está en curso

En el siguiente ejemplo, se muestra cómo recuperar el trabajo y determinar si la importación aún está en curso.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Consulta:

Clave Valor Descripción
campaign_id 1 ID de la campaña a la que pertenece el trabajo
job_id 530 Es el ID del trabajo cuyo estado se verificará.
Respuesta
{
    "id": 530,
    "status": "in_progress",
    "type": "Jobs::Bulk::Campaign::ParentJob"
}

Código de estado: 200

Trabajo con errores

En el siguiente ejemplo, se muestra cómo recuperar el trabajo y determinar si falló.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Consulta:

Clave Valor Descripción
campaign_id 1 ID de la campaña a la que pertenece el trabajo
job_id 523 Es el ID del trabajo cuyo estado se verificará.
Respuesta
{
    "error_details": "NativePowerDial::ContactService::DuplicateContactPhoneOnCampaign",
    "error_message": "Internal Error",
    "id": 523,
    "status": "failed",
    "type": "Jobs::Bulk::Campaign::StartImport"
}

Código de estado: 200

Actualiza un solo contacto

Parámetro Obligatorio Tipo de datos Definición
campaign_id TRUE Número entero Es el ID de la campaña a la que pertenece el ID del trabajo.

Endpoint:

Method: PATCH
Type: RAW
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contact

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "contact_id": 16312,
    "name": "string",
    "email": "customer@somedomain.com",
    "phone_number": "+1 111-111-1111",
    "external_unique_id": "UID_123456"
}

Ejemplo de solicitud y respuestas

En las siguientes secciones, se proporcionan ejemplos de solicitudes al extremo.

Actualiza un contacto para una campaña

En este ejemplo, se muestra cómo actualizar un contacto que se encuentra en una campaña específica.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "contact_id": 7,
    "name": "Bob Smith",
    "email": "customer@somedomain.com",
    "phone_number": "+1 111-111-1111",
    "external_unique_id": "UID_123456"
}
Respuesta
{
    "id": 7,
    "name": "Bob Smith",
    "campaign_id": 6,
    "assigned_call_id": null,
    "assigned_participant_id": null,
    "outbound_number": "+1-(201)-471-6992",
    "priority": null,
    "created_at": "2024-08-05T14:51:49.000Z",
    "updated_at": "2024-08-05T21:01:16.000Z",
    "status": "Upcoming",
    "user_custom_metadata": {
        "NAME (REQUIRED)": "Bob Smith",
        "PHONE (REQUIRED)": "+1 111-111-1111",
        "EMAIL (REQUIRED)": "customer@somedomain.com"
    }
}

Código de estado: 200

Cómo quitar un solo contacto

Parámetro Obligatorio Tipo de datos Definición
campaign_id TRUE Número entero Es el ID de la campaña a la que pertenece el ID del trabajo.

Endpoint:

Method: DELETE
Type: RAW
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contact

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "contact_id": integer,
    "phone_number": "string",
    "external_unique_id": "string"
}

Ejemplo de solicitud y respuestas

En las siguientes secciones, se proporcionan ejemplos de solicitudes al extremo.

Cómo quitar un contacto por ID

En este ejemplo, se muestra cómo quitar un contacto de una campaña según su ID.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "contact_id": 7,
}

Consulta:

Clave Valor Descripción
campaign_id 1 ID de la campaña a la que pertenece el trabajo
Respuesta
{
    "id": 7,
    "name": "Bob Smith",
    "campaign_id": 6,
    "assigned_call_id": null,
    "assigned_participant_id": null,
    "outbound_number": "+1-(201)-471-6992",
    "priority": null,
    "created_at": "2024-08-05T14:51:49.000Z",
    "updated_at": "2024-08-05T21:01:16.000Z",
    "status": "Upcoming",
    "user_custom_metadata": {
        "NAME (REQUIRED)": "Bob Smith",
        "PHONE (REQUIRED)": "+1 111-111-1111",
        "EMAIL (REQUIRED)": "customer@somedomain.com"
    }
}

Código de estado: 200