Referencia de esquema de Query Studio
Referencia completa de todas las tablas consultables disponibles en Zenovay Query Studio. Utilice esta guía para explorar el esquema de la base de datos, comprender los tipos de columna y escribir consultas SQL precisas.
Todas las consultas deben incluir WHERE website_id = 'your-website-id' para limitar los resultados a su sitio web. Las consultas sin este filtro serán rechazadas.
Query Studio aplica un máximo de 1.000 filas por consulta y un tiempo de espera de 10 segundos. Solo se permiten declaraciones SELECT — todas las operaciones de escritura (INSERT, UPDATE, DELETE, DROP, etc.) están bloqueadas.
Análisis principal
visitors
Registros de visitantes individuales con geolocalización, información del dispositivo, parámetros de seguimiento UTM y puntuaciones de participación de comportamiento. Esta es la tabla principal para análisis granular a nivel de visitante.
| Columna | Tipo | Descripción |
|---|---|---|
id | uuid | Identificador único del registro de visitante |
website_id | uuid | Sitio web al que pertenece este visitante |
visitor_id | text | Identificador de visitante anonimizado (hasheado) |
page_url | text | URL completa de la página visitada |
landing_page | text | Primera página en la que aterrizó el visitante |
referrer | text | URL de referencia que trajo al visitante |
country_code | varchar | Código de país ISO 3166-1 alfa-2 (por ejemplo, US, GB) |
country_name | varchar | Nombre completo del país (por ejemplo, United States) |
city | varchar | Nombre de la ciudad desde geolocalización IP |
device_type | text | Categoría de dispositivo: desktop, mobile o tablet |
browser | varchar | Nombre del navegador (por ejemplo, Chrome, Firefox, Safari) |
os | varchar | Sistema operativo (por ejemplo, Windows, macOS, iOS) |
utm_source | varchar | Parámetro de origen UTM (por ejemplo, google, newsletter) |
utm_medium | varchar | Parámetro de medio UTM (por ejemplo, cpc, email, organic) |
utm_campaign | varchar | Nombre de campaña UTM |
channel | varchar | Canal de marketing atribuido (por ejemplo, Organic Search, Direct, Social) |
had_interaction | boolean | Si el visitante interactuó con la página (clics, desplazamientos, etc.) |
is_returning_visitor | boolean | true si el visitante ha sido visto antes |
time_on_page | integer | Tiempo pasado en la página en segundos |
scroll_depth_percentage | integer | Profundidad de desplazamiento máxima alcanzada (0-100) |
value_score | integer | Puntuación de participación calculada (0-100) basada en el comportamiento |
conversion_event | varchar | Nombre del evento de conversión desencadenado, si lo hay |
conversion_value | numeric | Valor monetario asociado con la conversión |
visited_at | timestamptz | Marca de tiempo de cuando ocurrió la visita |
analytics_daily
Estadísticas diarias preagreadas para consultas rápidas de panel. Utilice esta tabla en lugar de visitors cuando necesite resúmenes diarios — es significativamente más rápida para informes de rango de fechas.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
date | date | La fecha del calendario para este agregado |
visitors | integer | Número total de visitantes del día |
page_views | integer | Número total de visualizaciones de página del día |
unique_visitors | integer | Recuento de visitantes únicos |
sessions | integer | Número de sesiones distintas |
avg_session_duration | integer | Duración promedio de la sesión en segundos |
bounce_rate | numeric | Tasa de rebote como decimal (por ejemplo, 0.45 = 45%) |
top_countries | jsonb | Principales países por número de visitantes |
top_devices | jsonb | Desglose del tipo de dispositivo |
top_browsers | jsonb | Desglose de uso del navegador |
top_referrers | jsonb | Principales fuentes de referencia |
top_pages | jsonb | Páginas más visitadas |
Las columnas JSONB como top_countries se pueden consultar usando los operadores -> (devuelve JSON) y ->> (devuelve texto). Ejemplo: top_countries->0->>'country' devuelve el nombre del país superior.
page_views
Eventos de visualización de página individual con métricas de rendimiento y participación. Cada fila representa una carga de página única por parte de un visitante dentro de una sesión.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
visitor_id | uuid | Referencia al visitante |
session_id | uuid | Sesión a la que pertenece esta visualización de página |
page_url | text | URL completa de la página |
page_title | text | Título HTML de la página |
page_path | text | Ruta de URL sin dominio (por ejemplo, /pricing) |
load_time_ms | integer | Tiempo de carga de página en milisegundos |
time_on_page_seconds | integer | Tiempo pasado en esta página en segundos |
scroll_depth_percentage | integer | Profundidad de desplazamiento máxima alcanzada (0-100) |
clicks_count | integer | Número de clics en esta página |
had_interaction | boolean | Si ocurrió una interacción significativa |
timestamp | timestamptz | Cuándo ocurrió la visualización de página |
live_visitors
Visitantes actualmente activos en su sitio web. Esta tabla se actualiza en tiempo real y refleja a los visitantes que han estado activos en los últimos minutos.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
visitor_id | uuid | Identificador del visitante |
current_page_url | text | Página que el visitante está viendo actualmente |
landing_page | text | Primera página de la sesión actual |
pages_viewed | integer | Número de páginas vistas en esta sesión |
device_type | varchar | Categoría de dispositivo |
browser | varchar | Nombre del navegador |
country_name | varchar | País del visitante |
channel | varchar | Atribución del canal de tráfico |
is_active | boolean | Si el visitante sigue navegando activamente |
is_new_visitor | boolean | true si esta es la primera sesión del visitante |
Ingresos y pagos
payments
Transacciones de pago sincronizadas de proveedores de pago conectados (Stripe, LemonSqueezy, Polar). Cada fila representa una única transacción.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
amount | numeric | Monto de transacción en la moneda especificada |
currency | varchar | Código de moneda ISO 4217 (por ejemplo, USD, EUR) |
status | varchar | Estado del pago: succeeded, pending, failed, refunded |
provider | varchar | Proveedor de pago: stripe, lemonsqueezy, polar |
marketing_channel | varchar | Canal de marketing atribuido a este pago |
utm_source | varchar | Origen UTM vinculado a esta transacción |
customer_email | varchar | Dirección de correo electrónico del cliente |
customer_name | varchar | Nombre para mostrar del cliente |
created_at | timestamptz | Cuándo se creó el pago |
revenue_attribution
Ingresos atribuidos a canales de marketing durante períodos definidos. Utilice esta tabla para análisis de ROI del canal e informes de desempeño de marketing.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
period_start | date | Fecha de inicio del período de atribución |
period_end | date | Fecha de fin del período de atribución |
marketing_channel | varchar | Nombre del canal de marketing |
utm_source | varchar | Origen UTM para esta atribución |
total_revenue | numeric | Ingresos totales atribuidos a este canal |
transaction_count | integer | Número de transacciones |
unique_customers | integer | Recuento de clientes pagadores únicos |
conversion_rate | numeric | Tasa de conversión como decimal |
identified_users
Usuarios conocidos que han sido identificados a través de la API de identificación de visitantes. Incluye estado de suscripción y datos de ingresos de por vida.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
email | varchar | Dirección de correo electrónico del usuario |
name | varchar | Nombre para mostrar del usuario |
total_revenue | numeric | Ingresos de por vida de este usuario |
subscription_status | varchar | Estado actual: active, canceled, past_due, trialing |
subscription_plan | varchar | Nombre del plan (por ejemplo, Pro, Enterprise) |
total_sessions | integer | Número total de sesiones |
first_seen_at | timestamptz | Cuándo se identificó por primera vez al usuario |
last_seen_at | timestamptz | Marca de tiempo de la actividad más reciente |
Objetivos y embudos
custom_goals
Definiciones de objetivos configuradas en el panel. Cada objetivo rastrea una acción de usuario específica, como visitar una URL o desencadenar un evento personalizado.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
name | varchar | Nombre de objetivo legible por humanos |
goal_type | varchar | Tipo de objetivo: url, event, pageview |
url_pattern | text | Patrón de URL a coincidir (para objetivos de tipo URL) |
event_name | varchar | Nombre del evento a coincidir (para objetivos de tipo evento) |
is_active | boolean | Si el objetivo está actualmente activo |
default_value | numeric | Valor monetario predeterminado por finalización |
goal_completions
Eventos de conversión de objetivo individual. Cada fila representa una única instancia de un visitante completando un objetivo definido.
| Columna | Tipo | Descripción |
|---|---|---|
goal_id | uuid | Referencia a la definición del objetivo |
website_id | uuid | Identificador del sitio web |
visitor_id | text | Visitante que completó el objetivo |
completion_value | numeric | Valor de esta finalización específica |
page_url | text | Página donde ocurrió la finalización |
utm_source | varchar | Origen UTM en el momento de la finalización |
device_type | varchar | Dispositivo utilizado |
country_name | varchar | País del visitante |
completed_at | timestamptz | Cuándo se completó el objetivo |
funnels
Definiciones de embudos para rastreo de conversión de múltiples pasos.
| Columna | Tipo | Descripción |
|---|---|---|
id | uuid | Identificador de embudo único |
website_id | uuid | Identificador del sitio web |
name | varchar | Nombre del embudo |
funnel_steps
Pasos individuales dentro de un embudo, ordenados secuencialmente. Únase con funnels en funnel_id para obtener la configuración completa del embudo.
| Columna | Tipo | Descripción |
|---|---|---|
funnel_id | uuid | Referencia al embudo padre |
step_order | integer | Posición en la secuencia de embudo (basada en 1) |
step_name | varchar | Nombre para mostrar de este paso |
step_type | varchar | Tipo de paso: url, event |
url_pattern | text | Patrón de URL a coincidir (para pasos de URL) |
event_name | varchar | Nombre del evento a coincidir (para pasos de evento) |
Errores y rendimiento
error_groups
Tipos de error agrupados con recuentos de ocurrencias y gravedad. Los errores se desduplican automáticamente y se agrupan por tipo y mensaje.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
error_type | varchar | Categoría de error: javascript, network, unhandled_rejection |
error_message | text | La cadena de mensaje de error |
occurrence_count | integer | Número total de veces que ha ocurrido este error |
user_count | integer | Número de usuarios únicos afectados |
severity | varchar | Nivel de gravedad: low, medium, high, critical |
status | varchar | Estado de clasificación: open, resolved, ignored |
first_seen | timestamptz | Cuándo se registró por primera vez este error |
last_seen | timestamptz | Ocurrencia más reciente |
error_occurrences
Eventos de error individual con contexto completo, incluidos seguimientos de pila y detalles del entorno.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
error_type | varchar | Categoría de error |
error_message | text | El mensaje de error |
stacktrace | jsonb | Seguimiento de pila completo como JSON estructurado |
page_url | text | Página donde ocurrió el error |
browser | varchar | Nombre y versión del navegador |
os | varchar | Sistema operativo |
severity | varchar | Nivel de gravedad |
timestamp | timestamptz | Cuándo ocurrió el error |
performance_metrics
Medidas de Core Web Vitals (LCP, CLS, INP) recopiladas de la monitorización de usuarios reales. Cada fila es una única medición de una carga de página.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
page_url | text | Página donde se recopilaron las métricas |
lcp_value | numeric | Largest Contentful Paint en milisegundos |
lcp_rating | varchar | Calificación LCP: good, needs-improvement, poor |
cls_value | numeric | Puntuación Cumulative Layout Shift |
cls_rating | varchar | Calificación CLS: good, needs-improvement, poor |
inp_value | integer | Interaction to Next Paint en milisegundos |
inp_rating | varchar | Calificación INP: good, needs-improvement, poor |
device_type | varchar | Tipo de dispositivo utilizado para esta medición |
browser | varchar | Nombre del navegador |
recorded_at | timestamptz | Cuándo se registró la medición |
Monitoreo de disponibilidad
uptime_checks
Resultados de verificación de disponibilidad individuales del sistema de monitoreo. Cada fila representa un único ping de verificación de estado a su sitio web.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
checked_at | timestamptz | Cuándo se realizó la verificación |
is_up | boolean | Si el sitio respondió exitosamente |
status_code | integer | Código de estado de respuesta HTTP |
response_time_ms | integer | Tiempo de respuesta en milisegundos |
error_message | text | Mensaje de error si la verificación falló |
region | varchar | Región de monitoreo (por ejemplo, us-east, eu-west, ap-south) |
uptime_daily
Agregados de disponibilidad diarios. Utilice esto para informes de SLA y análisis de tendencias en lugar de consultar verificaciones individuales.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
date | date | Fecha del calendario |
uptime_percentage | numeric | Disponibilidad en porcentaje (por ejemplo, 99.95) |
avg_response_time_ms | integer | Tiempo de respuesta promedio en milisegundos |
incidents_count | integer | Número de incidentes de tiempo de inactividad |
checks_total | integer | Número total de verificaciones realizadas |
Comportamiento del usuario
heatmap_data
Datos de mapa de calor de clic y desplazamiento agregados en una superposición de cuadrícula. Cada fila representa una celda de cuadrícula con recuentos de interacción acumulados.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
page_path | varchar | Ruta de página para este mapa de calor |
heatmap_type | varchar | Tipo: click, scroll, move |
grid_x | smallint | Coordenada de cuadrícula horizontal |
grid_y | smallint | Coordenada de cuadrícula vertical |
hit_count | integer | Número de interacciones en esta celda de cuadrícula |
intensity | numeric | Valor de intensidad normalizado (0,0 a 1,0) |
heatmap_sessions
Resúmenes a nivel de sesión de datos de interacción de mapas de calor por página.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
page_url | text | URL completa de la página |
total_clicks | integer | Número total de clics registrados |
total_movements | integer | Número total de movimientos del ratón registrados |
total_scroll_events | integer | Número total de eventos de desplazamiento registrados |
replay_sessions
Metadatos de grabación de reproducción de sesión. Cada fila representa una sesión de navegación grabada que se puede reproducir en el panel.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
visitor_id | varchar | Visitante que fue grabado |
duration_ms | integer | Duración total de la grabación en milisegundos |
total_events | integer | Número de eventos DOM capturados |
total_size | integer | Tamaño de datos de grabación en bytes |
started_at | timestamptz | Cuándo comenzó la grabación |
frustration_events
Señales de frustración del usuario detectadas, incluidos clics de cólera, clics muertos y clics de error.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
frustration_type | varchar | Tipo: rage_click, dead_click, error_click, thrashed_cursor |
page_url | text | Página donde se detectó la frustración |
timestamp | timestamptz | Cuándo ocurrió el evento |
scroll_depth_stats
Estadísticas de profundidad de desplazamiento agregadas por página, que muestran qué tan lejos se desplazan los visitantes en cada página.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
page_path | varchar | Ruta de página |
depth_percentage | smallint | Cubo de profundidad de desplazamiento (por ejemplo, 25, 50, 75, 100) |
reach_count | integer | Número de visitantes que alcanzaron esta profundidad |
session_history
Resúmenes de sesión completados con métricas de participación y conversión.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
visitor_id | uuid | Identificador del visitante |
total_duration_seconds | integer | Duración total de la sesión en segundos |
pages_viewed | integer | Número de páginas vistas en la sesión |
bounce | boolean | true si el visitante se fue después de una página |
converted | boolean | true si se desencadenó un evento de conversión |
conversion_value | numeric | Valor de conversión total para la sesión |
B2B y empresas
b2b_companies
Empresas identificadas que visitan su sitio web, enriquecidas con datos firmográficos de la resolución IP a empresa.
| Columna | Tipo | Descripción |
|---|---|---|
id | text | Identificador de empresa único |
name | text | Nombre de la empresa |
domain | text | Dominio del sitio web de la empresa |
industry | text | Clasificación de la industria |
employee_count | integer | Número estimado de empleados |
revenue_range | text | Rango de ingresos anuales estimado (por ejemplo, $10M-$50M) |
b2b_company_visits
Agregados de visita a nivel de empresa. Únase con b2b_companies en company_id = id para obtener detalles completos de la empresa.
| Columna | Tipo | Descripción |
|---|---|---|
company_id | text | Referencia a la empresa |
website_id | uuid | Identificador del sitio web |
total_visits | integer | Número total de visitas de esta empresa |
total_page_views | integer | Número total de visualizaciones de página de esta empresa |
engagement_score | numeric | Puntuación de participación calculada (0-100) |
last_visit | timestamptz | Marca de tiempo de la visita más reciente |
Marketing y campañas
campaign_performance
Métricas de rendimiento de campaña UTM agregadas por fecha. Utilice esto para análisis de ROI de marketing y comparación de campañas.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
utm_source | varchar | Parámetro de origen UTM |
utm_campaign | varchar | Nombre de campaña UTM |
visitors | integer | Número de visitantes de esta campaña |
conversions | integer | Número de conversiones atribuidas |
revenue | numeric | Ingresos totales atribuidos |
bounce_rate | numeric | Tasa de rebote como decimal |
date | date | Fecha de las métricas |
gsc_keyword_data
Datos de rendimiento de palabras clave de Google Search Console sincronizados a través de la integración de GSC. Muestra cómo funcionan sus páginas en los resultados de búsqueda de Google.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
query | text | Consulta de búsqueda (palabra clave) |
clicks | integer | Número de clics desde resultados de búsqueda |
impressions | integer | Número de veces mostrado en resultados de búsqueda |
ctr | numeric | Tasa de clics como decimal (por ejemplo, 0.034 = 3,4%) |
position | numeric | Posición promedio en resultados de búsqueda |
date | date | Fecha de los datos de búsqueda |
Eventos personalizados
custom_events
Eventos de seguimiento definidos por el usuario enviados a través de la API de eventos personalizados. Cada fila representa una única ocurrencia de evento con propiedades opcionales y datos de ingresos.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
event_name | varchar | Nombre del evento personalizado (por ejemplo, signup, add_to_cart) |
event_category | varchar | Categoría de evento para agrupar |
visitor_id | uuid | Visitante que desencadenó el evento |
properties | jsonb | Propiedades clave-valor personalizadas adjuntas al evento |
revenue | numeric | Valor de ingresos asociado con este evento |
page_url | text | Página donde se desencadenó el evento |
La columna properties es JSONB. Consulte propiedades específicas usando properties->>'key_name'. Ejemplo: WHERE properties->>'plan' = 'pro'.
events
Eventos a nivel del sistema rastreados automáticamente por el rastreador Zenovay. Incluye vistas de página, clics, envíos de formularios y otros tipos de eventos integrados.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
visitor_id | uuid | Identificador del visitante |
event_type | text | Tipo de evento: pageview, click, form_submit, video_progress, file_upload, scroll, custom |
event_name | text | Nombre de evento específico |
event_value | text | Valor de cadena asociado con el evento |
event_data | jsonb | Datos de evento estructurados adicionales |
timestamp | timestamptz | Cuándo ocurrió el evento |
Otro
chart_notes
Anotaciones de panel adjuntas a fechas específicas. Estos aparecen como marcadores en gráficos de series de tiempo para proporcionar contexto para las tendencias de datos.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
note_date | date | Fecha a la que está adjunta la anotación |
content | text | Contenido de texto de anotación |
show_on_chart | boolean | Si la anotación debe mostrarse en gráficos de panel |
alerts
Reglas de alerta configuradas que desencadenan notificaciones cuando se cumplen las condiciones especificadas.
| Columna | Tipo | Descripción |
|---|---|---|
website_id | uuid | Identificador del sitio web |
alert_type | text | Categoría de alerta: traffic_spike, traffic_drop, error_rate, uptime, goal |
name | text | Nombre de alerta legible por humanos |
conditions | jsonb | Condiciones de desencadenamiento de alerta como JSON estructurado |
status | text | Estado de alerta: active, paused, triggered |
websites
Registros de configuración de sitio web. Cada sitio web rastreado tiene una entrada aquí con su configuración y código de seguimiento.
| Columna | Tipo | Descripción |
|---|---|---|
id | uuid | Identificador del sitio web único (utilizado como website_id en todas partes) |
domain | varchar | Dominio del sitio web (por ejemplo, example.com) |
name | varchar | Nombre para mostrar del sitio web |
is_active | boolean | Si el seguimiento está actualmente activo |
tracking_code | varchar | Código de seguimiento único para el script de inserción |
timezone | varchar | Zona horaria para agregaciones de fechas (por ejemplo, America/New_York) |
Consultas de ejemplo
Análisis principal
SELECT page_url, COUNT(*) as visits, AVG(time_on_page) as avg_time
FROM visitors
WHERE website_id = 'YOUR_WEBSITE_ID'
AND visited_at >= date_trunc('month', now())
GROUP BY page_url
ORDER BY visits DESC
LIMIT 10;SELECT date, visitors, page_views, bounce_rate
FROM analytics_daily
WHERE website_id = 'YOUR_WEBSITE_ID'
AND date >= now() - interval '30 days'
ORDER BY date ASC;Ingresos y pagos
SELECT marketing_channel, SUM(amount) as total_revenue, COUNT(*) as transactions
FROM payments
WHERE website_id = 'YOUR_WEBSITE_ID'
AND status = 'succeeded'
AND created_at >= date_trunc('month', now())
GROUP BY marketing_channel
ORDER BY total_revenue DESC;SELECT email, name, total_revenue, subscription_status, subscription_plan
FROM identified_users
WHERE website_id = 'YOUR_WEBSITE_ID'
ORDER BY total_revenue DESC
LIMIT 20;Objetivos y embudos
SELECT utm_source, COUNT(*) as completions, SUM(completion_value) as total_value
FROM goal_completions
WHERE website_id = 'YOUR_WEBSITE_ID'
AND completed_at >= date_trunc('week', now())
GROUP BY utm_source
ORDER BY completions DESC;Errores y rendimiento
SELECT error_type, error_message, occurrence_count, user_count, severity, last_seen
FROM error_groups
WHERE website_id = 'YOUR_WEBSITE_ID'
AND status = 'open'
ORDER BY occurrence_count DESC
LIMIT 10;SELECT page_url,
ROUND(AVG(lcp_value), 0) as avg_lcp_ms,
ROUND(AVG(cls_value), 3) as avg_cls,
ROUND(AVG(inp_value), 0) as avg_inp_ms
FROM performance_metrics
WHERE website_id = 'YOUR_WEBSITE_ID'
AND recorded_at >= now() - interval '7 days'
GROUP BY page_url
ORDER BY avg_lcp_ms DESC
LIMIT 10;Monitoreo de disponibilidad
SELECT date, uptime_percentage, avg_response_time_ms, incidents_count
FROM uptime_daily
WHERE website_id = 'YOUR_WEBSITE_ID'
AND date >= now() - interval '30 days'
ORDER BY date ASC;Comportamiento del usuario
SELECT page_url, frustration_type, COUNT(*) as occurrences
FROM frustration_events
WHERE website_id = 'YOUR_WEBSITE_ID'
AND timestamp >= now() - interval '7 days'
GROUP BY page_url, frustration_type
ORDER BY occurrences DESC
LIMIT 10;SELECT visitor_id, duration_ms / 1000 as duration_seconds, total_events, started_at
FROM replay_sessions
WHERE website_id = 'YOUR_WEBSITE_ID'
AND duration_ms > 120000
ORDER BY started_at DESC
LIMIT 20;B2B y empresas
SELECT c.name, c.industry, c.employee_count, v.total_visits, v.engagement_score, v.last_visit
FROM b2b_company_visits v
JOIN b2b_companies c ON c.id = v.company_id
WHERE v.website_id = 'YOUR_WEBSITE_ID'
ORDER BY v.engagement_score DESC
LIMIT 15;Marketing y campañas
SELECT utm_source, utm_campaign, SUM(visitors) as total_visitors,
SUM(conversions) as total_conversions, SUM(revenue) as total_revenue,
ROUND(AVG(bounce_rate), 3) as avg_bounce_rate
FROM campaign_performance
WHERE website_id = 'YOUR_WEBSITE_ID'
AND date >= now() - interval '30 days'
GROUP BY utm_source, utm_campaign
ORDER BY total_revenue DESC;SELECT query, SUM(clicks) as total_clicks, SUM(impressions) as total_impressions,
ROUND(AVG(ctr), 4) as avg_ctr, ROUND(AVG(position), 1) as avg_position
FROM gsc_keyword_data
WHERE website_id = 'YOUR_WEBSITE_ID'
AND date >= now() - interval '28 days'
GROUP BY query
ORDER BY total_clicks DESC
LIMIT 20;Eventos personalizados
SELECT event_name, event_category, COUNT(*) as occurrences, SUM(revenue) as total_revenue
FROM custom_events
WHERE website_id = 'YOUR_WEBSITE_ID'
AND properties->>'source' IS NOT NULL
GROUP BY event_name, event_category
ORDER BY occurrences DESC
LIMIT 20;Otro
SELECT note_date, content
FROM chart_notes
WHERE website_id = 'YOUR_WEBSITE_ID'
AND note_date >= date_trunc('month', now())
AND show_on_chart = true
ORDER BY note_date ASC;SELECT name, alert_type, status, conditions
FROM alerts
WHERE website_id = 'YOUR_WEBSITE_ID'
AND status = 'active'
ORDER BY name;