Reten Docs
Dispatch

Configurações de Despacho

CRUD para as configurações de canais de provedores de despacho por tenant.

GET /api/dispatch-configs

Lista todas as configurações de despacho do tenant atual.

Auth: Obrigatória — permissão activity:view

Resposta 200 OK

[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "dispatchProviderId": "660e8400-e29b-41d4-a716-446655440000",
    "channel": "SALESMAN",
    "baseUrl": "https://provider.example.com",
    "settings": {},
    "isActive": true,
    "dispatchProvider": {
      "code": "YOM",
      "name": "YOM Provider"
    }
  }
]

POST /api/dispatch-configs

Cria uma configuração de despacho para uma combinação de provedor e canal.

Auth: Obrigatória — permissão activity-config:manage

Corpo da Requisição

CampoTipoObrigatórioDescrição
dispatchProviderIdUUIDSimID do provedor de despacho global
channelstringSimCanal (SALESMAN, CALLCENTER, etc.)
baseUrlstringSimURL do endpoint do provedor
credentialsobjectSimCredenciais de autenticação (serão criptografadas)
settingsobjectNãoConfiguração adicional

Exemplo

curl -X POST https://api.reten.ai/api/dispatch-configs \
  -H "Authorization: Bearer <token>" \
  -H "x-tenant-id: <tenant-id>" \
  -H "Content-Type: application/json" \
  -d '{
    "dispatchProviderId": "660e8400-e29b-41d4-a716-446655440000",
    "channel": "SALESMAN",
    "baseUrl": "https://provider.example.com",
    "credentials": {
      "apiKey": "sk-xxx"
    }
  }'
const response = await fetch("https://api.reten.ai/api/dispatch-configs", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <token>",
    "x-tenant-id": "<tenant-id>",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    dispatchProviderId: "660e8400-e29b-41d4-a716-446655440000",
    channel: "SALESMAN",
    baseUrl: "https://provider.example.com",
    credentials: { apiKey: "sk-xxx" },
  }),
});
const config = await response.json();
import requests

response = requests.post(
    "https://api.reten.ai/api/dispatch-configs",
    headers={
        "Authorization": "Bearer <token>",
        "x-tenant-id": "<tenant-id>",
    },
    json={
        "dispatchProviderId": "660e8400-e29b-41d4-a716-446655440000",
        "channel": "SALESMAN",
        "baseUrl": "https://provider.example.com",
        "credentials": {"apiKey": "sk-xxx"},
    },
)
config = response.json()

Resposta 201 Created

Validação

  • O provedor deve suportar o canal especificado (a definição do canal deve existir)
  • Todos os campos de credenciais obrigatórios de acordo com a definição do canal devem ser fornecidos
  • Todos os campos de configuração obrigatórios de acordo com a definição do canal devem ser fornecidos

PATCH /api/dispatch-configs/:id

Atualiza uma configuração de despacho.

Auth: Obrigatória — permissão activity-config:manage


DELETE /api/dispatch-configs/:id

Desativa uma configuração de despacho (exclusão suave).

Auth: Obrigatória — permissão activity-config:manage

Resposta 204 No Content