Skybot Scheduler

Page your on-call team when a Skybot Scheduler job fails, and let them fix it from the alert. Skybot sends each failure as a signed event to JAMS Incident Management, which calls, texts, pushes or posts to Teams/Slack until someone responds. The responder can Restart the job, Run it now, End the run, Hold the job or Skip it in its suite β€” by pressing a key or speaking on a call, replying to a text, or tapping a button.

Plan availability: The Skybot Scheduler integration is included on the Starter plan and up. See Plans & Billing.

Requires Skybot Scheduler 5.0.48 or later. That release adds the webhook destinations and API tokens this integration uses. Earlier versions cannot send events to JAMS Incident Management.

How it works

There are two parts, and you can set up the first without the second:

PartWhat it needsWhat you get
AlertsA webhook destination in SkybotFailed, canceled and error runs page your on-call team. Responders can Acknowledge.
Job actionsThe JAMS Incident Connector (Agent) on a server that can reach Skybot, plus a Skybot API tokenRestart, Run now, End, Hold and Skip from the alert.

Skybot sends alerts straight to JAMS Incident Management over HTTPS. Job actions are run by the Agent inside your network, so Skybot is never opened to the internet and its API token never leaves your network.

What you'll need

  • Skybot Scheduler 5.0.48 or later, and admin access to its System Settings.
  • Admin access in JAMS Incident Management.
  • For job actions: a Windows or Linux server that can reach Skybot's web address.

Step 1 β€” Create a Skybot connection

  1. Open Integrations β†’ Skybot Scheduler (under Schedulers in the sidebar).
  2. Click Create a Skybot Connection and enter a Connection name (e.g. Skybot Prod).
  3. Choose who gets notified (people, groups, on-call schedules or Teams/Slack channels) and the channels to use.
  4. Set the escalation interval β€” how long to wait for each person before moving to the next.
  5. Click Save Connection. (There is no signing secret yet: Skybot creates it in Step 2.)

JAMS Incident Management shows your webhook URL and the setup steps, with a box for the signing secret. They stay on the connection until the secret is saved.

