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

> Métricas diarias de entrega por campaña, preagregadas.

# fact\_campaign\_daily

Cada fila es una campaña (`poll_id`) en un día, con los envíos desglosados por resultado y las tasas de entrega/respuesta ya calculadas. Es el camino rápido para dashboards: los mismos números que podrías derivar de [`fact_campaign_sends`](/es/docs/data-warehouse-v2/fact-campaign-sends), preagregados. Reemplaza a la tabla legacy `fact_deployment_daily` con fórmulas idénticas.

## ¿Qué preguntas responde?

* ¿Cómo le fue a cada campaña por día?
* ¿Cuál es la tendencia de las tasas de entrega y respuesta en el tiempo?
* ¿Cuántos envíos fallaron, y en qué categoría de falla?

## Columnas

| Columna                     | Tipo       | Descripción                                                                   |
| --------------------------- | ---------- | ----------------------------------------------------------------------------- |
| `company_id`                | Int32      | Tu empresa (filtrado automáticamente)                                         |
| `day`                       | Date       | El día (por hora programada)                                                  |
| `poll_id`                   | Int32      | Identificador del flujo de la campaña                                         |
| `poll_name`                 | String     | Nombre del flujo de la campaña                                                |
| `sent`                      | UInt64     | Total de envíos programados ese día, considerando todos los resultados        |
| `delivered`                 | UInt64     | Envíos que llegaron al teléfono (`delivered_at` definido)                     |
| `responded`                 | UInt64     | Envíos que el usuario respondió (`responded_at` definido)                     |
| `failure`                   | UInt64     | Envíos fallidos (`failed_at` definido — todas las causas de falla combinadas) |
| `in_process`                | UInt64     | Envíos aceptados o en curso, aún sin resultado final de entrega               |
| `failure_rate_limit`        | UInt64     | Fallas: se alcanzó el límite de velocidad de mensajería                       |
| `revoked`                   | UInt64     | Envíos revocados antes de enviarse                                            |
| `invalid_phone`             | UInt64     | Fallas: número de teléfono inválido                                           |
| `missing_parameter`         | UInt64     | Fallas: parámetro de plantilla faltante o inconsistente                       |
| `failure_human_handover`    | UInt64     | Fallas: el contacto estaba en una conversación con un agente                  |
| `deactivated_poll_or_hsm`   | UInt64     | Fallas: flujo o plantilla desactivados                                        |
| `failure_general`           | UInt64     | Fallas: generales/otras                                                       |
| `failure_unable_to_contact` | UInt64     | Fallas: WhatsApp no pudo entregar a ese número                                |
| `optout`                    | UInt64     | Fallas: el destinatario se dio de baja o bloqueó la línea                     |
| `meta_chose_not_deliver`    | UInt64     | Meta decidió no entregar (frequency capping)                                  |
| `to_agents`                 | UInt64     | Conversaciones de este flujo transferidas a agentes ese día                   |
| `delivered_rate_pct`        | Float64    | `delivered / sent` × 100; `NULL` cuando `sent` es 0                           |
| `response_rate_pct`         | Float64    | `responded / delivered` × 100; `NULL` cuando `delivered` es 0                 |
| `synced_at`                 | DateTime64 | Cuándo se escribió/corrigió por última vez esta fila                          |

<Note>
  Las filas de días recientes se recalculan continuamente a medida que los envíos avanzan — la fila de hoy seguirá cambiando hasta que los envíos subyacentes se consoliden (dentro de 48 horas). Para desgloses personalizados no cubiertos aquí, consulta `fact_campaign_sends` directamente.
</Note>

<Note>
  Las columnas de desglose de fallas cubren las causas de falla más comunes; `failure` es el total autoritativo y puede ser ligeramente mayor que la suma de las columnas de desglose cuando un envío falló por una razón menos común. El detalle completo siempre está disponible por envío en `fact_campaign_sends.status`.
</Note>

## Consultas de ejemplo

### Últimos 30 días de una campaña

```sql theme={null}
SELECT day, sent, delivered, responded, delivered_rate_pct, response_rate_pct
FROM fact_campaign_daily
WHERE poll_id = {your_poll_id}
  AND day >= today() - 30
ORDER BY day
```

### Desglose de fallas de todas las campañas este mes

```sql theme={null}
SELECT
    sum(invalid_phone)             AS invalid_phone,
    sum(failure_rate_limit)        AS rate_limit,
    sum(missing_parameter)         AS missing_parameter,
    sum(failure_unable_to_contact) AS unable_to_contact,
    sum(meta_chose_not_deliver)    AS meta_frequency_capping,
    sum(failure_general)           AS general
FROM fact_campaign_daily
WHERE day >= toStartOfMonth(today())
```
