How does the Incident.io integration work?

Last updated: October 27, 2026

The incident.io integration brings your incidents into Span so they count toward your DORA metrics: Mean time to recover, Total incidents, Incidents / week, and Change failure rate, by team.

Why it matters

Connecting incident.io puts reliability next to delivery speed. You can see whether faster shipping comes with more incidents, which teams recover fastest, and how incident load changes over time, without exporting data by hand.

How it works

Span connects to incident.io's API with an API key and syncs about every 2 hours. For each incident, Span stores the title, description, status, severity, created time, acknowledged time, resolved time, assigned responders, custom field values, and a link back to the incident in incident.io. Span also syncs incident.io users so it can link responders to people in Span.

Status and severity. Span normalizes incident.io statuses and severities so they line up with your other incident sources:

  • Status: statuses containing "acknowledged" become acknowledged; "resolved" or "merged" become resolved; "closed", "cancelled", or "declined" become closed; "triage", "triggered", "live", "investigating", "identified", "paused", "monitoring", or "learning" become open.

  • Severity: names containing "critical", "major", "high", "sev1", "sev2", "p0", or "p1" become high; "minor", "medium", "sev3", or "p2" become medium; "low", "trivial", "sev4", "p3", or "p4" become low.

DORA metrics powered by incident.io:

  • Mean time to recover: from the incident's creation time in incident.io to its latest "Resolved at" time. View the average, P50, P75, P90, or max.

  • Total incidents and Incidents / week: incidents created in the date range. incident.io incidents carry no environment in Span, so all of them count as production.

  • Change failure rate: production incidents ÷ successful production deployments in the same range. Span doesn't link each incident to the deployment that caused it, so CFR is a trend indicator. Deployments come from Span's DORA API, not from incident.io.

All DORA metrics are under Insights → Productivity → DORA. Browse the incidents themselves in Catalog → Incidents.

Teams. You choose one incident.io custom field that names the responsible team, then map each of its values to a Span team. Span credits each incident to the Span teams its field values map to. Incidents Span can't map to a team count in your organization total but not under any team.

Setup

  1. In incident.io, create an API key with read access.

  2. In Span, go to Settings → Integrations, find Incident.io in the incident management category, and click Connect.

  3. Enter your incident.io API key and save.

  4. In the integration's Team Mappings section, choose the Team Field in Incident.io, then pick the matching Incident.io Value for each Span Team.

  5. After the first sync, check Catalog → Incidents for your incidents and Insights → Productivity → DORA for MTTR.

Things to know

  • Data syncs about every 2 hours. A new incident or status change can take up to about 2 hours to appear. During an active incident, check incident.io directly.

  • MTTR starts at creation, not acknowledgment or impact. incident.io's own MTTR may start at "Impact started" or "Accepted at", so the two numbers can differ.

  • Unresolved incidents count as 0 in MTTR. An incident without a "Resolved at" time adds 0 hours and pulls the average down until it resolves. It still counts in Total incidents and Change failure rate.

  • Every status and severity counts. Declined, canceled, merged, and test incidents count in Total incidents, Change failure rate, and MTTR. incident.io's own reports may hide them, so Span's counts can be higher.

  • Environment tags don't filter incident.io incidents. Span treats every incident.io incident as production.

  • Map your team field. Without a team mapping, incidents count at the organization level only. Team-level incident counts and MTTR stay empty, and team change failure rate reads 0%.

  • The integration is read-only. Incidents you send through Span's DORA API stay in Span and don't sync back to incident.io.

  • Worked example. An incident is created at 10:00, acknowledged at 10:15, and resolved at 11:30. Span records 1 hour 30 minutes for MTTR. If you rely on the acknowledgment time instead, you would expect 1 hour 15 minutes.

Troubleshooting

  • No incidents in Span: check that the API key is valid and has read access, that incidents exist in your incident.io workspace, and wait for the next sync.

  • MTTR shows 0 or looks too low: look for incidents without a "Resolved at" time in Catalog → Incidents.

  • Incidents missing from a team: confirm the team field is set on those incidents in incident.io and that each value is mapped to a Span team.

Related articles

Mean Time To Recover (MTTR) Report

Change Failure Rate Report

Rootly Integration

How to use the DORA API to send deployment activity to Span

Need help?

Contact your Span account team or reach out to support@span.app.