Skip to main content

Outbound webhooks for Escalation Shield

Send Escalation Shield alerts to an external endpoint as JSON.

Written by Team Enterpret

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 POST requests with Content-Type: application/json

  • Any token, API key, or custom header value your endpoint requires

  • Permission to edit the automation

Your endpoint should return a 2xx response quickly. Enterpret times out webhook delivery after 5 seconds per attempt.


Set up an outbound webhook

  1. Open Automations in Enterpret.

  2. Open the Escalation Shield automation you want to configure.

  3. Click Edit.

  4. In the Alerts section, click Add webhook.

  5. Enter the webhook URL. The URL must start with https://.

  6. Choose an authentication method: None, Bearer Token, API Key (X-API-Key), or Custom Header.

  7. Enter the credential value. If you choose Custom Header, also enter the header name.

  8. Click Add webhook.

  9. 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

Authorization: Bearer <credential>

API Key

X-API-Key: <credential>

Custom Header

<custom-header-name>: <credential>


What your endpoint receives

Enterpret sends a POST request with JSON.

Each request includes:

  • Content-Type: application/json

  • User-Agent: SupportEscalationAutomation/1.0

  • Idempotency-Key: <automation_id>:<integration_id>:<record_id>

  • 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

automation_id

The Escalation Shield automation that fired.

org_id

Your Enterpret org slug.

escalated_at

When Enterpret sent the escalation alert.

levels.escalation_level

Discrete escalation level: low, mild, moderate, high, or extreme.

levels.emotional_intensity_level

Discrete emotional intensity level: low, mild, moderate, high, or extreme.

levels.sentiment_shift

Conversation sentiment movement, when available.

record.id

Enterpret feedback record ID.

record.url

Link to the feedback record in Enterpret.

record.source_url

Link to the source record, when available.

record.content_excerpt

The triggering feedback text.

record.created_at

Source timestamp for the feedback, when available.

record.source

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 any 2xx status to mark delivery successful. Non-2xx responses, timeouts, and network errors may be retried. Keep your endpoint idempotent by deduplicating on the Idempotency-Key header.


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 returns a 2xx response within 5 seconds.

  • The credential in Enterpret matches what your endpoint expects.

I see duplicate requests

Retries can happen when Enterpret does not receive a successful response. Deduplicate using the Idempotency-Key header.

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.


FAQs

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.

Did this answer your question?