Saltar al contenido

Asignación de channel-campaign

Gestiona las asignaciones de canal/campaña de una plantilla. Varios clientes pueden compartir la misma WABA, pero cada uno tiene asignaciones independientes.

Endpoints:

MétodoRuta
GET/v1/templates/{messageTemplateId}/channel-campaigns-grouped
POST/v1/templates/{messageTemplateId}/channel-campaigns
PUT/v1/templates/{messageTemplateId}/channel-campaigns
DELETE/v1/templates/{messageTemplateId}/channel-campaigns

Parámetros

Path

ParámetroTipoRequeridoDescripción
messageTemplateIdstringID del template (bspTemplate._id).

Body

CampoTipoRequeridoDescripción
client_idnumberNoCliente. Requiere BSP_CN si difiere del token.
channel_campaignsarrayNoLista de {channel_id, campaign_id}.

Listar asignaciones agrupadas por campaña

curl --request GET \
  --url 'https://api.chattigo.com/v1/templates/{messageTemplateId}/channel-campaigns-grouped' \
  --header 'Authorization: Bearer <token>'

El GET agrupado devuelve un array de campañas con sus canales asignados (sin wrapper). Excluye el placeholder “Unassigned”:

[
  {
    "campaign_id": 5,
    "campaign_name": "Camp 1",
    "channels": [
      { "channel_id": 10, "name": "ch10", "did": "5731...", "type": "WHATSAPP", "waba_id": "123456789012345" }
    ]
  }
]

name se incluye solo cuando el canal lo tiene; si viene vacío se omite del objeto.

Crear asignaciones (crea siblings)

curl --request POST \
  --url 'https://api.chattigo.com/v1/templates/{messageTemplateId}/channel-campaigns' \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "client_id": 6,
    "channel_campaigns": [
      { "channel_id": 10, "campaign_id": 20 }
    ]
  }'

Copia exacta: la nueva tupla (sibling) es una copia byte-exacta de la plantilla original, cambiando solo channel y campaign. Todos los demás campos se preservan idénticos (active, associatedFlow, dynamicPricing, headerType, highQuality, isDirectMessage, syncMeta, fechas, etc.), incluido createdBy original.

curl --request PUT \
  --url 'https://api.chattigo.com/v1/templates/{messageTemplateId}/channel-campaigns' \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "client_id": 6,
    "channel_campaigns": [
      { "channel_id": 10, "campaign_id": 21 }
    ]
  }'

Eliminar asignación

curl --request DELETE \
  --url 'https://api.chattigo.com/v1/templates/{messageTemplateId}/channel-campaigns?client_id=6' \
  --header 'Authorization: Bearer <token>'

Response

POST — Éxito (201)

{
  "ids": ["664a1b2c3d4e5f6000000001", "664a1b2c3d4e5f6000000002"],
  "success": true
}

ids son los _id de cada documento persistido. El placeholder “Unassigned” reemplazado conserva su _id.

PUT / DELETE — Éxito (200)

{
  "ids": null,
  "success": true
}

Errores

CódigoCaso
403client_id distinto al del token sin BSP_CN
404Template no encontrado
Al eliminar la última asignación del cliente operante, se crea/actualiza un placeholder “Unassigned” solo para ese cliente, dejando intactas las asignaciones de otros clientes.