> ## Documentation Index
> Fetch the complete documentation index at: https://docs.visitoai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Recopila preferencias de compra de vivienda durante una conversación

> Crea una acción inmobiliaria de tres campos, solicita las respuestas pendientes y verifica la solicitud guardada en el historial y el CRM de la conversación.

Para la configuración general, empieza por la [guía de recopilación](/es/product-guides/ai-agent/collect-data). Esta página desarrolla un ejemplo práctico.

**Recopilar datos** convierte las respuestas de una conversación en una solicitud estructurada guardada en Visito. En este ejemplo, una persona interesada en comprar vivienda comparte una zona de Nueva York, un presupuesto y un plazo. El agente pide la información pendiente, confirma las preferencias y las guarda.

No necesitas una hoja de cálculo, un servidor API ni un webhook. El ejemplo registra preferencias; no busca propiedades, evalúa compradores, agenda visitas ni crea automáticamente una oportunidad comercial.

<Note>
  Las capturas muestran el panel en inglés y una prueba local con datos ficticios. La conversación aparece bajo el contacto de prueba autenticado; la zona y el presupuesto son valores de demostración. Usa el negocio y el contacto de prueba adecuados para tu espacio.
</Note>

## 1. Crea la acción

Abre **Configuración → Acciones** y selecciona **Recopilar datos** (**Collect data** en las capturas). Usa un nombre específico:

```text theme={null}
NYC homebuyer preferences
```

En **Cuándo y cómo debe usarla la IA**, describe la intención del cliente, las preguntas y el momento de guardar:

```text theme={null}
Usa esta acción cuando un cliente quiera comprar una vivienda en Nueva York y compartir sus preferencias. Solicita la zona preferida, el presupuesto máximo de compra en dólares estadounidenses y el plazo: dentro de 3, 6 o 10 meses. Recopila los datos pendientes de forma natural; nunca inventes respuestas. Confirma las tres preferencias antes de guardarlas. Si el plazo no coincide con una opción, pide al cliente que elija. Guarda una sola vez después de confirmar. Esto solo registra preferencias; no busca propiedades, evalúa compradores, agenda visitas ni promete una llamada.
```

Elige **Disponible en** conscientemente. Esta demostración usa **Todos los negocios** en un espacio controlado. Si el equipo inmobiliario pertenece a un espacio con varios negocios, selecciona el correspondiente para no ofrecer la acción en conversaciones ajenas.

<img src="https://mintcdn.com/muhammadtest/twJjbUY1_r6cb8h1/images/product-guide/en/collect-lead-purpose.png?fit=max&auto=format&n=twJjbUY1_r6cb8h1&q=85&s=a60ea5a6e50c1e08eb390d5135df3382" alt="Configuración general con el propósito, el alcance y el modo exclusivo del área de pruebas." width="1920" height="873" data-path="images/product-guide/en/collect-lead-purpose.png" />

La captura muestra el editor de una acción guardada. La creación reúne esos ajustes con los campos y el destino opcional. Después puedes reabrirla y usar las pestañas **General**, **Campos** y **Destino**.

## 2. Define los tres campos

Selecciona **Agregar campo** para cada fila. Mantén **Obligatorio** marcado en los tres.

| Nombre del campo | Tipo | Información que recopila | Valor guardado de ejemplo |
| - | - | - | - |
| `neighborhood` | Texto | La zona de Nueva York con las palabras del cliente | `Park Slope, Brooklyn` |
| `budget_usd` | Número (admite decimales) | Presupuesto máximo de compra en dólares estadounidenses | `900000` |
| `purchase_timeframe` | Selección única | Un plazo de compra acordado | `Within 6 months` |

Los nombres son identificadores estables de los valores guardados. Usa minúsculas, números y guiones bajos, empezando por una letra. Las descripciones orientan al agente; resultan más útiles que una etiqueta aislada.

Usa estas descripciones:

**neighborhood**

```text theme={null}
La zona de Nueva York donde el cliente quiere comprar, con sus propias palabras; por ejemplo Park Slope, Brooklyn.
```

**budget\_usd**

```text theme={null}
Presupuesto máximo de compra de vivienda en dólares estadounidenses, como número sin símbolo de moneda ni separadores. Pregunta la moneda si no está clara; por ejemplo 900000.
```

**purchase\_timeframe**

```text theme={null}
Cuándo planea comprar el cliente. Pídele elegir dentro de 3, 6 o 10 meses y guarda exactamente la opción correspondiente.
```

<img src="https://mintcdn.com/muhammadtest/twJjbUY1_r6cb8h1/images/product-guide/en/collect-lead-fields-overview.png?fit=max&auto=format&n=twJjbUY1_r6cb8h1&q=85&s=68797b9022353eb05916b0fc1db6ce35" alt="Campos de texto y número con sus descripciones y valores obligatorios." width="1920" height="873" data-path="images/product-guide/en/collect-lead-fields-overview.png" />

