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

> Cada mensagem trocada dentro dos fluxos de conversa — o rastro completo.

# fact\_treble\_session\_messages

Cada linha é uma mensagem dentro de um fluxo de conversa: o que o bot (ou um agente de IA) enviou, o que o usuário respondeu, quando foi entregue e lida. Esta tabela não existia no warehouse anterior — ela te dá a transcrição completa de cada conversa de fluxo.

## Que perguntas ela responde?

* O que exatamente foi dito em uma conversa, em ordem?
* Quais mensagens falham na entrega, e com qual erro?
* Quanto tempo os usuários levam para ler nossas mensagens?
* Quais templates HSM estão realmente sendo enviados dentro dos fluxos?
* O que a IA respondeu nas conversas com IA?

## Colunas

| Coluna                  | Tipo       | Descrição                                                                                                                                                                       |
| ----------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `message_id`            | Int64      | Identificador único da mensagem                                                                                                                                                 |
| `company_id`            | Int32      | Sua empresa (filtrada automaticamente)                                                                                                                                          |
| `session_id`            | Int64      | O fluxo de conversa ao qual esta mensagem pertence                                                                                                                              |
| `created_at`            | DateTime64 | Quando a mensagem foi criada                                                                                                                                                    |
| `sender`                | String     | Quem a enviou: `AI` (o fluxo automatizado), `USER` (o usuário final) ou `HELPDESK_INTEGRATION` (enviada através de uma integração de CRM/helpdesk conectada)                    |
| `type`                  | String     | Tipo de mensagem: `TEXT`, `HSM`, `IMAGE`, `AUDIO`, `VIDEO`, `DOCUMENT`, `STICKER`, `LOCATION`, `CONTACTS`, `WHATSAPP_FLOW`, `WHATSAPP_FLOW_RESPONSE`, `CALL_REQUEST_PERMISSION` |
| `text`                  | String     | Conteúdo de texto da mensagem                                                                                                                                                   |
| `file_url`              | String     | URL da mídia quando a mensagem carrega um arquivo                                                                                                                               |
| `filename`              | String     | Nome original do arquivo, para documentos                                                                                                                                       |
| `hsm_id`                | Int32      | Template HSM usado, se houver; `0` caso contrário                                                                                                                               |
| `hsm_name`              | String     | Nome do template HSM                                                                                                                                                            |
| `delivered_at`          | DateTime64 | Quando o WhatsApp confirmou a entrega; `NULL` se (ainda) não entregue                                                                                                           |
| `read_at`               | DateTime64 | Quando o usuário a leu; `NULL` se não lida                                                                                                                                      |
| `error`                 | String     | Descrição do erro de entrega; vazio em caso de sucesso                                                                                                                          |
| `provider_msg_id`       | String     | ID da mensagem no WhatsApp (`wamid`)                                                                                                                                            |
| `reply_provider_msg_id` | String     | Se a mensagem cita/responde outra, o `wamid` dessa mensagem                                                                                                                     |
| `interaction_answer_id` | Int64      | A etapa do fluxo à qual esta mensagem pertence — faça join com `fact_treble_session_nodes.node_record_id`; `0` quando a mensagem não está ligada a uma etapa                    |
| `contact_id`            | Int32      | Contato da Treble; `0` se não houver                                                                                                                                            |
| `reaction`              | String     | Reação de emoji, se o usuário reagiu à mensagem                                                                                                                                 |
| `synced_at`             | DateTime64 | Quando esta linha foi gravada/corrigida pela última vez                                                                                                                         |

## Exemplos de consultas

### Reconstruir uma conversa

```sql theme={null}
SELECT created_at, sender, type, text, delivered_at, read_at
FROM fact_treble_session_messages
WHERE session_id = {your_session_id}
ORDER BY created_at
```

### Erros de entrega nas últimas 24 horas

```sql theme={null}
SELECT error, count() AS messages
FROM fact_treble_session_messages
WHERE created_at >= now() - INTERVAL 24 HOUR
  AND error != ''
GROUP BY error
ORDER BY messages DESC
```

<Note>
  Quase todas as mensagens carregam `interaction_answer_id` — tanto a pergunta que o fluxo enviou quanto a resposta do usuário apontam para a mesma etapa. Para parear respostas com perguntas, faça join contra `fact_treble_session_nodes.node_record_id`.
</Note>
