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

# fact_treble_session_nodes

> El recorrido nodo a nodo de cada conversación a través de su flujo.

# fact\_treble\_session\_nodes

Cada fila es un **paso interactivo** de una conversación a través de su flujo: una pregunta realizada, un paso de IA, un WhatsApp Flow, una llamada a una integración — con la opción que el usuario eligió o el texto libre que escribió, y si en lugar de responder se agotó el tiempo de espera. Esta es la tabla para **funnels** — no existía en el warehouse anterior.

<Note>
  Los pasos que solo envían un mensaje y continúan (sin interacción) no generan una fila aquí — el flujo completo de mensajes, incluidos esos, está en [`fact_treble_session_messages`](/es/docs/data-warehouse-v2/fact-treble-session-messages). La estructura completa de cada flujo, con todos sus nodos, está en [`dim_poll_nodes`](/es/docs/data-warehouse-v2/dimensions#dim_poll_nodes).
</Note>

## ¿Qué preguntas responde?

* ¿Cuál es el funnel paso a paso de un flujo — cuántos usuarios llegan a cada nodo y dónde abandonan?
* ¿Qué opciones de respuesta eligen los usuarios en cada pregunta?
* ¿Qué preguntas agotan el tiempo de espera con más frecuencia?
* ¿Qué conversaciones pasaron por nodos de IA (join con `dim_poll_nodes.node_type`)?
* ¿Cuánto tardan los usuarios en responder cada pregunta?

## Columnas

| Columna              | Tipo       | Descripción                                                                                                                                                                                         |
| -------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `node_record_id`     | Int64      | Identificador único de esta visita al nodo                                                                                                                                                          |
| `company_id`         | Int32      | Tu empresa (filtrado automáticamente)                                                                                                                                                               |
| `session_id`         | Int64      | El flujo conversacional al que pertenece esta visita                                                                                                                                                |
| `poll_id`            | Int32      | Identificador del flujo                                                                                                                                                                             |
| `poll_name`          | String     | Nombre del flujo                                                                                                                                                                                    |
| `cellphone`          | String     | Número de teléfono del usuario                                                                                                                                                                      |
| `treble_id`          | String     | Identidad del contacto (código de país + celular)                                                                                                                                                   |
| `node_id`            | Int32      | El nodo del flujo visitado (se une con `dim_poll_nodes`)                                                                                                                                            |
| `node_type`          | String     | Tipo de paso: `QUESTION`, `AI_TASK_AUTOMATOR`, `AI_AGENT`, `AI_LEAD_QUALIFICATION`, `AI_OBJECTIVE_AGENT`, `WHATSAPP_FLOW`, `META_EVENTS`, `HELPDESK_INTEGRATION`; vacío cuando el nodo ya no existe |
| `hsm_id`             | Int32      | Plantilla HSM enviada en este paso, si aplica; `0` en caso contrario                                                                                                                                |
| `answer_option_id`   | Int32      | La opción predefinida con la que coincidió la respuesta del usuario; `0` para respuestas abiertas                                                                                                   |
| `answer_option_text` | String     | Etiqueta de esa opción predefinida                                                                                                                                                                  |
| `response_text`      | String     | El texto real de la respuesta del usuario                                                                                                                                                           |
| `is_timeout`         | Bool       | `true` si el usuario nunca respondió y el paso agotó el tiempo de espera                                                                                                                            |
| `entered_at`         | DateTime64 | Cuándo se envió este paso al usuario                                                                                                                                                                |
| `responded_at`       | DateTime64 | Cuándo respondió el usuario; `NULL` si no respondió                                                                                                                                                 |
| `question_msg_id`    | Int64      | El mensaje que llevó la pregunta (`fact_treble_session_messages.message_id`)                                                                                                                        |
| `synced_at`          | DateTime64 | Cuándo se escribió/corrigió por última vez esta fila                                                                                                                                                |

## Consultas de ejemplo

### Funnel de un flujo — alcance por nodo

```sql theme={null}
SELECT
    node_id,
    any(node_type)            AS node_type,
    uniqExact(session_id)     AS conversations_reached,
    countIf(is_timeout)       AS timeouts
FROM fact_treble_session_nodes
WHERE poll_id = {your_poll_id}
  AND entered_at >= today() - 30
GROUP BY node_id
ORDER BY conversations_reached DESC
```

### Distribución de respuestas de una pregunta

```sql theme={null}
SELECT answer_option_text, count() AS answers
FROM fact_treble_session_nodes
WHERE node_id = {your_node_id}
  AND entered_at >= today() - 30
  AND responded_at IS NOT NULL
GROUP BY answer_option_text
ORDER BY answers DESC
```

### Conversaciones que usaron IA

```sql theme={null}
SELECT uniqExact(session_id) AS ai_conversations
FROM fact_treble_session_nodes
WHERE node_type LIKE 'AI_%'
  AND entered_at >= today() - 7
```
