Appearance
Webhooks
Kealink can post to a URL of yours whenever an alert opens or closes, alongside the alert email. Ask your Kealink contact to set your company's webhook URL. It must start with https://.
Slack
Give a Slack incoming webhook URL (https://hooks.slack.com/...) and Kealink posts a Slack message with the alert, its detail and a link to the machine.
Any other URL
Kealink sends POST with Content-Type: application/json and User-Agent: Kealink-Alerts/1, one request per alert:
json
{
"event": "alert.opened",
"alert": {
"id": "01j9x5a1b2c3d4e5f6g7h8j9k0",
"kind": "high",
"openedAt": "2026-10-24T02:15:00.000Z",
"closedAt": null,
"triggerValue": 92.4,
"machine": { "id": "01j9x4n7k2b3q8r5t6v7w8x9y0", "name": "CNC 3" },
"device": null,
"point": { "label": "Spindle temperature", "unit": "°C", "lowLimit": null, "highLimit": 90 },
"company": "Your company",
"link": "https://app.kealink.co.nz/machines/01j9x4n7k2b3q8r5t6v7w8x9y0"
},
"subject": "Alert: Spindle temperature high on CNC 3",
"text": "The same message as the alert email, as plain text."
}| Field | Meaning |
|---|---|
event | alert.opened or alert.closed |
alert.kind | high, low or offline |
alert.point | The reading, or null for an offline alert |
alert.device | The gateway the machine is on, when it has one |
alert.link | The machine in your portal |
Delivery
- Sent right after the alert email: once when the alert opens, once when it is back to normal.
- Your endpoint has 10 seconds to answer with a 2xx status.
- Best effort: a failed delivery is not retried. Use the alerts API to catch up after an outage on your side.