Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.devin.ai/llms.txt

Use this file to discover all available pages before exploring further.

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.

Core concepts

An automation has three parts:
PartWhat it does
TriggerThe event that fires the automation (e.g. a Slack message in #bugs, a GitHub CI failure, a Linear label change)
ConditionsOptional filters that narrow the trigger (e.g. only fire when the label is bug, only for a specific repo)
ActionWhat Devin does when the trigger fires — start a new session, message an existing session, or act as a triage monitor

Action types

ActionDescription
Start sessionCreates a new Devin session with the prompt you define. The event payload is automatically included as context.
Message sessionSends a message to an existing, long-running Devin session — useful for feeding events into a session that maintains state.
Triage DevinA 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 notificationSends you an email when the automation runs — on every run, only on failures, or only on successes.

Trigger sources

SourceEvent typesExample use case
SlackNew message, reaction addedTriage bug reports in #incidents, react with 🚨 to start an investigation
GitHubIssue comment, PR opened/updated, PR review, check run (CI), pushAuto-fix CI failures, respond to /devin comments on issues
LinearIssue created, label added, status changed, priority changed, assignedTriage bugs when labeled, implement tickets when assigned to Devin
ScheduleRecurring (cron-based)Daily Sentry error sweeps, weekly dependency updates, nightly smoke tests
WebhookIncoming HTTP requestWire any external system (PagerDuty, Datadog, Sentry, custom tools) to Devin via a webhook URL
A single automation can have multiple triggers — they act as an OR, so the automation fires when any of its triggers match. For example, you can have one automation that fires on both a GitHub CI failure and a Slack reaction.

Creating an automation

From the automations page

  1. Navigate to Automations in the sidebar
  2. Click New automation (or use the chat input to describe what you want in natural language — Devin will generate the automation config for you)
  3. Configure the trigger, conditions, and action
  4. Click Save

From a template

  1. Navigate to Automations in the sidebar
  2. Click Templates in the top-right
  3. Browse the template gallery — each template is a pre-configured automation for a common workflow
  4. Click a template to pre-fill the editor with its trigger, action, and suggested limits
  5. 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 /devin on 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 = failure to 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.
Times are displayed in your local timezone but stored as UTC internally.

Webhook triggers

Webhook triggers let you connect any external system to Devin via a unique HTTPS endpoint.
  1. Create an automation with a Webhook trigger
  2. After saving, copy the webhook URL and secret from the automation detail page
  3. Configure your external system (PagerDuty, Datadog, Sentry, or any custom tool) to send HTTP POST requests to this URL
  4. Optionally add a payload filter — a regex pattern that the request body must match for the automation to fire
The webhook payload is included in the Devin session prompt as context. Payloads larger than 200 KB are automatically truncated.

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-name in 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

Connecting MCP integrations is highly recommended — they dramatically improve automation quality by giving Devin access to runtime data like logs, metrics, and error details.
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
The automations list page shows a sparkline for each automation, giving you a visual overview of activity over the past 30 days.

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:
TemplateCategoryWhat it does
Triage bug reports on SlackMonitoringMonitors a Slack channel and auto-triages incoming bug reports
CI failure fixerCI/CDAuto-fixes failing CI checks on PRs
/devin issue fixCI/CDResponds to /devin comments on GitHub issues
SRE incident responseMonitoringInvestigates incidents when a 🚨 reaction is added
Daily Sentry error fixesMonitoringPulls top Sentry errors daily and opens fix PRs
Datadog alert investigationMonitoringInvestigates Datadog alerts posted to Slack
Bug report triageTriageTriages Linear tickets labeled bug
Customer support triageTriageDrafts responses to support messages in Slack
Linear ticket implementationTriageImplements tickets labeled devin in Linear
Nightly QA & smoke testsMaintenanceRuns E2E tests nightly and files tickets for regressions
Weekly dependency updatesMaintenanceScans for outdated packages and opens update PRs
Weekly changelogMaintenanceCompiles merged PRs into a categorized changelog
Browse all templates at Automations > Templates in the Devin app.