In Flashduty On-call
You can get the integration push URL in either of the following ways.Use a dedicated integration
- In the Flashduty console, select Channel and open a channel
- Select Configuration → Integrations → Private integration, then click Add integration
- Select Ghost Inspector, then click Save
- Open the generated integration card and copy the Push URL
Use a shared integration
- In the Flashduty console, go to Integration Center → Alert Events
- Select Ghost Inspector and enter an integration name
- Configure the default route and select a channel. You can add more rules under Routing after creation
- Click Save and copy the generated Push URL
Configure Ghost Inspector
Ghost Inspector’s notification settings have three levels — organization, suite, and test — and each level inherits from the one above by default, though you can override it at any level. Pick whichever level matches how broadly you want the webhook applied; setting it at the organization or suite level covers every test underneath at once.1
Add a webhook in Ghost Inspector
Where: Ghost Inspector › Settings › NotificationsOn the settings page of a test, a suite, or the organization, open Settings and choose Notifications in the left sidebar.
After filling in the fields, click Add webhook, then Save changes.
2
Verify the lifecycle
- Run a test that fails (for example, temporarily break an assertion step) and confirm Flashduty receives a Critical alert and the integration shows its Latest event time
- Restore the step and run the test again until it passes, then confirm the alert recovers
Alert key
Flashduty keys the alert on the test’stest._id, the data.test._id field in the webhook body. Ghost Inspector sends the same test._id on every run of that test — unlike data._id, the id of that individual run’s result, which is different every time — so a failing run and the later passing run of the same test reliably map to one alert. Changes to the test name, browser, region, or start/end URL do not change the alert key.
Status and severity
Ghost Inspector has no severity levels, only a pass/fail result:
A request missing the
passing field is rejected, so Flashduty never treats an indeterminate result as a failure.
Labels
Troubleshooting
- Flashduty returns a parameter error: confirm the push URL includes
integration_key, and the payload includesdata.test._idanddata.passing - The alert never recovers: confirm the recovery came from the same test, and that the level you configured the webhook at (test, suite, or organization) actually covers it
- A passing run created no new alert — this is expected: a passing result with no matching open alert leaves nothing behind