DOM360
Campanhas

Criar uma campanha

POST
/campaigns

Cria uma campanha de voz (bloco voice, com o agente) ou de texto (bloco text, com o canal oficial e o template), já com a lista se ela vier em contacts. Nasce em draft por padrão; scheduled ou active põe a campanha para ligar ou enviar, exige campaigns:execute, ao menos um contato aceito e o cliente sem bloqueio financeiro (402). Linhas com telefone inválido voltam em import.refused em vez de derrubar o pedido. A Idempotency-Key é obrigatória: uma retentativa depois de um timeout devolve a mesma campanha em vez de criar outra com a lista em dobro. Nome repetido no mesmo agente ou canal responde 409.

Autorização

bearer campaigns:write
AutorizaçãoBearer <token>

Credencial da v3: o JWT da sessão (o mesmo da v2) ou um token pessoal dom_pat_…. A lista de escopos de cada operação diz o que ela exige: uma capacidade (agents:read), authenticated ou session-only. Segredo de máquina (X-Agent-Secret, X-API-Token, sdk_…) não é aceito.

Em: header

Escopo: campaigns:write

Parâmetros de cabeçalho

Idempotency-Key*string

Chave de 1 a 255 caracteres ASCII visíveis, estável por intenção do usuário: a mesma chave numa retentativa devolve a primeira resposta em vez de repetir o efeito.

Corpo da requisição

application/json

Definições TypeScript

Use o tipo request body no TypeScript.

O corpo de POST /campaigns, discriminado por type (08 §4.3): o comum (tenant_id, name, cadence_id, window, status, contacts) e o bloco do tipo — voice numa campanha de voz, text numa de texto. O bloco do outro tipo não casa com a variante (422).

Liga para cada contato por um agente de voz.

Corpo da resposta

application/json

application/json

curl -X POST "https://example.com/campaigns" \  -H "Idempotency-Key: b3f0c1e2-4a5b-4c6d-8e9f-0a1b2c3d4e5f" \  -H "Content-Type: application/json" \  -d '{    "cadence_id": "2dae81ce-ac29-4d7f-99da-5935c6305153",    "name": "string",    "type": "voice",    "voice": {      "agent_id": "2b1e3b65-2c04-4fa2-a2d7-467901e98978"    }  }'
{  "campaign": {    "cadence": {      "agent_id": "2b1e3b65-2c04-4fa2-a2d7-467901e98978",      "call_spacing_seconds": 0,      "created_at": "2019-08-24T14:15:22Z",      "description": "string",      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "max_attempts": 0,      "name": "string",      "retry_interval_seconds": 0,      "tenant_id": 0,      "updated_at": "2019-08-24T14:15:22Z"    },    "counters": {      "active": 0,      "answered": 0,      "completed": 0,      "failed": 0,      "pending": 0,      "total": 0    },    "created_at": "2019-08-24T14:15:22Z",    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "name": "string",    "next_attempt_at": "2019-08-24T14:15:22Z",    "progress": 0,    "status": "draft",    "tenant_id": 0,    "updated_at": "2019-08-24T14:15:22Z",    "window": {      "allowed_weekdays": [        0      ],      "daily_end_time": "string",      "daily_start_time": "string",      "end_at": "2019-08-24T14:15:22Z",      "start_at": "2019-08-24T14:15:22Z",      "timezone": "string"    },    "type": "voice",    "voice": {      "agent_context_columns": [        "string"      ],      "agent_id": "2b1e3b65-2c04-4fa2-a2d7-467901e98978",      "agent_task": "string",      "source_file_name": "string"    }  },  "import": null}