Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
efaefa9
docs(rum): bump Flutter SDK snippets to flashcat_flutter_plugin 0.2.0
Fiona2016 Sep 28, 2026
2d3df69
Merge pull request #506 from flashcatcloud/docs/flutter-sdk-0.2.0
Fiona2016 Sep 28, 2026
d4616a9
docs(rum): document remote configuration for Flutter
Fiona2016 Sep 28, 2026
b3a9098
docs: doc-review 2026-09-28 (diff) — CLI incident projection fields a…
Sep 28, 2026
b86c63d
Merge pull request #508 from flashcatcloud/doc-review/2026-09-28-080453
ysyneu Sep 28, 2026
a80d5f3
docs(change-integration): add GitHub change integration page
ysyneu Sep 28, 2026
c76e84b
docs(change): document the Failed change status
ysyneu Sep 28, 2026
abc7da8
Merge pull request #530 from flashcatcloud/feat/change-failed-status
ysyneu Sep 28, 2026
778f449
Merge pull request #524 from flashcatcloud/feat/github-change
ysyneu Sep 28, 2026
616caeb
docs(change): add GitLab change integration page
ysyneu Sep 28, 2026
5395913
docs(change): add LaunchDarkly change integration page
ysyneu Sep 28, 2026
ae669f5
docs(change): add Netlify change integration page
ysyneu Sep 28, 2026
659aa41
docs: add HCP Terraform change integration page
ysyneu Sep 28, 2026
152762a
Merge pull request #532 from flashcatcloud/feat/hcp-terraform-change
ysyneu Sep 28, 2026
a5dda62
docs(change): add Argo CD change integration
ysyneu Sep 28, 2026
c1bae38
docs(change): note the Netlify link fallback
ysyneu Sep 28, 2026
1e5cb36
Merge remote-tracking branch 'origin/feat/change-integrations' into f…
ysyneu Sep 28, 2026
0040079
Merge remote-tracking branch 'origin/feat/change-integrations' into f…
ysyneu Sep 28, 2026
597c4c7
Merge remote-tracking branch 'origin/feat/change-integrations' into f…
ysyneu Sep 28, 2026
2078314
Merge pull request #533 from flashcatcloud/feat/argocd-change
ysyneu Sep 28, 2026
f5968bb
Merge remote-tracking branch 'origin/feat/change-integrations' into f…
ysyneu Sep 28, 2026
ac52592
Merge remote-tracking branch 'origin/feat/change-integrations' into f…
ysyneu Sep 28, 2026
67ce615
docs: add JFrog Artifactory change integration page
ysyneu Sep 28, 2026
bfa3fea
Merge remote-tracking branch 'origin/feat/change-integrations' into f…
ysyneu Sep 28, 2026
7878363
Merge pull request #535 from flashcatcloud/feat/netlify-change
ysyneu Sep 28, 2026
9ba4e03
Merge pull request #534 from flashcatcloud/feat/gitlab-change
ysyneu Sep 28, 2026
90f632a
docs(change): add Vercel change integration page
ysyneu Sep 28, 2026
5815246
docs(change): note deleted scheduled changes are ignored
ysyneu Sep 28, 2026
05c1b59
Merge remote-tracking branch 'origin/feat/change-integrations' into f…
ysyneu Sep 28, 2026
12ac6ce
Merge remote-tracking branch 'origin/feat/change-integrations' into f…
ysyneu Sep 28, 2026
cf3a128
Merge pull request #536 from flashcatcloud/feat/vercel-change
ysyneu Sep 28, 2026
bd95e26
docs(change): add Jenkins change integration page
ysyneu Sep 28, 2026
b1567f1
docs(change): add Buildkite change integration page
ysyneu Sep 28, 2026
a0b43db
Merge remote-tracking branch 'origin/feat/change-integrations' into f…
ysyneu Sep 28, 2026
f7bc96c
Merge pull request #537 from flashcatcloud/feat/jfrog-artifactory-change
ysyneu Sep 28, 2026
0ea0678
Merge remote-tracking branch 'origin/feat/change-integrations' into f…
ysyneu Sep 28, 2026
c37d13b
Merge remote-tracking branch 'origin/feat/change-integrations' into f…
ysyneu Sep 28, 2026
88f089e
Merge pull request #539 from flashcatcloud/feat/buildkite-change
ysyneu Sep 28, 2026
7cfa0df
Merge remote-tracking branch 'origin/feat/change-integrations' into f…
ysyneu Sep 28, 2026
f1d4e64
Merge remote-tracking branch 'origin/feat/change-integrations' into f…
ysyneu Sep 28, 2026
c006113
Merge remote-tracking branch 'origin/feat/change-integrations' into f…
ysyneu Sep 28, 2026
5b88be5
Merge pull request #538 from flashcatcloud/feat/launchdarkly-change
ysyneu Sep 28, 2026
9c5154a
Merge remote-tracking branch 'origin/feat/change-integrations' into f…
ysyneu Sep 28, 2026
a8acc5d
Merge pull request #540 from flashcatcloud/feat/jenkins-change
ysyneu Sep 28, 2026
0c2653c
docs(change): list every Jenkins rejection reason
ysyneu Sep 28, 2026
cbe7f58
Merge pull request #541 from flashcatcloud/feat/jenkins-change-faq
ysyneu Sep 28, 2026
b881693
docs(rum): document on-error capture for Web SDK 0.3.0
Fiona2016 Sep 29, 2026
a483391
docs(stripe): match the current Workbench labels and cover every test…
ysyneu Sep 29, 2026
18e7e61
Merge pull request #556 from flashcatcloud/fix/stripe-integration-e2e
ysyneu Sep 29, 2026
4fae5e8
docs(argocd): describe the output of template notify
ysyneu Sep 29, 2026
ad7ead7
docs(argocd): describe the output of template notify
ysyneu Sep 29, 2026
51005fa
Merge pull request #571 from flashcatcloud/fix/argocd-integration-e2e
ysyneu Sep 29, 2026
9f6c7f1
Merge pull request #572 from flashcatcloud/fix/argocd-change-e2e
ysyneu Sep 29, 2026
dc74c1d
docs(jenkins-change): JUnit dependency, Credentials Store, QUEUED and…
ysyneu Sep 29, 2026
164b1c2
Merge pull request #573 from flashcatcloud/fix/jenkins-change-e2e
ysyneu Sep 29, 2026
4c1b9ff
docs(change): GitHub Actions deployments canceled on the run page sho…
ysyneu Sep 29, 2026
dc8854c
Merge pull request #574 from flashcatcloud/fix/github-change-e2e
ysyneu Sep 29, 2026
4687fd5
docs(netlify change): restore time, canceled builds, current event list
ysyneu Sep 29, 2026
b1518a5
Merge pull request #507 from flashcatcloud/docs/rum-flutter-remote-co…
Fiona2016 Sep 29, 2026
d19c91b
Merge pull request #578 from flashcatcloud/fix/netlify-change-e2e
ysyneu Sep 29, 2026
d124b17
docs(kentik): match the channel form, per-agent Synthetics alerts, te…
ysyneu Sep 29, 2026
5a0dfd3
Merge pull request #579 from flashcatcloud/fix/kentik-integration-e2e
ysyneu Sep 29, 2026
f905b78
docs(change): correct LaunchDarkly and HCP Terraform setup steps
ysyneu Sep 29, 2026
a237c84
Merge remote-tracking branch 'origin/main' into docs/web-on-error-cap…
Fiona2016 Sep 29, 2026
38cf5fc
Merge pull request #580 from flashcatcloud/fix/change-e2e-ld-hcp
ysyneu Sep 29, 2026
0dcc0b8
Merge pull request #554 from flashcatcloud/docs/web-on-error-capture
Fiona2016 Sep 29, 2026
a18a261
Merge pull request #589 from flashcatcloud/feat/alert-integrations
ysyneu Sep 29, 2026
f3664d0
docs(statuspal): note the data.object.title fallback for the alert title
ysyneu Sep 29, 2026
9701ada
fix(instatus): correct incident severity source and test-button claim
ysyneu Sep 29, 2026
e6f0877
Merge pull request #619 from flashcatcloud/fix/statuspal-alert-e2e
ysyneu Sep 29, 2026
5fc7b0f
Merge pull request #620 from flashcatcloud/fix/instatus-alert-e2e-docs
ysyneu Sep 29, 2026
4fd6087
Merge pull request #610 from flashcatcloud/feat/alert-batch5
ysyneu Sep 29, 2026
dae3577
Merge pull request #608 from flashcatcloud/feat/change-integrations
ysyneu Sep 29, 2026
4b9015a
api: document detail_url on AlertInfo and AlertItem
ysyneu Sep 29, 2026
0f8c119
Merge pull request #621 from flashcatcloud/docs/openapi-alert-detail-url
ysyneu Sep 29, 2026
a6d8206
Merge origin/main into feat/alert-batch7
ysyneu Sep 29, 2026
9087b17
Merge pull request #623 from flashcatcloud/chore/batch7-sync-main
ysyneu Sep 29, 2026
b2a8b57
docs(cfengine): match Mission Portal labels for custom action and rem…
ysyneu Sep 29, 2026
d7ce7c9
Merge pull request #625 from flashcatcloud/fix/cfengine-alert-e2e
ysyneu Sep 29, 2026
db47f62
Merge pull request #624 from flashcatcloud/feat/alert-batch7
ysyneu Sep 29, 2026
be5292e
Merge remote-tracking branch 'origin/main' into chore/batch6-sync-main
ysyneu Sep 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions api-reference/on-call.openapi.en.json
Original file line number Diff line number Diff line change
Expand Up @@ -30374,13 +30374,14 @@
},
"change_status": {
"type": "string",
"description": "Lifecycle status of the change event, reported by the change source as execution progresses.\n| Value | Meaning |\n|---|---|\n| `Planned` | Planned, not started. |\n| `Ready` | Ready for execution. |\n| `Processing` | Being executed. |\n| `Canceled` | Canceled. |\n| `Done` | Completed. |",
"description": "Lifecycle status of the change event, reported by the change source as execution progresses.\n| Value | Meaning |\n|---|---|\n| `Planned` | Planned, not started. |\n| `Ready` | Ready for execution. |\n| `Processing` | Being executed. |\n| `Canceled` | Canceled. |\n| `Done` | Completed. |\n| `Failed` | Failed. |",
"enum": [
"Planned",
"Ready",
"Processing",
"Canceled",
"Done"
"Done",
"Failed"
]
},
"link": {
Expand Down Expand Up @@ -30468,13 +30469,14 @@
},
"change_status": {
"type": "string",
"description": "Current lifecycle status of the change.\n| Value | Meaning |\n|---|---|\n| `Planned` | Planned, not started. |\n| `Ready` | Ready for execution. |\n| `Processing` | Being executed. |\n| `Canceled` | Canceled. |\n| `Done` | Completed. |",
"description": "Current lifecycle status of the change.\n| Value | Meaning |\n|---|---|\n| `Planned` | Planned, not started. |\n| `Ready` | Ready for execution. |\n| `Processing` | Being executed. |\n| `Canceled` | Canceled. |\n| `Done` | Completed. |\n| `Failed` | Failed. |",
"enum": [
"Planned",
"Ready",
"Processing",
"Canceled",
"Done"
"Done",
"Failed"
]
},
"start_time": {
Expand Down
10 changes: 6 additions & 4 deletions api-reference/on-call.openapi.zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -30374,13 +30374,14 @@
},
"change_status": {
"type": "string",
"description": "变更事件的生命周期状态。由变更事件源按执行进度上报。\n| 值 | 含义 |\n|---|---|\n| `Planned` | 已计划,尚未开始。 |\n| `Ready` | 已就绪,待执行。 |\n| `Processing` | 正在执行。 |\n| `Canceled` | 已取消。 |\n| `Done` | 已完成。 |",
"description": "变更事件的生命周期状态。由变更事件源按执行进度上报。\n| 值 | 含义 |\n|---|---|\n| `Planned` | 已计划,尚未开始。 |\n| `Ready` | 已就绪,待执行。 |\n| `Processing` | 正在执行。 |\n| `Canceled` | 已取消。 |\n| `Done` | 已完成。 |\n| `Failed` | 失败。 |",
"enum": [
"Planned",
"Ready",
"Processing",
"Canceled",
"Done"
"Done",
"Failed"
]
},
"link": {
Expand Down Expand Up @@ -30468,13 +30469,14 @@
},
"change_status": {
"type": "string",
"description": "变更的当前生命周期状态。\n| 取值 | 含义 |\n|---|---|\n| `Planned` | 已计划,未开始。 |\n| `Ready` | 就绪,待执行。 |\n| `Processing` | 执行中。 |\n| `Canceled` | 已取消。 |\n| `Done` | 已完成。 |",
"description": "变更的当前生命周期状态。\n| 取值 | 含义 |\n|---|---|\n| `Planned` | 已计划,未开始。 |\n| `Ready` | 就绪,待执行。 |\n| `Processing` | 执行中。 |\n| `Canceled` | 已取消。 |\n| `Done` | 已完成。 |\n| `Failed` | 失败。 |",
"enum": [
"Planned",
"Ready",
"Processing",
"Canceled",
"Done"
"Done",
"Failed"
]
},
"start_time": {
Expand Down
18 changes: 14 additions & 4 deletions api-reference/openapi.en.json
Original file line number Diff line number Diff line change
Expand Up @@ -1320,6 +1320,10 @@
"description": "Alert description.",
"type": "string"
},
"detail_url": {
"description": "Console URL of this alert (`{console}/alert/detail/{alert_id}`). Empty when the deployment has no console base configured.",
"type": "string"
},
"end_time": {
"description": "Unix timestamp (seconds) when the alert recovered. 0 if still active.",
"format": "int64",
Expand Down Expand Up @@ -1541,6 +1545,10 @@
"description": "Alert description.",
"type": "string"
},
"detail_url": {
"description": "Console URL of this alert (`{console}/alert/detail/{alert_id}`). Empty when the deployment has no console base configured.",
"type": "string"
},
"end_time": {
"description": "Resolution time, Unix epoch seconds. 0 if still active.",
"format": "int64",
Expand Down Expand Up @@ -4494,13 +4502,14 @@
"type": "string"
},
"change_status": {
"description": "Lifecycle status of the change event, reported by the change source as execution progresses.\n| Value | Meaning |\n|---|---|\n| `Planned` | Planned, not started. |\n| `Ready` | Ready for execution. |\n| `Processing` | Being executed. |\n| `Canceled` | Canceled. |\n| `Done` | Completed. |",
"description": "Lifecycle status of the change event, reported by the change source as execution progresses.\n| Value | Meaning |\n|---|---|\n| `Planned` | Planned, not started. |\n| `Ready` | Ready for execution. |\n| `Processing` | Being executed. |\n| `Canceled` | Canceled. |\n| `Done` | Completed. |\n| `Failed` | Failed. |",
"enum": [
"Planned",
"Ready",
"Processing",
"Canceled",
"Done"
"Done",
"Failed"
],
"type": "string"
},
Expand Down Expand Up @@ -4576,13 +4585,14 @@
"type": "string"
},
"change_status": {
"description": "Current lifecycle status of the change.\n| Value | Meaning |\n|---|---|\n| `Planned` | Planned, not started. |\n| `Ready` | Ready for execution. |\n| `Processing` | Being executed. |\n| `Canceled` | Canceled. |\n| `Done` | Completed. |",
"description": "Current lifecycle status of the change.\n| Value | Meaning |\n|---|---|\n| `Planned` | Planned, not started. |\n| `Ready` | Ready for execution. |\n| `Processing` | Being executed. |\n| `Canceled` | Canceled. |\n| `Done` | Completed. |\n| `Failed` | Failed. |",
"enum": [
"Planned",
"Ready",
"Processing",
"Canceled",
"Done"
"Done",
"Failed"
],
"type": "string"
},
Expand Down
6 changes: 4 additions & 2 deletions api-reference/openapi.legacy.zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -28938,7 +28938,8 @@
"Ready",
"Processing",
"Canceled",
"Done"
"Done",
"Failed"
]
},
"start_time": {
Expand Down Expand Up @@ -29007,7 +29008,8 @@
"Ready",
"Processing",
"Canceled",
"Done"
"Done",
"Failed"
],
"description": "变更状态"
},
Expand Down
18 changes: 14 additions & 4 deletions api-reference/openapi.zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -1320,6 +1320,10 @@
"description": "告警描述。",
"type": "string"
},
"detail_url": {
"description": "这条告警的控制台页面(`{控制台}/alert/detail/{alert_id}`)。部署没有配置控制台地址时为空。",
"type": "string"
},
"end_time": {
"description": "告警恢复的 Unix 时间戳(秒),仍活跃时为 0。",
"format": "int64",
Expand Down Expand Up @@ -1541,6 +1545,10 @@
"description": "告警描述。",
"type": "string"
},
"detail_url": {
"description": "这条告警的控制台页面(`{控制台}/alert/detail/{alert_id}`)。部署没有配置控制台地址时为空。",
"type": "string"
},
"end_time": {
"description": "恢复时间,Unix 时间戳(秒)。活跃时为 0。",
"format": "int64",
Expand Down Expand Up @@ -4494,13 +4502,14 @@
"type": "string"
},
"change_status": {
"description": "变更事件的生命周期状态。由变更事件源按执行进度上报。\n| 值 | 含义 |\n|---|---|\n| `Planned` | 已计划,尚未开始。 |\n| `Ready` | 已就绪,待执行。 |\n| `Processing` | 正在执行。 |\n| `Canceled` | 已取消。 |\n| `Done` | 已完成。 |",
"description": "变更事件的生命周期状态。由变更事件源按执行进度上报。\n| 值 | 含义 |\n|---|---|\n| `Planned` | 已计划,尚未开始。 |\n| `Ready` | 已就绪,待执行。 |\n| `Processing` | 正在执行。 |\n| `Canceled` | 已取消。 |\n| `Done` | 已完成。 |\n| `Failed` | 失败。 |",
"enum": [
"Planned",
"Ready",
"Processing",
"Canceled",
"Done"
"Done",
"Failed"
],
"type": "string"
},
Expand Down Expand Up @@ -4576,13 +4585,14 @@
"type": "string"
},
"change_status": {
"description": "变更的当前生命周期状态。\n| 取值 | 含义 |\n|---|---|\n| `Planned` | 已计划,未开始。 |\n| `Ready` | 就绪,待执行。 |\n| `Processing` | 执行中。 |\n| `Canceled` | 已取消。 |\n| `Done` | 已完成。 |",
"description": "变更的当前生命周期状态。\n| 取值 | 含义 |\n|---|---|\n| `Planned` | 已计划,未开始。 |\n| `Ready` | 就绪,待执行。 |\n| `Processing` | 执行中。 |\n| `Canceled` | 已取消。 |\n| `Done` | 已完成。 |\n| `Failed` | 失败。 |",
"enum": [
"Planned",
"Ready",
"Processing",
"Canceled",
"Done"
"Done",
"Failed"
],
"type": "string"
},
Expand Down
24 changes: 22 additions & 2 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -1825,7 +1825,17 @@
{
"group": "变更集成",
"pages": [
"zh/on-call/integration/change-integration/custom-event"
"zh/on-call/integration/change-integration/custom-event",
"zh/on-call/integration/change-integration/github",
"zh/on-call/integration/change-integration/gitlab",
"zh/on-call/integration/change-integration/hcp-terraform",
"zh/on-call/integration/change-integration/argocd",
"zh/on-call/integration/change-integration/netlify",
"zh/on-call/integration/change-integration/vercel",
"zh/on-call/integration/change-integration/jfrog-artifactory",
"zh/on-call/integration/change-integration/buildkite",
"zh/on-call/integration/change-integration/launchdarkly",
"zh/on-call/integration/change-integration/jenkins"
]
},
{
Expand Down Expand Up @@ -3274,7 +3284,17 @@
{
"group": "Change Integration",
"pages": [
"en/on-call/integration/change-integration/custom-event"
"en/on-call/integration/change-integration/custom-event",
"en/on-call/integration/change-integration/github",
"en/on-call/integration/change-integration/gitlab",
"en/on-call/integration/change-integration/hcp-terraform",
"en/on-call/integration/change-integration/argocd",
"en/on-call/integration/change-integration/netlify",
"en/on-call/integration/change-integration/vercel",
"en/on-call/integration/change-integration/jfrog-artifactory",
"en/on-call/integration/change-integration/buildkite",
"en/on-call/integration/change-integration/launchdarkly",
"en/on-call/integration/change-integration/jenkins"
]
},
{
Expand Down
4 changes: 2 additions & 2 deletions en/developer/cli.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -842,8 +842,8 @@ The following commands support `--fields` with `json` or `toon` output. Supply c

| Command | Structured output when `--fields` is omitted | Limit |
| --- | --- | --- |
| `flashduty incident list` | `incident_id`, `title`, `incident_severity`, `progress`, `start_time`, `channel_id` | 16 KiB |
| `flashduty incident similar <id>` | `incident_id`, `title`, `incident_severity`, `progress`, `start_time`, `close_time`, `ack_time`, `alert_cnt`, `root_cause`, `score` | 16 KiB |
| `flashduty incident list` | `incident_id`, `num`, `title`, `incident_severity`, `progress`, `start_time`, `channel_id`, `detail_url` | 16 KiB |
| `flashduty incident similar <id>` | `incident_id`, `num`, `title`, `incident_severity`, `progress`, `start_time`, `close_time`, `ack_time`, `alert_cnt`, `root_cause`, `score`, `detail_url` | 16 KiB |
| `flashduty incident detail <id>` | Returns full detail when `--fields` is omitted; otherwise returns only the selected fields | 8 KiB for projections only |
| `flashduty alert-event list` | `event_id`, `alert_id`, `event_severity`, `event_status`, `event_time`, `title` | 16 KiB |
| `flashduty channel escalate-rule-list <channel-id>` | `rule_id`, `rule_name`, `status`, `priority`, `filters` | 16 KiB |
Expand Down
2 changes: 1 addition & 1 deletion en/on-call/incident/search-view-incident.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ The change event list displays the following information:

| Column | Description |
| :--- | :--- |
| **Status** | Current status of the change event, including Planned, Ready, Processing, Canceled, Done |
| **Status** | Current status of the change event, including Planned, Ready, Processing, Canceled, Done, Failed |
| **Change Key** | Unique identifier of the change event |
| **Title** | Brief description of the change event |
| **Description** | Detailed information about the change event |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ kubectl exec -n argocd deploy/argocd-notifications-controller -- \
/usr/local/bin/argocd admin notifications template notify flashduty-health <app-name> --recipient flashduty
```

No error output means Flashduty accepted the request. When the application is `Healthy`, this is a recovery message and creates no alert; in an intermediate state such as `Progressing`, Flashduty ignores it.
The command prints debug logs of the request and response, including the full push URL with its `integration_key`, so do not paste the output anywhere public. A `200 OK` status on the `Received response:` line means Flashduty accepted the request. When the application is `Healthy`, this is a recovery message and creates no alert; in an intermediate state such as `Progressing`, Flashduty ignores it.

</Step>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,16 +60,16 @@ The script does not parse the parameter file. It sends every `KEY='VALUE'` line
<Step title="Upload the script">

1. Log in to Mission Portal, click **Settings** in the top right, and open **Custom notification scripts**
2. Click **Add script**, upload `flashduty_custom_action.sh`, and enter a name (for example `Flashduty`) and a description
2. Click **Add a script**, upload `flashduty_custom_action.sh`, and enter a name (for example `Flashduty`) and a description
3. Click **Save**

</Step>

<Step title="Associate the script with alerts">

On the **Dashboard**, create an alert or edit an existing one, select the `Flashduty` script uploaded in the previous step in the notification settings, and save. One script can be associated with many alerts; associate it with every alert that should reach Flashduty.
On the **Dashboard**, create an alert or edit an existing one, tick **Custom action** in the notification settings, tick the `Flashduty` script uploaded in the previous step, and save. One script can be associated with many alerts; associate it with every alert that should reach Flashduty.

To keep notifying while an alert stays triggered, choose a reminder interval in the alert's **Remind me** setting. Reminders also run the script, and Flashduty merges them into the existing alert.
To keep notifying while an alert stays triggered, choose a reminder interval after ticking **Set reminders** in the alert. Reminders also run the script, and Flashduty merges them into the existing alert.

</Step>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,9 @@ One integration can follow several status pages. Alerts from different pages are

<Step title="Verify">

Instatus has no button that sends a test notification. To verify:
Saving the subscriber sends a validation delivery right away (the **RUN** button next to the Webhook URL field sends another). Flashduty recognizes it and answers with success, no alert.

To verify with a real incident instead:

1. In Instatus, go to **Incidents** and click **Add incident**. Set the status to **Investigating**, select an affected component, set it to **Major outage**, then save and notify subscribers. Flashduty shows an incident alert and a component alert, both Critical
2. Add an update to that incident with the status **Resolved**, set the component back to **Operational**, and notify subscribers. Both alerts recover
Expand All @@ -79,7 +81,8 @@ Instatus sends one JSON payload each time an incident is added or updated, a com
| `incident.id` | Incident ID | Alert Key, label `incident_id` |
| `incident.name` | Incident name | Alert title |
| `incident.status` | Incident status | Alert status, label `incident_status` |
| `incident.impact` | Incident impact | Alert severity, label `impact` |
| `incident.impact` | Incident impact | Label `impact`, informational only: on an incident created through the Instatus dashboard this carries the same word as `status` (e.g. `Investigating`), not an outage severity |
| `incident.affected_components[].status` | Status of each affected component | Alert severity — the worst one across all affected components; used as a fallback only when there are none |
| `incident.url` | Incident link | Label `incident_url` |
| `incident.incident_updates` | Incident updates | The body of the latest update is the alert description, truncated above 8 KB |

Expand Down Expand Up @@ -122,15 +125,17 @@ Renaming an incident or component, or changing the impact, does not change the A

**Instatus incidents**

The alert severity comes from the impact (`impact`, which takes the same values as component status), and the alert status from the incident status (`status`):
The alert severity is the worst status across the incident's `affected_components` (same values as component status, only differently cased and spaced, e.g. `Major outage`), and the alert status comes from the incident status (`status`):

| Instatus `impact` | Flashduty severity |
| Instatus `affected_components[].status` | Flashduty severity |
| :--- | :--- |
| `MAJOROUTAGE` | Critical |
| `PARTIALOUTAGE` | Warning |
| `DEGRADEDPERFORMANCE`, `OPERATIONAL` | Info |
| `Major outage` | Critical |
| `Partial outage` | Warning |
| `Degraded performance`, `Operational` | Info |
| Empty or any other value | Warning |

An incident with no affected component falls back to the same mapping applied to `impact` instead — but on a dashboard-created incident, `impact` is usually just the `status` wording (e.g. `Investigating`), which matches none of these values and lands on Warning.

| Instatus `status` | Flashduty status |
| :--- | :--- |
| `INVESTIGATING`, `IDENTIFIED`, `MONITORING` | Trigger or update the alert |
Expand Down
Loading
Loading