Para **Selección única**, escribe cada opción en **Agregar opción** y pulsa **Enter** después de cada una:

```text theme={null}
Within 3 months
Within 6 months
Within 10 months
```

Comprueba que aparezcan como tres etiquetas independientes. Conservamos las opciones en inglés para reproducir exactamente la demostración; puedes traducirlas al configurar tu propia acción. El cliente puede decir «en los próximos seis meses» y el valor guardado debe coincidir con la opción configurada `Within 6 months`. No conviertas silenciosamente un plazo diferente en la opción más cercana.

<img src="https://mintcdn.com/muhammadtest/twJjbUY1_r6cb8h1/images/product-guide/en/collect-lead-fields.png?fit=max&auto=format&n=twJjbUY1_r6cb8h1&q=85&s=938ef4e6f0b88cde4661cb19bb0cd105" alt="Campo de plazo con tres opciones individuales." width="1920" height="873" data-path="images/product-guide/en/collect-lead-fields.png" />

El tipo numérico guarda `900000` como número, no como el texto `$900,000`. La convención USD procede del nombre del campo y sus instrucciones. El tipo numérico por sí solo no explica la moneda al cliente.

<Note>
  «Obligatorio» exige un valor antes del envío. Confirmar antes de guardar forma parte de las instrucciones de esta acción; la casilla no añade por sí sola un paso de confirmación.
</Note>

## 3. Deja el destino vacío

Mantén vacíos **Destino HTTPS** y **Token bearer**. La solicitud se guarda en Visito.

<img src="https://mintcdn.com/muhammadtest/twJjbUY1_r6cb8h1/images/product-guide/en/collect-lead-destination.png?fit=max&auto=format&n=twJjbUY1_r6cb8h1&q=85&s=423fa33ba8f711c5b80d2097e65dbbe3" alt="Destino opcional vacío y explicación de que las solicitudes se guardan solo en Visito." width="1920" height="873" data-path="images/product-guide/en/collect-lead-destination.png" />

El webhook permite enviar los datos recopilados a otro sistema. Es distinto de una acción de [Conectar un sistema](/es/product-guides/ai-agent/custom-tools), que consulta una API para obtener un resultado durante la conversación. Este ejemplo no envió ningún webhook.

Selecciona **Crear acción**. Las acciones nuevas empiezan en **Solo área de pruebas**. El control de estado ofrece:

| Modo | Comportamiento |
| - | - |
| Inactiva | No está disponible para nuevas ejecuciones del agente. Conserva el historial. |
| Solo área de pruebas | Permite probar; las solicitudes son de prueba, sin webhooks ni registros en CRM. |
| Activa | Está disponible en canales habilitados, incluido Webchat, según el negocio seleccionado. |

Para una prueba controlada en Webchat, reabre la acción, selecciona **Activa** y **Guardar cambios**. Usa preferencias ficticias. En esta demostración local se desactivó temporalmente el planificador para probar las acciones de la capa de respuesta; no se verificó el enrutamiento de producción.

<img src="https://mintcdn.com/muhammadtest/twJjbUY1_r6cb8h1/images/product-guide/en/collect-lead-actions.png?fit=max&auto=format&n=twJjbUY1_r6cb8h1&q=85&s=62d6be42794b06006f66697a0ee26d67" alt="La acción activa bajo el filtro Collect data." width="1920" height="873" data-path="images/product-guide/en/collect-lead-actions.png" />

## 4. Prueba una conversación natural

Inicia una conversación nueva en Webchat. Usa la intención normal del cliente, sin indicar al agente el nombre interno de la herramienta.

1. **Cliente:** «Hola, quiero comprar una vivienda en Nueva York. ¿Puedo compartir lo que busco?»
2. El agente pregunta por la zona, el presupuesto máximo en USD y el plazo.
3. **Cliente:** «Park Slope, en Brooklyn, con un presupuesto máximo de 900.000 dólares estadounidenses».
4. El agente pide el plazo pendiente en lugar de guardar un registro incompleto.

<img src="https://mintcdn.com/muhammadtest/twJjbUY1_r6cb8h1/images/product-guide/en/collect-lead-missing-field.png?fit=max&auto=format&n=twJjbUY1_r6cb8h1&q=85&s=3dc6b387f9bdc6c6a91c091a79239d6b" alt="El agente pide el plazo pendiente tras recibir la zona y el presupuesto." width="1512" height="772" data-path="images/product-guide/en/collect-lead-missing-field.png" />

5. **Cliente:** «En los próximos seis meses».
6. El agente repite las tres preferencias y pide confirmación.

<img src="https://mintcdn.com/muhammadtest/twJjbUY1_r6cb8h1/images/product-guide/en/collect-lead-confirmation.png?fit=max&auto=format&n=twJjbUY1_r6cb8h1&q=85&s=fc8ba55958efdf40e64b78dfdbcb9c84" alt="El agente resume las preferencias antes de guardarlas." width="1512" height="772" data-path="images/product-guide/en/collect-lead-confirmation.png" />

