Docs
Ping the URL when the job finishes.
Create a monitor, then call its ping URL when the job finishes. Replace TOKEN with the token on the monitor page. Check-ins accept /ok, /fail, /start, and /progress, or a JSON body.
curl
# After the job, report success or failure using the exit code: curl -fsS -m 10 --retry 3 https://stallbell.com/p/TOKEN/$?
Python
import os, urllib.request
status = "ok" if os.environ.get("EXIT_CODE", "0") == "0" else "fail"
urllib.request.urlopen("https://stallbell.com/p/TOKEN/" + status, timeout=10).read()JavaScript
const status = process.exitCode ? "fail" : "ok";
await fetch("https://stallbell.com/p/TOKEN/" + status, { method: "POST" });GitHub Actions
- name: Tell Stallbell
if: always()
run: |
STATUS="${{ job.status == 'success' && 'ok' || 'fail' }}"
curl -fsS -m 10 --retry 3 -X POST "https://stallbell.com/p/TOKEN/$STATUS" \
-H 'content-type: application/json' \
-d '{"msg":"${{ github.workflow }}"}'n8n
Import n8n-stallbell.json and set the HTTP node URL to your ping URL. Import n8n-stallbell-error.json as the error workflow so a crashed run still checks in as a failure. Replace stallbell.com if your app URL is different.
Signed webhooks
Outbound alerts use Stallbell-Signature: t=unix,v1=hex. The hex is HMAC-SHA256 of t.body with the channel secret shown in the dashboard. Stallbell does not follow redirects.