When it fires
- Someone calls deny a tool call for a call that was waiting on approval.
- The tool never runs. Cadenya hands the
memoto the agent as its next instruction, so the objective keeps going.
Event data
The event-specific fields live atdata.objectiveEvent.data. The rest of the payload is the shared envelope.
string
required
Always
toolDenied. Switch on this, not on the outer type, when one handler serves several events.object
required
The denied call.
Handle it
Every SDK verifies the signature and returns the typed envelope in one call. The handler reads the raw body (not a parsed and re-serialized one), unwraps it, and returns a 2xx fast.SECRET to the key that handler uses, then run the script to see the event land.
Envelope
Every objective event arrives in the same envelope.type names the event, data carries the agent, variation, and objective it belongs to, and data.objectiveEvent.data holds the fields documented on each event page.
Headers
Headers
Cadenya signs every delivery per the Standard Webhooks specification and sends it as a
POST with a JSON body.Find the signing key under Account Admin and rotate it with rotate the webhook signing key. Cadenya records every attempt, and you can inspect them with list webhook deliveries.