7. **Cliente:** «Sí, es correcto. Guarda esas preferencias».
8. Se ejecuta la acción, Webchat muestra **Request saved** y el agente confirma los datos guardados.

<img src="https://mintcdn.com/muhammadtest/twJjbUY1_r6cb8h1/images/product-guide/en/collect-lead-webchat.png?fit=max&auto=format&n=twJjbUY1_r6cb8h1&q=85&s=248b0e72ad7f49714c01d817ff91863b" alt="Recopilación correcta en Webchat después de la confirmación." width="1512" height="772" data-path="images/product-guide/en/collect-lead-webchat.png" />

La conversación real de las capturas se hizo en inglés. Produjo una solicitud con estos valores:

```json theme={null}
{
  "neighborhood": "Park Slope, Brooklyn",
  "budget_usd": 900000,
  "purchase_timeframe": "Within 6 months"
}
```

## 5. Revisa el historial de Acciones

Abre **Acciones → Historial**, selecciona la acción en el filtro **Acción** y abre la ejecución correspondiente. Actualiza si todavía no aparece la más reciente.

La demostración muestra **Completed → Information saved**, entorno **Live**, los tres parámetros y una respuesta con `status: submitted` y un `submissionId`. «Live» identifica el modo del canal; la captura corresponde a un entorno local de prueba.

<img src="https://mintcdn.com/muhammadtest/twJjbUY1_r6cb8h1/images/product-guide/en/collect-lead-history.png?fit=max&auto=format&n=twJjbUY1_r6cb8h1&q=85&s=912e238c94ab6e2be62be02b926f90f8" alt="El historial muestra los parámetros con sus tipos y el identificador de la solicitud." width="1920" height="873" data-path="images/product-guide/en/collect-lead-history.png" />

El identificador de la solicitud es el resultado concreto que respalda la confirmación del agente. La ejecución tardó 32 ms en el entorno local; es el tiempo de la acción, no una garantía de latencia de toda la conversación.

## 6. Revisa la conversación y el registro

Selecciona **Abrir conversación** en el detalle de ejecución. Despliega **NYC homebuyer preferences · Completed** en la conversación. Verás el resultado **Saved**, los campos enviados con sus tipos y la versión de la acción utilizada.

<img src="https://mintcdn.com/muhammadtest/twJjbUY1_r6cb8h1/images/product-guide/en/collect-lead-conversation.png?fit=max&auto=format&n=twJjbUY1_r6cb8h1&q=85&s=da8359e4550e9c37c60612949cd2d2f3" alt="Comprobante desplegado dentro de la conversación." width="1920" height="873" data-path="images/product-guide/en/collect-lead-conversation.png" />

Abre la pestaña **CRM** de la conversación. En **Action submissions**, comprueba la misma zona, presupuesto numérico y plazo. **Webhook: Not configured** es correcto porque el destino estaba vacío.

<img src="https://mintcdn.com/muhammadtest/twJjbUY1_r6cb8h1/images/product-guide/en/collect-lead-crm.png?fit=max&auto=format&n=twJjbUY1_r6cb8h1&q=85&s=ba11dcc42a30839002af85125c8065cc" alt="Valores guardados en el CRM junto al comprobante de la acción completada." width="1920" height="873" data-path="images/product-guide/en/collect-lead-crm.png" />

El panel también indica **No sales opportunity yet**. Una solicitud no crea automáticamente una oportunidad comercial, una asignación de seguimiento ni una llamada programada. Configura esos pasos aparte si los necesitas. Para un flujo real de captación, añade un campo de contacto solo cuando sea necesario y explica su propósito al cliente.

## Reutilización y solución de problemas

* **El agente no puede usar la acción:** revisa el modo, el negocio, los cambios guardados y si el enrutamiento transfirió la conversación antes de que pudiera ejecutarse.
* **No aparece en CRM tras una prueba en Playground:** es lo esperado; las solicitudes de prueba están separadas de los registros de los canales reales.
* **Falta una respuesta obligatoria:** el agente debe pedirla, no inventarla.
* **El cliente indica otro plazo:** pide elegir una opción compatible o modifica conscientemente las opciones de la acción.
* **El cliente corrige un dato:** confirma las preferencias corregidas antes de enviarlas. No supongas que una nueva ejecución modifica el registro anterior.
* **El agente dice que guardó los datos:** verifica el comprobante y la solicitud; la respuesta en lenguaje natural no basta como evidencia.

Antes de publicar tu versión, prueba respuestas incompletas, moneda ambigua, opciones no admitidas, correcciones antes de guardar y un envío completo. Esta guía verificó directamente la solicitud del campo pendiente, la confirmación, la normalización numérica y de opciones, el historial y el registro en CRM. No se probó la entrega por webhook ni el enrutamiento de producción.

Después de capturar el ejemplo local, devuelve la acción a **Solo área de pruebas** para evitar nuevos registros en canales reales de forma involuntaria. La solicitud demostrada y el historial permanecen disponibles.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.