Skip to content
automation recipe

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.

Ops leadsAutomation engineersEngineering managers

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

  1. 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.

  2. 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.

  3. 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."

  4. 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.

  5. 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.

dailybotAPP

Run the nightly cleanup job?

Run cleanup

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."}}]}'

Ready to transform how your team works?

Join thousands of teams that use Dailybot to save time, boost engagement, and make better decisions.