Cambio de estado masivo
Habilita o deshabilita múltiples plantillas en una sola request. Los usuarios con permiso BSP_CN pueden operar a través de clientes.
Endpoint: PATCH /v1/templates/status
Body
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
action | string | No | Acción global: enable o disable. Puede omitirse si cada item define la suya. |
templates | array | Sí | Lista de IDs o de objetos {id, action}. |
Formato de templates
Cada item puede ser:
- Un string:
"id_template_1"(usa la acción global). - Un objeto:
{"id": "id_template_2", "action": "disable"}(override individual).
Request
Acción global
curl --request PATCH \
--url 'https://api.chattigo.com/v1/templates/status' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"action": "enable",
"templates": ["id_template_1", "id_template_2"]
}'Acción mixta (global + override)
curl --request PATCH \
--url 'https://api.chattigo.com/v1/templates/status' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"action": "enable",
"templates": [
"id_template_1",
{ "id": "id_template_2", "action": "disable" }
]
}'Acción por item (sin global)
curl --request PATCH \
--url 'https://api.chattigo.com/v1/templates/status' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"templates": [
{ "id": "id_template_1", "action": "enable" },
{ "id": "id_template_2", "action": "disable" }
]
}'Response
Éxito (200)
{
"results": [
{
"id": "664a1b2c3d4e5f6000000001",
"action": "enable",
"success": true,
"previous_active": false,
"current_active": true
},
{
"id": "664b1b2c3d4e5f6000000002",
"action": "enable",
"success": false,
"reason": "template_not_approved"
},
{
"id": "664b1b2c3d4e5f6000000002",
"action": "disable",
"skipped": true,
"reason": "conflicting_action"
}
],
"summary": {
"total": 3,
"succeeded": 1,
"skipped": 1,
"failed": 1
}
}Campos de cada item
| Campo | Tipo | Descripción |
|---|---|---|
id | string | ID del template. |
action | string | Acción procesada o intentada. |
success | boolean | true si el cambio se aplicó. |
skipped | boolean | true si el item fue descartado sin tocar la BD (duplicado o conflicto). |
reason | string | Motivo de success: false o skipped: true. |
previous_active / current_active | boolean | Estado antes/después (solo en éxito). |
Razones posibles de reason
not_found, forbidden, already_enabled, already_disabled, channel_unassigned, campaign_unassigned, template_not_approved.
Duplicados y conflictos
- Si el mismo
idse repite con la misma acción, solo la primera ocurrencia se procesa; las demás se devuelven conskipped: trueyreason: duplicate_request. - Si el mismo
idaparece con acciones distintas (global + override, o dos items con acciones diferentes), ninguna de las ocurrencias de ese id se procesa: todas van consuccess: falseyreason: conflicting_action, sin escribir en la base de datos.
Errores
| Código | Caso |
|---|---|
400 | templates vacío, acción inválida, o item sin acción resoluble |
403 | Cross-client sin BSP_CN |