Acciones de Calendario
Automatiza la creacion de eventos, agendamiento de entrevistas e integracion con calendarios externos.
Tipos de Acciones
CALENDARIO
| EVENTOS | ENTREVISTAS | INTEGRACIONES |
|---|---|---|
| CREATE_EVENT | SCHEDULE | SYNC_GOOGLE |
| UPDATE_EVENT | RESCHEDULE | SYNC_MICROSOFT |
| CANCEL_EVENT | CONFIRM | CREATE_ZOOM |
| SEND_INVITE | SEND_REMINDER | CREATE_TEAMS |
| COLLECT_AVAIL |
CREATE_EVENT
Descripcion
Crea un evento en el calendario de la plataforma.
Configuracion:
- title: Titulo del evento
- description: Descripcion
- startTime: Fecha/hora inicio
- endTime: Fecha/hora fin
- location: Ubicacion (fisica o virtual)
- attendees: Lista de asistentes
- calendarType: Tipo de calendario a sincronizar
- reminders: Recordatorios a enviar
Ejemplo de Configuracion
{
"actionType": "CREATE_EVENT",
"order": 2,
"configuration": {
"title": "Entrevista: {{postulant.name}} - {{job.title}}",
"description": "Entrevista inicial para posicion de {{job.title}}\n\nCandidato: {{postulant.name}}\nEmail: {{postulant.email}}\nCV: {{postulant.cvUrl}}",
"startTime": "{{availableSlot.start}}",
"duration": 60, // minutos
"location": {
"type": "virtual",
"createZoom": true
},
"attendees": [
{
"email": "{{postulant.email}}",
"name": "{{postulant.name}}",
"type": "candidate"
},
{
"email": "{{interviewer.email}}",
"name": "{{interviewer.name}}",
"type": "interviewer"
}
],
"calendarSync": {
"google": true,
"microsoft": true
},
"reminders": [
{ "type": "email", "minutes": 1440 }, // 24 horas
{ "type": "email", "minutes": 60 }, // 1 hora
{ "type": "notification", "minutes": 15 }
]
}
}
Interfaz de Configuracion
Configurar: Crear Evento
| Campo | Valor |
|---|---|
| Titulo* | Entrevista: {{postulant.name}} |
| Fecha/Hora inicio* | {{availableSlot.start}} |
| Duracion* | 60 minutos |
Ubicacion:
- ( ) Presencial: Sala de juntas
- (*) Virtual
- Crear reunion Zoom
- Crear reunion Teams
Asistentes:
- {{postulant.email}} (candidato)
- {{interviewer.email}} (entrevistador)
- [+ Agregar asistente]
Sincronizar con:
- Google Calendar
- Microsoft Calendar
Recordatorios:
- Email 24 horas antes
- Email 1 hora antes
- Notificacion 15 minutos antes
SCHEDULE_INTERVIEW
Descripcion
Accion especializada para agendar entrevistas.
Modos:
- manual: Especificar fecha/hora exacta
- next_available: Siguiente slot disponible
- suggest: Sugerir opciones al candidato
- collect: Recolectar disponibilidad
Incluye automaticamente:
- Creacion de evento
- Notificaciones a todos
- Link de videoconferencia
- Recordatorios configurados
- Tracking de confirmaciones
Ejemplo de Configuracion
{
"actionType": "SCHEDULE_INTERVIEW",
"order": 3,
"configuration": {
"type": "technical",
"candidateId": "{{postulant.id}}",
"applicationId": "{{application.id}}",
"interviewers": [
"{{job.hiringManager}}",
"{{job.technicalLead}}"
],
"scheduling": {
"mode": "next_available",
"duration": 60,
"bufferBefore": 15,
"bufferAfter": 15,
"preferredTimes": {
"start": "09:00",
"end": "18:00"
},
"excludeDays": ["saturday", "sunday"],
"withinDays": 7
},
"meeting": {
"type": "zoom",
"waitingRoom": true,
"recording": true
},
"notifications": {
"confirmationEmail": true,
"reminderEmails": [1440, 60], // minutos antes
"smsReminder": true
}
}
}
Tipos de Entrevista
| Tipo | Descripcion |
|---|---|
| initial | Entrevista inicial/screening |
| technical | Entrevista tecnica |
| behavioral | Entrevista conductual |
| culture_fit | Fit cultural |
| panel | Panel de entrevistadores |
| executive | Entrevista con ejecutivos |
| final | Entrevista final |
| onsite | Entrevista presencial |
COLLECT_AVAILABILITY
Descripcion
Solicita al candidato su disponibilidad.
Flujo:
- Enviar email/WhatsApp con link
- Candidato selecciona horarios disponibles
- Sistema recibe respuesta
- Trigger para agendar
Ejemplo de Configuracion
{
"actionType": "COLLECT_AVAILABILITY",
"order": 2,
"configuration": {
"candidateId": "{{postulant.id}}",
"dateRange": {
"start": "{{now}}",
"end": "{{now}} + 14 days"
},
"timeSlots": {
"duration": 60,
"interval": 30,
"availableHours": {
"start": "09:00",
"end": "18:00"
}
},
"minOptions": 3, // Candidato debe seleccionar al menos 3
"excludeInterviewerBusyTimes": true,
"interviewers": ["{{job.hiringManager}}"],
"sendVia": ["email", "whatsapp"],
"expireIn": "3 days",
"onResponse": {
"autoSchedule": true, // Agendar automaticamente el primero
"notifyRecruiter": true
}
}
}
Interfaz del Candidato
Selecciona tu Disponibilidad
Entrevista: Desarrollador Senior Duracion: 60 minutos
Por favor selecciona al menos 3 opciones:
Lunes 22 Enero
- 09:00 - 10:00
- 10:00 - 11:00
- 11:00 - 12:00
- ...
Martes 23 Enero
- 09:00 - 10:00
- 10:00 - 11:00
- 14:00 - 15:00
- ...
Seleccionados: 3 de minimo 3
[Enviar Disponibilidad]
SEND_INTERVIEW_REMINDER
Descripcion
Envia recordatorio de entrevista programada.
Canales:
- SMS
- Notificacion in-app
- Push notification
Contenido:
- Fecha/hora del evento
- Ubicacion/link de reunion
- Datos del entrevistador
- Instrucciones de preparacion
- Opcion de reagendar
Ejemplo de Configuracion
{
"actionType": "SEND_INTERVIEW_REMINDER",
"order": 1,
"configuration": {
"eventId": "{{event.id}}",
"channels": ["email", "whatsapp"],
"timing": "1 hour before",
"includeDetails": {
"meetingLink": true,
"interviewerInfo": true,
"preparationTips": true,
"rescheduleLink": true
},
"templates": {
"email": "interview_reminder_1h",
"whatsapp": "interview_reminder_short"
}
}
}
CREATE_ZOOM_MEETING
Descripcion
Crea una reunion de Zoom.
Configuracion:
- topic: Titulo de la reunion
- duration: Duracion en minutos
- startTime: Fecha/hora
- password: Contrasena (auto-generada si no se especifica)
- settings: Configuraciones de Zoom
- hostId: Usuario de Zoom host
Ejemplo de Configuracion
{
"actionType": "CREATE_ZOOM_MEETING",
"order": 2,
"configuration": {
"topic": "Entrevista: {{postulant.name}}",
"agenda": "Entrevista tecnica para {{job.title}}",
"startTime": "{{event.startTime}}",
"duration": 60,
"settings": {
"hostVideo": true,
"participantVideo": true,
"joinBeforeHost": false,
"waitingRoom": true,
"muteUponEntry": true,
"autoRecording": "cloud"
},
"outputVariable": "zoomMeeting"
}
}
Resultado
{
"id": 123456789,
"uuid": "abc123...",
"hostEmail": "recruiter@empresa.com",
"topic": "Entrevista: Juan Perez",
"startUrl": "https://zoom.us/s/123...", // Solo para host
"joinUrl": "https://zoom.us/j/123...", // Para invitados
"password": "abc123",
"h323Password": "123456"
}
UPDATE_EVENT
Descripcion
Actualiza un evento existente.
Campos actualizables:
- title
- description
- startTime / endTime
- location
- attendees
- reminders
Ejemplo de Configuracion
{
"actionType": "UPDATE_EVENT",
"order": 3,
"configuration": {
"eventId": "{{event.id}}",
"updates": {
"location": "{{newLocation}}",
"description": "{{event.description}}\n\nNOTA: Ubicacion actualizada"
},
"syncToCalendars": true,
"notifyAttendees": {
"enabled": true,
"message": "Se ha actualizado la ubicacion de la reunion"
}
}
}
CANCEL_EVENT
Descripcion
Cancela un evento y notifica a los asistentes.
Configuracion:
- eventId: ID del evento
- reason: Motivo de cancelacion
- notifyAttendees: Notificar
- offerReschedule: Ofrecer reagendar
- deleteFromCalendars: Eliminar de calendarios externos
Ejemplo de Configuracion
{
"actionType": "CANCEL_EVENT",
"order": 2,
"configuration": {
"eventId": "{{event.id}}",
"reason": "Candidato no disponible en la fecha",
"notifyAttendees": {
"enabled": true,
"template": "event_cancellation",
"includeReason": true
},
"offerReschedule": {
"enabled": true,
"rescheduleUrl": "{{reschedulingLink}}"
},
"deleteFromCalendars": ["google", "microsoft"],
"cancelZoomMeeting": true
}
}
RESCHEDULE_EVENT
Descripcion
Reagenda un evento existente.
Puede ser:
- A fecha especifica
- Siguiente slot disponible
- Solicitar nueva disponibilidad
Ejemplo de Configuracion
{
"actionType": "RESCHEDULE_EVENT",
"order": 3,
"configuration": {
"eventId": "{{event.id}}",
"newTime": {
"mode": "specific",
"startTime": "{{newSlot.start}}"
},
"keepDuration": true,
"updateZoom": true,
"syncCalendars": true,
"notifyAttendees": {
"enabled": true,
"template": "event_rescheduled"
}
}
}
Integracion con Calendarios
Google Calendar
Sincronizacion bidireccional:
- Crear eventos en Google
- Leer eventos de Google
- Actualizar eventos
- Eliminar eventos
- Verificar disponibilidad
Configuracion requerida:
- Usuario debe conectar Google Calendar en perfil
Microsoft Calendar (Outlook)
Sincronizacion bidireccional:
- Crear eventos en Outlook
- Leer eventos de Outlook
- Actualizar eventos
- Eliminar eventos
- Verificar disponibilidad
Configuracion requerida:
- Usuario debe conectar Microsoft Calendar en perfil
Slots de Disponibilidad
Verificar Disponibilidad
// En condicion o accion previa
{
"actionType": "CHECK_AVAILABILITY",
"configuration": {
"users": ["{{interviewer.id}}"],
"dateRange": {
"start": "{{now}}",
"end": "{{now}} + 7 days"
},
"duration": 60,
"calendars": ["google", "microsoft", "internal"],
"outputVariable": "availableSlots"
}
}
Resultado
{
"availableSlots": [
{
"start": "2024-01-22T10:00:00",
"end": "2024-01-22T11:00:00",
"allAvailable": true
},
{
"start": "2024-01-22T14:00:00",
"end": "2024-01-22T15:00:00",
"allAvailable": true
}
],
"busyTimes": [
{
"start": "2024-01-22T09:00:00",
"end": "2024-01-22T10:00:00",
"blockedBy": "interviewer_calendar"
}
]
}
Flujos Comunes
Agendamiento Automatico Completo
Trigger: TEST_COMPLETED (passed = true)
Acciones:
- CHECK_AVAILABILITY - Encontrar slots libres
- CONDITION
- Si hay slots disponibles:
- SCHEDULE_INTERVIEW (next_available)
- CREATE_ZOOM_MEETING
- SEND_EMAIL (confirmacion)
- Si no hay slots:
- COLLECT_AVAILABILITY
- CREATE_TASK (revisar calendario)
- Si hay slots disponibles:
- ADD_NOTE - Registrar agendamiento
Recordatorios Escalonados
Trigger: SCHEDULED (antes de evento)
Configuracion: Ejecutar 24h, 1h, 15min antes
Acciones:
- 24h antes: SEND_EMAIL (preparacion)
- 1h antes: SEND_SMS (recordatorio)
- 15min antes: SEND_WHATSAPP (link de zoom)
Reagendamiento por No-Show
Trigger: EVENT_NO_SHOW (candidato no se presento)
Acciones:
- SEND_EMAIL - "Todo bien? No te vimos en la reunion"
- DELAY (2 hours)
- CONDITION
- Si respondio: WAIT_FOR respuesta
- Si no respondio:
- RESCHEDULE_EVENT (collect availability)
- ADD_NOTE (no-show registrado)
Buenas Practicas
Agendamiento
DO:
- Verificar disponibilidad antes de agendar
- Incluir buffer entre reuniones
- Considerar zonas horarias
- Enviar confirmacion inmediata
- Ofrecer opcion de reagendar
DON'T:
- Agendar sin verificar calendarios
- Reuniones back-to-back sin descanso
- Ignorar preferencias horarias
- Notificaciones excesivas
- Links de reunion publicos
Recordatorios
Esquema recomendado:
- 24h antes: Email con detalles completos
- 1h antes: SMS/WhatsApp corto
- 15min antes: Notificacion in-app
- Al iniciar: Ultimo recordatorio (opcional)
Proximos Pasos
- Acciones de Documentos - Solicitar documentos
- Reclutador Virtual - Bot de agendamiento
- Ejemplos Practicos - Casos de uso