What are Ona Automations
Automations combine Ona Agents with Ona Environments to run workflows at scale. Instead of manually triggering agents in individual environments, automations execute across hundreds of repositories automatically. Each automation combines:- Steps - Prompts, shell scripts, or pull request steps
- Triggers - Manual, pull request events, or schedules
- Targets - Projects or repositories to run against
- Guardrails - Limits to control execution

How automations work
- Define once - Create an automation with steps that describe what to do
- Trigger automatically or on-demand - Run manually, on a schedule, or when PRs are opened
- Execute at scale - Run across selected repositories in parallel
- Create pull requests - Automations open PRs with changes for review
- Review and merge - Inspect outputs, logs, and approve changes
Key terms
- Automation - A workflow definition that executes changes
- Execution - A single run of an automation
- Action - The result of running on one repository (one execution creates multiple actions)
- Step - An individual operation (prompt, shell script, or PR creation)
Creating your first automation
Access the Automations page
- Open Ona and navigate to Automations in the left panel
- Click New Automation in the top right corner
https://app.ona.com/automations

Configure basic settings
Fill in the automation details:- Name - Short, descriptive name (e.g., “Weekly dependency updates”)
- Description - Explain what the automation does
- Run as - Choose your user or a service account
- Event-driven automations (pull request triggers)
- Time-based automations (scheduled jobs)
- Team-wide automations where you want activity tracked separately

Choose a trigger type
Manual - Run on demand when you need it- Best for: One-time migrations, testing automations, changes requiring human judgment on timing
- Best for: Automated code reviews, security scanning, documentation updates
- Best for: Dependency updates, nightly security scans, compliance checks
Add steps
Steps execute in sequence. Each step runs in the same environment, building on previous work. Prompt steps - Natural language instructions for Ona Agent:Example: Multi-step automation
A typical automation might have:Set guardrails
Control execution to prevent runaway automations:- Max concurrent executions - How many run simultaneously (default: 10)
- Max total executions - Maximum total runs allowed (default: 100)
- Testing (1-10 repos): 5 concurrent, 20 total
- Team automation (10-50 repos): 10 concurrent, 100 total
- Organization rollout (50+ repos): 20-50 concurrent, 500+ total
Practical scenario 1: README standardization
Ensure every repository has consistent documentation.The automation
Name: README and Backstage YAML maintenance Trigger: Manual Target: All projects in your organization Steps:Why this works
- Eliminates documentation toil for engineers
- Ensures consistent structure across all repositories
- Platform teams gain control over documentation quality
- Changes go through PR review before merging
Practical scenario 2: Automated security review
Catch security issues automatically when code changes.The automation
Name: Security code review Trigger: Pull Request (events: Opened, Updated) Target: All repositories Steps:Why this works
- Immediate security feedback on every code change
- No waiting for manual security review
- Consistent review criteria across all repositories
- Issues caught before code reaches main branch
Practical scenario 3: Weekly dependency updates
Keep dependencies current automatically.The automation
Name: Weekly dependency updates Trigger: Time-based (Weekly, Monday at 2 AM) Target: All projects with “backend” tag Steps:Why this works
- Reclaim engineering hours spent on CVE remediation
- Automated fixes handle version bumps and breaking changes
- Tests run before PR is created
- Fresh updates ready for review every Monday
Running and monitoring automations
Starting an automation
- Navigate to Automations in the left panel
- Find your automation and click it
- Click Run in the top right corner
- Review targets and confirm
Monitoring progress
The Action Run Details page shows real-time progress: Action status panel (left):- Running - Currently executing
- Pending - Queued
- Completed - Finished successfully
- Failed - Encountered errors
- Completion percentage across all actions
- Real-time updates as actions execute

Stopping executions
Cancel individual action: Click the three dots menu next to an action, select Cancel Cancel entire execution: Click Cancel on the Action Run Details page to stop all actionsReviewing results
After completion:- Check the execution summary (completed, failed, canceled counts)
- Go to your SCM (GitHub/GitLab) to review created pull requests
- Filter PRs by the service account used for the automation
- Review and merge each PR independently
Try it: Create a documentation automation
Let’s create an automation that updates READMEs across your repositories. Step 1: Create the automation- Go to Automations > New Automation
- Name: “Update README files”
- Description: “Ensure README has setup instructions”
- Trigger: Manual
- Target: Select 1-2 test repositories
- Max concurrent: 2
- Max total: 5
- Click Save, then Run
- Watch the action status panel
- Click an action to see the agent’s conversation
- Review the created PRs in your SCM
Best practices
Do’s
- Start small - Test on 1-2 repositories before scaling
- Use service accounts - Track automation activity separately from human work
- Set conservative guardrails - Prevent accidental large-scale runs
- Write specific prompts - Include file paths, patterns to follow, verification steps
- Request verification - Have automations run tests before creating PRs
- Review PRs - Always inspect automation-created changes before merging
Don’ts
- Don’t skip testing - Always verify on a few repos first
- Don’t set unlimited guardrails - Even trusted automations should have limits
- Don’t merge blindly - Automation PRs need human review
- Don’t over-automate - Some changes need human judgment
When to use which trigger
| Trigger | Best for |
|---|---|
| Manual | One-time migrations, testing automations, changes needing timing judgment |
| Pull Request | Code review, security scanning, documentation validation |
| Time-based | Dependency updates, nightly scans, compliance reports |
Troubleshooting
Automation not starting- Check guardrails—you may have hit the limit
- Verify you have access to target repositories
- For PR triggers, confirm webhook is configured correctly
- Click the failed action to see conversation logs
- Check if the prompt is too vague—be specific
- Verify dependencies are installed (use Dev Container for consistent setup)
- Check if the automation found changes to make
- Verify the PR step is configured
- Check SCM permissions for the service account
- Verify webhook URL and secret in SCM settings
- Check that the correct events are selected
- Test with a new PR to trigger the webhook
- Break into smaller, targeted automations
- Reduce concurrent limit if hitting resource constraints
- Use shell scripts for deterministic tasks, prompts for intelligent decisions
What you’ve learned
You now know how to:- Create automations with prompts, scripts, and PR steps
- Configure triggers for manual, event-driven, or scheduled execution
- Set guardrails to control automation execution safely
- Monitor progress and review results in real-time
- Scale safely by starting small and verifying before expanding
Next up: Make Ona Your Own, personalize your environments with dotfiles, user secrets, and IDE settings. Or return to Workshop Overview to review what you’ve learned.