Indicadores de la automotora
La exportación de Comisiones para el cierre de mes, en Excel o CSV: una fila por vendedor y negocio con el cálculo de la comisión a la vista, y un resumen de lo que corresponde pagar a cada persona.
Descarga la proyección completa de la API pública: openapi.json.
Leer las cifras del negocio explica este recurso en prosa, con ejemplos ejecutables.
| Método | Ruta | Qué hace |
|---|---|---|
GET | /insights/resultados | What the AI did for the agenda (any vertical) |
GET | /insights/seller-performance/export | Exportar comisiones — the month-end payroll file (Excel or CSV) |
GET /insights/resultados
What the AI did for the agenda (any vertical)
The same facts as GET /clinic/insights/resultados, for any vertical, with the vertical's vocabulary (family: a dealer reads visits and test drives, clientes). Blocks with no data for the vertical come back applies: false (money, confirmation, reminders for a dealer) rather than as zeros. Aggregates only. Requires analytics:read; CLP figures additionally require clinic_money:read. Accepts from / to (bare YYYY-MM-DD, to inclusive; default the 90 days ending today) and location_id.
| Parámetro | En | Tipo | Obligatorio | Restricciones |
|---|---|---|---|---|
from | query | string | no | patrón ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$ |
to | query | string | no | patrón ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$ |
location_id | query | uuid | no |
curl https://api.vitrinadev.com/api/v1/insights/resultados \
-H "Authorization: Bearer $VITRINA_KEY"Ejemplo de respuesta (200)
{
"data": {
"from": "2026-07-01",
"to": "2026-09-28",
"timezone": "America/Santiago",
"location_id": null,
"family": "clinic",
"previous_period": {
"from": "2026-04-02",
"to": "2026-06-30"
},
"bookings": {
"ai": 286,
"agenda_total": 2011,
"share_pct": 14.2,
"previous": {
"ai": 240,
"agenda_total": 1950,
"share_pct": 12.3
},
"rule": "Citas del período (por la fecha de la cita) que agendó el asistente de Vitrina en una conversación, ÷ todas las citas del período."
},
"money": {
"applies": true,
"withheld": false,
"booked_clp": 11400000,
"booked_priced": 271,
"booked_unpriced": 15,
"agenda_clp": 96000000,
"clp_share_pct": 11.9,
"paid_clp": 7250000,
"paid_patients": 164,
"unlinked": 4,
"regime": "mirror",
"previous": {
"booked_clp": 9800000,
"paid_clp": 6100000
},
"rule_booked": "Valor de las citas que agendó Vitrina: el precio de sus prestaciones, o el del catálogo. Es lo agendado, no lo cobrado.",
"rule_paid": "Pagos recibidos en el período por los pacientes que Vitrina agendó, desde el día en que los agendó."
},
"out_of_hours": {
"configured": true,
"count": 111,
"pct": 38.8,
"previous_pct": 36.1,
"heatmap": [
{
"weekday": 1,
"hour": 21,
"count": 9
},
{
"weekday": 6,
"hour": 11,
"count": 14
}
],
"rule": "Citas que Vitrina agendó mientras tu negocio estaba cerrado, según tu horario de atención (incluye feriados)."
},
"autonomy": {
"no_human": 158,
"pct": 56.6,
"measured": 279,
"unknown": 7,
"previous_pct": 52,
"rule": "Citas de Vitrina en las que nadie de tu equipo escribió en la conversación antes de agendar."
},
"time_to_book": {
"median_seconds": 734,
"p95_seconds": 80100,
"p95_phrase": "5 de cada 100 personas tardan más de 22 h 15 min en quedar agendadas.",
"measured": 279,
"unknown": 7,
"previous_median_seconds": 910,
"rule": "Tiempo desde el primer mensaje del paciente hasta que su cita quedó agendada (la mediana)."
},
"hours_returned": {
"minutes_per_booking": 10,
"hours": 47.7,
"rule": "Cada cita que agenda Vitrina ahorra 10 minutos de responder y agendar a mano."
},
"recovery": {
"window_days": 30,
"known_attendance": 1063,
"unknown_attendance": 21,
"no_show_pct": 10.2,
"no_show": {
"count": 108,
"recovered": 37,
"recovered_via_vitrina": 17,
"recovered_pct": 34.6,
"via_vitrina_pct": 15.9,
"pending": 12,
"unlinked": 1
},
"cancelled": {
"count": 240,
"recovered": 26,
"recovered_via_vitrina": 11,
"recovered_pct": 10.8,
"via_vitrina_pct": 4.6,
"pending": 18,
"unlinked": 0
},
"rule_no_show": "Citas pasadas marcadas como «no asistió» ÷ citas con asistencia conocida (asistió + no asistió).",
"rule_recovered": "Una cita perdida se recupera cuando el mismo paciente agenda otra dentro de 30 días."
},
"confirmation": {
"applies": true,
"confirmed_attendance_pct": 93.1,
"unconfirmed_attendance_pct": 78.4,
"confirmed_closed": 610,
"unconfirmed_closed": 212,
"rule": "Asistencia de las citas cuyo paciente confirmó el recordatorio, frente a las que nunca respondieron."
},
"ads": {
"state": "active",
"spend_clp": 1648000,
"booked": 58,
"attended": 41,
"paid": 22,
"cost_per_booked": 28414,
"cost_per_attended": 40195,
"cost_per_paid": 74909,
"rule": "Inversión en anuncios del período ÷ citas agendadas, asistidas y pacientes de anuncios que pagaron, según Vitrina Ads para las mismas fechas."
},
"reminders": {
"applies": true,
"sent": 721,
"failed": 120,
"failed_pct": 14.3,
"by_cause": [
{
"cause": "no_whatsapp",
"count": 61
},
{
"cause": "no_phone",
"count": 38
},
{
"cause": "meta_payment_block",
"count": 21
}
],
"rule": "Recordatorios de citas del período que no salieron, agrupados por la causa que registró el envío."
},
"truncated": false
}
}Responde: 200 · 400 · 401 · 403 · 404 · 409 · 429
GET /insights/seller-performance/export
Exportar comisiones — the month-end payroll file (Excel or CSV)
The same figures as the report above, rendered as an .xlsx workbook (default) or, with ?format=csv, a ;-separated UTF-8 CSV of the ledger, on the same export rail as GET /vehicles/export: sheet "Comisiones" is one row per seller per deal with the commission arithmetic visible (base × «Tasa %» → comisión; rates are percentages, never basis points; dates are dd-mm-aaaa hh:mm on the America/Santiago clock), sheet "Resumen" is what to pay each person. Same ?window= parameter and the same dealership_economics:read gate as the report — a file must not be pullable for a period or by a principal the screen refuses. Content-Disposition carries the generated filename (comisiones-<periodo>-<YYYY-MM-DD>.xlsx). Audited.
| Parámetro | En | Tipo | Obligatorio | Restricciones |
|---|---|---|---|---|
window | query | 24h \ | 7d \ | 30d \ |
month | query | string | no | patrón ^\d{4}-(0[1-9]|1[0-2])$ |
year | query | string | no | patrón ^\d{4}$ |
from | query | string | no | |
to | query | string | no | |
format | query | xlsx \ | csv | no |
curl https://api.vitrinadev.com/api/v1/insights/seller-performance/export \
-H "Authorization: Bearer $VITRINA_KEY"Responde: 200 · 400 · 401 · 403 · 404 · 409 · 429
Vistas del inbox
Filtros guardados de la bandeja, del equipo o personales, por atributos de la conversación; una vista del equipo puede sacar sus conversaciones de Esperando respuesta.
Posts de Instagram
Prepara el post de Instagram de un vehículo (pie de foto escrito con el estilo de la automotora y las primeras fotos) y apruébalo para publicarlo o programarlo. Nada se publica sin la aprobación.