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
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
dispatchProviderId | UUID | Sim | ID do provedor de despacho global |
channel | string | Sim | Canal (SALESMAN, CALLCENTER, etc.) |
baseUrl | string | Sim | URL do endpoint do provedor |
credentials | object | Sim | Credenciais de autenticação (serão criptografadas) |
settings | object | Não | Configuraçã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