List, inspect, and trigger Dailybot workflows — enumerate the workflows configured for the organization, read one workflow's configuration, and fire API-triggerable workflows on demand. Use when the developer asks "list my workflows", "show workflows", "what's in the release workflow?", "trigger the deploy workflow", or "fire automation X". Creating/editing workflows is done in the Dailybot web app. Plan-gated feature.
Install
npx skillscat add dailybothq/deepworkplan-vim/dailybot-workflow Install via the SkillsCat registry.
Dailybot Workflows
Requires
dailybot-cli >= 3.9.0(the skill-pack baseline). Thedailybot workflow list/get/triggercommand group — including--filter api_triggerand--payload— is available at this floor. Ifdailybot --versionreports below 3.9.0, ask the developer to rundailybot upgrade. See `../SKILL.md` § Required Dailybot CLI version for install commands and
version-check tooling.
You help developers read and trigger the workflows configured for
their organization. Workflows are Dailybot's automation objects (multi-step
sequences that connect check-ins, forms, and chat actions).
- List / Get — enumerate workflows and inspect their configuration.
- Trigger — fire an API-triggerable workflow on demand, optionally with a
JSON payload that the workflow can reference as{{trigger.body.*}}.
Creating / editing workflows is web-app only. There is no CLI path for
creating, editing, enabling, or deleting a workflow. If the developer wants
to change one, point them at the Dailybot web app.
Plan-gated feature. Workflows are available on higher-tier plans. On a
plan without them (and on the FREE plan generally) these operations return403 plan_upgrade_requiredwith anupgrade_url— surface the upgrade path
and stop. See `../shared/list-query-and-errors.md` § 6.
Auth model — API key or login
Workflow commands accept either a Bearer login session (dailybot login)
or an org API key (DAILYBOT_API_KEY). Results are scoped to the acting
identity's permissions (the server resolves the API key's owner). See
`../shared/list-query-and-errors.md` § 6
for the full API-key ↔ Bearer parity and plan-gating rules.
When to Use
List / inspect:
- "list my workflows", "show the org's workflows", "what workflows do we have?"
- "show me the release workflow", "what's configured in workflow X?"
- Another skill needs a workflow's UUID or its configuration for context.
Trigger:
- "trigger the deploy workflow", "fire automation X", "run the onboarding workflow"
- "trigger workflow
<uuid>with this payload" - A chat button with
callback_workflowfires the same path — see
`../chat/SKILL.md` § Workflow trigger buttons.
Do not use this skill to create or change a workflow — that's a web-app
operation. And do not confuse it with form workflow states (thedraft → review → released states inside a single form) — those are managed in
`../forms/SKILL.md`. This skill is the org-level
workflow object.
To tag an existing workflow with organization Labels after you have its
UUID from workflow list, use `../labels/SKILL.md`
(dailybot label assign <uuid> --type workflows — automations is an alias).
Step 1 — Verify Setup
Read and follow the authentication steps in `../shared/auth.md`.
Confirm at least one credential is present:
dailybot status --auth 2>&1If auth fails or the developer declines, skip and continue with your primary task.
Step 2 — List Workflows
dailybot workflow list --jsonReturns the workflows visible to the caller in the standard pagination
envelope ({count, next, previous, results}), and prints a Showing X of N
footer in human mode.
Query flags
workflow list accepts the full shared list query flag set — pagination
(--page, --page-size, --all, --limit), search (--search / --grep),
and date range (--since, --until, --date, --last-week, --today). The
complete flag table, defaults, and the envelope/footer contract live in
`../shared/list-query-and-errors.md` —
read it once and don't duplicate the reasoning here.
# Everything (default — walks all pages):
dailybot workflow list --json
# Search by name, most recent first page only:
dailybot workflow list --search release --page-size 20 --json
# Fetch every page explicitly:
dailybot workflow list --all --json
# Filter to only API-triggerable workflows (client-side filter):
dailybot workflow list --filter api_trigger --jsonThe --filter api_trigger flag is a client-side convenience — it returns only
workflows whose event type is api_trigger ("When triggered via API or
button"), i.e. the workflows you can fire from workflow trigger or from a
chat button's callback_workflow.
Step 3 — Inspect a Workflow
dailybot workflow get <workflow_uuid> --jsonReturns the single workflow's full configuration. Treat the JSON as the source
of truth for "what does this workflow do?"; surface the relevant parts to the
developer rather than re-deriving them.
Step 4 — Trigger a Workflow
Only
api_triggerworkflows can be triggered. Workflows with other event
types (schedule, form submission, etc.) are not triggerable from the CLI —
the server returnsworkflow_not_triggerable.
Confirm before triggering.
workflow triggeris side-effecting — it can
start a deploy or other automation and enqueues a run. Restate the target
workflow (name + UUID) and the payload (or "no payload") to the developer and
wait for an explicit yes before running the command. Do not fire workflows
unprompted. Same confirm-before-write posture as chat button sends.
dailybot workflow trigger <workflow_uuid> --jsonWith a JSON payload
The optional --payload flag passes a JSON object (≤8 KiB) that the workflow
can reference in its steps as {{trigger.body.<key>}}:
dailybot workflow trigger <workflow_uuid> \
--payload '{"version": "v2.5", "environment": "production"}' --jsonTrigger behavior
- Success returns HTTP
202— the workflow run is queued, not
synchronous. There is no run output in the response; the workflow executes
asynchronously on the server. - The payload must be a valid JSON object (not an array or scalar). Payloads
over 8 KiB are rejected withworkflow_trigger_payload_invalid. - The caller must have permission to execute workflows. If not,
workflow_execute_not_allowedis returned. - A frozen (disabled) workflow returns
workflow_frozen. - An unknown UUID returns
404.
CLI flag cheat sheet
| Flag | Description |
|---|---|
<uuid> |
Workflow UUID (positional, required) |
--payload |
JSON object payload (≤8 KiB); available to the workflow as {{trigger.body.*}} |
--json |
Emit the raw API response as JSON to stdout |
Cross-reference: chat buttons
Chat messages can include buttons that trigger workflows on click via thecallback_workflow field (or the --workflow-button shorthand). This uses the
same server-side trigger mechanism — see
`../chat/SKILL.md` § Workflow trigger buttons.
Step 5 — Error Handling
Match on the structured code field, never the prose detail. The full
error-code table (including plan_upgrade_required, insufficient_role, and
the 429 back-off behavior) is in
`../shared/list-query-and-errors.md` § 5.
List / Get errors
plan_upgrade_required(403, carriesupgrade_url) — workflows aren't on the
org's plan. Surface the upgrade link and stop.insufficient_role/org_admin_required(403) — the caller's role can't
read workflows. Suggest an admin runs it.- Not authenticated (401) — guide through
dailybot login.
Trigger errors
| Status | Code | Meaning | Agent behavior |
|---|---|---|---|
202 |
Queued — the workflow run is enqueued | Surface success; note the run is async (no output). | |
400 |
workflow_not_triggerable |
The workflow's event type is not api_trigger |
Only api_trigger workflows can be triggered. Use workflow list --filter api_trigger to find eligible ones. |
400 |
workflow_trigger_payload_invalid |
Payload is not a valid JSON object, or exceeds 8 KiB | Fix the payload — must be a JSON object ≤8 KiB. |
403 |
workflow_execute_not_allowed |
The caller doesn't have permission to execute workflows | An admin or a user with execute permission must run it. |
403 |
workflow_frozen |
The workflow is disabled (frozen) | Tell the developer; the workflow must be re-enabled in the web app. |
404 |
Workflow UUID not found | Verify the UUID (dailybot workflow list). |
Step 6 — HTTP Fallback (when CLI is unavailable)
See `../shared/http-fallback.md` for base
patterns. Workflow endpoints accept either Bearer token or X-API-KEY.
List workflows
curl -s -H "Authorization: Bearer $DAILYBOT_BEARER_TOKEN" \
https://api.dailybot.com/v1/workflows/Get a single workflow
curl -s -H "Authorization: Bearer $DAILYBOT_BEARER_TOKEN" \
https://api.dailybot.com/v1/workflows/<workflow_uuid>/Trigger a workflow
curl -s -X POST \
-H "Authorization: Bearer $DAILYBOT_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"payload": {"version": "v2.5"}}' \
https://api.dailybot.com/v1/workflows/<workflow_uuid>/trigger/The payload field is optional. On success, the response is 202 with a
confirmation body. The workflow run is asynchronous.
Step 7 — Confirm
- List success — surface the requested workflow(s) directly. If the count footer
showedX < N, tell the developer the view is truncated and how to widen it. - Trigger success — confirm the workflow was queued:
"Workflow
<uuid>triggered (queued). The run executes asynchronously — there is no output to wait for." - Failure — warn briefly. For
plan_upgrade_required, name the plan gap and
surface theupgrade_url. Forworkflow_not_triggerable, explain that onlyapi_triggerworkflows can be fired. - Skipped — say nothing.
Non-Blocking Rule
Workflow operations must never block your primary work. If the CLI is missing,
auth fails, the feature isn't on the plan, the network is down, or any command
errors:
- Warn the developer briefly.
- Continue with the primary task.
- Do not retry automatically.
- Do not enter a diagnostic loop.
Additional Resources
- `../shared/list-query-and-errors.md` — list query flags, pagination envelope, error codes, plan gating
- `../shared/auth.md` — authentication setup
- `../shared/http-fallback.md` — HTTP API fallback patterns
- `../chat/SKILL.md` — chat buttons can trigger workflows via
callback_workflow - Live API spec:
https://api.dailybot.com/api/swagger/ - Full agent API skill:
https://www.dailybot.com/skill.md