Uma campanha se refere a um recurso de discador automático de saída que entra em contato sequencialmente com uma lista de contatos, inicia chamadas de saída e conecta cada contato a um agente disponível. Os endpoints de campanha fornecem acesso a dados relacionados a campanhas, permitindo a recuperação de objetos de campanha e contato.
O objeto Campaign representa uma única campanha na plataforma.
O objeto Contact representa um contato individual de uma campanha específica.
Os endpoints de campanha permitem que os usuários adicionem, atualizem e excluam contatos de uma campanha existente. Os endpoints disponíveis incluem:
Status do contato da campanha
O campo de status pode estar em qualquer um dos seguintes estados:
| Status do contato da campanha | Descrição |
|---|---|
| Em breve | O contato será discado em seguida. |
| Discando | O contato está sendo discado agora. |
| Na fila | A chamada para um determinado contato está na fila. |
| Conectado | O contato está conectado a um agente. |
| Concluído | A chamada foi concluída. |
| Transferida | A chamada foi transferida. |
| Transferência concluída | A chamada foi transferida e concluída. |
| Não retirado | O usuário final não respondeu ou nunca foi contatado. |
| Não foi possível entrar em contato | A chamada nunca chegou ao contato. |
| Abandonada pelo contato | Na prévia, o usuário final desliga antes de se conectar a um agente. Para os dois tipos, o usuário final desliga a chamada em até 5 segundos após se conectar ao agente. |
| Ignorado | O contato foi ignorado pelo agente e estará disponível para ser conectado a outro agente. |
| Ignorada e fechada | Na prévia, o agente pula e encerra um contato. Esse contato sempre será ignorado nessa campanha. |
| Número inválido | Contato com número de telefone inválido. |
| Erro da transportadora | Esse erro é causado pela operadora. |
| Abandonada pelo Telefone | O discador abandonou o contato. |
| O correio de voz foi desligado | No modo preditivo, o discador determina que o usuário final é uma máquina (por exemplo, correio de voz). |
| Erro geral do discador | A chamada falhou devido a um erro no discador. |
| Ligar de novo programado | Status temporário. Rediscagem programada para o futuro. |
| Não ligar | O número estava na lista de bloqueio de ligações. |
| Número de saída inválido | Contato com número de saída inválido. |
| Número de telefone bloqueado | Contato com número internacional inválido/bloqueado. |
Adicionar um único contato a uma campanha
| Parâmetro | Obrigatório | Tipo de dados | Definição |
|---|---|---|---|
| campaign_id | TRUE | Número inteiro | O ID da campanha a que um contato será adicionado. |
Endpoint:
Method: POST
Type: RAW
URL: https://{subdomain}.{domain}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts
Cabeçalhos:
| Chave | Valor | Descrição |
|---|---|---|
| Content-Type | application/json |
Corpo:
{
"name": "string",
"email": "customer@somedomain.com",
"phone_number": "+1 111-111-1111",
"outbound_number": "+1 760-867-5309",
"external_unique_id": "UID_123456"
}
Exemplo de solicitação e respostas
As seções a seguir fornecem exemplos de solicitações ao endpoint.
Adicionar um único contato a uma campanha
Este exemplo mostra como adicionar um contato a um ID de campanha específico.
Solicitação
Cabeçalhos:
| Chave | Valor | Descrição |
|---|---|---|
| Content-Type | application/json |
Consulta
| Chave | Valor | Descrição |
|---|---|---|
| campaign_id | integer | O ID da campanha a que o contato será adicionado |
Corpo:
{
"name": "string",
"email": "customer@somedomain.com",
"phone_number": "+1 111-111-1111",
"outbound_number": "+1 760-867-5309",
"external_unique_id": "UID_123456"
}
Resposta
{
"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 status:200
Receber contatos de uma campanha
| Parâmetro | Obrigatório | Tipo de dados | Definição |
|---|---|---|---|
| campaign_id | TRUE | Número inteiro | O ID da campanha de onde os contatos serão recuperados. |
Endpoint:
Method: GET
Type:
URL: https://{subdomain}.{domain}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts
Cabeçalhos:
| Chave | Valor | Descrição |
|---|---|---|
| Content-Type | application/json |
Consulta
| Chave | Valor | Descrição |
|---|---|---|
| campaign_id | integer | O ID da campanha a que o contato será adicionado |
Exemplo de solicitação e respostas
As seções a seguir fornecem exemplos de solicitações ao endpoint.
Receber contatos de uma campanha
O exemplo a seguir demonstra como recuperar os contatos para o ID da campanha especificado.
Solicitação
Cabeçalhos:
| Chave | Valor | Descrição |
|---|---|---|
| Content-Type | application/json |
Consulta
| Chave | Valor | Descrição |
|---|---|---|
| campaign_id | integer | ID da campanha a ser consultada |
Resposta
[
{
"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 status:200
Importar vários contatos para uma campanha
| Parâmetro | Obrigatório | Tipo de dados | Definição |
|---|---|---|---|
| arquivo | TRUE | String | Arquivo JSON que contém os vários contatos a serem adicionados a uma campanha. |
| campaign_id | TRUE | Número inteiro | O ID da campanha a que os contatos serão adicionados. |
Endpoint:
Method: POST
Type: FORM DATA
URL: https://{subdomain}.{domain}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts/import
Cabeçalhos:
| Chave | Valor | Descrição |
|---|---|---|
| Content-Type | multipart/form-data |
Corpo:
'FORM DATA'
Conteúdo do arquivo:
[
{
"name": "string",
"email": "customer@somedomain.com",
"phone_number": "+1 111-111-1111",
"outbound_number": "+1 760-867-5309",
"external_unique_id": "UID_123456"
}
]
Exemplo de solicitação e respostas
As seções a seguir fornecem exemplos de solicitações ao endpoint.
Importar vários contatos de um arquivo
Este exemplo demonstra a adição de contatos a uma campanha com base em um arquivo postado no endpoint. O arquivo é postado como dados de formulário.
Solicitação
Cabeçalhos:
| Chave | Valor | Descrição |
|---|---|---|
| Content-Type | multipart/form-data |
Consulta
| Chave | Valor | Descrição |
|---|---|---|
| campaign_id | integer | ID da campanha a que os contatos serão adicionados |
Conteúdo do arquivo:
[
{
"name": "string",
"email": "customer@somedomain.com",
"phone_number": "+1 111-111-1111",
"outbound_number": "+1 760-867-5309",
"external_unique_id": "UID_123456"
}
]
Resposta
None
Código de status:202 (Aceito)
Jobs
| Parâmetro | Obrigatório | Tipo de dados | Definição |
|---|---|---|---|
| job_id | TRUE | Número inteiro | O ID do job que você quer recuperar |
| campaign_id | TRUE | Número inteiro | O ID da campanha a que o ID do trabalho pertence. |
Endpoint:
Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts/jobs/{job_id}
Cabeçalhos:
| Chave | Valor | Descrição |
|---|---|---|
| Content-Type | application/json |
Exemplo de solicitação e respostas
As seções a seguir fornecem exemplos de solicitações ao endpoint.
Concluído com sucesso
O exemplo a seguir demonstra como recuperar o job e identificar se ele foi concluído.
Solicitação
Cabeçalhos:
| Chave | Valor | Descrição |
|---|---|---|
| Content-Type | application/json |
Consulta
| Chave | Valor | Descrição |
|---|---|---|
| campaign_id | 1 | O ID da campanha a que o job pertence |
| job_id | 530 | O ID do job para verificar o status |
Resposta
{
"id": 530,
"status": "completed",
"type": "Jobs::Bulk::Campaign::ParentJob"
}
Código de status:200
A importação ainda está em andamento
O exemplo a seguir demonstra como recuperar o job e identificar se a importação ainda está em andamento.
Solicitação
Cabeçalhos:
| Chave | Valor | Descrição |
|---|---|---|
| Content-Type | application/json |
Consulta
| Chave | Valor | Descrição |
|---|---|---|
| campaign_id | 1 | O ID da campanha a que o job pertence |
| job_id | 530 | O ID do job para verificar o status |
Resposta
{
"id": 530,
"status": "in_progress",
"type": "Jobs::Bulk::Campaign::ParentJob"
}
Código de status:200
Job com falha
O exemplo a seguir demonstra como recuperar o job e identificar se ele falhou.
Solicitação
Cabeçalhos:
| Chave | Valor | Descrição |
|---|---|---|
| Content-Type | application/json |
Consulta
| Chave | Valor | Descrição |
|---|---|---|
| campaign_id | 1 | O ID da campanha a que o job pertence |
| job_id | 523 | O ID do job para verificar o status |
Resposta
{
"error_details": "NativePowerDial::ContactService::DuplicateContactPhoneOnCampaign",
"error_message": "Internal Error",
"id": 523,
"status": "failed",
"type": "Jobs::Bulk::Campaign::StartImport"
}
Código de status:200
Atualizar um único contato
| Parâmetro | Obrigatório | Tipo de dados | Definição |
|---|---|---|---|
| campaign_id | TRUE | Número inteiro | O ID da campanha a que o ID do trabalho pertence. |
Endpoint:
Method: PATCH
Type: RAW
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contact
Cabeçalhos:
| Chave | Valor | Descrição |
|---|---|---|
| Content-Type | application/json |
Corpo:
{
"contact_id": 16312,
"name": "string",
"email": "customer@somedomain.com",
"phone_number": "+1 111-111-1111",
"external_unique_id": "UID_123456"
}
Exemplo de solicitação e respostas
As seções a seguir fornecem exemplos de solicitações ao endpoint.
Atualizar um contato para uma campanha
Este exemplo mostra como atualizar um contato que está em uma campanha específica.
Solicitação
Cabeçalhos:
| Chave | Valor | Descrição |
|---|---|---|
| Content-Type | application/json |
Corpo:
{
"contact_id": 7,
"name": "Bob Smith",
"email": "customer@somedomain.com",
"phone_number": "+1 111-111-1111",
"external_unique_id": "UID_123456"
}
Resposta
{
"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 status:200
Remover um único contato
| Parâmetro | Obrigatório | Tipo de dados | Definição |
|---|---|---|---|
| campaign_id | TRUE | Número inteiro | O ID da campanha a que o ID do trabalho pertence. |
Endpoint:
Method: DELETE
Type: RAW
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contact
Cabeçalhos:
| Chave | Valor | Descrição |
|---|---|---|
| Content-Type | application/json |
Corpo:
{
"contact_id": integer,
"phone_number": "string",
"external_unique_id": "string"
}
Exemplo de solicitação e respostas
As seções a seguir fornecem exemplos de solicitações ao endpoint.
Remover um contato por ID
Este exemplo demonstra como remover um contato de uma campanha com base no ID do contato.
Solicitação
Cabeçalhos:
| Chave | Valor | Descrição |
|---|---|---|
| Content-Type | application/json |
Corpo:
{
"contact_id": 7,
}
Consulta
| Chave | Valor | Descrição |
|---|---|---|
| campaign_id | 1 | O ID da campanha a que o job pertence |
Resposta
{
"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 status:200