Step 2 β€” Add a webhook destination in Skybot

  1. In Skybot, open Admin β€Ί System Settings β€Ί Webhooks β€Ί Edit.
  2. Set the Web UI Address to the address people open Skybot with (e.g. https://skybot.example.com:8008/automate-schedule). Alerts then include a link straight to the run.
  3. Under Add a Webhook Destination, enter a name (e.g. JAMS Incident Management) and paste the webhook URL from Step 1.
  4. Under Send Events For, keep Failed, Error and Canceled ticked. Also tick Completed (see below). Tick Skipped or Condition Retry Wait if you want to be paged for those too.
  5. Optionally fill in Only Jobs Tagged to page for some jobs only.
  6. Save.

Why tick Completed? Completed runs never page anyone. But when someone restarts a failed job directly in Skybot and the restart succeeds, the Completed event is what tells JAMS Incident Management to stop alerting about the original failure.

Step 3 β€” Copy the signing secret to the connection

  1. Skybot creates the destination's Signing Secret when you save it. Reopen the Webhooks section and copy it.
  2. In JAMS Incident Management, paste it into the box under step 2 of the connection's setup steps and click Save secret. (To replace it later, open Show the Skybot setup steps on the connection.)

Every event Skybot sends is signed with this secret. JAMS Incident Management refuses anything that isn't, so nobody who learns the URL can raise alerts. Until the secret is saved, deliveries are refused β€” Skybot keeps retrying them for about a day, so nothing sent in the meantime is lost.

Step 4 β€” Send a test event

In Skybot, click Send Test Event on the destination. Within a few seconds the connection in JAMS Incident Management shows Skybot's test event arrived. A test event never pages anyone.

If the connection shows a red delivery was rejected message instead, it says why β€” usually the signing secret was not copied exactly, or the Skybot server's clock is more than five minutes off.


Set up job actions (optional)

Without this, alerts offer Acknowledge only.

1. Create an API token in Skybot

  1. In Skybot, create a user for JAMS Incident Management to act as (a "service account"). Give it a role that allows only the actions you plan to offer β€” Skybot checks this role on every action.
  2. On that user's page, under API Tokens, create a token and copy it. It is shown only once.
  3. Make sure Admin β€Ί System Settings β€Ί Configure Features β€Ί Allow web service requests is on.

API tokens don't expire and don't depend on the user's password. A token stops working only if it is revoked or its user is disabled.

2. Install the Agent

  1. In JAMS Incident Management, under Agents for job actions, enter a name and click Add an Agent. Copy the pairing token β€” it is shown only once.
  2. Windows: download and run the installer. In the setup window, paste the pairing token; setup recognises it as a Skybot Agent and asks for the Skybot address (the same Web UI Address, ending in /automate-schedule) and the API token. Click Test connection, then Save & Start.
  3. Linux: use Download for Linux (.tar.gz) and follow Installing the Agent on Linux. The installer offers the guided setup: paste the pairing token, then the Skybot address and API token. Setup tests them before saving.

The Agent only makes outbound connections β€” to JAMS Incident Management and to Skybot.

3. Pick the Agent and choose the actions

  1. In JAMS Incident Management, Edit the connection. Under Job actions from the alert, pick the Agent.
  2. Tick the actions recipients may take:
ActionOffered forWhat Skybot does
Restart the jobFailed, error, canceled or skipped runs (not job suite runs)Starts a new run.
Run it now, ignoring conditionsRuns waiting in Condition Retry-WaitRuns it immediately.
End the runRuns waiting in Condition Retry-WaitEnds it as Canceled.
Hold the jobAny run (off by default)Holds the job definition: future runs wait until someone releases it in Skybot.
Skip future runsSuite member runs (off by default)The job is skipped in every later run of its suite, not just the next one, until it is included again in Skybot. It does not resume the run that failed; use Restart for that.
  1. Save Changes, then click Test actions on the connection. JAMS Incident Management asks the Agent to reach Skybot and use the token; the result appears on the connection, including the Skybot version.

An action is only offered when it fits the run, so a failed job offers Restart but not End. Turning an action off also refuses it on alerts that were already sent.


What the responder sees and hears

A voice call says what failed and offers the actions, for example: "Skybot job NIGHTLY BACKUP failed. Press 1 or say acknowledge to acknowledge. Press 2 or say restart to restart the job." SMS and WhatsApp list the same choices as numbered replies, and Teams, Slack and the mobile app show them as buttons.

When an action works, the alert is acknowledged for everyone and the escalation stops; the responder is told the result, e.g. "NIGHTLY BACKUP has been restarted as run 1004." When Skybot refuses β€” for example, the run was already restarted β€” the responder hears Skybot's reason, and the alert stays open.

After a restart, two options on the connection (both on by default) decide what you hear next:

  • Notify when the restart completes β€” the people who were paged get a short "completed after restart" notice. This needs Completed ticked on the Skybot destination, and it works for restarts done from the alert or directly in Skybot.
  • Notify when the restart fails again β€” the restarted run pages as a new alert, with the same job actions, even if it fails seconds after the first one. The earlier alert is closed with a note pointing to the new one. Turn it off if only the first failure of a job should page.

Troubleshooting

  • "Nothing has arrived from Skybot yet" β€” check that the Skybot server can reach the internet over HTTPS (through your proxy if you use one), and click Send Test Event again. Skybot lists recent deliveries and their errors under each destination in System Settings.
  • "The delivery was rejected: signature does not match" β€” copy the Signing Secret from Skybot into the connection again.
  • "Skybot rejected the API token (401)" β€” the token was revoked, its user was disabled, or Allow web service requests is off in Skybot.
  • The Agent reached an older Skybot β€” upgrade Skybot to 5.0.48 or later.
  • A job action says "not authorized" β€” the role of the Skybot user behind the API token doesn't allow that action.