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

# Guía de Migración

> Migra tus queries del Data Warehouse legacy (client_analytics) al Analytics Warehouse.

# Migrar desde el Data Warehouse legacy

El warehouse legacy (`client_analytics`) está **deprecado**. Sigue funcionando, sin cambios, durante el periodo de migración — migras a tu propio ritmo actualizando dos cosas en tus queries: el **nombre de la base de datos** y, donde cambiaron, los **nombres de tablas y columnas**. Tus credenciales y el host de conexión también pueden cambiar; tu Account Manager lo confirmará.

<Warning>
  La base de datos legacy `client_analytics` será dada de baja después del periodo de migración. Toda integración nueva debe construirse únicamente contra `treble_client_analytics`.
</Warning>

## Mapeo de tablas

| Legacy (`client_analytics`)                             | Nueva (`treble_client_analytics`)                           | Notas                                                                                                                   |
| ------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `fact_sessions`                                         | `fact_treble_sessions`                                      | Agrega `trigger_keyword`, `last_node_id`; `inbound_outbound` → `direction`                                              |
| `fact_inbound_messages`                                 | `fact_treble_sessions` filtrada por `direction = 'INBOUND'` | Absorbida — mismos datos, una sola tabla                                                                                |
| `fact_deployment_status`                                | `fact_campaign_sends`                                       | `timestamps_eta` → `scheduled_at`; `timestamp_*` → `*_at`                                                               |
| `fact_deployment_daily`                                 | `fact_campaign_daily`                                       | Mismas fórmulas, mismas columnas                                                                                        |
| `fact_conversations`                                    | `fact_agent_conversations`                                  | Historia completa (la legacy mantenía una ventana móvil de 3 meses); agrega transfer\_count, campos de asignación y más |
| `fact_agent_messages`                                   | `fact_agent_conversation_messages`                          |                                                                                                                         |
| `fact_redirections`                                     | `fact_agent_conversation_transfers`                         |                                                                                                                         |
| `fact_agent_status_changes`                             | `fact_agent_status_changes`                                 | Mismo nombre                                                                                                            |
| `fact_agent_daily`                                      | `fact_agent_daily`                                          | Mismo nombre, mismas fórmulas                                                                                           |
| `fact_hsm_responses`                                    | `fact_hsm_responses`                                        | Mismo nombre                                                                                                            |
| `fact_target_events`                                    | `fact_target_events`                                        | Mismo nombre                                                                                                            |
| `fact_whatsapp_links`                                   | `fact_whatsapp_link_events`                                 |                                                                                                                         |
| `dim_agents`, `dim_tags`, `dim_teams`, `dim_agent_tags` | Mismos nombres                                              |                                                                                                                         |
| `dim_hsm`                                               | `dim_hsms`                                                  | Pluralizada                                                                                                             |
| `session_variables`                                     | `fact_treble_session_variables`                             | Ahora disponible de forma general                                                                                       |
| —                                                       | `fact_treble_session_messages`                              | **Nueva** — traza completa de la conversación                                                                           |
| —                                                       | `fact_treble_session_nodes`                                 | **Nueva** — recorrido nodo a nodo                                                                                       |
| —                                                       | `fact_ad_sessions`                                          | **Nueva** — atribución Click-to-WhatsApp                                                                                |
| —                                                       | `dim_polls`, `dim_channels`, `dim_poll_nodes`               | Dimensiones **nuevas**                                                                                                  |

## Renombres de columnas a tener en cuenta

| Legacy                                                         | Nueva                                                          | Dónde                                                                                 |
| -------------------------------------------------------------- | -------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| `inbound_outbound`                                             | `direction`                                                    | sesiones                                                                              |
| `campaign_name`                                                | `poll_name`                                                    | conversaciones de agente (`poll_name` es el único nombre usado en todas partes ahora) |
| `timestamps_eta`                                               | `scheduled_at`                                                 | envíos de campaña                                                                     |
| `timestamp_delivered` / `_responded` / `_failure` / `_success` | `delivered_at` / `responded_at` / `failed_at` / `succeeded_at` | envíos de campaña                                                                     |
| `answer_id`                                                    | `answer_option_id`                                             | nodos de flujo (identifica la opción elegida)                                         |

## Diferencias de comportamiento que debes conocer

1. **Historia completa.** El warehouse legacy recortaba la mayoría de las tablas a una ventana móvil de 3 meses. El nuevo warehouse sirve todo. Si tus queries dependían de esa ventana como filtro implícito, agrega filtros de fecha explícitos (también es bueno para el rendimiento).
2. **"Hoy" más fresco, consolidación declarada.** Los datos aterrizan en minutos en lugar de horas, y las cifras de un día se consolidan por completo dentro de 48 horas (mira [el contrato de datos](/es/docs/data-warehouse-v2/welcome#el-contrato-de-datos)). Durante una comparación de migración puedes ver el nuevo warehouse ligeramente *adelantado* respecto al legacy en el día más reciente — eso es rezago de actualización del legacy, no una discrepancia.
3. **Los mensajes de conversaciones eliminadas se excluyen** de `fact_agent_conversation_messages` por diseño (la conversación a la que pertenecen ya no existe).
4. **El enriquecimiento de contacto en conversaciones antiguas se congela.** `helpdesk_contact_id` y `contact_wa_id` en conversaciones de agente de más de 90 días conservan el valor que tenían — los cambios del CRM ya no se propagan hacia atrás en ellas.
5. **Dos refinamientos de fórmula documentados** en `fact_agent_daily`: el tiempo de primera respuesta ahora viene del cálculo propio de la plataforma, y los promedios de CSAT consideran solo conversaciones con calificación (`rating != 0`). Ambos son correcciones; la paridad histórica se verificó antes del lanzamiento.
6. **Sin alias.** Los nombres legacy no están espejados en la nueva base de datos — el mapeo de arriba se aplica una sola vez, en tus queries, y ambos sistemas coexisten mientras lo haces.

## Ruta de migración sugerida

1. Apunta una copia de tu dashboard/reporte a `treble_client_analytics` usando el mapeo de arriba.
2. Ejecuta ambas versiones en paralelo durante unos días; espera coincidencias exactas en los días consolidados.
3. Haz el cambio definitivo, manteniendo filtros de fecha explícitos.
4. Avísale a tu Account Manager cuando ya no uses `client_analytics` — nos ayuda a programar la baja definitiva.
