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

> Uma linha por cada fluxo de conversa executado.

# fact\_sessions

Cada linha representa um fluxo de conversa executado (inbound ou outbound). Um fluxo de conversa é a interação completa de um usuário com um fluxo da Treble, desde que inicia até que finaliza.

## Que perguntas responde?

* Quantos fluxos de conversa foram executados?
* Quantos foram inbound e quantos outbound?
* Quais campanhas geraram mais fluxos?
* Qual foi o estado final de cada fluxo?
* Que linha de WhatsApp foi usada?

## Colunas

| Coluna              | Tipo       | Descrição                                                              |
| ------------------- | ---------- | ---------------------------------------------------------------------- |
| `session_id`        | Int64      | Identificador único do fluxo de conversa                               |
| `company_id`        | Int32      | Identificador da empresa (filtrado automaticamente)                    |
| `created_at`        | DateTime64 | Data e hora de início                                                  |
| `cellphone`         | String     | Número de celular do usuário                                           |
| `country_code`      | String     | Código do país do usuário                                              |
| `status`            | String     | Estado final do fluxo: `HumanHandover`, `Rating`, `Finished`, etc.     |
| `is_valid`          | Bool       | Se o fluxo foi concluído corretamente                                  |
| `poll_id`           | Int32      | Identificador da campanha/conversa                                     |
| `poll_name`         | String     | Nome da campanha                                                       |
| `channel_id`        | Int32      | Identificador da linha de WhatsApp                                     |
| `channel_cellphone` | String     | Número da linha de WhatsApp                                            |
| `inbound_outbound`  | String     | `INBOUND` se o usuário iniciou, `OUTBOUND` se foi por campanha         |
| `contact_id`        | Int64      | Identificador do contato na Treble. `0` se não tiver contato associado |
| `finished_at`       | DateTime64 | Data e hora de finalização                                             |

## Consultas de exemplo

### Consumo inbound vs outbound por dia

```sql theme={null}
SELECT
    toDate(created_at) AS dia,
    inbound_outbound,
    count() AS total,
    countIf(is_valid) AS validos
FROM client_analytics.fact_sessions
WHERE created_at >= now() - INTERVAL 30 DAY
GROUP BY dia, inbound_outbound
ORDER BY dia DESC
```

### Top campanhas por volume

```sql theme={null}
SELECT
    poll_name,
    inbound_outbound,
    count() AS fluxos,
    countIf(status = 'HumanHandover') AS passaram_a_agente
FROM client_analytics.fact_sessions
WHERE created_at >= now() - INTERVAL 30 DAY
GROUP BY poll_name, inbound_outbound
ORDER BY fluxos DESC
LIMIT 20
```
