> For the complete documentation index, see [llms.txt](https://docs.hablla.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hablla.com/hablla-docs-es/flujos-de-automatizacion/todos-los-componentes/componentes-de-facebook/pregunta-de-facebook.md).

# Pregunta de Facebook

### Visión general

El **Componente de Pregunta de Facebook Messenger** es un nodo de acción enfocado en el filtrado, la recopilación de datos estructurados y el enriquecimiento de registros en la plataforma. Su función principal es enviar un enunciado o pregunta directamente al chat privado (DM) del usuario en Facebook Messenger y esperar una respuesta escrita de forma síncrona. La automatización retiene el contacto en esta etapa hasta que se ingrese un dato compatible, permitiendo guardar el insumo y dar continuidad al flujo de conversación.

### Parámetros de configuración

La configuración del componente gestiona las reglas de validación de la entrada del usuario y el destino de almacenamiento de los datos recopilados:

* **Tipo:** Campo fijo y restringido del componente en este canal. Solo admite la modalidad `Texto`, estableciendo que todas las preguntas enviadas por este bloque esperan exclusivamente respuestas escritas textualmente por el usuario final (sin soporte para menús interactivos de botones o listas nativas de la API).<br>
* **Mensaje (\* Campo Obligatorio):** El enunciado de la pregunta o instrucción que el chatbot enviará en la ventana de diálogo del cliente.<br>
* **Tiene variable (tecla de alternancia - Toggle Switch):** Cuando se activa, habilita el guardado de la entrada escrita en un contenedor de memoria, operando mediante claves estáticas (*Fixed*) o dinámicas (*Expression*).<br>
* **Variable (\* obligatorio si está activo):** El nombre de la etiqueta o variable local (ej: `response`) creada para almacenar temporalmente el contenido de la respuesta.<br>
* **Destino de la respuesta:** Menú desplegable para mapear y guardar el dato de forma definitiva en propiedades del perfil del contacto. Las opciones abarcan campos nativos y personalizados como: `Nombre`, `Teléfono`, `Correo electrónico`, `Dirección`, `CPF`, `CNPJ`, `Fecha`, `NPS`, `CSAT` o un `custom_field`.<br>
* **Ignorar si se cumple el objetivo (tecla de alternancia - Toggle Switch):** Si el contacto ya tiene datos válidos en el campo seleccionado en *Destino de la respuesta*, el componente omite esta etapa del flujo silenciosamente para evitar preguntas redundantes.<br>
* **Aceptar respuesta&#x20;*****(*****&#x20;Campo obligatorio):** Filtro validador de datos que determina la sintaxis aceptable para avanzar en el flujo. El menú de búsquedas ofrece los siguientes formatos de validación:
  * *Estructuras de texto/números:* `Texto`, `Número`, `Datos válidos`.<br>
  * *Campos de registro:* `Número de teléfono`, `Correo electrónico`, `CPF`, `CNPJ`, `Fecha`.<br>
  * *Búsquedas y ubicación:* `NPS`, `CSAT`, `Ubicación`.<br>
  * *Formatos de medios:* `Audio`, `Documento`, `Video`, `Imagen`, `Contacto`.<br>

### Constructor visual

La interfaz gráfica se centra en la validación estricta de formularios y el control lineal de procesos en el árbol de automatización:

* **Campos obligatorios de guardado:** A diferencia de los nodos informativos, la obligatoriedad señalada por asterisco (`*`) en los campos de *Mensaje* y *Aceptar respuesta* impide que las reglas de conversación se publiquen con lagunas de validación, evitando dejar al usuario bloqueado en una pregunta sin criterios de salida.<br>
* **Nodo de flujo secuencial con validación:** En el editor de diseño, el componente muestra un puerto de salida tradicional. Sin embargo, el motor de la automatización crea una malla lógica invisible de repetición: si el cliente proporciona una respuesta que falle en el criterio seleccionado en *Aceptar respuesta*, el bloque repite el mensaje original de forma continua hasta recibir una entrada compatible.<br>

### Operadores especiales

Las propiedades lógicas de este componente manejan motores de máscara de datos y validación sintáctica (*validación de entrada*) para canales de chat social:

* **Máscaras de validación de documentos y datos:** Cuando el campo *Aceptar respuesta* está configurado para claves específicas (como `CPF`, `CNPJ` o `Correo electrónico`), el motor interno aplica algoritmos de verificación en la cadena escrita por el usuario. Las entradas que no correspondan a la estructura matemática de un CPF válido o a la sintaxis estándar de correo electrónico son rechazadas automáticamente en la capa de recepción de la API.<br>
* **Mapeamiento previo de variables globales:** El campo *Mensaje* es compatible con intérpretes de cadenas mediante llaves dobles (`{{...}}`). Esto permite que la pregunta enviada en Messenger utilice datos capturados en otros canales o bloques (ej: "`{{nombre}}`, confírmenos su CPF, por favor:").<br>

### Ejemplos prácticos

La tabla a continuación muestra escenarios de uso del componente para realizar registros y filtrados inteligentes a través de Facebook Messenger:

| **Tipo seleccionado** | **Mensaje configurado**                                   | **Destino de la respuesta / variable**                                                                                | **Aceptar respuesta** | **Caso de uso práctico**                                                                                                                      |
| --------------------- | --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `Texto`               | "¿Cuál es su número de CPF?"                              | <p><strong>Destino:</strong> <code>CPF</code><br><br><br><br><strong>Variable:</strong> <code>cpf\_cliente</code></p> | `CPF`                 | Capturar y validar el documento del usuario. Si escribe letras o números incompletos, el sistema lo rechaza y vuelve a presentar la pregunta. |
| `Texto`               | "Por favor, escriba su fecha de nacimiento (DD/MM/AAAA):" | <p><strong>Destino:</strong> <code>Fecha</code><br><br><br><br><strong>Variable:</strong> <code>nacimiento</code></p> | `Fecha`               | Recopilar datos cronológicos para actualizar el perfil del contacto y guardarlos en la ficha de registro del CRM de la plataforma.            |
| `Texto`               | "Del 0 al 10, ¿cuánto recomendaría nuestro servicio?"     | <p><strong>Destino:</strong> <code>NPS</code><br><br><br><br><strong>Variable:</strong> <code>nota\_nps</code></p>    | `NPS`                 | Realizar una encuesta de satisfacción transaccional directa por texto en el DM de Facebook al final de una jornada de soporte.                |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.hablla.com/hablla-docs-es/flujos-de-automatizacion/todos-los-componentes/componentes-de-facebook/pregunta-de-facebook.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
