Skip to main content
Triggers define when a button or drawer runs automatically.
buttons trigger webhook <target> [/path]
buttons trigger cron <target> "<cron>"
buttons trigger hook <target> --enable "<source>"
<target> can be a button or a drawer. If the target is a button, Buttons can create a hidden one-step drawer wrapper internally. If the target is already a drawer, the trigger attaches directly to that drawer.

Trigger kinds

KindCauseExample
webhookA remote service sends an HTTP POST.GitHub, Stripe, Apify, Linear
cronA schedule fires.nightly sync, hourly digest
hookA local event fires.file changed, Git commit, button completed

Commands

buttons trigger webhook linkedin-sync /linkedin-sync
buttons trigger cron slack-sync "0 */2 * * *"
buttons trigger hook docs-sync --enable "file:docs/**/*.md"
Management commands should work across every trigger kind:
buttons trigger list
buttons trigger show <id>
buttons trigger remove <id>
buttons trigger pause <id>
buttons trigger resume <id>

Target resolution

If a button and drawer share a name, use an explicit target prefix:
buttons trigger webhook button/linkedin-sync /linkedin-sync
buttons trigger webhook drawer/linkedin-sync-flow /linkedin-sync

Current implementation

The current CLI already supports webhook-triggered drawers:
buttons drawer <name> trigger webhook [/path]
buttons webhook listen
The buttons trigger ... command is the intended unified surface. It should compile down to the drawer trigger model so existing drawer workflows keep working.