In Flashduty On-call
You can obtain an 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 an 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, select Integration Center → Alert Events
- Select Ghost Inspector and enter an integration name
- Configure the default route and select a channel; after creation, add more rules under Route if needed
- 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
- Open the test, its suite, or the organization settings page, whichever level you want to configure
- Click Settings, then select Notifications in the left sidebar
- Under Webhooks, set Enabled to Yes (the default, Use suite setting, sends nothing unless the suite or organization has webhooks on), then click Add webhook
- Paste the full Flashduty push URL (it must include
integration_key) and keep the delivery option at Always send. Flashduty needs both failing and passing results; the other options, Passing result only and Failing result only, would stop the alert from opening or recovering - Click Save changes
2
Verify the lifecycle
- Run a test that will fail (for example, temporarily break one assertion step) and confirm Flashduty receives a Critical alert
- Fix the step and rerun the test until it passes, then confirm the original alert recovers
Alert key
Flashduty keys the alert on the test’s
test._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