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

# Dimensiones

> Tablas de catálogo para enriquecer tus consultas de hechos: agentes, equipos, plantillas, flujos, canales y nodos de flujo.

# Dimensiones

Las dimensiones son tablas de catálogo pequeñas que describen las entidades a las que hacen referencia tus hechos. Las tablas de hechos ya traen los nombres más comunes incluidos (`agent_name`, `poll_name`, `team_name`…), así que solo necesitas un join con una dimensión cuando quieres atributos más allá del nombre — el email de un agente, el estado de aprobación de un HSM, la configuración de IA de un nodo.

## dim\_agents

Una fila por cuenta de agente.

| Columna      | Tipo   | Descripción                                                    |
| ------------ | ------ | -------------------------------------------------------------- |
| `id`         | Int32  | Identificador del agente (se une con `agent_id` en los hechos) |
| `company_id` | Int32  | Tu empresa (filtrado automáticamente)                          |
| `first_name` | String | Nombre                                                         |
| `last_name`  | String | Apellido                                                       |
| `email`      | String | Email del agente                                               |
| `active`     | Bool   | Si el agente está disponible actualmente (en línea)            |
| `agent_type` | String | Rol: `AGENT`, `ADMIN` o `SUPERVISOR`                           |

## dim\_teams

Una fila por equipo.

| Columna      | Tipo   | Descripción              |
| ------------ | ------ | ------------------------ |
| `id`         | Int32  | Identificador del equipo |
| `company_id` | Int32  | Tu empresa               |
| `name`       | String | Nombre del equipo        |

## dim\_tags

Una fila por tag (cola/grupo dentro de un equipo).

| Columna      | Tipo   | Descripción                    |
| ------------ | ------ | ------------------------------ |
| `id`         | Int32  | Identificador del tag          |
| `company_id` | Int32  | Tu empresa                     |
| `name`       | String | Nombre del tag                 |
| `team_id`    | Int32  | Equipo al que pertenece el tag |

## dim\_agent\_tags

Una fila por asignación agente–tag — qué agentes atienden qué colas.

| Columna      | Tipo   | Descripción       |
| ------------ | ------ | ----------------- |
| `agent_id`   | Int32  | El agente         |
| `company_id` | Int32  | Tu empresa        |
| `tag_id`     | Int32  | El tag asignado   |
| `tag_name`   | String | Nombre del tag    |
| `team_id`    | Int32  | Equipo del tag    |
| `team_name`  | String | Nombre del equipo |

## dim\_hsms

Una fila por HSM (plantilla de WhatsApp).

