Automations
Set up event-driven workflows that trigger Opulent sessions automatically
Automations let you wire external events. Slack messages, GitHub webhooks, Linear ticket updates, CRM and ticketing changes, schedules, and custom webhooks, to Opulent sessions that start automatically. Instead of manually tagging Opulent every time a bug is reported, a deal stage changes, or a CI check fails, you define the trigger once and Opulent handles each event as it arrives.
Automations are Partial today. Schedule, webhook, Slack, and GitHub triggers are in use, and the template gallery is live. Coverage for some CRM, QA, and ticketing event sources is still expanding, so confirm your source is listed before you rely on it in production.
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 Opulent 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 Opulent session with the prompt you define. The event payload is automatically included as context. |
| Message session | Sends a message to an existing, long-running Opulent session. Useful for feeding events into a session that maintains state. |
| Triage monitor | A persistent Opulent session that monitors a Slack channel. It watches every incoming message, decides what needs attention, and spawns child sessions 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 /opulent comments on issues |
| Linear | Issue created, label added, status changed, priority changed, assigned | Triage bugs when labeled, implement tickets when assigned to Opulent |
| Schedule | Recurring (cron-based) | Daily error sweeps, weekly dependency updates, nightly smoke tests, scheduled diligence pulls |
| Webhook | Incoming HTTP request | Wire any external system (PagerDuty, Datadog, Sentry, a CRM, or a custom tool) to Opulent 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
- Navigate to Automations in the sidebar
- Click Create automation (or use the chat input to describe what you want in natural language and Opulent 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 View all examples in the top-right of the Featured automations box
- 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 Opulent fix it and push to the same branch." Opulent 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 Opulent 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.
Opulent must be invited to the Slack channel for the trigger to work. You must also have your personal Slack account connected in Settings > Connections > 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 "/opulent"condition so users can type/opulenton any issue to trigger a session. - 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,opulent). - 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 Opulent 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, a CRM, 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
The webhook payload is included in the Opulent session prompt as context. Payloads larger than 200 KB are automatically truncated.
Configuring actions
Start session
The most common action. When the trigger fires, Opulent 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 Opulent has full context.
Options:
- Prompt: The instructions Opulent follows. Write this like you would a normal Opulent 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 Opulent 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 monitor
Creates a persistent Opulent 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 Opulent 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 Opulent needs to reach external services.
Connector integrations
Connecting integrations is highly recommended. They dramatically improve automation quality by giving Opulent access to runtime data like logs, metrics, error details, and CRM records.
Automations work with the Connector Marketplace to give Opulent access to external tools. When creating an automation, the Connections section shows which connectors are recommended and their connection status.
For example, the "Daily Sentry Error Fixes" template recommends the Sentry connector so Opulent can query Sentry for unresolved errors. The "Datadog Alert Investigation" template recommends the Datadog connector for pulling metrics and traces.
Enable connectors in Settings > Connections 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 Opulent 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 Opulent 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
Opulent 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 |
| Daily Sentry Error Fixes | Monitoring | Pulls top unresolved Sentry errors daily and opens fix PRs |
| Datadog Alert Investigation | Monitoring | Investigates Datadog alerts posted to Slack and replies with a root-cause analysis |
| Daily Health Digest | Monitoring | Scans Datadog daily and posts a health summary to Slack |
| Stripe Failed Payment Investigation | Monitoring | Investigates failed payment alerts in Slack via the Stripe connector |
| Weekly Analytics Health Check | Monitoring | Checks Metabase dashboards weekly for broken queries and anomalies |
| CI Failure Fixer | CI/CD | Auto-fixes failing CI checks on PRs |
| /opulent Issue Fix | CI/CD | Responds to /opulent comments on GitHub issues with a fix PR |
| CircleCI Failure Fix | CI/CD | Pulls CircleCI build logs on failure and pushes a fix |
| Customer Support Triage | Triage | Drafts responses to support messages in Slack |
| Jira Ticket to PR | Triage | Implements Jira tickets posted in Slack and opens a PR |
| Jam Bug Report Investigation | Triage | Investigates Jam recordings shared in Slack |
| 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 |
| Stale PR Cleanup | Maintenance | Flags PRs with no recent activity and checks for merge conflicts |
| Security Vulnerability Scan | Maintenance | Weekly CVE scan with fix PRs for critical vulnerabilities |
| Cloudflare Security Audit | Maintenance | Weekly review of Cloudflare audit logs for suspicious activity |
| Weekly Status Digest to Notion | Project Management | Compiles weekly progress into a Notion status update |
| Asana Sprint Progress Report | Project Management | Posts a daily standup summary from Asana to Slack |
| Figma Design Review on PR | Code Quality | Compares UI changes against Figma designs on PRs |
| SonarQube Quality Gate Fix | Code Quality | Fixes SonarQube quality gate violations on failing CI checks |
| Dependency Vulnerability Scanner | Security | Daily CVE scan with severity-prioritized fix PRs |
| Secret Scanner | Security | Daily scan for leaked credentials and hardcoded secrets, with fix PRs |
| Code Pattern Enforcer | Security | Compares your repo against a golden reference repo and opens alignment PRs |
| SRE Health Checker | Security | Weekly scan for deprecated APIs, missing error handling, and reliability gaps |
| OWASP Security Hardening | Security | Weekly scan for OWASP Top 10 vulnerabilities with fix PRs |
To browse all templates, open the Automations page in Opulent and click View all examples next to "Featured automations" above the chat input (or go directly to /automations/templates).