Cal.com, Acuity y otras agendas
Cal.com se conecta directo y firmado. Acuity, Zcal, HubSpot Meetings, las citas de Google Calendar o tu CRM entran por una dirección genérica con tu clave, desde Zapier, Make o tu propio código.
No hace falta que tu agenda sea Calendly. Cal.com habla con alloop directamente; cualquier otra herramienta que sepa avisar a una dirección web (todas lo hacen, al menos a través de Zapier o Make) entra por la dirección genérica de tu cuenta.
Cal.com
-
En Cal.com, Settings → Developer → Webhooks: nueva suscripción a
https://track.alloop.ch/webhooks/calcom/<tu-cliente>con los eventos
BOOKING_CREATED,BOOKING_RESCHEDULED,BOOKING_CANCELLEDyBOOKING_NO_SHOW_UPDATED. -
Pon un secreto en la suscripción y pásanoslo. Cal.com firma cada aviso con él y alloop lo comprueba.
-
Si tu formulario de reserva pide teléfono, alloop lo lee (cualquier campo cuyo nombre contenga «phone», «tel» o «whatsapp»).
alloop lee el invitado (nunca el organizador), la hora, el título del evento, la sala de Zoom si
la reserva la crea y las marcas utm_* si las pasas en los metadatos.
Cualquier otra herramienta (Zapier, Make o tu CRM)
Tu cuenta tiene una dirección genérica que acepta reservas, cancelaciones, asistencias, resultados y transcripciones:
POST https://track.alloop.ch/webhooks/meetings/<tu-cliente>
X-Alloop-Token: <tu clave>
Content-Type: application/jsonLa clave te la damos nosotros (es distinta para cada cliente y solo vale para esto).
{
"action": "booked",
"external_id": "id-de-la-cita-en-tu-herramienta",
"email": "maria@ejemplo.com",
"phone": "+41 79 123 45 67",
"name": "María",
"scheduled_at": "2026-10-20T15:00:00Z",
"provider": "acuity",
"event_name": "Diagnóstico 30 min",
"host": "laura@tu-academia.com",
"join_url": "https://zoom.us/j/91234567890",
"utm_source": "meta",
"utm_campaign": "reto-octubre"
}action | Qué hace | Campos |
|---|---|---|
booked | Registra la reserva (si external_id se repite, no duplica) | email o phone, scheduled_at; opcionales name, provider, event_name, host, join_url o conference_id, page_url, utm_* |
cancelled | La persona canceló | external_id (y reason si quieres) |
rescheduled | Cambió la hora | external_id, scheduled_at |
held | La persona se presentó | external_id o email, at, duration_s |
outcome | El resultado | external_id o meeting_id, outcome (qualified, unqualified, no_show, cancelled, won), opcionales qualification, value, currency |
transcript | La transcripción, si ya la tiene otra herramienta | external_id o meeting_id, transcript (texto «Nombre: frase» por líneas, un VTT o una lista {speaker, start, end, text}), lang |
Con Zapier o Make: un zap por acción, con «Webhooks → POST» y el JSON de arriba rellenado con los campos de tu herramienta. Para las citas de Google Calendar (appointment schedules) y para HubSpot Meetings, es la misma mecánica: el evento «cita creada» de tu herramienta → POST a esta dirección.
Por API
Lo mismo, con tus credenciales de la API de lectura: POST /api/v1/clients/{client_id}/meetings
crea una reserva, POST …/meetings/{meeting_id}/outcome marca el resultado y
POST …/meetings/{meeting_id}/transcript deja la transcripción. Detalle en la
referencia de la API.
Cómo sabes que funciona
Manda una reserva de prueba desde tu herramienta (o con curl). La respuesta trae
"created": true y un meeting_id; en 📅 Reuniones aparece al momento. Repite el mismo envío:
"created": false y ninguna reunión nueva.
Errores comunes
- 401 token inválido. La cabecera se llama
X-Alloop-Tokeny la clave es la de reuniones, no la de tu panel. - 400 «hace falta el email o el teléfono». Tu zap manda el campo vacío cuando la persona no lo rellena. Pon el teléfono como segunda opción.
- Dos reuniones por una reserva. Tu herramienta no manda
external_idy los dos envíos llevaban horas distintas. Mándalo siempre; cualquier id estable de tu herramienta sirve.
Siguiente paso
Zoom para la asistencia y la transcripción, y el resultado de la reunión.
Calendly
Que cada reserva, cancelación y «no se presentó» de Calendly entre en alloop sola, firmada, en el momento. Y qué hacer si tu plan de Calendly no tiene webhooks.
Zoom
Quién entró en la reunión y cuánto se quedó, y la transcripción de cada reunión de venta sin ningún bot dentro de la llamada. Zoom graba en la nube; alloop transcribe en Europa, por persona, y borra el audio.