Skip to content
Menú Academia

Crear y automatizar check-ins desde la CLI

Crea un check-in desde cero, ajusta su horario y recordatorios, complétalo sin intervención humana desde un script o agente, y enruta los resultados a canales de reporte — contrato completo de la CLI.

deep-diveDesarrolladorOps11 min read

Un check-in que solo se puede completar haciendo clic en la UI de chat es un check-in que un agente no puede manejar. Cada paso del ciclo de vida — crear uno desde cero, ajustar su horario, responderlo, editar una respuesta pasada, enrutar resultados a un canal — tiene un camino headless por CLI/API, todo cubierto aquí.

Crear un check-in

Un check-in necesita un nombre, al menos un participante, y al menos una pregunta — sáltate cualquiera de los dos y create falla rápido (checkin_requires_participant / questions_required respectivamente; un TTY interactivo pregunta en lugar de fallar).

dailybot checkin create -n "Daily Standup" \
  --user [email protected] --user "Jane Doe" --team "My Team" \
  --questions-file q.json --json

Los usuarios se resuelven por nombre, email, o UUID (la búsqueda por email necesita permisos de admin/manager). Crear un check-in está abierto a cualquier miembro autenticado; configurar, archivar y editar sus preguntas son operaciones de admin/manager.

Programación

dailybot checkin config <followup_uuid> \
  --time 09:30 --days 1,2,3,4,5 --timezone America/New_York \
  --frequency weekly --report-time 10:00
Flag Valores Notas
--time HH:MM Hora de entrega
--days lista separada por comas, 0-6 0 = domingo; 1,2,3,4,5 = lunes–viernes
--timezone Nombre IANA p. ej. America/New_York
--frequency solo weekly --frequency-advanced monthly/custom para cualquier otra cosa — --frequency monthly falla rápido
--frequency-advanced disabled / monthly / custom Usa custom con --cron "m h dom mon dow"
--start-on / --end-on YYYY-MM-DD Límites de la ventana activa
--participant-timezone / --custom-timezone flag Por participante vs. una sola zona horaria compartida
--report-time HH:MM Cuándo se publica el reporte agregado

Recordatorios

dailybot checkin config <followup_uuid> --reminders 2 --reminder-interval 30 \
  --reminder-condition smart_frequency --reminder-tone persuasive

--reminders (0–5, 0 = apagado), --reminder-interval (0–60 minutos entre ellos), --reminder-condition (smart_frequency / fixed_frequency), --reminder-tone (standard / persuasive, cualquier otra cosa → invalid_reminder_tone).

Autoría de preguntas

Los mismos cuatro tipos y la misma regla de título de reporte que los formularios — text, multiple_choice (--options "A,B,C"), boolean, numeric — y --short-question/--ai-short-question es obligatorio en add:

dailybot checkin questions add <followup_uuid> \
  --type text --question "What did you complete yesterday?" \
  --short-question "Yesterday" --required

dailybot checkin questions add <followup_uuid> \
  --type boolean --question "Any blockers?" --short-question "Blockers" --blocker

--blocker marca una pregunta de modo que dejarla en blanco bloquea el envío — combínalo con preguntas boolean; responder una pregunta blocker con "None" se rechaza porque no es un string boolean válido (usa no / false / 0). La lógica condicional de salto (--jump-if-equals / --jump-to / --logic-file) funciona igual que en los formularios, incluyendo las acciones trigger_form y trigger_checkin para encadenar hacia otro check-in o formulario según una respuesta.

Completar sin intervención humana

dailybot checkin complete <followup_uuid> \
  -a 0="Shipped the auth refactor with full test coverage" \
  -a 1="Starting the payment integration" \
  -a 2=no \
  --yes

Haz coincidir la respuesta con el propio tipo de la pregunta — léelo primero con dailybot checkin show <followup_uuid> --json si aún no lo sabes:

question_type Responder con
text Texto libre
boolean yes/no, true/false, o 1/0
numeric Un número
multiple_choice Una de las propias etiquetas choices de la pregunta

