Simulation hooks let you trigger webhook notifications on lifecycle events, making it straightforward to wire test results into a CI/CD pipeline. Hooks are only supported in voice mode and require the websocket transport — they will not trigger in chat mode.
Supported events:
simulation.run.started — fires when a simulation run beginssimulation.run.ended — fires when a simulation run ends, and includes pass/fail status
Example scenario with a CI/CD hook:
curl -X POST "https://api.sulus.ai/eval/simulation/scenario" \
-H "Authorization: Bearer $SULUS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Regression Suite with CI Hooks",
"instructions": "Complete the booking flow as a standard customer.",
"evaluations": [...],
"hooks": [
{
"on": "simulation.run.ended",
"do": [
{
"type": "webhook",
"server": {
"url": "https://your-ci-server.com/webhooks/simulation-ended"
},
"include": {
"transcript": true,
"messages": true,
"recordingUrl": true
}
}
]
}
]
}'
The simulation.run.ended webhook payload includes a status field (passed or failed) that your CI/CD system can use as a quality gate to block or allow a deployment. A recommended pipeline order is: fast smoke tests first, then named regression tests, then edge case tests, then the full simulation suite as the final gate before release.
In summary, Simulations complements Evals by testing your voice agent the way a real caller would experience it — over actual audio, with real transcription and real timing — and its webhook hooks make it straightforward to fold into an automated regression pipeline.