Automations let you wire external events — Slack messages, GitHub webhooks, Linear ticket updates, schedules, and custom webhooks — to Devin sessions that start automatically. Instead of manually tagging Devin every time a bug is reported or a CI check fails, you define the trigger once and Devin handles each event as it arrives.Documentation Index
Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
Use this file to discover all available pages before exploring further.
Core concepts
An automation has three parts:| Part | What it does |
|---|---|
| Trigger | The event that fires the automation (e.g. a Slack message in #bugs, a GitHub CI failure, a Linear label change) |
| Conditions | Optional filters that narrow the trigger (e.g. only fire when the label is bug, only for a specific repo) |
| Action | What Devin does when the trigger fires — start a new session, message an existing session, or act as a triage monitor |
Action types
| Action | Description |
|---|---|
| Start session | Creates a new Devin session with the prompt you define. The event payload is automatically included as context. |
| Message session | Sends a message to an existing, long-running Devin session — useful for feeding events into a session that maintains state. |
| Triage Devin | A persistent Devin that monitors a Slack channel. It watches every incoming message, decides what needs attention, and spawns child sub-devins for items that require investigation. See Auto-triage for details. |
| Email notification | Sends you an email when the automation runs — on every run, only on failures, or only on successes. |
Trigger sources
| Source | Event types | Example use case |
|---|---|---|
| Slack | New message, reaction added | Triage bug reports in #incidents, react with 🚨 to start an investigation |
| GitHub | Issue comment, PR opened/updated, PR review, check run (CI), push | Auto-fix CI failures, respond to /devin comments on issues |
| Linear | Issue created, label added, status changed, priority changed, assigned | Triage bugs when labeled, implement tickets when assigned to Devin |
| Schedule | Recurring (cron-based) | Daily Sentry error sweeps, weekly dependency updates, nightly smoke tests |
| Webhook | Incoming HTTP request | Wire any external system (PagerDuty, Datadog, Sentry, custom tools) to Devin via a webhook URL |
Creating an automation
From the automations page
- Navigate to Automations in the sidebar
- Click New automation (or use the chat input to describe what you want in natural language — Devin will generate the automation config for you)
- Configure the trigger, conditions, and action
- Click Save
From a template
- Navigate to Automations in the sidebar
- Click Templates in the top-right
- Browse the template gallery — each template is a pre-configured automation for a common workflow
- Click a template to pre-fill the editor with its trigger, action, and suggested limits
- Customize the configuration (e.g. select your Slack channel or repo) and save
Using natural language
On the automations page, you can describe what you want in the chat input at the bottom — for example, “When a CI check fails on my-org/my-repo, have Devin fix it and push to the same branch.” Devin will generate the automation configuration for you, which you can review and save.Configuring triggers
Slack triggers
Slack triggers fire when a message is posted or a reaction is added in a channel where Devin has been invited.- Slack message: Fires on new messages in a specific channel. You must select the channel when configuring the trigger.
- Slack reaction: Fires when a specific emoji reaction is added to a message (e.g. 🚨 for incidents). You can filter by the reaction name and the channel.
Devin must be invited to the Slack channel for the trigger to work. You must also have your personal Slack account connected in Settings > Integrations > Slack.
GitHub triggers
GitHub triggers fire on repository events. You must select a specific repository for each trigger.- Issue comment: Fires when a comment is posted on a GitHub issue. Commonly used with a
starts_with "/devin"condition so users can type/devinon any issue to trigger Devin. - Pull request: Fires on PR events (opened, synchronized, etc.).
- Pull request review: Fires when a review is submitted on a PR.
- Pull request review comment: Fires on individual review comments.
- Check run (CI): Fires when a CI check completes. Filter by
conclusion = failureto auto-fix broken builds. - Push: Fires on pushes to a branch.
GitHub automations only work with private repositories for security reasons.
Linear triggers
Linear triggers fire on issue events in your connected Linear workspace. You must select a team for each trigger.- Issue created: Fires when a new issue is created in the selected team.
- Label added: Fires when a label is applied to an issue (e.g.
bug,devin). - Status changed: Fires when an issue’s status changes (e.g. moved to “In Progress”).
- Priority changed: Fires when an issue’s priority changes.
- Assigned: Fires when an issue is assigned to someone.
Schedule triggers
Schedule triggers fire on a recurring basis using standard recurrence rules.- Recurring: Set the frequency (hourly, daily, weekly) and time. Under the hood, schedules use the iCalendar RRULE format.
Webhook triggers
Webhook triggers let you connect any external system to Devin via a unique HTTPS endpoint.- Create an automation with a Webhook trigger
- After saving, copy the webhook URL and secret from the automation detail page
- Configure your external system (PagerDuty, Datadog, Sentry, or any custom tool) to send HTTP POST requests to this URL
- Optionally add a payload filter — a regex pattern that the request body must match for the automation to fire
Configuring actions
Start session
The most common action. When the trigger fires, Devin starts a new session with your prompt. The event payload (e.g. the Slack message text, GitHub webhook body, or Linear ticket details) is automatically appended to the prompt so Devin has full context. Options:- Prompt: The instructions Devin follows. Write this like you would a normal Devin prompt.
- Playbook (optional): Use
@playbook-namein your prompt to include a playbook for additional instructions. - Tags (optional): Add tags to sessions created by this automation for easy filtering.
Message session
Sends a message to an existing, long-running Devin session. Useful when you want a single persistent session to process events over time instead of spawning a new session for each event. You must select the target session when configuring this action.Triage Devin (monitor)
Creates a persistent Devin session that monitors a Slack channel. See the Auto-triage guide for full details on this action type.Email notification
Sends an email notification when the automation runs. Choose when to notify:- Always — on every invocation
- On failure — only when the session fails or errors
- On success — only when the session completes successfully
Limits and safeguards
Automations include built-in controls to prevent runaway usage:ACU limit
Set a maximum ACU (Agent Compute Unit) budget per session started by this automation. If Devin hits the limit, the session stops. This prevents any single invocation from consuming excessive resources.Invocation limit
Set a cap on how many times the automation can fire within a time window. For example, “at most 10 invocations per hour” prevents a noisy Slack channel or a flurry of CI failures from spawning dozens of sessions. Both fields are optional — if unset, the automation runs without limits.Network policy
You can enable a network policy to restrict which external hosts the automation’s sessions can access. This is especially important for automations that process untrusted user input (e.g. Slack messages, webhook payloads). You can add specific domains to the allowlist if Devin needs to reach external services.MCP integrations
Automations work with MCP integrations to give Devin access to external tools. When creating an automation, the Connections section shows which MCP servers are recommended and their connection status. For example, the “Daily Sentry Error Fixes” template recommends the Sentry MCP so Devin can query Sentry for unresolved errors. The “Datadog Alert Investigation” template recommends the Datadog MCP for pulling metrics and traces. Enable MCP servers in Settings > MCP Marketplace before creating automations that need them.Slack tool access
By default, automation sessions can read and write to the Slack channels involved in the trigger. You can grant access to additional Slack channels in the Slack tools section of the automation editor. This is useful when Devin needs to read from multiple channels beyond the one that triggered the automation.Activity and monitoring
Each automation tracks its invocation history. On the automation detail page, the Activity tab shows:- Recent invocations with timestamps
- Whether each invocation succeeded or was skipped
- Links to the Devin sessions that were created
- Error messages for failed invocations
Enabling and disabling
Toggle an automation on or off at any time from the automations list or detail page. Disabled automations stop processing events but retain their configuration. Re-enabling an automation resumes event processing immediately.Templates
Devin includes a library of pre-built automation templates for common workflows:| Template | Category | What it does |
|---|---|---|
| Triage bug reports on Slack | Monitoring | Monitors a Slack channel and auto-triages incoming bug reports |
| CI failure fixer | CI/CD | Auto-fixes failing CI checks on PRs |
| /devin issue fix | CI/CD | Responds to /devin comments on GitHub issues |
| SRE incident response | Monitoring | Investigates incidents when a 🚨 reaction is added |
| Daily Sentry error fixes | Monitoring | Pulls top Sentry errors daily and opens fix PRs |
| Datadog alert investigation | Monitoring | Investigates Datadog alerts posted to Slack |
| Bug report triage | Triage | Triages Linear tickets labeled bug |
| Customer support triage | Triage | Drafts responses to support messages in Slack |
| Linear ticket implementation | Triage | Implements tickets labeled devin in Linear |
| Nightly QA & smoke tests | Maintenance | Runs E2E tests nightly and files tickets for regressions |
| Weekly dependency updates | Maintenance | Scans for outdated packages and opens update PRs |
| Weekly changelog | Maintenance | Compiles merged PRs into a categorized changelog |
