Abrova
☰ Docs menu · Custom webhooks

Custom Webhooks

Send Abrova Trace error data to any HTTP endpoint via custom webhooks. Integrate with your incident tools, internal systems, or anything that accepts POST requests.

Last updated: 27 Oct 2026

Send error data to any HTTP endpoint via custom webhooks. Integrate with your incident tools, internal systems, or anything that accepts POST requests.

What you'll need.
  • An HTTP endpoint that accepts POST requests
  • (Optional) A signing secret to verify requests
  • Owner or admin access to the project
Works inside Iran. Webhooks are a good default channel in Iran: point them at your own server (or an internal tool reachable on the public internet) and no service outside the country is involved.

Which channels your project can use is shown on the Trace → Integrations page in Abrova Console.

Set Up Webhook Integration#

  1. In Abrova Console, open Trace → Integrations (integrations belong to the selected project)
  2. Click "Add integration" and choose Webhook (or "Connect" on the Webhook card)
  3. Enter a Name and fill in the configuration fields
  4. Click "Save channel" — or "Save and send test" to save and verify it
OptionTypeRequiredDescription
NamestringYesName for identification (e.g., "Incident bridge")
URLstringYesYour endpoint URL. Must start with https:// and be reachable on the public internet (e.g., https://your-server.com/api/abrova-trace-webhook)
Signing secretstringNoUsed to sign each request so your server can verify it

URL rules

  • The URL must use https:// and must not contain a user name or password.
  • The host must be a public address. Private, loopback and other internal addresses (for example localhost, 10.x.x.x, 192.168.x.x) are refused when you save and are never called.
  • Redirects are not followed: if your endpoint answers with a 3xx, the delivery counts as failed. Enter the final URL.

After saving

Managing integrations (add, edit, switch on/off, delete, test) needs the admin or owner role; every role can see them and their delivery log. See Roles & Permissions.

The URL and the signing secret are never shown again once saved: the form shows them as set (for the URL, only its scheme and host). Leave a field as it is to keep the saved value, or press Replace to enter a new one.

If you change the URL to a different host (or switch scheme or port), enter the signing secret again as well — a saved secret is never sent to a new destination on its own. Changing only the path on the same host keeps it.

Payload Format#

When an error is seen for the first time, AbrovaTrace sends a JSON POST request with the following structure:

json
{
"event": "error.new",
"timestamp": "2025-01-18T10:30:00.000Z",
"data": {
  "id": 456,
  "message": "TypeError: Cannot read property 'map' of undefined",
  "project": "My App",
  "environment": "production",
  "count": 1,
  "first_seen": "2025-01-18T10:30:00.000Z",
  "last_seen": "2025-01-18T10:30:00.000Z",
  "stack_trace": "...",
  "url": "https://myapp.com/checkout",
  "user_agent": "Mozilla/5.0 ..."
}
}

Alert rules and cron monitors connected to this webhook send alert.triggered / alert.resolved events instead, with data holding rule_name, rule_type, metric_value, threshold, operator, window_minutes, project and environment.

Signature

When a signing secret is set, each request carries:

  • X-AbrovaTrace-Signature: sha256=<hex> — HMAC-SHA256 of the JSON body, keyed with your secret
  • X-AbrovaTrace-Timestamp — the send time in milliseconds

Best Practices#

Verify Signatures

Use the secret to verify incoming requests are from AbrovaTrace

Respond Quickly

Return a 2xx response within 10 seconds — slower, redirect (3xx) or other non-2xx responses count as failed

Check the Delivery Log

Failed deliveries are not retried; they show as failed in the integration's delivery log

Was this page helpful?
Report a problem