Route events with rules
Choose which events reach each connection, then narrow them by severity, scope, component, certificate and more.
3 min readUpdated
Every connection has two filters. Events decide what kind of thing it hears about. Rules decide which of those events go through: only high-severity reports, only incidents that affect checkout, only your SOC 2 certificate.
Events by module
| Group | Event | When it fires |
|---|---|---|
| Status page | Monitor down | A monitor failed its checks. |
| Status page | Monitor back up | A monitor that was down answers again. |
| Status page | Incident opened | Someone posted an incident on the status page. |
| Status page | Incident updated | A posted incident has a new update. |
| Status page | Incident resolved | An incident was marked resolved. |
| Status page | Maintenance scheduled, started, finished | A maintenance window was planned, began or ended. |
| Certificates | Certificate expiring | 90, 30 and 7 days before a certificate ends. |
| Certificates | Certificate expired | A certificate passed its end date. |
| Disclosure | New report | A researcher sent a report to your disclosure program. |
| Disclosure | Researcher replied | A researcher wrote back on a report. |
| Disclosure | Report status changed | A report moved to a new status. |
| Access and policies | Access request waiting | Someone asked for a document behind your NDA. |
| Access and policies | Policy published | A new version of a policy went live. |
Chat and webhooks can take every event. Issue trackers take reports and incidents, and on-call tools take the events that open or close an alert; see their guides for what each event does there.
Add a rule
Step 1: Open the routing
Open the connection in Settings › Integrations and choose Edit routing. The rule builder is titled Only send when.
Step 2: Add conditions
Choose Add a condition, pick what to filter on, how to compare and the values. Values for monitors, components, certificates, documents and policies come from your workspace.
Step 3: Match all or any
Choose All of these to need every condition, or Any of these to need one. Up to 20 conditions, each with up to 50 values.
Step 4: Read it back
In plain words says the rule as a sentence. Check it reads the way you mean, then save.
| Filter on | Events that carry it | Compare with |
|---|---|---|
| Severity | Reports | is any of, is none of |
| Asset or scope | Reports | contains, doesn’t contain, is any of, is none of |
| Weakness | Reports | contains, doesn’t contain, is any of, is none of |
| Monitor | Monitor down and back up | is any of, is none of |
| Component | Monitors, incidents, maintenance | is any of, is none of |
| Impact | Incidents | is any of, is none of |
| Certificate | Certificates | is any of, is none of |
| Framework | Certificates | contains, doesn’t contain, is any of, is none of |
| Document | Access requests | is any of, is none of |
| NDA version | Access requests | contains, doesn’t contain, is any of, is none of |
| Policy | Policy published | is any of, is none of |
- A condition only applies to events that carry what it filters on. A severity condition never holds back a monitor event, and an event with no matching conditions is sent.
- Text compares without case and ignores spaces at either end.
- An incident can affect several components. is any of passes when any of them is picked; is none of passes when none are.
- Leave the rules empty to send every event you picked.
Send to several places
Rules belong to a connection, so a route with two destinations is two connections with the same events and the same rule. Take this rule:
Step 1: Set up Slack
Connect Slack to #security and pick New report (add Researcher replied and Report status changed to follow it). Under Only send when, add Asset or scope contains
api.acme.comand Severity is any of High, Critical, with All of these.Step 2: Set up Jira
Connect Jira, keep Create an issue for every new report on, and add the same two conditions.
Step 3: Check the log
Reports that don’t match never reach either connection. The ones that do show in each connection’s delivery log.
Was this helpful?