Get started
Introduction
ONEScript is the scripting layer for ONES. It lets you automate and extend your workflows beyond what no-code rules can express — reacting to changes on issues, running scheduled jobs, updating fields, and querying your data — using a readable, high-level syntax or full JavaScript, TypeScript, or Groovy.
If you've used ScriptRunner, JMWE, or Power Scripts in Jira, ONEScript is the equivalent capability, built into ONES and running inside your own deployment.
ONEScript vs. Automation. ONES Automation handles the everyday with no-code rules — triggers and actions you configure in the UI. ONEScript is the code layer beneath, for the extensions — it picks up where no-code leaves off, for logic that's too conditional, multi-step, or data-driven for a no-code rule. Automation handles the everyday; ONEScript picks up where no-code leaves off. Approachable by default, deep on demand.
Who it's for. Administrators, power users, and developers who configure and extend ONES.
Availability. ONEScript runs on Private (On-Premises) today; SaaS is coming soon.
ONEScript is an early preview intended for evaluation and testing — not recommended for production at this stage. We're actively shaping it with teams migrating from Atlassian; if there's a workflow you need, tell us.
How it works
A few ideas to get oriented before you start:
- Scripts are event-driven. A script runs in response to something — a field change, a workflow action, a scheduled time, or a manual run — and then acts on your data.
- You write the logic, then give it a trigger to run it. A script is the logic; you make it run by binding it under Automation (for events, workflow actions, and schedules), REST Endpoints (for inbound HTTP), or Resources → Scripted Fields (for native Float and Selection fields).
- Write readable, or go deep. The readable semantic syntax references fields, statuses, and options by display name — e.g.
issue.field("Priority").is("Highest")— or you can drop down to the full runtime (raw objects and IDs) when you need it. - Test safely, then go live. Dry Run shows what a script would do without changing anything. For a published script that does not depend on live context such as a current issue, event, workflow action, timer schedule, or inbound HTTP request, an administrator can also use Run now for one live execution. Each script runs in its own isolated sandbox.
Prefer not to write from scratch? An AI assistant can draft scripts for you — see Author with an AI assistant.
What's inside. ONEScript is organized into a workspace with these tabs:
- Overview — health, lifecycle, and the next action to take
- Script — create, edit, validate, dry-run, and publish scripts; when the server confirms that a script needs no live context, use Run now for one live execution (this is your editor/IDE)
- Automation — connect published scripts to triggers (Trigger Bindings) and schedules (Timer Rules)
- REST Endpoints — expose published scripts as authenticated inbound HTTP endpoints for external systems
- Resources — manage Variables (reusable values and secrets) and Scripted Fields
- Event Log — trace event delivery, rule matching, and correlation
- Execute Log — inspect individual script executions, semantic logs, and raw data
One runtime. Whichever language you choose — JavaScript, TypeScript, or Groovy — scripts run on a common JavaScript runtime underneath. (Groovy is available on On-Premises deployments only, through a configured external runner; see Choose a language.)
For a native scripted field, author and publish the provider script first, then create and enable the field under Resources → Scripted Fields. Enter the field name and select the Published script there; ONEScript manages the native field UUID internally.
Install ONEScript
ONEScript is in early preview. On the ONES Scripting page, enter the preview with your email, then download the package — it includes both the plugin and the AI skill (Skill.md). An administrator then uploads the plugin to your ONES instance.
Private (On-Premises)
You'll need administrator access. Then:
- Download the ONEScript plugin package from the ONES Scripting page (enter the preview with your email first).
- Go to Configuration → App settings.
- Open Installed apps.
- Click Upload and select the ONEScript plugin package.
- Enable it for the relevant teams/projects.
SaaS — coming soon
SaaS support is on the way. While it's in progress, ONEScript is available on On-Premises deployments.
After installing
ONEScript appears in the left sidebar — click it to open the workspace in place.
Access is permission-controlled. On the app's Permission tab, grant ONEScript Workbench Access to the users, user groups, or departments who should be able to open the workspace. Until you grant access, members cannot open it.
Then open the Script tab and create your first script — see Create your first script. To draft scripts with an AI assistant using the AI-ready skills you downloaded, see Author with an AI assistant.
Create your first script
This walkthrough creates your first rule: when an issue's Requirement Type is set to "Roadmap Requirement," set its Priority to Medium.
Because this rule changes an issue, it runs after a change is committed (a taskActionDone trigger) and takes effect once it's published and bound. You'll test it safely with Dry Run first — no changes are applied until you publish and bind it.
1. Open the Script tab. In ONEScript, go to Script and choose Create New Script. Select language JavaScript and trigger taskActionDone (runs after a change is committed).
2. Write the script. The readable syntax describes the condition and the action:
if (issue.field("Requirement Type").is("Roadmap Requirement")) {
issue.update({ Priority: "Medium" })
api.log("Priority updated to Medium")
} else {
api.log("Skipped: condition not matched")
}
As you type, the editor offers suggestions for the available methods (for example, the ways to check a field: .is(), .changedTo(), .contains()).
3. Validate. Click Validate to check the script — it returns whether it's valid, any diagnostics, and the resolved policy (deployment mode, trigger, allowed languages).
4. Dry Run. Click Dry Run to verify how the script behaves without it taking effect — it returns an execution result (status and the effects it would apply). Use it to confirm the logic before anything is applied. Dry Run never changes your data.
5. Save. Click Save to keep the script. New scripts start as a draft.
6. Publish. The default flow can Publish directly; teams that require stricter governance can still use Review → Approve → Publish. A script must be published before it can run automatically.
7. Bind it so it runs. Go to Automation → Trigger Bindings, choose your published script, select the project, issue type, and action, and create the binding. The rule is now live.
A published script can run through an enabled Trigger Binding, Timer Rule, or REST Endpoint. An administrator can also run it once when it meets the Run now conditions.
8. See what happened. Two places confirm the result:
- The Execute Log shows whether the script ran or was skipped, and why.
- The issue's history shows the change attributed to ONEScript (e.g. "ONEScript updated Priority"), alongside human edits.
Author with an AI assistant
You don't have to write scripts from scratch. ONEScript ships a downloadable AI Skill (Skill.md) you can load into ChatGPT, Claude, Gemini, or another assistant. It teaches the assistant ONEScript's trigger policy, semantic syntax, and capability boundaries — so it generates scripts that pass validation instead of inventing helpers.
- Get the AI skill (
Skill.md) — it's in the ONEScript download package, and also available standalone from the ONES Scripting page (bundled with the app). - Add it to your assistant's custom instructions or project knowledge.
- Describe your business rule — trigger timing, fields/statuses, and the expected result. The assistant returns a runnable script with configuration and validation steps, or explains why the requirement is outside ONEScript's boundary.
Already have Jira/ScriptRunner scripts? Load the skill and paste one to see how it maps to ONEScript instantly — trigger, helpers, and any unsupported parts — before you migrate anything. See Migrate from Atlassian.
Where to next: learn the authoring surface and triggers in Write and manage scripts, look up syntax in the Reference, or see ready-to-adapt recipes in the Cookbook.