POST request with a JSON body to your URL when it evaluates a conversation, ends a simulation, or fires an alert. The Events Webhook reference has the payload schemas.
Create a webhook
To create a webhook, open Settings → Webhooks in the workspace whose agents it should watch, and enter an HTTPS URL. A webhook fires only for agents in its own workspace. Copy the signing key to your receiver, which uses it to verify the signature of each request. To limit the webhook to some agents, select the agents or folders. A folder includes every agent in it. If you select no agents and no folders, the webhook fires for all agents in the workspace.Events
Verify the signature
Each request has anX-Bluejay-Signature header. The value is the hex HMAC-SHA256 of the raw body, signed with your webhook’s signing key.
- Read the raw request body. Do not parse and serialize the JSON again, because the signature uses the exact bytes.
- Compute
HMAC-SHA256(body, signing_key)as a hex digest. - Compare it to
X-Bluejay-Signaturewith a constant-time comparison. - If the values do not match, reject the request.
Delivery
- Requests come from
api.getbluejay.ai. If you use an allowlist, allow that host. - Bluejay sends each event once and does not retry.
Troubleshooting
If a webhook does not fire, do these checks:- Make sure the webhook is enabled.
- Make sure the event is selected.
- Make sure the agent is in the selected agents or folders.
- Make sure the agent and the webhook are in the same workspace.
- Check the tag. If a
POST /v1/evaluaterequest setswebhook_tag, only webhooks with that tag fire. If it does not, webhooks that have a tag do not fire. - Make sure your URL is reachable from the internet.