Dê a cada solicitação um ciclo de vida real, não só um envio
Crie o formulário, adicione estados de workflow como Draft → Review → Released, anexe um botão de chat que o abre com um clique, e depois envie, atualize e transicione respostas até que estejam prontas — tudo scriptável pelo terminal.
Formulários no Dailybot não são de “preencher uma vez e esquecer.” Dê a um deles um workflow — Draft → Review → Released, ou qualquer sequência de até 20 estados — e cada resposta carrega seu próprio current_state, os movimentos que quem enviou pode fazer a seguir (allowed_transitions) e um histórico completo de quem moveu e quando.
Esta página percorre todo o ciclo: crie o formulário e suas perguntas, configure permissões e um atalho de chat, abra-o com um único clique a partir de uma mensagem, e depois envie, atualize e transicione respostas até que o workflow diga que estão prontas. Construa com a CLI, a API, ou pedindo a um agente que tenha o skill pack do Dailybot instalado.
Construa passo a passo
Crie o formulário e semeie sua primeira pergunta
dailybot form create -n "Nome" precisa de pelo menos uma pergunta no momento da criação — passe --questions-file com um array JSON de perguntas text, multiple_choice, boolean ou numeric, ou adicione uma de cada vez depois com dailybot form questions add. Um formulário sem perguntas é rejeitado com 400 questions_required.
Configure os estados de workflow, as permissões e um comando de chat
dailybot form config <form_uuid> --state "Draft:#9CA3AF" --state "Review:#F59E0B" --state "Released:#10B981" ativa um workflow; --can-change-states restricted junto com --change-states-team define quem pode avançá-lo, e --command abre o formulário pelo chat como @dailybot <comando>.
Abra-o direto de um botão de chat
Anexe callback_form a um botão interativo — na API send-message ou no JSON de --buttons da CLI — e ao clicar o formulário se abre para essa pessoa, sem precisar do comando @dailybot. callback_form recebe o UUID do formulário e é mutuamente exclusivo com os outros quatro tipos de callback.
Preencha, ou continue um rascunho
dailybot form responses <form_uuid> --latest busca uma resposta em andamento antes de começar uma nova. Envie uma nova com dailybot form submit --content '{...}', ou continue com dailybot form update — ambos aceitam --automation e --source para marcar envios via script.
Mova a resposta pelos seus estados
Leia allowed_transitions e can_change_state da resposta antes de movê-la. dailybot form transition <form_uuid> <response_uuid> <to_state> só aceita os movimentos que a audiência do chamador permite — passe a chave do estado ou seu rótulo, a CLI resolve.
Veja o que foi concluído, filtrado como precisar
dailybot form responses --source automation --flow-status pending --search "fornecedor" filtra por origem do envio, status de aprovação e palavra-chave — além do que os canais de relatório do formulário já publicaram conforme as respostas chegavam.
Veja em ação
Uma resposta de formulário simulada avançando pelos seus estados de workflow — nenhum formulário ou mensagem real é enviado.
Nova solicitação de fornecedor pronta para intake
Clique em "Abrir formulário" acima para iniciar a resposta.
Receitas para copiar e colar
curl -sS -X POST 'https://api.dailybot.com/v1/send-message/' \
-H 'X-API-KEY: $DAILYBOT_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"message":"Nova solicitação de fornecedor pronta para recepção","target_channels":["C0123456789"],"buttons":[{"label":"Abrir formulário","button_type":"interactive","value":"open_vendor_form","callback_form":"$VENDOR_FORM_UUID"}]}'
dailybot form create -n "Vendor Request" \
--questions-file ./vendor-questions.json \
--state "Draft:#9CA3AF" --state "Review:#F59E0B" --state "Released:#10B981" \
--can-change-states restricted --change-states-team "Procurement" \
--report-channel $PROCUREMENT_CHANNEL_UUID \
--command vendor-request
RID=$(dailybot form responses $VENDOR_FORM_UUID --latest --json | jq -r '.[0].uuid // empty')
if [ -z "$RID" ]; then
RID=$(dailybot form submit $VENDOR_FORM_UUID \
--content '{"'"$VENDOR_NAME_QID"'":"Acme Supplies"}' --yes --json | jq -r '.uuid')
fi
dailybot form transition $VENDOR_FORM_UUID "$RID" review --yes
dailybot chat send -c C0123456789 -m "Nova solicitação de fornecedor pronta para recepção" \
--buttons '[{"label":"Abrir formulário","button_type":"interactive","value":"open_vendor_form",
"callback_form":"$VENDOR_FORM_UUID"}]'
Crie um formulário Vendor Request com estados Draft, Review e Released, semeie-o
com três perguntas, restrinja as mudanças de estado ao time de Procurement, e
publique um botão em #procurement que o abra diretamente.
Pronto para transformar como sua equipe trabalha?
Junte-se a milhares de equipes que usam o Dailybot para economizar tempo, impulsionar o engajamento e tomar melhores decisões.