Skip to content
17 changes: 16 additions & 1 deletion docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -405,7 +405,22 @@
"tab": "Enterprise",
"pages": [
"enterprise/index",
"enterprise/quick-start"
"enterprise/quick-start",
{
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Important: Navigation inconsistency.

The docs are only in the Enterprise tab, but overview.mdx says this feature is available for "OpenHands Cloud and OpenHands Enterprise users only."

If Cloud users can access this, it should also appear in the Cloud tab navigation. If it's truly Enterprise-only, fix the messaging in all MDX files to remove "Cloud".

"group": "Product Guides",
"pages": [
{
"group": "Automations (BETA)",
"icon": "clock",
"pages": [
"openhands/usage/automations/overview",
"openhands/usage/automations/creating-automations",
"openhands/usage/automations/managing-automations",
"openhands/usage/automations/examples"
]
}
]
}
]
}
]
Expand Down
145 changes: 145 additions & 0 deletions openhands/usage/automations/creating-automations.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
---
title: Creating Automations

Check warning on line 2 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L2

Did you really mean 'Automations'?
description: Learn how to create scheduled automations using the Automation Skill.

Check warning on line 3 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L3

Did you really mean 'automations'?
---

<Info>
**Beta Feature**: Automations is currently in beta and available for **OpenHands Cloud** and **OpenHands Enterprise** users only.

Check warning on line 7 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L7

Did you really mean 'Automations'?
</Info>

The easiest way to create an automation is to ask OpenHands directly. The Automation Skill handles all the details—you just describe what you want.

## Prompt vs Plugin Automations

Check warning on line 12 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L12

Did you really mean 'Automations'?

There are two types of automations:

Check warning on line 14 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L14

Did you really mean 'automations'?

<Tabs>
<Tab title="Prompt-based">
Most automations are prompt-based. Just describe the task in natural language:

Check warning on line 18 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L18

Did you really mean 'automations'?

```
Create an automation called "Daily Standup Summary" that runs every weekday
at 9 AM Eastern. It should check our GitHub repo for PRs merged yesterday
and post a summary to #engineering on Slack.
```

