# Centro de ayuda de Ricky > Guías para configurar agentes, WhatsApp, Instagram, integraciones y conversaciones en Ricky. Cada enlace lleva a la página en Markdown. Todas las páginas en un solo archivo: https://getricky.ai/llms-full.txt. In English: https://getricky.ai/en/llms.txt. - Centro de ayuda: Configura y opera Ricky - [Centro de ayuda](https://getricky.ai/docs.md): Empieza con Ricky y aprende a atender a tus clientes por WhatsApp, Instagram y Messenger. - Primeros pasos - [Empieza con Ricky](https://getricky.ai/docs/primeros-pasos.md): Crea tu cuenta, conecta un canal, recibe tu primer mensaje e invita a tu equipo. - [Equipo y configuración](https://getricky.ai/docs/primeros-pasos/equipo.md): Invita personas, administra su acceso y configura tu cuenta y organización. - [Facturación y créditos](https://getricky.ai/docs/primeros-pasos/facturacion.md): Revisa tu suscripción, consumo y qué ocurre al agotarse los créditos de IA. - Canales - [Canales](https://getricky.ai/docs/canales.md): Conecta WhatsApp, Instagram, Messenger y el chat web a la bandeja compartida. - [Conecta WhatsApp](https://getricky.ai/docs/canales/whatsapp.md): Conecta un número de WhatsApp Business y comprueba su estado. - [Conecta Instagram](https://getricky.ai/docs/canales/instagram.md): Conecta una cuenta profesional de Instagram para atender mensajes directos. - [Conecta Messenger](https://getricky.ai/docs/canales/messenger.md): Conecta una Página de Facebook para recibir y responder mensajes directos. - [Pon un chat en tu sitio web](https://getricky.ai/docs/canales/chat-web.md): Agrega el chat web de Ricky a tu sitio público o a un sitio interno de tu equipo. - Agentes - [Configura un agente](https://getricky.ai/docs/agentes.md): Define cómo debe responder un agente y qué acciones puede ejecutar. - [Herramientas del agente](https://getricky.ai/docs/agentes/herramientas.md): Elige qué información puede consultar y qué acciones puede ejecutar un agente. - [Paso a atención humana](https://getricky.ai/docs/agentes/paso-a-humano.md): Permite que un agente asigne una conversación a una persona y pause la IA. - [Botones y mensajes interactivos](https://getricky.ai/docs/agentes/botones-interactivos.md): Deja que el agente ofrezca opciones tocables en WhatsApp e Instagram. - [Notas de voz](https://getricky.ai/docs/agentes/notas-de-voz.md): Recibe audio de clientes y envía grabaciones desde una conversación. - [Llamadas de voz con IA](https://getricky.ai/docs/agentes/llamadas-de-voz.md): Configura la voz del agente para llamadas en un número de WhatsApp compatible. - [Conocimiento del negocio](https://getricky.ai/docs/agentes/conocimiento.md): Organiza las ubicaciones y los contactos que tu equipo puede compartir con clientes. - [Archivos de conocimiento](https://getricky.ai/docs/agentes/archivos.md): Sube documentos e imágenes que el agente pueda consultar o enviar. - [Contactos para compartir](https://getricky.ai/docs/agentes/directorio.md): Guarda personas o departamentos que el agente puede recomendar a clientes. - [Ubicaciones del negocio](https://getricky.ai/docs/agentes/ubicaciones.md): Mantén direcciones y horarios que el agente pueda compartir. - Integraciones - [Integraciones](https://getricky.ai/docs/integraciones.md): Conecta los sistemas que un agente puede consultar o actualizar. - [Conecta Meta Ads](https://getricky.ai/docs/integraciones/meta-ads.md): Mira cuánto gastó cada anuncio de Meta junto a las conversaciones que trajo. - [Conecta n8n](https://getricky.ai/docs/integraciones/n8n.md): Autoriza workflows de n8n para que un agente pueda ejecutarlos. - [Conecta Odoo](https://getricky.ai/docs/integraciones/odoo.md): Administra la conexión privada con el Odoo de citas de tu negocio. - [Conecta Zoho CRM y Zoho Inventory](https://getricky.ai/docs/integraciones/zoho.md): Autoriza cada producto de Zoho por separado y elige las herramientas del agente. - [Conecta Google Drive](https://getricky.ai/docs/integraciones/google-drive.md): Deja que un agente busque archivos de la cuenta de Google conectada. - WhatsApp - [WhatsApp](https://getricky.ai/docs/whatsapp.md): Conecta un número, administra plantillas y prepara envíos. - [Plantillas de WhatsApp](https://getricky.ai/docs/whatsapp/plantillas.md): Crea y revisa plantillas aprobadas por WhatsApp para mensajes fuera de la ventana de 24 horas. - [Envíos masivos de WhatsApp](https://getricky.ai/docs/whatsapp/envios-masivos.md): Manda una plantilla a muchos contactos a la vez y revisa quién la recibió. - Operación - [Opera conversaciones](https://getricky.ai/docs/operacion/conversaciones.md): Revisa mensajes, asigna responsables o agentes y responde manualmente. - [Respuestas rápidas](https://getricky.ai/docs/operacion/respuestas-rapidas.md): Guarda textos que tu equipo reutiliza al responder y rellénalos sin volver a escribirlos. - [Contactos y CRM](https://getricky.ai/docs/operacion/contactos.md): Guarda y organiza la información de tus clientes, con etiquetas, campos y notas. - [Crea un workflow](https://getricky.ai/docs/operacion/workflows.md): Define cuándo comienza una conversación y qué pasos sigue el bot. - [Lee tus reportes](https://getricky.ai/docs/operacion/reportes.md): Entiende cuánta gente te escribe, si la atiendes bien, qué hace tu equipo, tus envíos y tus anuncios. - [Trabaja con el asistente de Ricky](https://getricky.ai/docs/operacion/asistente.md): Consulta tus datos y pide acciones sobre conversaciones, CRM, agentes y workflows. - Configuración - [Configuración](https://getricky.ai/docs/configuracion.md): Administra tu cuenta, organización, equipo, reportes y alertas por correo. - [Tu perfil y acceso](https://getricky.ai/docs/configuracion/perfil.md): Cambia tus datos personales, métodos de inicio de sesión y contraseña. - [Usa Ricky desde Claude o ChatGPT](https://getricky.ai/docs/configuracion/conector.md): Conecta un asistente externo con los permisos de tu cuenta. - [Datos de la organización](https://getricky.ai/docs/configuracion/organizacion.md): Cambia el nombre y la marca visibles de tu espacio de trabajo. - [Administra el equipo](https://getricky.ai/docs/configuracion/equipo.md): Invita integrantes, cambia roles y retira acceso. - [Reportes por correo](https://getricky.ai/docs/configuracion/reportes-por-correo.md): Programa un reporte periódico para miembros de tu equipo. - Ayuda - [Preguntas frecuentes](https://getricky.ai/docs/ayuda/preguntas-frecuentes.md): Respuestas breves sobre canales, agentes, control humano, integraciones y facturación. - [Soluciona problemas](https://getricky.ai/docs/ayuda/solucionar-problemas.md): Revisa conexiones, asignaciones y estados cuando Ricky no recibe o no responde mensajes. - [Instagram no permite responder](https://getricky.ai/docs/ayuda/instagram-control-conversaciones.md): Revisa la aplicación predeterminada y el control de conversaciones cuando Instagram bloquea una respuesta de Ricky. - API: REST API y webhooks - [Introducción](https://getricky.ai/docs/api.md): Conecta tus sistemas con los contactos, las conversaciones y los mensajes de tu organización. - [Cambios](https://getricky.ai/docs/api/changelog.md): Versiones y cambios de la API de Ricky. - **Guías** - [Autenticación](https://getricky.ai/docs/api/authentication.md): Crea claves con permisos mínimos y envíalas desde tu servidor. - [Errores](https://getricky.ai/docs/api/errors.md): Forma de las respuestas de error y catálogo de códigos. - [Paginación](https://getricky.ai/docs/api/pagination.md): Recorre listas con page_size, cursor y next_cursor. - [Idempotencia, límites y reintentos](https://getricky.ai/docs/api/idempotency-and-rate-limits.md): Repite escrituras sin duplicar efectos y respeta el límite de solicitudes. - [Enviar mensajes](https://getricky.ai/docs/api/sending-messages.md): Inicia conversaciones de WhatsApp con plantillas, sigue cada envío y responde con texto o archivos dentro de la ventana de respuesta. - [Webhooks](https://getricky.ai/docs/api/webhooks.md): Recibe eventos firmados de Ricky, verifícalos y procesa cada uno una sola vez. - [Workflows](https://getricky.ai/docs/api/workflows.md): Crea, edita, activa y pausa los workflows de la organización, y revisa sus ejecuciones. - [Reportes](https://getricky.ai/docs/api/reports.md): Lee los números de las páginas de Reportes para un período, con los mismos filtros. - [Agentes y conocimiento](https://getricky.ai/docs/api/agents-and-knowledge.md): Crea agentes de IA, ponlos en conversaciones y mantén al día la información que comparten. - [Etiquetas, campos, búsqueda y respuestas rápidas](https://getricky.ai/docs/api/crm-and-inbox.md): Organiza contactos con etiquetas y campos, busca en el inbox, marca conversaciones como leídas y administra respuestas rápidas. - [Inbox](https://getricky.ai/docs/api/inbox.md): Filtra conversaciones como el inbox, asígnalas en lote, resuelve traspasos, márcalas como no leídas, cita mensajes y obtén archivos recibidos. - [Plantillas y números de WhatsApp](https://getricky.ai/docs/api/whatsapp.md): Crea, valida, edita y elimina plantillas de WhatsApp, sigue la revisión de Meta, llena sus variables con campos del contacto y gestiona tus números. - [Campañas](https://getricky.ai/docs/api/broadcasts.md): Envía una plantilla aprobada de WhatsApp a muchos números, ahora o a una hora fijada, y sigue cada entrega. - **Contactos** - [Listar contactos](https://getricky.ai/docs/api/reference/contacts/list-contacts.md): Primero los actualizados más recientemente. Los filtros se combinan. Permiso: `contacts:read`. - [Crear un contacto](https://getricky.ai/docs/api/reference/contacts/create-contact.md): Crea un contacto en el CRM. No le escribe a nadie; para escribirle a un teléfono, inicia una conversación. Permiso: `contacts:write`. - [Consultar un contacto](https://getricky.ai/docs/api/reference/contacts/get-contact.md): Un contacto con sus etiquetas, identidades y valores personalizados. Permiso: `contacts:read`. - [Actualizar un contacto](https://getricky.ai/docs/api/reference/contacts/update-contact.md): Cambia solo los campos del cuerpo. `tag_ids` reemplaza todas las etiquetas; `custom_values` se combina por clave. Permiso: `contacts:write`. - [Agregar una nota a un contacto](https://getricky.ai/docs/api/reference/contacts/add-contact-note.md): Agrega texto después de las `notes` actuales, separado por una línea en blanco, y responde con el contacto. Para reemplazar las notas, actualiza el contacto. Permiso: `contacts:write`. - [Listar campos de contacto](https://getricky.ai/docs/api/reference/contacts/list-contact-fields.md): Los campos personalizados cuyos IDs son las claves de `custom_values`. Permiso: `contacts:read`. - [Crear un campo de contacto](https://getricky.ai/docs/api/reference/contacts/create-contact-field.md): Agrega un campo personalizado a todos los contactos, después de los existentes. Un nombre ya usado, en mayúsculas o minúsculas, responde `409 conflict`. Permiso: `contacts:write`. - [Cambiar etiquetas de muchos contactos](https://getricky.ai/docs/api/reference/contacts/change-contacts-tags.md): Agrega y quita las mismas etiquetas en hasta 100 contactos y responde un resultado por contacto, en orden. Un ID de etiqueta que la organización no tiene rechaza toda la solicitud antes de cambiar algún contacto. Permiso: `contacts:write`. - [Eliminar un campo de contacto](https://getricky.ai/docs/api/reference/contacts/delete-contact-field.md): Elimina el campo y su valor en todos los contactos, y responde con el campo como estaba. No se puede deshacer. Permiso: `contacts:write`. - **Conversaciones** - [Listar conversaciones](https://getricky.ai/docs/api/reference/conversations/list-conversations.md): Primero la actividad más reciente. Los filtros son los del inbox y se combinan entre sí; envía los mismos con `cursor`. Permiso: `conversations:read`. - [Iniciar una conversación](https://getricky.ai/docs/api/reference/conversations/start-conversation.md): Envía una plantilla aprobada de WhatsApp a un número de teléfono. Ricky busca o crea el contacto y reutiliza la conversación de ese número en el canal. Responde `202`: el envío queda en cola; síguelo con `GET /sends/{send_id}`. Permiso: `messages:send`. - [Consultar una conversación](https://getricky.ai/docs/api/reference/conversations/get-conversation.md): Una conversación. Permiso: `conversations:read`. - [Asignar una conversación](https://getricky.ai/docs/api/reference/conversations/assign-conversation.md): Hace a un miembro responsable de la conversación, o la deja sin asignar. Permiso: `conversations:write`. - [Cerrar una conversación](https://getricky.ai/docs/api/reference/conversations/close-conversation.md): Cerrar una conversación ya cerrada no cambia nada. Permiso: `conversations:write`. - [Reabrir una conversación](https://getricky.ai/docs/api/reference/conversations/reopen-conversation.md): Reabrir una conversación abierta no cambia nada. No envíes cuerpo. Permiso: `conversations:write`. - [Definir el agente de IA de una conversación](https://getricky.ai/docs/api/reference/conversations/assign-conversation-agent.md): Hace que un agente responda la conversación, o apaga la IA con `null`. En ambos casos la conversación deja de estar asignada a un miembro; el dueño del contacto se mantiene. Permiso: `conversations:write`. - [Buscar conversaciones](https://getricky.ai/docs/api/reference/conversations/search-conversations.md): Conversaciones cuyo contacto o mensajes contienen el texto, primero la actividad más reciente. Responde una página de hasta `limit`; `next_cursor` siempre es null. Permiso: `conversations:read`. - [Cambiar las etiquetas del contacto de una conversación](https://getricky.ai/docs/api/reference/conversations/change-conversation-tags.md): Las etiquetas son del contacto de la conversación, no de la conversación: esto le agrega y quita etiquetas a ese contacto, así que todas las conversaciones del contacto las muestran, y responde con el contacto. El cambio es un evento de webhook `contact.tags_changed`; no hay evento de etiquetas de conversación. Permiso: `contacts:write`. - [Marcar una conversación como leída](https://getricky.ai/docs/api/reference/conversations/mark-conversation-read.md): La marca como leída para todo el equipo hasta su último mensaje, como al abrirla en el inbox. En WhatsApp el contacto ve la confirmación de lectura. No envíes cuerpo. Permiso: `conversations:write`. - [Marcar una conversación como no leída](https://getricky.ai/docs/api/reference/conversations/mark-conversation-unread.md): La marca como no leída para todo el equipo, como lo hace el inbox. El contacto no ve nada. No envíes cuerpo. Permiso: `conversations:write`. - [Asignar muchas conversaciones](https://getricky.ai/docs/api/reference/conversations/assign-conversations.md): Hace responsables a miembros de hasta 100 conversaciones, como asignarlas una por una, y responde un resultado por conversación, en orden. Cada miembro pasa a ser también el responsable del contacto. Un miembro que no es de la organización rechaza toda la solicitud antes de cambiar alguna conversación. Permiso: `conversations:write`. - [Resolver un traspaso](https://getricky.ai/docs/api/reference/conversations/resolve-conversation-handoff.md): Cierra el `active_handoff` de la conversación como lo hace el inbox: de vuelta al agente de IA que lo pidió, o con el miembro. Una conversación sin traspaso pendiente responde `422 rule_violation`, y también `returned_to_ai` cuando ningún agente de IA lo pidió. Permiso: `conversations:write`. - **Mensajes** - [Listar mensajes](https://getricky.ai/docs/api/reference/messages/list-messages.md): Primero los más recientes. Permiso: `conversations:read`. - [Enviar un mensaje](https://getricky.ai/docs/api/reference/messages/send-message.md): Envía texto, un archivo por WhatsApp o Instagram, o una plantilla por WhatsApp. Para un archivo, Ricky descarga `media.url` antes de responder. Responde `202`: el envío queda en cola; síguelo con `GET /sends/{send_id}`. El webhook `message.sent` se dispara cuando el proveedor lo acepta. Permiso: `messages:send`. - [Consultar un mensaje](https://getricky.ai/docs/api/reference/messages/get-message.md): Un mensaje, tal como lo muestra la lista. La `url` de un archivo se firma de nuevo en cada lectura. Permiso: `conversations:read`. - [Consultar un envío](https://getricky.ai/docs/api/reference/messages/get-send.md): Si el proveedor aceptó un mensaje y, si falló, por qué. Permiso: `messages:send`. - [Buscar mensajes](https://getricky.ai/docs/api/reference/messages/search-messages.md): Mensajes de todas las conversaciones que contienen las palabras, primero los más recientes. Responde una página de hasta `limit`; `next_cursor` siempre es null. Permiso: `conversations:read`. - [Obtener el archivo de un mensaje](https://getricky.ai/docs/api/reference/messages/fetch-message-media.md): Ricky guarda en segundo plano el archivo de cada mensaje que recibe, y `media.url` es null hasta que lo guarda. Esto lo guarda ahora desde el proveedor y responde con el mensaje y su `url`; un archivo ya guardado responde de inmediato. Un mensaje sin archivo recibido, o cuyo archivo el proveedor dice que expiró (los conserva unos 30 días), responde `422 rule_violation`; otras fallas del proveedor responden `502 upstream_error`. No envíes cuerpo. Permiso: `conversations:read`. - **Catálogos** - [Listar canales](https://getricky.ai/docs/api/reference/catalogs/list-channels.md): Números de WhatsApp, cuentas de Instagram y páginas de Facebook. Permiso: `conversations:read`. - [Listar miembros](https://getricky.ai/docs/api/reference/catalogs/list-members.md): Las personas de la organización; sus IDs sirven para asignar conversaciones y como dueños de contactos. Permiso: `members:read`. - [Listar etiquetas](https://getricky.ai/docs/api/reference/catalogs/list-tags.md): Etiquetas de contactos. Permiso: `tags:read`. - [Crear una etiqueta](https://getricky.ai/docs/api/reference/catalogs/create-tag.md): Crea una etiqueta de contactos. Aplícala con `tag_ids` en un contacto. Un nombre que ya existe, en mayúsculas o minúsculas, responde `409 conflict`. Permiso: `tags:write` o, en claves anteriores, `contacts:write`. - [Actualizar una etiqueta](https://getricky.ai/docs/api/reference/catalogs/update-tag.md): Cambia el nombre o el color de una etiqueta en todos los contactos que la tienen. Un nombre ya usado, en mayúsculas o minúsculas, responde `409 conflict`. Permiso: `tags:write`. - [Eliminar una etiqueta](https://getricky.ai/docs/api/reference/catalogs/delete-tag.md): Elimina la etiqueta y la quita de todos los contactos, y responde con la etiqueta como estaba. No se puede deshacer. Permiso: `tags:write`. - **Webhooks** - [Listar webhooks](https://getricky.ai/docs/api/reference/webhooks/list-webhooks.md): Primero los más recientes, hasta 100. Permiso: `webhooks:manage`. - [Crear un webhook](https://getricky.ai/docs/api/reference/webhooks/create-webhook.md): La respuesta trae `signing_secret`, la única vez que Ricky lo muestra. Permiso: `webhooks:manage`. - [Desactivar un webhook](https://getricky.ai/docs/api/reference/webhooks/disable-webhook.md): Detiene las entregas nuevas y pendientes. Desactivarlo dos veces responde `404`. Permiso: `webhooks:manage`. - [Enviar un evento de prueba](https://getricky.ai/docs/api/reference/webhooks/test-webhook.md): Envía ahora un evento `webhook.test` firmado al endpoint y responde lo que este contestó. No se registra como entrega ni se reintenta. Permiso: `webhooks:manage`. - [Rotar el secreto de firma](https://getricky.ai/docs/api/reference/webhooks/rotate-webhook-secret.md): Devuelve un `signing_secret` nuevo, la única vez que Ricky lo muestra. Hasta que pasa `expire_previous_after_hours`, cada entrega lleva dos firmas en `X-Ricky-Signature`, primero la nueva, para que despliegues el secreto nuevo sin perder eventos. El cuerpo es opcional. Permiso: `webhooks:manage`. - [Listar entregas](https://getricky.ai/docs/api/reference/webhooks/list-webhook-deliveries.md): Las 100 entregas más recientes de un webhook. Permiso: `webhooks:manage`. - [Reintentar una entrega](https://getricky.ai/docs/api/reference/webhooks/retry-webhook-delivery.md): Vuelve a poner en cola una entrega fallida, con sus intentos desde cero, y la envía de inmediato. Permiso: `webhooks:manage`. - **Workflows** - [Listar workflows](https://getricky.ai/docs/api/reference/workflows/list-workflows.md): Todos los workflows de la organización con su definición, primero los cambiados más recientemente. Permiso: `workflows:read`. - [Crear un workflow](https://getricky.ai/docs/api/reference/workflows/create-workflow.md): Crea un workflow de conversación como `draft`; no ejecuta nada hasta que lo actives. Ricky revisa el flujo con las reglas del editor de workflows y que sus canales, miembros y agentes sean de la organización. Permiso: `workflows:write`. - [Consultar un workflow](https://getricky.ai/docs/api/reference/workflows/get-workflow.md): Un workflow con su definición. Permiso: `workflows:read`. - [Actualizar un workflow](https://getricky.ai/docs/api/reference/workflows/update-workflow.md): Cambia el nombre, reemplaza la definición, o ambos, y conserva el estado. Un workflow activo debe poder ejecutar la definición nueva. Un workflow programado solo acepta un nombre nuevo. Permiso: `workflows:write`. - [Eliminar un workflow](https://getricky.ai/docs/api/reference/workflows/delete-workflow.md): Elimina el workflow y responde con él tal como estaba. Los envíos ya en cola igual salen. Eliminarlo dos veces responde `404`. Permiso: `workflows:write`. - [Activar un workflow](https://getricky.ai/docs/api/reference/workflows/activate-workflow.md): Desde ahora se ejecuta con los eventos nuevos, y sus pasos pueden escribir a contactos, asignar miembros o poner un agente IA en conversaciones. Ricky vuelve a revisar lo que referencia; asignar un agente IA requiere una suscripción activa. Activar un workflow activo no cambia nada. No envíes cuerpo. Permiso: `workflows:write`. - [Pausar un workflow](https://getricky.ai/docs/api/reference/workflows/pause-workflow.md): No inicia ejecuciones nuevas; los envíos ya en cola igual salen. Pausar un workflow pausado no cambia nada. No envíes cuerpo. Permiso: `workflows:write`. - [Listar ejecuciones](https://getricky.ai/docs/api/reference/workflows/list-workflow-executions.md): Las ejecuciones del workflow con su estado, intentos y errores, primero las más recientes. Permiso: `workflows:read`. - [Definir el archivo del encabezado de una automatización programada](https://getricky.ai/docs/api/reference/workflows/upload-workflow-header-media.md): Descarga el archivo de `url` y lo guarda como el encabezado que lleva cada envío de una automatización programada, en lugar del anterior. La plantilla de la automatización debe tener un encabezado de imagen, video o documento, y el archivo debe ser de ese tipo. Responde la automatización, con `has_header_image` en true. Permiso: `workflows:write`. - [Previsualizar recordatorios de citas](https://getricky.ai/docs/api/reference/workflows/preview-workflow-reminders.md): Lee las citas de Odoo a las que una automatización de recordatorios escribiría el día `date` y dice, para cada una, si se enviaría y con qué texto. No envía nada. Solo para automatizaciones con `source.kind` `odoo_appointments`, en una organización con Odoo conectado; los días pasados están en el historial. Permiso: `workflows:read`. - [Consultar el historial de recordatorios de citas](https://getricky.ai/docs/api/reference/workflows/get-workflow-reminder-history.md): Lo que una automatización de recordatorios revisó en Odoo y envió el día `date`, según lo que Ricky registró; no lee Odoo. Permiso: `workflows:read`. - [Listar los estados de cita de Odoo](https://getricky.ai/docs/api/reference/workflows/list-workflow-reminder-states.md): Lee de Odoo, en vivo, todos los estados de cita que tiene su instalación: los valores que toman el `source.appointment_states` de una automatización de recordatorios y el `appointment_states` de la previsualización. Solo para automatizaciones con `source.kind` `odoo_appointments`, en una organización con Odoo conectado. Permiso: `workflows:read`. - **Reportes** - [Consultar el panel en vivo](https://getricky.ai/docs/api/reference/reports/get-dashboard-report.md): Las conversaciones abiertas, quién las tiene y quién espera respuesta, en este momento. "Hoy" es el día de America/Panama. Permiso: `reports:read`. - [Consultar el reporte de conversaciones](https://getricky.ai/docs/api/reference/reports/get-conversations-report.md): Los clientes que escribieron en el período, nuevos o recurrentes, por canal, día y hora. Los días y las horas son de America/Panama, como en las páginas de Reportes; cada número se compara con el período anterior de la misma duración. Permiso: `reports:read`. - [Consultar el reporte de mensajes](https://getricky.ai/docs/api/reference/reports/get-messages-report.md): Los mensajes recibidos y enviados en el período, y quién los envió. Los días y las horas son de America/Panama, como en las páginas de Reportes; cada número se compara con el período anterior de la misma duración. Permiso: `reports:read`. - [Consultar el reporte de respuestas](https://getricky.ai/docs/api/reference/reports/get-responses-report.md): Qué tan rápido respondieron las personas y los agentes de IA a los clientes en el período, por canal y por quien respondió. Los días y las horas son de America/Panama, como en las páginas de Reportes; cada número se compara con el período anterior de la misma duración. Permiso: `reports:read`. - [Consultar el reporte de resoluciones](https://getricky.ai/docs/api/reference/reports/get-resolutions-report.md): Las conversaciones cerradas en el período y cuánto tiempo estuvieron abiertas. Los días y las horas son de America/Panama, como en las páginas de Reportes; cada número se compara con el período anterior de la misma duración. Permiso: `reports:read`. - [Consultar el reporte del equipo](https://getricky.ai/docs/api/reference/reports/get-team-report.md): Asignaciones, mensajes, cierres y medianas por miembro y agente de IA en el período. Los días son de America/Panama, como en las páginas de Reportes. Permiso: `reports:read`. - [Consultar el reporte de envíos masivos](https://getricky.ai/docs/api/reference/reports/get-broadcasts-report.md): Los envíos masivos de WhatsApp creados en el período y lo que pasó con sus destinatarios. Los días y las horas son de America/Panama, como en las páginas de Reportes; cada número se compara con el período anterior de la misma duración. Permiso: `reports:read`. - [Consultar el reporte de anuncios](https://getricky.ai/docs/api/reference/reports/get-ads-report.md): La inversión en anuncios de Meta y las conversaciones que trajo cada anuncio en el período. Los días y las horas son de America/Panama, como en las páginas de Reportes; cada número se compara con el período anterior de la misma duración. Permiso: `reports:read`. - **Anuncios** - [Listar las campañas de Meta](https://getricky.ai/docs/api/reference/ads/list-meta-ads-campaigns.md): Las campañas de las cuentas publicitarias de Meta conectadas, leídas en vivo de Meta. Responde `rule_violation` cuando la organización no conectó Meta Ads, y `forbidden` cuando Meta ya no acepta su conexión. Permiso: `reports:read`. - [Listar los conjuntos de anuncios de Meta](https://getricky.ai/docs/api/reference/ads/list-meta-ads-ad-sets.md): Los conjuntos de anuncios de las cuentas publicitarias de Meta conectadas, con presupuesto y segmentación, leídos en vivo de Meta. Responde `rule_violation` cuando la organización no conectó Meta Ads, y `forbidden` cuando Meta ya no acepta su conexión. Permiso: `reports:read`. - [Listar los anuncios de Meta](https://getricky.ai/docs/api/reference/ads/list-meta-ads.md): Los anuncios de las cuentas publicitarias de Meta conectadas, con el texto de su creativo, leídos en vivo de Meta. Responde `rule_violation` cuando la organización no conectó Meta Ads, y `forbidden` cuando Meta ya no acepta su conexión. Permiso: `reports:read`. - [Consultar los resultados de los anuncios de Meta](https://getricky.ai/docs/api/reference/ads/get-meta-ads-insights.md): El gasto, la entrega y las acciones que cuenta Meta para las cuentas publicitarias conectadas en un período, por cuenta, campaña, conjunto o anuncio, calculados en vivo por Meta. Responde `rule_violation` cuando la organización no conectó Meta Ads, y `forbidden` cuando Meta ya no acepta su conexión. Permiso: `reports:read`. - **Agentes** - [Listar agentes](https://getricky.ai/docs/api/reference/agents/list-agents.md): Los agentes activos, primero los más recientes. Los agentes archivados no aparecen. Permiso: `agents:read`. - [Crear un agente](https://getricky.ai/docs/api/reference/agents/create-agent.md): Crea un agente de IA con sus instrucciones, voz y capacidades. No responde ninguna conversación hasta que lo asignes a una o lo pongas como agente predeterminado de un canal en Ricky. Permiso: `agents:write`. - [Consultar un agente](https://getricky.ai/docs/api/reference/agents/get-agent.md): Un agente activo con toda su configuración. Permiso: `agents:read`. - [Actualizar un agente](https://getricky.ai/docs/api/reference/agents/update-agent.md): Cambia solo los campos del cuerpo. `capabilities` y `handoff_user_ids` reemplazan sus conjuntos completos. Permiso: `agents:write`. - [Archivar un agente](https://getricky.ai/docs/api/reference/agents/archive-agent.md): Archiva el agente y lo responde tal como estaba, con `archived_at`. Deja de responder sus conversaciones y se pausan los flujos que lo asignan. Archivarlo dos veces responde `404`. Permiso: `agents:write`. - [Consultar las opciones de agentes](https://getricky.ai/docs/api/reference/agents/get-agent-options.md): Las voces y las capacidades con que se puede configurar un agente. Permiso: `agents:read`. - **Conocimiento** - [Listar ubicaciones](https://getricky.ai/docs/api/reference/knowledge/list-knowledge-locations.md): Sucursales y lugares, primero los más recientes. Permiso: `knowledge:read`. - [Crear una ubicación](https://getricky.ai/docs/api/reference/knowledge/create-knowledge-location.md): Agrega una sucursal o un lugar que los agentes pueden compartir. Permiso: `knowledge:write`. - [Consultar una ubicación](https://getricky.ai/docs/api/reference/knowledge/get-knowledge-location.md): Una ubicación. Permiso: `knowledge:read`. - [Actualizar una ubicación](https://getricky.ai/docs/api/reference/knowledge/update-knowledge-location.md): Cambia solo los campos del cuerpo. Permiso: `knowledge:write`. - [Eliminar una ubicación](https://getricky.ai/docs/api/reference/knowledge/delete-knowledge-location.md): La elimina de forma definitiva y la responde tal como estaba. Permiso: `knowledge:write`. - [Listar contactos del directorio](https://getricky.ai/docs/api/reference/knowledge/list-knowledge-contacts.md): Las tarjetas de contacto del directorio de conocimiento, por nombre visible. No son contactos del CRM. Permiso: `knowledge:read`. - [Crear un contacto del directorio](https://getricky.ai/docs/api/reference/knowledge/create-knowledge-contact.md): Agrega una tarjeta de contacto que los agentes pueden enviar a los clientes. Permiso: `knowledge:write`. - [Consultar un contacto del directorio](https://getricky.ai/docs/api/reference/knowledge/get-knowledge-contact.md): Una tarjeta de contacto. Permiso: `knowledge:read`. - [Actualizar un contacto del directorio](https://getricky.ai/docs/api/reference/knowledge/update-knowledge-contact.md): Cambia solo los campos del cuerpo. Permiso: `knowledge:write`. - [Eliminar un contacto del directorio](https://getricky.ai/docs/api/reference/knowledge/delete-knowledge-contact.md): La elimina de forma definitiva y la responde tal como estaba. Permiso: `knowledge:write`. - [Listar archivos](https://getricky.ai/docs/api/reference/knowledge/list-knowledge-files.md): Los documentos e imágenes que los agentes pueden consultar o enviar, primero los más recientes. Permiso: `knowledge:read`. - [Subir un archivo](https://getricky.ai/docs/api/reference/knowledge/create-knowledge-file.md): Inicia una carga en tres pasos: esta llamada responde el archivo, `uploading`, y una `upload_url`; envía los bytes con `PUT` a esa URL; luego llama a `POST /knowledge/files/{file_id}/complete`. Permiso: `knowledge:write`. - [Completar una carga](https://getricky.ai/docs/api/reference/knowledge/complete-knowledge-file.md): Compara los bytes cargados con el tipo y el tamaño declarados, lee el contenido para los agentes y responde el archivo, `ready`. Leer un PDF largo puede tardar minutos. Completar un archivo `ready` no cambia nada. Permiso: `knowledge:write`. - [Consultar un archivo](https://getricky.ai/docs/api/reference/knowledge/get-knowledge-file.md): Un archivo; si está `ready`, trae una `download_url`. Permiso: `knowledge:read`. - [Actualizar un archivo](https://getricky.ai/docs/api/reference/knowledge/update-knowledge-file.md): Cambia su título, su descripción o lo que los agentes pueden hacer con él. Solo cambia un archivo `ready`; si no, `409 conflict`. Permiso: `knowledge:write`. - [Eliminar un archivo](https://getricky.ai/docs/api/reference/knowledge/delete-knowledge-file.md): Lo elimina de forma definitiva y lo responde tal como estaba. Las copias ya enviadas en conversaciones se quedan ahí. Permiso: `knowledge:write`. - **Respuestas rápidas** - [Listar respuestas rápidas](https://getricky.ai/docs/api/reference/quick-replies/list-quick-replies.md): Todas las respuestas rápidas de la organización, por título. Permiso: `quick_replies:read`. - [Crear una respuesta rápida](https://getricky.ai/docs/api/reference/quick-replies/create-quick-reply.md): Guarda una respuesta que los operadores pueden insertar en el inbox. Un título ya usado, en mayúsculas o minúsculas, responde `409 conflict`. Permiso: `quick_replies:write`. - [Consultar una respuesta rápida](https://getricky.ai/docs/api/reference/quick-replies/get-quick-reply.md): Una respuesta rápida. Permiso: `quick_replies:read`. - [Actualizar una respuesta rápida](https://getricky.ai/docs/api/reference/quick-replies/update-quick-reply.md): Cambia solo los campos del cuerpo. Un título ya usado, en mayúsculas o minúsculas, responde `409 conflict`. Permiso: `quick_replies:write`. - [Eliminar una respuesta rápida](https://getricky.ai/docs/api/reference/quick-replies/delete-quick-reply.md): La elimina y responde con ella como estaba. No se puede deshacer. Permiso: `quick_replies:write`. - **WhatsApp** - [Listar plantillas](https://getricky.ai/docs/api/reference/whats-app/list-templates.md): Las plantillas de WhatsApp de cada cuenta de negocio conectada, leídas de Meta en el momento. Permiso: `templates:read`. - [Crear una plantilla](https://getricky.ai/docs/api/reference/whats-app/create-template.md): Envía una plantilla a revisión de Meta desde la cuenta de negocio de `channel_id`. Responde la plantilla tal como la tiene Meta, por lo general `PENDING`; síguela con `GET /templates/{template_id}`. Un borrador que incumple una regla responde `400` con el primer problema; si Meta la rechaza, responde `422 rule_violation` con su motivo. Permiso: `templates:write`. - [Consultar una plantilla](https://getricky.ai/docs/api/reference/whats-app/get-template.md): Una plantilla, leída de Meta en el momento, con su `status` de revisión: `PENDING` mientras Meta la revisa y luego `APPROVED`, `REJECTED` o `PAUSED`. Vuelve a consultarla para seguir la revisión de Meta. Permiso: `templates:read`. - [Editar una plantilla](https://getricky.ai/docs/api/reference/whats-app/update-template.md): Cambia la categoría o el contenido de una plantilla y la envía otra vez a revisión de Meta. Meta lo permite solo con plantillas `APPROVED`, `REJECTED` y `PAUSED`, y limita cuántas veces puede cambiar una aprobada; si no, responde `422 rule_violation`. Una edición que mantiene un encabezado de imagen, video o documento envía `header` otra vez con un `handle` nuevo. Las plantillas con botones o componentes que el editor de Ricky no arma no se pueden editar aquí. Permiso: `templates:write`. - [Eliminar una plantilla](https://getricky.ai/docs/api/reference/whats-app/delete-template.md): Elimina la plantilla en Meta. Meta la elimina en todos los idiomas que comparten su nombre, y el nombre no se puede volver a usar durante 30 días. Permiso: `templates:write`. - [Validar un borrador de plantilla](https://getricky.ai/docs/api/reference/whats-app/validate-template.md): Revisa un borrador con las reglas del editor de plantillas de Ricky y responde cada problema que encuentra, sin enviar nada a Meta. Un cuerpo que no es un borrador responde `400`; un borrador que incumple una regla responde `200` con `valid: false`. Meta puede rechazar en su revisión un borrador válido. Permiso: `templates:read`. - [Listar números de WhatsApp](https://getricky.ai/docs/api/reference/whats-app/list-whats-app-numbers.md): Todos los números de WhatsApp de la organización, también los desconectados, con su estado, su calificación de calidad y su límite de mensajes según la última lectura de Ricky en Meta. Permiso: `conversations:read`. - [Consultar un número de WhatsApp](https://getricky.ai/docs/api/reference/whats-app/get-whats-app-number.md): Un número de WhatsApp por su ID de canal. Permiso: `conversations:read`. - [Actualizar un número de WhatsApp](https://getricky.ai/docs/api/reference/whats-app/update-whats-app-number.md): Activa o desactiva las llamadas al número en Meta. Ricky vuelve a leer el número de Meta y lo responde tal como Meta lo confirma. Permiso: `conversations:write`. - [Subir una muestra de encabezado](https://getricky.ai/docs/api/reference/whats-app/create-template-media-upload.md): Un encabezado de imagen, video o documento necesita un archivo de muestra que Meta revisa. Subirlo toma tres pasos: esta llamada responde una `upload_url`; envía los bytes allí con `PUT`; luego `POST /templates/media/complete` responde el `handle` para `header.handle`. Permiso: `templates:write`. - [Completar una muestra de encabezado](https://getricky.ai/docs/api/reference/whats-app/complete-template-media-upload.md): Revisa los bytes subidos contra los límites de tipo y tamaño, los envía a Meta y responde el `handle` de Meta. Ricky borra su copia en cualquier caso, así que una carga fallida empieza de nuevo con `POST /templates/media`. Permiso: `templates:write`. - [Consultar los campos asignados de una plantilla](https://getricky.ai/docs/api/reference/whats-app/get-template-field-mappings.md): Las variables de la plantilla, leídas de Meta en el momento, y el campo del contacto que llena cada una cuando Ricky envía la plantilla a un contacto, como en las campañas. Permiso: `templates:read`. - [Asignar los campos de una plantilla](https://getricky.ai/docs/api/reference/whats-app/replace-template-field-mappings.md): Reemplaza todas las asignaciones de la plantilla. Cada una nombra una variable de `variables` y un campo del contacto; un campo personalizado debe ser de la organización. Permiso: `templates:write`. - [Editar un perfil de empresa](https://getricky.ai/docs/api/reference/whats-app/update-whats-app-business-profile.md): Cambia en Meta el perfil de empresa que los clientes ven en el número y luego responde el número con el perfil que Meta devuelve. Permiso: `conversations:write`. - [Subir una foto de perfil](https://getricky.ai/docs/api/reference/whats-app/create-profile-photo-upload.md): Inicia una foto de perfil nueva en tres pasos: esta llamada responde una `upload_url`; envía los bytes allí con `PUT`; luego llama a `POST /whatsapp-numbers/{channel_id}/profile-photo/complete`. Permiso: `conversations:write`. - [Completar una foto de perfil](https://getricky.ai/docs/api/reference/whats-app/complete-profile-photo-upload.md): Revisa la foto subida, la pone en el número en Meta y responde el número. Ricky borra su copia en cualquier caso. Permiso: `conversations:write`. - [Pedir un cambio de nombre visible](https://getricky.ai/docs/api/reference/whats-app/request-whats-app-display-name.md): Pide a Meta que revise un nombre visible nuevo para el número. El nombre cambia solo si Meta lo aprueba; entonces cambian `verified_name` y `name_status`. Permiso: `conversations:write`. - [Actualizar un número de WhatsApp desde Meta](https://getricky.ai/docs/api/reference/whats-app/refresh-whats-app-number.md): Lee ahora de Meta el estado, la calidad, el límite, el nombre visible y el perfil de empresa del número, los guarda y responde el número. Permiso: `conversations:write`. - **Campañas** - [Listar campañas](https://getricky.ai/docs/api/reference/broadcasts/list-broadcasts.md): Primero las más recientes, con cuántos destinatarios hay en cada estado de entrega. Permiso: `broadcasts:read`. - [Crear una campaña](https://getricky.ai/docs/api/reference/broadcasts/create-broadcast.md): Envía una plantilla aprobada de WhatsApp a una audiencia, ahora o en `scheduled_at`. Ricky fija la lista de destinatarios en este momento y envía por la conversación de cada número, como una plantilla enviada desde la bandeja; las variables que la plantilla asocia a campos del contacto en Ricky se llenan por contacto. Responde `201` con la campaña `queued` o `scheduled`; síguela con `GET /broadcasts/{broadcast_id}`. Una audiencia sin ningún número de WhatsApp, o un número desconectado o sin su acceso de Meta, responde `422 rule_violation`. Permiso: `broadcasts:write`. - [Consultar una campaña](https://getricky.ai/docs/api/reference/broadcasts/get-broadcast.md): Una campaña con cuántos destinatarios hay en cada estado de entrega. Permiso: `broadcasts:read`. - [Cancelar una campaña programada](https://getricky.ai/docs/api/reference/broadcasts/cancel-broadcast.md): Cancela una campaña `scheduled` antes de que empiece; no se envía nada. Si ya está `queued` o enviándose, o ya se canceló, responde `409 conflict`. No envíes cuerpo. Permiso: `broadcasts:write`. - [Listar destinatarios de una campaña](https://getricky.ai/docs/api/reference/broadcasts/list-broadcast-recipients.md): Cada número de la campaña y en qué va su mensaje, en orden de número. Los estados cambian a medida que WhatsApp los informa. Permiso: `broadcasts:read`. - [Previsualizar la audiencia de una campaña](https://getricky.ai/docs/api/reference/broadcasts/preview-broadcast-audience.md): Cuenta los números a los que llega una audiencia en este momento, con las reglas de `POST /broadcasts`, sin crear nada. La lista puede cambiar antes de que crees la campaña. Permiso: `broadcasts:read`. - **Eventos de webhook** - [message.received](https://getricky.ai/docs/api/reference/webhook-events/message-received.md): Un contacto envió un mensaje. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [message.sent](https://getricky.ai/docs/api/reference/webhook-events/message-sent.md): El proveedor aceptó un mensaje de la organización. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [message.delivered](https://getricky.ai/docs/api/reference/webhook-events/message-delivered.md): Un mensaje saliente llegó al dispositivo del destinatario. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [message.read](https://getricky.ai/docs/api/reference/webhook-events/message-read.md): El destinatario leyó un mensaje saliente. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [message.failed](https://getricky.ai/docs/api/reference/webhook-events/message-failed.md): Un mensaje saliente falló de forma definitiva; consulta el mensaje para ver el motivo. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [conversation.opened](https://getricky.ai/docs/api/reference/webhook-events/conversation-opened.md): Se creó o se reabrió una conversación. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [conversation.closed](https://getricky.ai/docs/api/reference/webhook-events/conversation-closed.md): Se cerró una conversación. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [conversation.assignment_changed](https://getricky.ai/docs/api/reference/webhook-events/conversation-assignment-changed.md): Se asignó, reasignó o quitó la asignación de una conversación. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [conversation.agent_changed](https://getricky.ai/docs/api/reference/webhook-events/conversation-agent-changed.md): Cambió el agente de IA que responde una conversación: se asignó, se reemplazó o se quitó. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [conversation.handoff_requested](https://getricky.ai/docs/api/reference/webhook-events/conversation-handoff-requested.md): Un agente de IA pasó una conversación a una persona. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [conversation.handoff_resolved](https://getricky.ai/docs/api/reference/webhook-events/conversation-handoff-resolved.md): Una persona resolvió un traspaso: la conversación sigue con una persona o vuelve al agente de IA. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [contact.created](https://getricky.ai/docs/api/reference/webhook-events/contact-created.md): Se creó un contacto: por una persona, la API, una importación o un primer mensaje. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [contact.updated](https://getricky.ai/docs/api/reference/webhook-events/contact-updated.md): Se guardaron los campos, las etiquetas o los valores personalizados de un contacto. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [contact.tags_changed](https://getricky.ai/docs/api/reference/webhook-events/contact-tags-changed.md): Cambiaron las etiquetas de un contacto. Todos los cambios de un mismo guardado son un solo evento; también se dispara `contact.updated`. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [broadcast.completed](https://getricky.ai/docs/api/reference/webhook-events/broadcast-completed.md): Una campaña entregó su último mensaje a WhatsApp. Algunos destinatarios pueden seguir esperando la respuesta de WhatsApp; consulta la campaña para ver sus conteos. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [broadcast.failed](https://getricky.ai/docs/api/reference/webhook-events/broadcast-failed.md): Una campaña terminó y todos sus destinatarios habían fallado; consulta sus destinatarios para ver los motivos. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [template.status_changed](https://getricky.ai/docs/api/reference/webhook-events/template-status-changed.md): Meta cambió el estado de una plantilla de WhatsApp, por ejemplo aprobada, rechazada o pausada; consulta la plantilla para verlo. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [workflow.execution_failed](https://getricky.ai/docs/api/reference/webhook-events/workflow-execution-failed.md): Una ejecución de un workflow falló de forma definitiva; consulta las ejecuciones del workflow para ver el error. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [knowledge_file.ready](https://getricky.ai/docs/api/reference/webhook-events/knowledge-file-ready.md): Un archivo de conocimiento terminó de subirse y Ricky lo leyó. Un archivo que Ricky no pudo leer también queda listo, con `extraction_error`. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`. - [webhook.test](https://getricky.ai/docs/api/reference/webhook-events/webhook-test.md): Se envía a pedido con `POST /webhooks/{webhook_id}/test`; trae `webhook_id`. Ricky firma cada entrega: `X-Ricky-Signature: v1=` es el HMAC-SHA256 de `.` con el `signing_secret` del webhook como clave. Después de rotar el secreto, la cabecera lleva dos firmas separadas por coma, primero la nueva, hasta que vence el secreto anterior: acepta el evento si coincide cualquier valor `v1=`. Ricky lo envía segundos después del evento. Responde cualquier 2xx en menos de 10 segundos; Ricky hace hasta diez intentos con esperas cada vez más largas y puede entregar un evento dos veces, así que descarta duplicados por `id`.