# Formularios de chat: recoge datos en un solo paso

> Crea formularios breves de hasta 20 campos, como una petición de presupuesto o una devolución, que el agente muestra bajo su respuesta cuando encajan. Los envíos llegan a Leads, por correo, Slack, webhooks y un webhook propio del formulario.

Un formulario de chat recoge varios datos de una vez, por ejemplo para qué quiere un visitante un presupuesto, o un número de pedido y el motivo de una devolución, en lugar de que el agente pregunte una cosa tras otra. Creas el formulario en la pestaña **Actions** (acciones). El agente decide cuándo mostrarlo. Los campos son siempre los que tú defines.

## Crear un formulario

1. En la pestaña **Actions**, ve a **Forms**, debajo de tus acciones, y haz clic en **Add form**.
2. Rellena los campos:
   - **Name** (nombre): se muestra a los visitantes como título del formulario. Hasta 60 caracteres.
   - **When to show it** (cuándo mostrarlo): lo lee el agente, los visitantes no lo ven. Describe en hasta 1.000 caracteres los momentos en que el formulario ayuda. Por ejemplo: «Cuando el visitante pregunte el precio de un pedido a medida o quiera un presupuesto para varios artículos».
   - **Fields** (campos): lo que pregunta el formulario, hasta 20 campos. Cada uno tiene un **Label** (etiqueta) de hasta 60 caracteres, un **Type** (tipo) y una casilla **Required** (obligatorio). Dos campos no pueden tener la misma etiqueta. Usa las flechas para cambiar el orden.
   - **Button text** (texto del botón): opcional, hasta 30 caracteres. Si lo dejas vacío, los visitantes ven «Enviar» en su idioma.
   - **Message after sending** (mensaje tras el envío): opcional, hasta 300 caracteres. Si lo dejas vacío, los visitantes ven un breve agradecimiento en su idioma.
3. Deja activado **Agent can show this form**, revisa la **Preview** (vista previa) y haz clic en **Add form**.

| Tipo | Qué escribe el visitante |
|---|---|
| **Short text** | Hasta 200 caracteres |
| **Long text** | Hasta 2.000 caracteres |
| **Email** | Una dirección de correo, que se comprueba antes del envío |
| **Phone** | Un número de teléfono de hasta 30 caracteres, que se comprueba antes del envío |
| **Number** | Un número como `12` o `12.5`, también con coma |
| **Date** | Una fecha, elegida en un campo de fecha |
| **Dropdown** | Una de tus opciones. Escribe una opción por línea, hasta 20 opciones de hasta 60 caracteres cada una. |

Los visitantes ven el nombre, las etiquetas, las opciones, el texto del botón y el mensaje tal como los escribes, así que escríbelos en el idioma de tus visitantes. El resto del formulario, como «(opcional)», los mensajes de error, el «Enviar» predeterminado y el agradecimiento predeterminado, sigue **Widget language** en la pestaña [Appearance](/es/docs/appearance).

## Gestionar tus formularios

Cada formulario de la lista muestra la etiqueta **Form**, el número de campos y el número de envíos.

- El interruptor **Enabled** hace que el agente deje de ofrecer el formulario, sin borrarlo. Un formulario que ya se mostró en un chat indica entonces «Este formulario ya no está disponible.»
- **Edit** abre el formulario. Si cambias el nombre de un campo o lo quitas, se conservan las respuestas que los visitantes ya enviaron. Un formulario que vuelve a mostrarse en un chat, por ejemplo tras recargar, muestra tu versión actual.
- El botón de la papelera borra el formulario y todos sus envíos. No se puede deshacer, así que exporta antes los envíos desde la pestaña **Leads** si quieres conservarlos.

Un agente puede tener hasta 10 formularios. Los formularios no cuentan para el límite de 25 acciones.

## Cuándo muestra el agente un formulario

El agente lee **When to show it** de cada formulario activado. Cuando la conversación encaja, muestra el formulario bajo su respuesta y lo menciona en una frase breve. No pide los mismos datos en el chat.

- El formulario se construye a partir del que guardaste. El modelo de IA solo decide cuándo mostrarlo, nunca qué pregunta.
- El agente muestra como máximo un formulario bajo una respuesta.
- No aparece ningún formulario bajo una respuesta que ya muestra el [formulario de leads](/es/docs/lead-collection) porque lo activó una de tus reglas.
- Los formularios no se muestran en los chats temporales, porque en ellos no se guarda nada. En su lugar, el agente pide al visitante que vuelva a su conversación guardada.

Los formularios aparecen en la burbuja de chat, el iframe en la página, el enlace directo, la [página de ayuda](/es/docs/help-page) y el **Playground**. Se guardan con la respuesta, así que también se ven en las transcripciones de la pestaña **Conversations**, donde **Why this answer** los incluye en **Actions called** como «Form».

## Qué hacen los visitantes

El visitante rellena el formulario bajo la respuesta y hace clic en el botón. Los campos obligatorios y las respuestas de correo, teléfono, número y fecha se comprueban antes del envío. Después, el formulario muestra tu **Message after sending**.

