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étodo | Ruta |
|---|---|
| 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ámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
messageTemplateId | string | Sí | ID del template (bspTemplate._id). |
Body
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
client_id | number | No | Cliente. Requiere BSP_CN si difiere del token. |
channel_campaigns | array | No | Lista 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
channelycampaign. Todos los demás campos se preservan idénticos (active,associatedFlow,dynamicPricing,headerType,highQuality,isDirectMessage,syncMeta, fechas, etc.), incluidocreatedByoriginal.
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ódigo | Caso |
|---|---|
403 | client_id distinto al del token sin BSP_CN |
404 | Template no encontrado |