Turn a chat button into a workflow trigger
Skip the dashboard: attach a button to any message, and a click fires a Dailybot workflow directly from the channel your team is already in.
A workflow button skips the middle step entirely: no dashboard, no re-typing the same parameters every time — just a click that fires the exact automation your team already built.
The one rule that matters: only workflows with the api_trigger event type are eligible. Everything else here is about finding those workflows, wiring the button, and reading the click correctly — it’s a fire-and-forget trigger, not a synchronous result.
Build it step by step
Find an eligible workflow
Only workflows whose event type is api_trigger ("When triggered via API or button") can be fired from a chat button. List them with dailybot workflow list --filter api_trigger — a client-side filter over the same list, so it never surfaces a workflow a click can't fire.
Attach a workflow-trigger button
Set callback_workflow on an interactive button to the eligible workflow's UUID, or use the --workflow-button "Label=<workflow-uuid>" shorthand on dailybot chat send. Like every other callback type, it's mutually exclusive with callback_url, callback_form, callback_command, and callback_prompt on the same button.
The click fires the same trigger as the API
Clicking the button uses the exact same server-side mechanism as calling the trigger endpoint directly: the run is queued asynchronously and the click carries no run output — treat the confirmation as "queued," not "finished."
Confirm the click landed
Add a response auto-reply to the button so the channel sees confirmation immediately, without anyone checking a workflow run log to know the click registered.
Test-drive the same workflow directly
Away from chat, dailybot workflow trigger <uuid> fires the identical workflow, optionally with --payload — a JSON object up to 8 KiB the workflow reads as {{trigger.body.<key>}}. Useful for testing a workflow before wiring its button into a message.
How it flows
A static diagram — nothing here is clickable or live.
Run the nightly cleanup job?
What the click actually does
HTTP/1.1 202 Accepted
The run is queued asynchronously — the click carries no run output. See the workflow-trigger API reference for the full contract.
Copy-paste recipes
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":"Run the nightly cleanup job?","target_channels":["C0123456789"],"buttons":[{"label":"Run cleanup","button_type":"interactive","value":"run_cleanup","callback_workflow":"$CLEANUP_WORKFLOW_UUID","response":{"message":"Cleanup queued."}}]}'
dailybot chat send -c C0123456789 -m "Run the nightly cleanup job?" \
--workflow-button "Run cleanup=$CLEANUP_WORKFLOW_UUID"
dailybot workflow list --filter api_trigger --json
dailybot workflow trigger $CLEANUP_WORKFLOW_UUID \
--payload '{"scope":"staging"}' --json
Post a message to #ops with a button that triggers the nightly-cleanup
workflow ($CLEANUP_WORKFLOW_UUID) when clicked.
Ready to transform how your team works?
Join thousands of teams that use Dailybot to save time, boost engagement, and make better decisions.