Acciones de Calendario

Acciones para crear eventos, agendar entrevistas y gestionar reuniones

accionescalendarioeventosentrevistasagendarzoomgooglemicrosoft

Acciones de Calendario

Automatiza la creacion de eventos, agendamiento de entrevistas e integracion con calendarios externos.

Tipos de Acciones

CALENDARIO

EVENTOSENTREVISTASINTEGRACIONES
CREATE_EVENTSCHEDULESYNC_GOOGLE
UPDATE_EVENTRESCHEDULESYNC_MICROSOFT
CANCEL_EVENTCONFIRMCREATE_ZOOM
SEND_INVITESEND_REMINDERCREATE_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

CampoValor
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

TipoDescripcion
initialEntrevista inicial/screening
technicalEntrevista tecnica
behavioralEntrevista conductual
culture_fitFit cultural
panelPanel de entrevistadores
executiveEntrevista con ejecutivos
finalEntrevista final
onsiteEntrevista presencial

COLLECT_AVAILABILITY

Descripcion

Solicita al candidato su disponibilidad.

Flujo:

  1. Enviar email/WhatsApp con link
  2. Candidato selecciona horarios disponibles
  3. Sistema recibe respuesta
  4. 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:

  • Email
  • SMS
  • WhatsApp
  • 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:

  1. CHECK_AVAILABILITY - Encontrar slots libres
  2. 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)
  3. 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:

  1. SEND_EMAIL - "Todo bien? No te vimos en la reunion"
  2. DELAY (2 hours)
  3. 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

¿No encontraste lo que buscabas?

Nuestro equipo de soporte está listo para ayudarte.

Contactar Soporte