PATCH
/campaigns/{campaignId}Actualizar campaña
Actualiza una campaña existente por ID Las campañas se pueden actualizar parcialmente enviando solo los campos que quieres modificar.
API de WhatsApp y CRM
Necesitas una clave de API. Pídela a nuestro equipo de soporte o créala desde la plataforma.
PATCH https://api.getincloud.ai/v1/campaigns/{campaignId}Actualiza una campaña existente por ID
Las campañas se pueden actualizar parcialmente enviando solo los campos que quieres modificar.
Solo se pueden actualizar las campañas con estado draft, pending o paused.
Prueba este endpoint en el probador de API en vivo
>¿Necesitas ayuda? Explora todos los tutoriales, más de 100 ejemplos de casos de uso y juega con el probador de API en vivo con ejemplos de código listos para usar en más de 15 lenguajes de programación, incluidos JavaScript/Node.js, PHP, Python, C#, Java, Ruby, Swift, Kotlin, Powershell, cURL y más.
Autenticación
Envía tu API key en el encabezado Token en cada petición.
Cuerpo de la petición
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
message | string | No | Opcional. Mensaje general que se enviará en la campaña. Si no se especifica, se usará en su lugar el mensaje de la campaña. El mensaje puede usar [variables de plantilla](/help/templates) y la [sintaxis de texto enriquecido de WhatsApp](/help/text-format) para dar formato al mensaje. minLength: 2 · maxLength: 10000 |
template | object | No | Mensaje de plantilla preaprobada de WABA que se enviará. Obligatorio si los campos message y file están vacíos. Solo disponible en números con WABA habilitado. |
template.name | string | Sí | Nombre de la plantilla (en minúsculas, solo caracteres alfanuméricos y guiones bajos) maxLength: 512 · pattern: ^[a-z0-9_]+$ |
template.language | string | No | Código de idioma de la plantilla. Ejemplo: en_US, de_DE, es_MX, etc. minLength: 2 · maxLength: 5 |
file | string | No | Opcional. ID del archivo de imagen, video o documento (image/*, video/mp4 o application/pdf) que se enviará en cada mensaje de esta campaña. El archivo debe haberse subido previamente mediante la [API de carga de archivos](#tag/Files/operation/uploadFile). Establécelo en null para eliminar el archivo existente. minLength: 24 · maxLength: 24 · pattern: ^[0-9a-fA-F]{24}$ |
filename | string | No | Opcional. Nombre de archivo que se usará cuando el usuario descargue el archivo. Solo aplica a números de la API de WABA. maxLength: 50 |
activate | boolean | No | Opcional. Activa la campaña después de actualizarla. Si no se especifica, la campaña permanecerá en modo borrador.\nImportante: solo se pueden activar las campañas con una fecha configurada y al menos un contacto; de lo contrario, se devolverá un error. default: False |
settings | object | No | Configuración de la campaña, como fecha y hora de envío, velocidad de entrega de los mensajes, zona horaria y horas de entrega permitidas |
settings.speed | number | No | Velocidad de entrega de los mensajes de la campaña por minuto. Para reducir el riesgo de ser bloqueado por envío de spam o mensajes masivos, usa 1 mensaje por minuto o más. Como alternativa, para una entrega más rápida usa: 0.5 = 2 mensajes por minuto, 0.3 = 3 mensajes por minuto, 0.2 = 4 mensajes por minuto enum: [0.025, 0.0286, 0.0333, 0.04, 0.05, 0.0667, 0.1, 0.15, 0.2, 0.3, 0.5, 1, 1.25, 1.5, 1.75, 2, 2.5, 3, 4, 5] · minimum: 0 · maximum: 5 · format: float |
settings.date | string | No | Fecha y hora de entrega de la campaña en formato ISO 8601 YYYY-MM-DDTHH:MM:SSZ. Ejemplo: 2024-01-15T14:00:00Z. Por defecto, la hora se basa en la configuración de zona horaria de tu cuenta, pero puedes anularla especificando un campo timezone en la configuración (ver más abajo) format: date-time |
settings.expiration | string | No | Opcional. Tiempo de expiración de la campaña. Por defecto es 3 días = 3d. Si los mensajes de la campaña no se procesan por completo en el tiempo indicado, la campaña se detendrá automáticamente y se marcará como incomplete. Ejemplo: 24h enum: ['4h', '8h', '12h', '24h', '2d', '3d', '4d', '5d', '6d', '7d', '15d'] |
settings.timezone | string | No | Opcional. Zona horaria que se usará. Si no se especifica, se usará la zona horaria predeterminada de tu cuenta. Ejemplo: America/New_York. Consulta aquí la lista de valores de zona horaria permitidos minLength: 1 · maxLength: 100 |
contacts | array<object> | No | |
actions | array<object> | No | Lista opcional de acciones que se ejecutarán después de la entrega del mensaje. El alcance de las acciones se limita al chat o contacto que recibe el mensaje. Si la entrega del mensaje falla, las acciones se ignorarán. Nota: esta función solo es aplicable a dispositivos con soporte de chat multiagente. ### Acciones admitidas * Action: chat:assign * Description: Asigna el chat a un agente. * Params: - agent: string (opcional) - Obligatorio si department no está definido. ID del agente al que se asignará el chat después de la entrega del mensaje. Puedes obtener los IDs de los agentes [desde aquí](#operation/getDeviceAgents) - department: string (opcional) - Obligatorio si agent no está definido. ID del departamento al que se asignará el chat después de la entrega del mensaje. Puede usarse junto con el campo agent para asignar un chat a un agente y a un departamento a la vez. Puedes obtener el ID del departamento [desde aquí](#operation/getDepartments) - assigner: string (opcional) - Opcional. ID del agente que asigna el chat al otro agente ---- * Action: chat:unassign * Description: Desasigna el chat del agente actual * Params: - assigner: string (opcional) - ID del agente que asigna el chat al otro agente. Puedes obtener los IDs de los agentes [desde aquí](#operation/getDeviceAgents) ---- * Action: chat:resolve * Description: Resuelve el chat si aún no está resuelto. No se puede usar junto con la acción chat:unresolve. * Params: no params accepted ---- * Action: chat:unresolve * Description: Reabre el chat si ya está resuelto. No se puede usar junto con la acción chat:resolve. * Params: no params accepted ---- * Action: chat:read * Description: Marca el chat internamente como leído en la interfaz web de chat después de entregar el mensaje. No se puede usar junto con la acción chat:resolve. * Params: no params accepted ---- * Action: chat:unread * Description: Marca el chat internamente como no leído en la interfaz web de chat después de entregar el mensaje. No se puede usar junto con la acción chat:resolve. * Params: no params accepted ---- * Action: labels:add * Description: Agrega etiquetas al chat después de entregar el mensaje * Params: - labels: array (opcional) - Etiquetas que se agregarán al chat conservando las existentes. Puedes obtener la lista de etiquetas existentes [consultando este endpoint](#operation/getLabels) ---- * Action: labels:remove * Description: Elimina etiquetas del chat, si ya están presentes, después de entregar el mensaje * Params: - labels: array (opcional) - Etiquetas que se eliminarán del chat. Puedes obtener la lista de etiquetas existentes [consultando este endpoint](#operation/getLabels) ---- * Action: labels:set * Description: Establece y sobrescribe las etiquetas del chat después de entregar el mensaje * Params: - labels: array (opcional) - Etiquetas que se establecerán y sobrescribirán en el chat. Puedes obtener la lista de etiquetas existentes [consultando este endpoint](#operation/getLabels) ---- * Action: metadata:set * Description: Establece y sobrescribe las entradas clave-valor de metadatos en la entidad de contacto del chat de destino después de entregar el mensaje * Params: - metadata: array (opcional) - Entradas de metadatos con las propiedades key y value que se establecerán y sobrescribirán en el contacto del chat ---- * Action: metadata:add * Description: Agrega o sobrescribe, según el campo key, entradas clave-valor de metadatos existentes en la entidad de contacto del chat de destino después de entregar el mensaje * Params: - metadata: array (opcional) - Entradas de metadatos con las propiedades key y value que se añadirán al contacto del chat ---- * Action: metadata:remove * Description: Elimina entradas de metadatos existentes según el campo key en la entidad de contacto del chat de destino después de entregar el mensaje * Params: - keys: array (opcional) - Entradas de metadatos que se eliminarán por key en el contacto del chat |
unsubscribe | object | No | Opcionalmente permite que los usuarios se den de baja de los mensajes de la campaña. Si está habilitado, los usuarios pueden responder con una palabra predefinida para dejar de recibir mensajes en futuras campañas. |
unsubscribe.active | boolean | No | Establécelo en true para habilitar la función de baja automática de campañas. Si está habilitada, los usuarios pueden responder con una palabra predefinida para dejar de recibir mensajes de la campaña. Nota: esta función está incluida en todos los planes actuales de la Plataforma. default: False |
unsubscribe.word | string | No | Palabra de baja para dejar de recibir mensajes de la campaña. Si no se especifica, se usará la palabra predeterminada stop. minLength: 2 · maxLength: 30 |
unsubscribe.message | string | No | Mensaje de baja que se añadirá al final del mensaje de la campaña para informar a los destinatarios cómo darse de baja de futuras campañas. El mensaje debe contener un valor especificado en el campo word o stop como parte del texto del mensaje. Obligatorio cuando active es true. Ejemplo de mensaje: Reply *stop* to unsubscribe. Nota: el mensaje se ignora al enviar plantillas de WABA debido a las restricciones de contenido preaprobado; en su lugar, puedes añadir el mensaje de baja en el pie de la plantilla. minLength: 10 · maxLength: 500 |
unsubscribe.actions | array<object> | No | Lista opcional de acciones que se ejecutarán después de que el usuario responda para darse de baja. Las acciones solo se ejecutarán en el chat específico que activó la función de baja respondiendo con la palabra concreta, por ejemplo: stop. Nota: esta función solo es aplicable si la campaña tiene habilitada la función de baja, que está incluida en todos los planes actuales de la Plataforma. ### Acciones admitidas * Action: message:send * Description: Envía un mensaje automático para confirmar que el usuario se ha dado de baja correctamente. Esta acción está limitada a campañas con la función de baja habilitada. * Params: - message: string (opcional) - Texto del mensaje que se enviará como respuesta automática ---- * Action: chat:assign * Description: Asigna el chat a un agente. * Params: - agent: string (opcional) - Obligatorio si department no está definido. ID del agente al que se asignará el chat después de la entrega del mensaje. Puedes obtener los IDs de los agentes [desde aquí](#operation/getDeviceAgents) - department: string (opcional) - Obligatorio si agent no está definido. ID del departamento al que se asignará el chat después de la entrega del mensaje. Puede usarse junto con el campo agent para asignar un chat a un agente y a un departamento a la vez. Puedes obtener el ID del departamento [desde aquí](#operation/getDepartments) - assigner: string (opcional) - Opcional. ID del agente que asigna el chat al otro agente ---- * Action: chat:unassign * Description: Desasigna el chat del agente actual * Params: - assigner: string (opcional) - ID del agente que asigna el chat al otro agente. Puedes obtener los IDs de los agentes [desde aquí](#operation/getDeviceAgents) ---- * Action: chat:resolve * Description: Resuelve el chat si aún no está resuelto. No se puede usar junto con la acción chat:unresolve. * Params: no params accepted ---- * Action: chat:unresolve * Description: Reabre el chat si ya está resuelto. No se puede usar junto con la acción chat:resolve. * Params: no params accepted ---- * Action: chat:read * Description: Marca el chat internamente como leído en la interfaz web de chat después de entregar el mensaje. No se puede usar junto con la acción chat:resolve. * Params: no params accepted ---- * Action: chat:unread * Description: Marca el chat internamente como no leído en la interfaz web de chat después de entregar el mensaje. No se puede usar junto con la acción chat:resolve. * Params: no params accepted ---- * Action: labels:add * Description: Agrega etiquetas al chat después de entregar el mensaje * Params: - labels: array (opcional) - Etiquetas que se agregarán al chat conservando las existentes. Puedes obtener la lista de etiquetas existentes [consultando este endpoint](#operation/getLabels) ---- * Action: labels:remove * Description: Elimina etiquetas del chat, si ya están presentes, después de entregar el mensaje * Params: - labels: array (opcional) - Etiquetas que se eliminarán del chat. Puedes obtener la lista de etiquetas existentes [consultando este endpoint](#operation/getLabels) ---- * Action: labels:set * Description: Establece y sobrescribe las etiquetas del chat después de entregar el mensaje * Params: - labels: array (opcional) - Etiquetas que se establecerán y sobrescribirán en el chat. Puedes obtener la lista de etiquetas existentes [consultando este endpoint](#operation/getLabels) ---- * Action: metadata:set * Description: Establece y sobrescribe las entradas clave-valor de metadatos en la entidad de contacto del chat de destino después de entregar el mensaje * Params: - metadata: array (opcional) - Entradas de metadatos con las propiedades key y value que se establecerán y sobrescribirán en el contacto del chat ---- * Action: metadata:add * Description: Agrega o sobrescribe, según el campo key, entradas clave-valor de metadatos existentes en la entidad de contacto del chat de destino después de entregar el mensaje * Params: - metadata: array (opcional) - Entradas de metadatos con las propiedades key y value que se añadirán al contacto del chat ---- * Action: metadata:remove * Description: Elimina entradas de metadatos existentes según el campo key en la entidad de contacto del chat de destino después de entregar el mensaje * Params: - keys: array (opcional) - Entradas de metadatos que se eliminarán por key en el contacto del chat |
name | string | No | Nombre de la campaña minLength: 1 · maxLength: 50 |
device | string | No | ID del dispositivo de WhatsApp de destino que se usará para la entrega de los mensajes de la campaña minLength: 24 · maxLength: 24 · pattern: ^[0-9a-fA-F]{24}$ |
Respuestas
| Código | Descripción |
|---|---|
202 | Campaña actualizada |
400 | Datos de consulta o del cuerpo de la solicitud no válidos |
401 | No autorizado - Token de API no válido o ausente |
403 | Faltan los permisos necesarios |
404 | Recurso no encontrado |
409 | Conflicto |
429 | Demasiadas solicitudes - Inténtalo de nuevo más tarde |
500 | Error inesperado |
501 | No implementado |
503 | Servicio no disponible temporalmente - Inténtalo de nuevo más tarde |
¿Te sirvió esta página?