Cada formulario se puede enviar una vez por conversación. Después aparece como enviado, también si el visitante recarga la página.

## Los envíos en la pestaña Leads

En la pestaña **Leads**, la tarjeta **Form submissions** muestra lo que enviaron los visitantes. Elige un formulario en **Form** para ver sus envíos, del más reciente al más antiguo, 20 por página, con las respuestas y un enlace a la conversación.

- **Refresh** carga los envíos nuevos.
- **Export CSV** descarga hasta 10.000 de los envíos más recientes del formulario elegido. El archivo tiene las columnas `Submitted at (UTC)`, una columna por campo con su etiqueta actual, en el orden del formulario, y `Conversation ID`. Un campo que quitaste recibe una columna después de esas cuando algún envío lo respondió. Las respuestas que empiezan por `=`, `+`, `-` o `@` llevan un apóstrofo delante, para que las hojas de cálculo no las lean como fórmulas.
- El botón de la papelera borra un envío. Los webhooks y correos ya enviados no cambian.

> Los envíos se guardan aparte de los leads. Una dirección de correo en un formulario no añade un lead ni genera un aviso de lead nuevo o un webhook `lead.created`.

## Notificaciones

- **Correo**: cada envío llega por correo a los destinatarios de tus [avisos de leads](/es/docs/lead-alerts-and-export), pero solo mientras **Email when a new lead arrives** esté activado. El asunto es `New "` seguido del nombre del formulario, `" form from` y el nombre del agente. El correo muestra las respuestas y la hora, con un botón **See the conversation**. Si el formulario tiene un campo de correo, al responder escribes a la dirección que indicó el visitante. Cada agente envía como máximo 30 correos de formularios por hora, aparte de los avisos de leads; los envíos que superan ese límite se guardan igualmente.
- **Slack**: en la tarjeta **Slack alerts**, marca **Form submission** en **Post a message for**. Consulta [Avisos en Slack](/es/docs/lead-alerts-and-export).
- **Webhooks**: suscribe un webhook a **Form submitted** para recibir el evento `form.submitted` con las respuestas de todos los formularios. Consulta [Webhooks](/es/docs/webhooks).
- **El webhook propio del formulario**: envía solo los envíos de este formulario a una dirección; consulta más abajo.

## Un webhook para un formulario

Cada formulario puede tener un webhook propio, por ejemplo para enviar las peticiones de presupuesto a tu CRM y las peticiones de devolución al sistema de tu tienda. Solo recibe los envíos de este formulario.

1. En la pestaña **Actions**, haz clic en **Edit** en un formulario guardado. **Webhook for this form** está al final del editor. Un formulario nuevo lo tiene en cuanto lo hayas añadido.
2. En **Endpoint URL**, pega la dirección que te da tu servidor o tu herramienta para los webhooks entrantes y haz clic en **Add webhook**. La dirección tiene que empezar por `https://` y apuntar a un servidor público, como en los webhooks del agente.
3. Copia el secreto de firma que aparece, guárdalo donde tu receptor pueda leerlo y haz clic en **I've saved it**. Solo se muestra completo esta vez.
4. Haz clic en **Send test event** para comprobar la conexión.

El panel se guarda por sí solo, aparte del formulario. Su interruptor **Active** pausa los envíos, **Save address** cambia la dirección, **New secret** sustituye el secreto, **Remove** elimina el webhook y su historial de envíos, y **Recent deliveries** muestra los 20 últimos envíos con un botón **Resend** para los fallidos. La lista de formularios muestra «own webhook» junto a un formulario que tiene uno.

- Envía el evento `form.submitted`, con los mismos datos, la misma firma, los mismos reintentos y el mismo registro de envíos que los [webhooks](/es/docs/webhooks) del agente. Sus eventos no se pueden cambiar.
- No cuenta para los 5 webhooks del agente y no aparece en la tarjeta **Webhooks** de la pestaña **Leads**.
- Los webhooks propios del agente que están suscritos a **Form submitted** siguen recibiendo los envíos de todos los formularios, también los de este. Para enviar los envíos de un formulario solo a su propio webhook, desmarca **Form submitted** en los webhooks del agente.
- Al borrar el formulario también se borra su webhook. Un [agente duplicado](/es/docs/quick-start) recibe copias de los formularios sin sus webhooks.
- Añadir o quitar el webhook, cambiar su dirección y crear un secreto nuevo requiere el rol **Admin** o ser el propietario de la cuenta; los editors pueden activarlo o desactivarlo y enviar un evento de prueba. Consulta [Miembros del equipo y roles](/es/docs/team).

## Duplicar un agente

Un [agente duplicado](/es/docs/quick-start) recibe una copia de los formularios, sin los webhooks propios de los formularios. Los envíos se quedan con el agente original.

> El agente decide sobre todo por **When to show it**. Si muestra el formulario demasiadas veces o nunca, describe los momentos con más precisión y vuelve a probar en el Playground.