This is all you need for reports, monitoring, data syncs, and most common tasks.
</Tab>
<Tab title="Plugin-based">
For specialized capabilities, include one or more plugins from the [OpenHands extensions repository](https://github.com/OpenHands/extensions):

```
Create an automation using the code-review plugin that runs every weekday
at 9 AM. It should review any Python files changed in the last 24 hours.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Suggestion: Add plugin discovery guidance.

You reference the "OpenHands extensions repository" but don't explain:

  • How to browse available plugins
  • How to know which plugin to use for a given task
  • What capabilities different plugins provide
  • How to specify plugin versions

Add a direct link to the extensions repo and maybe a sentence about how to explore it: Browse available plugins at https://github.com/OpenHands/extensions/tree/main/plugins

```

Plugins provide additional skills, MCP configurations, or custom commands that extend what the automation can do.
</Tab>
</Tabs>

The agent will:
1. Confirm the automation name and what it does
2. Set up the schedule you requested
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Suggestion: Clarify confirmation behavior.

You say "The agent will: 1. Confirm the automation name..." but this implies guaranteed interactive behavior. What if the agent interprets the prompt differently? What if it creates the automation without asking?

Either:

  • Remove the numbered list if the behavior varies
  • Add "typically" or "may" to set correct expectations
  • Explain what users should do if the agent doesn't follow this flow

3. Create the automation (with plugins if specified)

Once created, it runs automatically on schedule.

## What to Include in Your Request

When asking OpenHands to create an automation, include:

- **What it should do**: Describe the task clearly
- **When it should run**: Daily, weekly, every hour, etc.
- **Timezone** (optional): Defaults to UTC if not specified
- **Name** (optional): The agent can suggest one based on your description
- **Plugins** (optional): Mention specific plugins if you need extended capabilities

## Writing Good Automation Prompts

The prompt is what the AI agent executes each time the automation runs. Write it like you're giving instructions to a capable assistant.

### Be Specific

<Tabs>
<Tab title="❌ Too Vague">
```
Generate a report
```
</Tab>
<Tab title="✅ Clear & Actionable">
```
Generate a weekly status report that:
1. Lists all GitHub PRs merged in the last 7 days
2. Summarizes open issues by priority
3. Formats everything as markdown
4. Posts to the #team-updates Slack channel
```
</Tab>
</Tabs>

### Include Where to Send Results

Tell the automation what to do with its output:

- "Post to the #alerts Slack channel" (requires [Slack MCP](/openhands/usage/cloud/slack-installation))
- "Save to `reports/weekly-summary.md`"
- "Create a GitHub issue with the findings" (automatic if you logged in with GitHub)
- "Send a message via the configured notification service"

<Note>
Git providers you logged in with (GitHub, GitLab, Bitbucket) are automatically available. Other services like Slack require [MCP configuration](/openhands/usage/settings/mcp-settings).
</Note>

### Specify Error Handling

For monitoring tasks, explain what should happen when things go wrong:

```
Check the health endpoint at https://api.example.com/health.
If it returns anything other than 200 OK, send an alert to #ops
with the status code and response body.
If it's healthy, just log success without alerting.
```

## What Your Automation Can Access

Each automation runs in a full OpenHands sandbox with:

- **Terminal access**: Run any bash commands
- **File operations**: Create, read, and modify files
- **Your LLM**: Uses your configured model from settings
- **Your secrets**: Access API keys stored in Settings > Secrets
- **MCP integrations**: Use your configured MCP servers
- **Network access**: Make HTTP requests, connect to APIs
- **Git provider access**: Tokens from your Cloud login (GitHub, GitLab, or Bitbucket) are automatically included

## Schedules

Tell OpenHands when you want the automation to run in plain language:

- "every weekday at 9 AM"
- "every Monday morning"
- "hourly"
- "every 15 minutes"
- "first day of each month"
- "twice a day at 9 AM and 5 PM"

The agent converts this to the appropriate cron schedule.

Check warning on line 127 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L127

Did you really mean 'cron'?

<Tip>
If you're familiar with cron expressions, you can specify them directly: "Run on cron schedule `0 9 * * 1-5`"

Check warning on line 130 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L130

Did you really mean 'cron'?

Check warning on line 130 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L130

Did you really mean 'cron'?
</Tip>

## After Creation

Once your automation is created:

- **It starts enabled** by default and will run on the next scheduled time
- **You can view past runs** in the OpenHands UI
- **Each run creates a conversation** you can review or continue
- **You can disable, update, or delete it** anytime (see [Managing Automations](/openhands/usage/automations/managing-automations))

## Next Steps

- [View example automations](/openhands/usage/automations/examples)
- [Manage your automations](/openhands/usage/automations/managing-automations)
158 changes: 158 additions & 0 deletions openhands/usage/automations/examples.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
---
title: Automation Examples
description: Practical examples for common automation use cases.
---

<Info>
**Beta Feature**: Automations is currently in beta and available for **OpenHands Cloud** and **OpenHands Enterprise** users only.

Check warning on line 7 in openhands/usage/automations/examples.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/examples.mdx#L7

Did you really mean 'Automations'?
</Info>

Copy and adapt these examples to create your own automations. Just paste the prompt into a conversation with OpenHands.

Check warning on line 10 in openhands/usage/automations/examples.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/examples.mdx#L10

Did you really mean 'automations'?

<Note>
These examples reference services like Slack and GitHub. Git providers you logged in with are automatically available, but other services like Slack require [MCP configuration](/openhands/usage/settings/mcp-settings).
</Note>

## Reporting

### Daily GitHub Summary

```
Create an automation called "Daily GitHub Summary" that runs every weekday at 9 AM Eastern.

It should:
1. Summarize PRs opened, merged, and reviewed in the last 24 hours
2. List any PRs that have been open for more than 3 days
3. Format as a clean markdown summary
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Suggestion: Add explicit customization note.

All these examples contain placeholders like https://api.example.com/health, #engineering, api.example.com, etc.

Add a clear note at the top: "Note: Replace placeholder URLs, channel names, and domain names with your actual values."

Users will copy-paste these and wonder why they don't work.

4. Post to the #engineering Slack channel
```

### Weekly Metrics Report

```
Create an automation called "Weekly Metrics" that runs every Monday at 9 AM.

It should generate a weekly report covering:
- GitHub activity (commits, PRs merged, issues closed)
- Open issues grouped by priority
- PRs awaiting review for more than 3 days

Save the report to weekly-reports/ with the current date in the filename.
```

## Monitoring

### API Health Check

```
Create an automation called "API Health Monitor" that runs every 30 minutes.

It should check https://api.example.com/health and:
- If the response is not 200 OK, send an alert to #alerts with the status code and response body
- If healthy, just log success without alerting anyone
```

### SSL Certificate Monitor

```
Create an automation called "SSL Monitor" that runs daily at 8 AM.

It should check SSL certificate expiry for these domains:
- api.example.com
- app.example.com
- www.example.com

If any certificate expires within 30 days, alert #devops with the domain and days remaining.
```

## Maintenance

### Weekly Cleanup

```
Create an automation called "Weekly Cleanup" that runs every Sunday at 2 AM UTC.

It should:
1. Find and delete temporary files older than 7 days
2. Create a summary of what was removed (file paths and sizes)
3. Post the cleanup summary to #ops
```

### Backup Verification

```
Create an automation called "Backup Check" that runs daily at 6 AM.

It should verify that database backups exist and were created within the last 24 hours.
List the most recent backup for each database with its timestamp and size.
If any backup is missing or stale, send an urgent alert to #alerts.
```

## Data Sync

### Analytics Data Sync

```
Create an automation called "Analytics Sync" that runs every 6 hours.

It should:
1. Pull the latest data from our analytics API
2. Update metrics.json with the new data
3. Calculate week-over-week changes for key metrics
4. If any metric changed by more than 20%, flag it in a summary message
```

## Code Quality

### Dependency Checker

```
Create an automation called "Dependency Checker" that runs every Monday at 8 AM.

It should:
1. Scan all package.json and requirements.txt files
2. Check for outdated dependencies
3. Create a report listing packages with available updates (grouped by major/minor/patch)
4. Post the report to #engineering
```

### Security Scan

```
Create an automation called "Security Scan" that runs daily at 3 AM.

It should run a security audit:
1. Check for known vulnerabilities in dependencies
2. Scan for hardcoded secrets or API keys
3. Look for common security misconfigurations

Create a detailed report and alert #security if any high or critical issues are found.
```

## Tips for Writing Good Prompts

### Be Specific About Actions

Tell the automation exactly what to do:
- "Check X and if Y, then Z"
- "Generate a report and save it to..."
- "Fetch data, compare with expected values, and report differences"

### Include Error Handling

Specify what should happen when things go wrong:
- "If the response is not 200..."
- "If any backup is missing..."
- "If the check fails, alert the team"

### Define Where Results Go

Be explicit about outputs:
- "Post to the #channel Slack channel"
- "Save to reports/ with the current date"
- "Create a GitHub issue with the findings"

## Next Steps

- [Creating Automations](/openhands/usage/automations/creating-automations) — More details on writing prompts
- [Managing Automations](/openhands/usage/automations/managing-automations) — Update, disable, or delete automations

Check warning on line 158 in openhands/usage/automations/examples.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/examples.mdx#L158

Did you really mean 'automations'?
Loading
Loading