Outbound webhooks for Escalation Shield
In this article
In this article group
Outbound webhooks let Escalation Shield send each alert to an external system you own. Use them to route high-risk customer feedback into an internal queue, incident workflow, CRM, ticketing system, or escalation router.
This is different from Enterpret's Webhook Integration, which sends feedback into Enterpret. Outbound webhooks send Escalation Shield alerts out of Enterpret.
Before you start
You need:
An Escalation Shield automation in Enterpret
An HTTPS endpoint that can accept
POSTrequests withContent-Type: application/jsonAny token, API key, or custom header value your endpoint requires
Permission to edit the automation
Your endpoint should return a 2xx response promptly. The legacy sender uses a 5-second timeout per attempt; Agent-powered webhook delivery uses a different transport and does not automatically retry an uncertain POST. Acknowledge accepted requests quickly and process longer work asynchronously.
Set up an outbound webhook
Open Automations in Enterpret.
Open the Escalation Shield automation you want to configure.
Click Edit.
In delivery settings, select Webhook and choose Add webhook when offered. Older editors may show this under Alerts.
Enter the webhook URL. The URL must start with
https://.Choose an authentication method: None, Bearer Token, API Key (X-API-Key), or Custom Header.
Enter the credential value. If you choose Custom Header, also enter the header name.
Click Add webhook.
Click Save changes.
You can use a webhook destination alongside Slack and email destinations. Credentials are encrypted at rest.
If you need to send the same alert to several external systems, point the webhook at a relay endpoint that fans out to those systems.
Authentication options
Option | Header sent |
None | No authentication header |
Bearer Token |
|
API Key |
|
Custom Header |
|
What your endpoint receives
Enterpret sends a POST request with JSON.
Each request includes:
Content-Type: application/jsonUser-Agent can vary by delivery path; do not use a fixed value to authenticate requestsIdempotency-Key: <opaque delivery key>The authentication header you configured, if any
Use the Idempotency-Key header to deduplicate retries. The payload contains the automation ID, stable escalation levels, and a compact record summary.
Example payload
{ "automation_id": "automation-uuid", "org_id": "your-org", "escalated_at": "2026-06-27T12:00:00Z", "levels": { "escalation_level": "extreme", "emotional_intensity_level": "extreme", "sentiment_shift": "sentiment degraded" }, "record": { "id": "record-id", "url": "https://dashboard.enterpret.com/your-org/record/record-id", "source_url": "https://your-source-system.example.com/tickets/12345", "content_excerpt": "The customer message that triggered the alert", "created_at": "2026-06-27T11:58:00Z", "source": "ZendeskSupport" } }
Field reference
Field | Description |
| The Escalation Shield automation that fired. |
| Your Enterpret org slug. |
| When Enterpret constructed the escalation payload; this is not proof of successful delivery. |
| Discrete escalation level: |
| Discrete emotional intensity level: |
| Conversation sentiment movement, when available. |
| Enterpret feedback record ID. |
| Link to the feedback record in Enterpret. |
| Link to the source record, when available. |
| An excerpt of the triggering feedback text. Agent-powered payloads can truncate long text and metadata to fit their size limits. |
| Source timestamp for the feedback, when available. |
| Enterpret source identifier. |
Delivery behavior
Escalation Shield runs in the background and sends webhook alerts when it detects escalation risk. Delivery is not a user-session action; alerts are sent from Enterpret's background automation.
Return a 2xx status after accepting the request. Legacy delivery can retry failures. Agent-powered webhook sends do not automatically retry an uncertain or unsuccessful POST because your system may already have processed it. Treat Idempotency-Key as an opaque value and deduplicate repeated values; its format differs by delivery path.
Troubleshooting
I do not see webhook alerts
Check that:
The automation is active.
The automation has a matching feedback filter.
The webhook URL starts with
https://.Your endpoint promptly returns a 2xx response after accepting the request.
The credential in Enterpret matches what your endpoint expects.
I see duplicate requests
Legacy delivery can retry when it does not receive a successful response. Agent-powered sends report failures without automatically retrying an uncertain POST. Duplicate requests are still possible; deduplicate repeated Idempotency-Key values and inspect delivery results before manually retrying.
My endpoint rejects the request
Confirm the authentication method matches your endpoint:
Bearer Token expects
Authorization: Bearer <credential>.API Key expects
X-API-Key: <credential>.Custom Header sends the credential under the header name you provide.
My endpoint receives the alert but cannot route it
Use automation_id, levels, record.source, and record.source_url for routing where possible. If you need additional source-system fields, fetch them from your source system using the source link or record ID.
Frequently asked questions
Is this the same as the Webhook Integration?
No. The Webhook Integration sends feedback into Enterpret. Outbound webhooks send Escalation Shield alerts out of Enterpret.
Can I still send alerts to Slack or email?
Yes. A webhook can be used alongside Slack and email alert destinations.
What fields should I use for routing?
Use automation_id to identify the automation, levels for escalation severity, record.source for source-aware routing, and record.url, record.source_url, or record.id to connect the alert back to a record.
What should my endpoint return?
Return a 2xx response after accepting the alert. If your processing takes longer than a few seconds, acknowledge the request first and process it asynchronously.