Receive alerts from external services directly into Task Ember's Inbox.
Webhooks let you connect external monitoring tools, CI/CD pipelines, or any HTTP-capable service to Task Ember. When an event occurs, the service sends a POST request to your webhook URL, and an alert appears in the Inbox.
You'll receive:
Send a POST request to your webhook URL with the API key, a delivery id and a request signature in the headers:
POST https://apim-taskember.azure-api.net/webhook/{databaseId}/{webhookId}
Header: x-api-key: {your-api-key}
Header: x-idempotency-key: {unique delivery id}
Header: x-taskember-timestamp: {unix seconds}
Header: x-taskember-signature: sha256={hex}
Content-Type: application/json
{
"title": "Alert title",
"severity": "critical" | "warning" | "info",
"message": "Optional description",
"source": "Service name",
"metadata": {
"key": "value"
}
}
The signature is an HMAC-SHA256 over {timestamp}\n{delivery id}\n{raw body}
(the timestamp, the delivery id and the exact body bytes, joined by newlines),
keyed with your webhook's signing secret and sent hex-encoded. The API key still
goes in x-api-key, but it is never the signing key. The timestamp must be
within 300 seconds of the receiver's clock.
The delivery id is the value of the x-idempotency-key header, or
x-event-id if that is absent. If you send neither, sign an empty delivery id.
x-request-id is never used, because proxies can add or rewrite it. Always
send x-idempotency-key: Task Ember drops duplicate deliveries by this id, so
send a new unique value (a UUID works) for each delivery and reuse it only when
retrying the same one. Signing it stops a captured request being replayed under
a new id.
See the API Reference for worked cURL and PowerShell examples.
Webhooks provisioned for an uptime heartbeat monitor are the exception: their pings cannot sign, so they are accepted on the API key alone.
Open the webhook card and click Rotate signing secret in the Signing secret row. The new secret is shown once, and requests signed with the old one are rejected straight away, so update your senders right after.
Webhooks created before signing secrets existed are still signed the old way:
an HMAC-SHA256 over {timestamp}.{raw body}, keyed with the API key. Because
the API key travels with every request, click Generate signing secret on
the webhook card to move the webhook onto its own secret.
| Severity | Use For |
|---|---|
| critical | Service outages, security events, failed deployments |
| warning | Performance degradation, disk space low, certificate expiry |
| info | Successful deployments, scheduled maintenance, status updates |
You can share webhooks with other users in your portal:
Attach documentation to webhooks so Ask Ember (the AI assistant) can reference them when answering questions about alerts.
The AI assistant in the Inbox can help you understand and triage webhook alerts. It reads:
Assign funds to Ask Ember and ask questions like:
Configure automated actions that trigger when your webhook receives alerts:
Actions can filter by severity, source, or metadata to route alerts appropriately.