Saltar al contenido

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

CampoTipoRequeridoDescripción
actionstringNoAcción global: enable o disable. Puede omitirse si cada item define la suya.
templatesarrayLista 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

CampoTipoDescripción
idstringID del template.
actionstringAcción procesada o intentada.
successbooleantrue si el cambio se aplicó.
skippedbooleantrue si el item fue descartado sin tocar la BD (duplicado o conflicto).
reasonstringMotivo de success: false o skipped: true.
previous_active / current_activebooleanEstado 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 id se repite con la misma acción, solo la primera ocurrencia se procesa; las demás se devuelven con skipped: true y reason: duplicate_request.
  • Si el mismo id aparece con acciones distintas (global + override, o dos items con acciones diferentes), ninguna de las ocurrencias de ese id se procesa: todas van con success: false y reason: conflicting_action, sin escribir en la base de datos.

Errores

CódigoCaso
400templates vacío, acción inválida, o item sin acción resoluble
403Cross-client sin BSP_CN