Campañas
| Tool | Endpoint REST | Anotaciones |
list_campaigns | GET /v1/campaigns | lectura, idempotente |
get_campaign | GET /v1/campaigns/{id} | lectura, idempotente |
create_campaign | POST /v1/campaigns | escritura |
update_campaign | PATCH /v1/campaigns/{id} | escritura |
delete_campaign | DELETE /v1/campaigns/{id} | destructiva |
send_campaign | POST /v1/campaigns/{id}/send | escritura |
get_campaign_audience | GET /v1/campaigns/{id}/audience | lectura, idempotente |
add_campaign_audience | POST /v1/campaigns/{id}/audience | escritura |
remove_campaign_audience_client | DELETE /v1/campaigns/{id}/audience/{phone} | destructiva, idempotente |
clear_campaign_audience | DELETE /v1/campaigns/{id}/audience | destructiva |
CRUD básico
list_campaigns
| Campo | Tipo | Default |
limit | 1-200 | 50 |
offset | ≥ 0 | 0 |
sortBy | "title" \| "creationDate" \| "lastUpdate" | lastUpdate |
sortDirection | "asc" \| "desc" | desc |
get_campaign / delete_campaign
Sólo requieren campaignId.
create_campaign
| Campo | Tipo | Requerido | Descripción |
title | string | sí | |
category | "marketing" \| "utility" \| "authentication" | sí | |
platform | string | no | Default "whatsapp". |
templateName | string | no | Si se incluye, el API rellena language, message, template automáticamente. |
message, template, language, wabaId | string | no | Sobreescribibles. |
owners | string[] (emails) | no | |
update_campaign
Mismos campos que create_campaign (todos opcionales), más campaignId.
Audiencia
get_campaign_audience
| Campo | Tipo | Default |
campaignId | string | sí |
limit | 1-500 | 50 |
offset | ≥ 0 | 0 |
sortBy | "name" \| "creationDate" \| "lastUpdate" | lastUpdate |
sortDirection | "asc" \| "desc" | desc |
add_campaign_audience
{
"name": "add_campaign_audience",
"arguments": {
"campaignId": "promo_julio",
"clients": [
{ "phoneNumber": "+521234567890", "name": "Ana López" },
{ "phoneNumber": "+529876543210", "name": "Beto Pérez" }
]
}
}
remove_campaign_audience_client
| Campo | Requerido |
campaignId | sí |
phoneNumber | sí |
clear_campaign_audience
Sólo campaignId. Vacía toda la audiencia.
send_campaign
Dispara el envío real. La sección template debe ser consistente con la plantilla configurada en la campaña.
| Campo | Tipo | Requerido | Descripción |
campaignId | string | sí | |
channelId | string | sí | Canal/agente desde el que se enviará. |
template.name | string | no | |
template.params | string[] | no | |
template.type | "image" \| "video" \| "document" | no | |
template.file | string (URL) | no | Header multimedia. |
template.buttons[] | objeto | no | Soporta sub_type: url \| phone_number \| quick_reply \| otp \| flow. |
template.sendToProblematic | boolean | no | Default true. |
template.sendToUndeliverable | boolean | no | Default true. |
template.scheduledDates | string[] ISO 8601 | no | Para programar el envío. |