Automations & triggers
Not every run needs a person to start it. Automations fire from a schedule or an event and deliver as a normal thread — same sandbox, same evidence, same review trail — so recurring work happens without anyone babysitting it.
What can trigger a run
Schedule
On a cron schedule you set — hourly, daily, weekday mornings, whatever cadence the job needs.
GitHub
On repository events: CI failing on an open PR, a Dependabot PR opening, or a slash command in a PR comment (@gentlybot …). Optionally filter the event text with keywords.
Slack
When a new root message lands in a channel Gentlybot is watching — a bug report, a question, a request. Optionally filter message text and attached-file metadata with keywords.
Jira
On issue or comment events. Narrow a trigger by project, issue type, or keywords matched against the summary, description, and comment text. In early access.
Linear
When an issue or comment is created, updated, or deleted. Narrow a trigger by team or keywords matched against the identifier, title, description, and comment text.
Notion
When a page is created, edited, moved, locked, restored, or deleted. Scope the trigger to a page or database. In early access.
Setting one up
- 1 Create a trigger from Automations and choose which project it runs against — that sets the repos and context it works from.
- 2 Pick the trigger type and its condition: a schedule or an event from GitHub, Slack, Jira, Linear, or Notion.
- 3 Choose the mode. Start with Ask or Plan so the automation posts findings for review; move to Implement only once you trust it on that job.
- 4 Write the prompt exactly as if a person asked it — outcome, context, and where to post the result. This is the whole behavior of the automation.
For GitHub, Slack messages, Jira, and Linear, keyword filters are optional. Separate phrases with commas, such as “checkout, urgent”. Every non-empty phrase must appear somewhere in the provider’s searchable text, regardless of capitalization or phrase order.
Recipes to steal
A trigger plus a prompt. Start from one of these and adapt the channel, cadence, and scope to your team.
Writing automations that behave
Write it like you mean it every day
An automation runs unattended, so it can’t be steered mid-run the way a live thread can. Bake the context and the guardrails into the prompt: which channel to post to, what’s out of scope, what a good result looks like.
Bound the work
Keep automated prompts specific and finite — “review yesterday’s merges,” not “keep the codebase healthy.” A tightly bounded job produces a predictable result you can trust to run without you watching.
Earn autonomy gradually
Start automations in Ask or Plan so they post findings for a human to act on. Promote a job to Implement only after you’ve watched it get that job right a few times.
Every run is still reviewable
An automation delivers as a normal thread with the same sandbox, evidence, and review trail. Nothing merges on its own — a fix pushed to a branch still waits for your engineers, and you can open any run to see exactly what it did.
Connect the sources first
Event triggers only fire once their GitHub, Slack, Jira, Linear, or Notion integration is connected to your workspace. Set up the source first, then choose which events should start a run.
Integrations setup