El panel de salud de entrega del Intake Bot ahora dice por qué un caso no tiene fuente de tráfico, avisa cuando un envío se queda pendiente o un píxel cargado no tiene su ID de evento compartido, y marca las filas de Google Analytics Measurement Protocol como publicadas, no como aceptadas. Un 2xx no significa que las credenciales o el payload fueran válidos. Una conversión que agota sus reintentos también manda una alerta de error.
Los Intake Bots pueden subir casos completados a Google Ads como conversiones de clic offline, con el ID de clic capturado y datos de usuario con hash. GA4 Measurement Protocol sigue disponible para eventos de analytics. Los dos no se disparan para la misma acción de conversión.
En Business y Enterprise, el analytics del Intake Bot agrupa envíos por fuente de último toque, campaña e id de campaña, con volumen y tasa de término. Una vista del espacio suma los mismos campos en todos los Intake Bots, con conteos de reuniones desde eventos del ciclo y una razón nombrada para cada caso sin atribución. No hay columna de valor, CPA ni ROAS. El producto no guarda el gasto en anuncios.
La API pública de envíos devuelve los mismos campos de atribución que muestra la pestaña en la app. Pro en adelante para la API y para la subida a Google. Business y Enterprise para las tablas de analytics.
The Intake Bot delivery health panel now names why cases have no traffic source, warns when a send job is stuck pending or a loaded pixel is missing its shared event ID, and labels Google Analytics Measurement Protocol rows as posted rather than accepted (a 2xx does not mean the credentials or payload were valid). A conversion that exhausts its QStash retries also sends an error alert.
Intake Bots can upload completed cases to Google Ads as offline click conversions using the captured gclid (or gbraid / wbraid) and hashed user data. GA4 Measurement Protocol stays available for analytics events. The two never fire for the same conversion action. Delivery health treats a Google Ads accept as verified and no longer labels Google as accepted-unverified.
The Intake Bot Analytics tab now groups submissions by last-touch utm_source, utm_campaign, and utm_id, with volume and completion rate per source. Lower-volume sources roll into Other, while cases with no UTM (including WhatsApp and API) remain Unattributed, so the table always adds up.
GET submission list and detail on the v1 API now return marketing attribution: a nested attribution object (UTMs, click IDs, pixel cookies) plus referrer, landing_page, embed_type, geo, and channel. The same fields the in-app Attribution tab shows.
A workspace Analytics page now rolls last-touch utm_source, utm_campaign, and utm_id up across every Intake Bot, with meeting counts from lifecycle events and a named reason for every unattributed case (WhatsApp, API, capture off, blocked pixel, or direct/organic). There is no value, CPA, or ROAS column: the product does not hold ad spend, and no purchase emitter exists yet.