Jobs
Jobs call your webhooks. A job sends one HTTP request to a URL, either when an operator presses Run or automatically on a schedule.
Jobs has no module On/Off switch. It is always available on a game, and each job is paused or resumed on its own.
Webhook request
| Field | Description |
|---|---|
| URL | The endpoint RoControl calls |
| Method | GET, POST, PUT, or PATCH |
| Headers | Optional, one Name: value per line |
| JSON body | Optional JSON sent with the request |
Headers and the JSON body are under Headers, body and limits in the job editor.
If the JSON body is empty, RoControl sends this payload:
{
"jobId": "JOB_ID",
"gameId": "GAME_ID",
"trigger": "schedule",
"runAt": "2026-05-08T18:00:00.000Z"
}trigger is manual when the job was started with Run, and schedule when
it ran on its schedule.
Trigger
| Trigger | Value | Use it for |
|---|---|---|
| Only when I run it | MANUAL | Keep the job available for one-click operator runs |
| On a schedule | SCHEDULE | Run once or repeat automatically |
Schedule options
| Option | Description |
|---|---|
| First run | Date and time of the first run |
| Repeat | Once, every hour, every day, every week, every month, or every year |
| Every N | Interval for the repeat, for example every 2 days |
| Retries after a failure | 0 to 10 extra attempts when the webhook call fails |
Condition: only run between
A job can have an optional Only run between condition (TIME_WINDOW) with a
start time and an end time. Outside that window the job is skipped instead of
calling the webhook.
Run and Pause
- Run tries the job once, right away. It does not move the schedule: the next scheduled run stays the same.
- Pause holds a scheduled job until you Resume it. Jobs are paused and resumed one by one from each job’s menu.
Job status
| Status | Meaning |
|---|---|
| Active | Waiting for its next run, or ready to run |
| Paused | Schedule on hold until the job is resumed |
| Done | A scheduled job with no runs left, such as a Once job that has run |
| Failed | The last scheduled run failed and no retries were left |
Example: announce a weekend event
Create a scheduled job:
Name: Announce weekend event
Method: POST
URL: https://example.com/liveops/event
When: On a schedule
First run: 2026-05-08 18:00
Repeat: Every week
Retries after a failure: 2
JSON body: { "content": "Lucky Weekend starts now!" }Operator flow:
- Open the game in the sidebar and select Jobs.
- Click New job.
- Name the job, then choose the method and enter the URL.
- Under When, choose On a schedule.
- Set the first run, the repeat, and the interval.
- Open Headers, body and limits to add the JSON body and retries.
- Click Create job and check the run summary in the job list.
Example: webhook notification
Use a manual job when an external system needs to know about a liveops action that an operator starts.
{
"name": "Notify Discord Bridge",
"triggerType": "MANUAL",
"method": "POST",
"url": "https://example.com/liveops/event",
"body": {
"game": "Arena Events",
"event": "Lucky Weekend",
"state": "started"
}
}Press Run whenever the action happens.
Safe operation checklist
Before saving a scheduled job for a live game:
- Confirm the game and the URL.
- Test the endpoint once with Run.
- Check the first run time and the repeat.
- Add an Only run between window if a run outside the event would be risky.
- Set retries only when the endpoint is safe to call again.