Un desajuste devuelve 400 sin decir qué pregunta estuvo mal — verifica los tipos primero para un flujo scripteado. Retrofecha o adelanta la fecha con --response-date YYYY-MM-DD (condicionado por las propias configuraciones --allow-past/--allow-future del check-in — previous_responses_are_not_allowed / future_responses_are_not_allowed en caso contrario).

Editar y navegar el historial

# Override specific answers on an already-submitted response
dailybot checkin edit <followup_uuid> -a 0="Updated answer" --yes

# Every participant's responses over a range (admin/manager can filter --user)
dailybot checkin history <followup_uuid> --days 30 --user <user_uuid> --json

# Delete your own response for a day
dailybot checkin reset <followup_uuid> --yes

El historial de check-ins es de todo el equipo por defecto (a diferencia de los formularios, que por defecto muestran solo tus propias respuestas) — un miembro siempre ve solo las suyas sin importar --user, que es solo para admin/manager. --user recibe solo un UUID; resuelve nombres/emails primero con dailybot user list --json.

Enrutar resultados a canales de reporte

dailybot checkin config <followup_uuid> \
  --report-channel "$STANDUP_CHANNEL_UUID" --report-channel "$LEADS_CHANNEL_UUID"

--report-channel es repetible, máximo 3 (too_many_report_channels más allá de eso). En config reemplaza el conjunto completo de canales — lista todos los canales que quieres activos, cada vez que lo cambies. El reporte agregado se publica en --report-time si está configurado, resumiendo las respuestas completadas ese día.

Configuración inteligente / IA

dailybot checkin config <followup_uuid> --smart --intelligence --max-clarifying 2

--intelligence requiere --smart; --max-clarifying > 0 requiere --intelligence — ambos aplicados del lado del servidor (intelligence_requires_smart_checkin).

Privacidad

dailybot checkin config <followup_uuid> --privacy managers_and_members

Valores: only_owner, owner_and_members, managers_and_members, managers_and_admins, org_admins, everyone, custom. --anonymous es irreversible--no-anonymous en un check-in ya anónimo falla con anonymous_irreversible (a diferencia de los formularios, donde la anonimidad se alterna libremente en ambas direcciones).

Verificación de ida y vuelta

Después de cualquier llamada de configuración, lee la config de vuelta para confirmar que quedó guardada:

dailybot checkin show <followup_uuid> --json

Referencias cruzadas

Explora el hub de Soluciones para el recorrido orientado a producto de automatizar check-ins de punta a punta.

FAQ

¿Qué es lo mínimo necesario para crear un check-in?
Un nombre, al menos un participante (--user o --team), y al menos una pregunta. Crear sin interacción y sin participante falla rápido con checkin_requires_participant; crear sin preguntas falla con questions_required. Crear un check-in está permitido para cualquier miembro autenticado — configurar, archivar y editar preguntas son operaciones de admin/manager.
¿Cómo completo un check-in sin intervención humana desde un script o agente?
dailybot checkin complete <followup_uuid> -a 0="answer text" -a 1=8 -a 2=no --yes, donde cada par -a index=response coincide con el índice 0-based de la pregunta y su tipo de respuesta (text, boolean como yes/no o true/false, numeric, o una de las propias etiquetas de una pregunta multiple_choice).
¿Cómo enruto los resultados de un check-in a un canal de Slack o Teams?
--report-channel <channel-uuid>, repetible hasta 3 canales. En checkin config, --report-channel REEMPLAZA el conjunto completo de canales, así que lista todos los canales que quieres activos cada vez que lo uses.
¿Puedo apagar la anonimidad una vez que un check-in es anónimo?
No — --anonymous en un check-in es irreversible; --no-anonymous en un check-in ya anónimo falla con anonymous_irreversible. Esto es distinto de los formularios, donde --anonymous / --no-anonymous se puede alternar libremente en ambas direcciones.
¿Cómo retrofecho o adelanto la fecha de una respuesta de check-in?
dailybot checkin complete acepta --response-date YYYY-MM-DD, y edit / reset / history aceptan --date (o --from/--to). La propia configuración del check-in condiciona esto: previous_responses_are_not_allowed o future_responses_are_not_allowed si el backfill o el adelanto de fecha están deshabilitados, followup_not_allow_responses_before_trigger_time si es demasiado temprano.