| Columna         | Tipo   | Descripción                                                                                                                                                             |
| --------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`            | Int32  | Identificador de la plantilla (se une con `hsm_id` en los hechos)                                                                                                       |
| `company_id`    | Int32  | Tu empresa                                                                                                                                                              |
| `name`          | String | Nombre de la plantilla                                                                                                                                                  |
| `status`        | String | Estado del ciclo de vida: `APPROVED`, `PROCESSING`, `REJECTED`, `PAUSED`, `DISABLED`, `ARCHIVED`, `PENDING_DELETION`                                                    |
| `category`      | String | Categoría de Meta: `MARKETING`, `UTILITY`, `AUTHENTICATION`, más categorías legacy en plantillas antiguas (`ACCOUNT_UPDATE`, `ALERT_UPDATE`, `TRANSACTIONAL`, `OTP`, …) |
| `template_type` | String | `TEXT`, `RICH` o `MEDIA`                                                                                                                                                |
| `content`       | String | Contenido de texto de la plantilla                                                                                                                                      |
| `provider_id`   | String | ID de la plantilla en Meta                                                                                                                                              |

## dim\_polls

Una fila por **versión** de flujo. Cuando editas un flujo en el editor, se crea una nueva versión (nuevo `poll_id`); `original_poll_id` agrupa todas las versiones del mismo flujo lógico.

| Columna            | Tipo   | Descripción                                                                |
| ------------------ | ------ | -------------------------------------------------------------------------- |
| `poll_id`          | Int32  | Identificador de la versión del flujo (se une con `poll_id` en los hechos) |
| `poll_name`        | String | Nombre del flujo                                                           |
| `original_poll_id` | Int32  | Identificador del flujo a través de sus versiones                          |
| `version`          | UInt64 | Número de versión                                                          |
| `hidden`           | Bool   | Si esta versión está oculta en la plataforma                               |
| `company_id`       | Int32  | Tu empresa                                                                 |

<Note>
  Para analizar un flujo a través de sus ediciones, agrupa los hechos por `original_poll_id` vía esta dimensión en lugar de por el `poll_id` directo.
</Note>

## dim\_channels

Una fila por línea de WhatsApp.

| Columna         | Tipo       | Descripción                                                     |
| --------------- | ---------- | --------------------------------------------------------------- |
| `company_id`    | Int32      | Tu empresa                                                      |
| `channel_id`    | Int32      | Identificador del canal (se une con `channel_id` en los hechos) |
| `whatsapp_line` | String     | Número de teléfono de la línea                                  |
| `display_name`  | String     | Nombre visible de la línea                                      |
| `created_at`    | DateTime64 | Cuándo se creó la línea                                         |

## dim\_poll\_nodes

Una fila por nodo de cada versión de flujo — la estructura detrás de [`fact_treble_session_nodes`](/es/docs/data-warehouse-v2/fact-treble-session-nodes). Para los nodos de IA incluye la configuración completa del agente de IA.

| Columna                     | Tipo   | Descripción                                                                                                                     |
| --------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------- |
| `node_id`                   | Int32  | Identificador del nodo (se une con `node_id` / `last_node_id` en los hechos)                                                    |
| `company_id`                | Int32  | Tu empresa                                                                                                                      |
| `poll_id`                   | Int32  | Versión del flujo a la que pertenece el nodo                                                                                    |
| `node_type`                 | String | Tipo de nodo: `QUESTION`, `AI_TASK_AUTOMATOR`, `AI_AGENT`, `WHATSAPP_FLOW`, `META_EVENTS`, `HELPDESK_INTEGRATION`, entre otros  |
| `question_id`               | Int32  | Identificador de la pregunta, cuando el nodo hace una; `0` en caso contrario                                                    |
| `question_text`             | String | Texto de la pregunta                                                                                                            |
| `question_type`             | String | `OPEN` (texto libre), `CLOSED` (opciones predefinidas) o `AGENT` (transfiere a un agente); vacío para nodos que no son pregunta |
| `hsm_id`                    | Int32  | Plantilla HSM que envía el nodo, si aplica; `0` en caso contrario                                                               |
| `ai_automator_id`           | Int64  | Agente de IA configurado en el nodo, si aplica; `0` en caso contrario                                                           |
| `ai_automator_name`         | String | Nombre del agente de IA                                                                                                         |
| `ai_automator_description`  | String | Descripción del agente de IA                                                                                                    |
| `ai_automator_version`      | Int32  | Última versión del agente de IA vinculada a este nodo                                                                           |
| `ai_automator_active`       | Bool   | Si esa última versión está activa                                                                                               |
| `ai_automator_tools`        | String | Herramientas habilitadas para el agente de IA (JSON)                                                                            |
| `ai_automator_instructions` | String | Instrucciones del agente de IA                                                                                                  |

## Ejemplo: enriquecer un funnel con el texto del nodo

```sql theme={null}
SELECT
    f.node_id,
    n.node_type,
    n.question_text,
    uniqExact(f.session_id) AS conversations_reached
FROM fact_treble_session_nodes AS f
LEFT JOIN dim_poll_nodes AS n
    ON n.company_id = f.company_id AND n.poll_id = f.poll_id AND n.node_id = f.node_id
WHERE f.poll_id = {your_poll_id}
  AND f.entered_at >= today() - 30
GROUP BY f.node_id, n.node_type, n.question_text
ORDER BY conversations_reached DESC
```
