Reten Docs
Despacho

Configuraciones de Despacho

CRUD de configuraciones de canales de proveedores de despacho por tenant.

GET /api/dispatch-configs

Lista todas las configuraciones de despacho del tenant actual.

Auth: Requerida — permiso VIEW_ACTIVITIES

Respuesta 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

Crea una configuración de despacho para una combinación de proveedor y canal.

Auth: Requerida — permiso MANAGE_ACTIVITY_CONFIG

Cuerpo de la Solicitud

CampoTipoRequeridoDescripción
dispatchProviderIdUUIDID del proveedor de despacho global
channelstringCanal (SALESMAN, CALLCENTER, etc.)
baseUrlstringURL del endpoint del proveedor
credentialsobjectCredenciales de autenticación (serán cifradas)
settingsobjectNoConfiguración adicional

Ejemplo

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()

Respuesta 201 Created

Validación

  • El proveedor debe soportar el canal especificado (debe existir la definición de canal)
  • Todos los campos de credenciales requeridos según la definición del canal deben proporcionarse
  • Todos los campos de configuración requeridos según la definición del canal deben proporcionarse

PATCH /api/dispatch-configs/:id

Actualiza una configuración de despacho.

Auth: Requerida — permiso MANAGE_ACTIVITY_CONFIG


DELETE /api/dispatch-configs/:id

Desactiva una configuración de despacho (eliminación suave).

Auth: Requerida — permiso MANAGE_ACTIVITY_CONFIG

Respuesta 204 No Content