Create automations
Before you start
Before you create an automation, make sure that:
You are signed in to JetBrains Air with your JetBrains Account and have access to the organization.
The repository you want to automate is available through a configured repository connection. If needed, see Connect repositories.
Create an automation
You can create an automation either from a predefined template or from scratch. A template mainly pre-fills the prompt. The rest of the workflow is the same.
Create an automation
Log in to https://air.jetbrains.cloud with your JetBrains Account.
Open the Automations page.
Start creating the automation in one of the following ways:
click a predefined template to use it as a starting point
click New Automation to create one from scratch
Fill in the main automation settings:
Automation name – the name shown in the automation list
Privacy – who can view the automation and who can edit it. For details, see Visibility and sharing.
Repository – the repository where the automation runs. To make repositories available in cloud environments, see Connect repositories.
Branch – the branch context for the automation
Prompt – the instructions the agent follows when the automation starts
Model – the model used for automation runs
Use Template – inserts a predefined prompt as a starting point
Add one or more triggers. For details, see Trigger types.
Optionally, add one or more notifications. For details, see Outgoing webhooks.
Click Create.
Triggers
A trigger defines when JetBrains Air starts the automation. An automation can have one or more triggers.
Schedule
Use the At time trigger to run the automation at a specific time on selected days. This is useful for recurring daily or weekly routines.
Repetitive run
Use the Repeat every trigger to run the automation on a fixed interval, for example, every 2 hours.
GitHub events
Use GitHub event triggers to start automations in response to activity in a repository.
Once the JetBrains Air Team app is installed for your personal or organization account, JetBrains Air automatically receives notifications for repositories covered by that installation. There is no separate GitHub webhook setup inside the automation itself.
Supported GitHub event categories include:
Pull requests – for example, pull request opened, updated, merged, or review requested
Issues – for example, issue opened or issue labeled
To make GitHub repositories and events available, see Connect repositories.
Incoming webhooks
Use the Webhook trigger to start an automation from an external system. This is useful when another service needs to notify JetBrains Air about an event and trigger an automation run.
After you add the trigger and save the automation, JetBrains Air generates:
a webhook URL in the format
.../api/v1/events/automations/<automation-id>a permanent token used to authorize requests to this webhook
Use Copy Webhook URL and Copy Token to copy these values from the trigger section.
Configure your external system to send an HTTP POST request to the webhook URL and include the token in the Authorization header as Authorization: ApiKey <token>.
The request body is optional. You can send a webhook without any payload if the automation only needs the event itself.
If you want to pass additional input to the automation task, send a JSON payload in the request body. This payload becomes part of the task context.
For example:
Notifications
Use notifications (outgoing webhooks) to send automation results to an external system after a run completes.
To add an outgoing webhook, click Add Notification, select Webhook, and enter the destination URL.
When an automation run finishes, JetBrains Air sends an HTTP POST request to each configured webhook URL.
Every outgoing webhook request includes these headers:
X-Air-Webhook-Id– event identifier in the formevt_<uuid>. This value is stable across delivery attempts and can be used as an idempotency key.X-Air-Webhook-Event–automation.execution.succeededorautomation.execution.failedX-Air-Webhook-Format–jsonorslack-workflowUser-Agent–Air-Webhooks/1Content-Type–application/json
JSON format
For regular webhook URLs, JetBrains Air sends the payload in the json format.
Successful runs send the automation result in output.result. Failed runs send an error object with the failure details.
Example success payload:
Example failure payload:
Slack workflow format
If the destination URL matches https://hooks.slack.com/triggers/..., JetBrains Air sends the payload in the slack-workflow format.
This format is flattened because Slack workflow variables must be primitive strings.
On success, the generated result is sent in outputText. On failure, the error is sent in errorText.
Example success payload:
Example failure payload:
Configure environments for automations
Because automations run in cloud environments, they use the same environment model as cloud agent tasks.
If no environment configuration exists for the selected repository, JetBrains Air uses the default cloud environment. This is enough for simple cases.
If the automation needs specific dependencies, environment variables, secrets, or other runtime settings, create an environment configuration for the repository in advance.
For details, see Configure environments.
Visibility and sharing

Every automation has a privacy level.
Private – the automation is personal. Only its owner can view it, edit it, or run it manually. This is similar to cloud environment configurations, which are also personal entities.
Organization – the automation is visible to everyone in the organization. However, only its owner can edit it. Other users in the organization can view it and run it manually.