Skip to content
Menu Academia

Criando e automatizando check-ins pela CLI

Crie um check-in do zero, ajuste sua agenda e lembretes, complete-o de forma headless a partir de um script ou agente, e roteie resultados para canais de relatório — contrato completo da CLI.

deep-diveDesenvolvedorOps11 min read

Um check-in que só pode ser completado clicando na UI de chat é um check-in que um agente não consegue conduzir. Cada passo do ciclo de vida — criar um do zero, ajustar sua agenda, respondê-lo, editar uma resposta passada, rotear resultados para um canal — tem um caminho headless via CLI/API, tudo coberto aqui.

Criando um check-in

Um check-in precisa de um nome, pelo menos um participante e pelo menos uma pergunta — pular qualquer um dos dois faz create falhar rapidamente (checkin_requires_participant / questions_required, respectivamente; um TTY interativo pede em vez de falhar).

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

Os usuários são resolvidos por nome, email ou UUID (a busca por email exige permissões de admin/manager). Criar um check-in é aberto a qualquer membro autenticado; configurar, arquivar e editar suas perguntas são operações de admin/manager.

Agendamento

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 Horário de envio
--days Lista separada por vírgula 0-6 0 = domingo; 1,2,3,4,5 = seg–sex
--timezone Nome IANA ex.: America/New_York
--frequency apenas weekly --frequency-advanced monthly/custom para qualquer outra coisa — --frequency monthly falha rapidamente
--frequency-advanced disabled / monthly / custom Use custom com --cron "m h dom mon dow"
--start-on / --end-on YYYY-MM-DD Limites da janela ativa
--participant-timezone / --custom-timezone flag Por participante vs. um único fuso compartilhado
--report-time HH:MM Quando o relatório agregado é publicado

Lembretes

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

--reminders (0–5, 0 = desligado), --reminder-interval (0–60 minutos entre eles), --reminder-condition (smart_frequency / fixed_frequency), --reminder-tone (standard / persuasive, qualquer outra coisa → invalid_reminder_tone).

Autoria de perguntas

Os mesmos quatro tipos e a mesma regra de título de relatório dos formulários — text, multiple_choice (--options "A,B,C"), boolean, numeric — e --short-question/--ai-short-question é obrigatório em 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 uma pergunta de forma que deixá-la em branco bloqueia o envio — combine com perguntas boolean; responder a uma pergunta blocker com "None" é rejeitado porque não é uma string boolean válida (use no / false / 0). A lógica condicional de salto (--jump-if-equals / --jump-to / --logic-file) funciona de forma idêntica aos formulários, incluindo as ações trigger_form e trigger_checkin para encadear em outro check-in ou formulário com base em uma resposta.

Completando de forma headless

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

Combine a resposta com o próprio tipo da pergunta — leia primeiro com dailybot checkin show <followup_uuid> --json se ainda não souber qual é:

question_type Responda com
text Texto livre
boolean yes/no, true/false, ou 1/0
numeric Um número
multiple_choice Um dos próprios choices da pergunta

Uma incompatibilidade retorna 400 sem dizer qual pergunta estava errada — verifique os tipos primeiro para um fluxo com script. Preencha retroativamente ou com data futura usando --response-date YYYY-MM-DD (controlado pelas próprias configurações --allow-past/--allow-future do check-in — previous_responses_are_not_allowed / future_responses_are_not_allowed caso contrário).

Editando e navegando pelo histórico

# 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

O histórico de check-in é de toda a equipe por padrão (diferente dos formulários, que por padrão mostram apenas suas próprias respostas) — um membro sempre vê apenas as próprias respostas, independentemente de --user, que é exclusivo para admin/manager. --user aceita apenas UUID; resolva nomes/emails primeiro com dailybot user list --json.

Roteando resultados para canais de relatório

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

--report-channel é repetível, máximo 3 (too_many_report_channels além disso). Em config ele substitui o conjunto inteiro de canais — liste todo canal que deseja ativo, sempre que o alterar. O relatório agregado é publicado em --report-time, se definido, resumindo as conclusões daquele dia.

Configurações de Smart / IA

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

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

Privacidade

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 é irreversível--no-anonymous em um check-in já anônimo falha com anonymous_irreversible (diferente de formulários, onde o anonimato pode ser alternado livremente em ambas as direções).

Verificação round-trip

Depois de qualquer chamada de autoria, leia a configuração de volta para confirmar que ela foi aplicada:

dailybot checkin show <followup_uuid> --json

Referências cruzadas

Navegue pelo hub de Soluções para o passeio voltado ao produto de automatizar check-ins de ponta a ponta.

FAQ

Qual é o mínimo necessário para criar um check-in?
Um nome, pelo menos um participante (--user ou --team) e pelo menos uma pergunta. Criação não interativa sem participante falha rapidamente com checkin_requires_participant; criação sem perguntas falha com questions_required. Criar um check-in é permitido para qualquer membro autenticado — configurar, arquivar e editar perguntas são operações de admin/manager.
Como completo um check-in de forma headless a partir de um script ou agente?
dailybot checkin complete <followup_uuid> -a 0="answer text" -a 1=8 -a 2=no --yes, onde cada par -a index=response corresponde ao índice 0-based da pergunta e ao tipo de resposta (texto, boolean como yes/no ou true/false, numérico, ou um dos próprios rótulos de uma pergunta multiple_choice).
Como roteio os resultados de um check-in para um canal do Slack ou Teams?
--report-channel <channel-uuid>, repetível até 3 canais. Em checkin config, --report-channel SUBSTITUI o conjunto inteiro de canais, então liste todo canal que deseja ativo cada vez que o definir.
Posso desligar o anonimato depois que um check-in já é anônimo?
Não — --anonymous em um check-in é irreversível; --no-anonymous em um check-in já anônimo falha com anonymous_irreversible. Isso difere de formulários, onde --anonymous / --no-anonymous podem ser alternados livremente em ambas as direções.
Como faço para retroceder ou adiantar a data de uma resposta de check-in?
dailybot checkin complete aceita --response-date YYYY-MM-DD, e edit / reset / history aceitam --date (ou --from/--to). As próprias configurações do check-in controlam isso: previous_responses_are_not_allowed ou future_responses_are_not_allowed se o preenchimento retroativo ou futuro estiver desativado, followup_not_allow_responses_before_trigger_time se for cedo demais.