> ## 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_variables

> Variables capturadas o definidas durante cada flujo conversacional.

# fact\_treble\_session\_variables

Cada fila es una variable de un flujo conversacional: datos capturados de las respuestas del usuario, definidos por la lógica del flujo, o recibidos cuando la conversación se creó vía API. Únela con `fact_treble_sessions` a través de `session_id` para agregar contexto de flujo, contacto y resultado.

## ¿Qué preguntas responde?

* ¿Qué valores dieron los usuarios para un campo dado (email, número de orden, ciudad…)?
* ¿Qué sesiones traen una variable dada, y con qué valor?
* ¿Cómo varían los resultados según el valor de una variable (join de vuelta a las sesiones)?

## Columnas

| Columna          | Tipo       | Descripción                                              |
| ---------------- | ---------- | -------------------------------------------------------- |
| `session_id`     | Int64      | El flujo conversacional al que pertenece esta variable   |
| `company_id`     | Int32      | Tu empresa (filtrado automáticamente)                    |
| `variable_name`  | String     | Nombre de la variable tal como está definida en el flujo |
| `variable_value` | String     | Valor actual (gana la última escritura)                  |
| `created_at`     | DateTime64 | Cuándo se definió la variable por primera vez            |
| `updated_at`     | DateTime64 | Cuándo se actualizó por última vez                       |
| `synced_at`      | DateTime64 | Cuándo se escribió/corrigió por última vez esta fila     |

<Note>
  Cuando un flujo sobrescribe una variable, la fila existente se actualiza en su lugar — ves su valor **más reciente**. En casos raros un flujo registra el mismo nombre de variable como entradas separadas; cuando eso importe, quédate con la fila de mayor `updated_at` (como hace el ejemplo de abajo).
</Note>

## Consultas de ejemplo

### Pivotear variables a columnas para un flujo

```sql theme={null}
SELECT
    session_id,
    argMaxIf(variable_value, updated_at, variable_name = 'email')    AS email,
    argMaxIf(variable_value, updated_at, variable_name = 'order_id') AS order_id
FROM fact_treble_session_variables
WHERE session_id IN (
    SELECT session_id FROM fact_treble_sessions
    WHERE poll_id = {your_poll_id} AND created_at >= today() - 30
)
GROUP BY session_id
```

### Sesiones según el valor de una variable

```sql theme={null}
SELECT variable_value AS city, count() AS sessions
FROM fact_treble_session_variables
WHERE variable_name = 'city'
  AND created_at >= today() - 30
GROUP BY city
ORDER BY sessions DESC
```
