Skip to main content
This guide covers a structured migration from Atlassian Statuspage to Observer. The two products share a customer-facing surface, but their backing models differ: Statuspage records component state manually or through an API call; Observer derives status from metrics that an agent collects in your network. Plan the migration around that difference.
Import toolThe Statuspage importer copies components, incident and maintenance history, and consenting email subscribers into an Observer page in one step. Use it for the steps below that move data, then follow the rest of this guide.

Model differences to plan for

Steps

1

Inventory the Statuspage account

Pull the list of:
  • Components and component groups (one row per metric to define in Observer).
  • Past 90 days of incidents (to keep as an archive you can link to from the Observer page).
  • Active subscribers, exported as CSV.
  • Webhook subscribers, with their endpoint URLs.
Statuspage’s REST API exposes each of these. The export from Account > Audit log captures incident history; the Subscribers page exports CSV directly.
2

Stand up the Observer side in parallel

Follow Define your first metric to install an agent and define a first reporting metric. Build out the remaining metrics, services, and SLOs without touching the Statuspage account. The two systems run side-by-side until the DNS cutover.For each Statuspage component, decide on the source signal:
  • A latency or error-rate query already in Prometheus (use the Prometheus probe).
  • An HTTP endpoint that returns 200 when the component is healthy (use the HTTP probe).
  • A TCP socket, DNS record, or TLS certificate (matching probe type).
If a Statuspage component has no measurable signal today, that is a signal of toil debt: the component’s “operational” state was the operator’s manual verdict. Pick the closest measurable proxy and document the gap.
3

Build the status page

Open Status pages > New status page in the Observer console. Recreate the public-facing layout: title, theme, services, metrics, SLO strip. The page is reachable on <subdomain>.use.observer immediately, before the DNS cutover.If the Statuspage account uses customer-scoped views (visible under different domains per customer), see Configure customer-scoped pages.
4

Bring over incident history

Run the Statuspage importer. Past incidents and finished maintenances arrive as published history with their original dates, and nobody is notified.
5

Migrate subscribers

The Statuspage importer moves active email subscribers when you confirm they agreed to hear from you, and can ask them to confirm with a single email. Invite anyone else to the new page’s subscribe form: email your existing subscribers during the migration window with a link to it. SMS subscribers need to be re-acquired the same way.For webhook destinations you operate yourself, add a destination with the Generic webhook channel under Alerts, point it at the same endpoint URL, and pick the events that match what the consumer expects. See Configure outbound webhooks and the Webhook payload reference.Slack, Teams, and webhook subscribers outside your team reconnect from the new page’s subscribe form, the same way email subscribers do. Their webhook payloads are described in the subscriber webhook reference.
6

Cut over DNS

When the Observer page renders correctly and all subscribers are migrated, add the hostname (commonly status.<domain>) in the page’s Custom domain section, CNAME it to cname.use.observer, and switch over once it reads Active. See Custom domain.Disable updates from the Statuspage API in your alerting and CI systems; the agent’s metric pushes now drive Observer’s status verdict. Cancel the Statuspage subscription after one billing cycle of overlap to allow rollback if the migration surfaces any gap.

API parity matrix

For teams wiring CI / IR automation, this table maps the Statuspage endpoint to its Observer equivalent. See Create incidents via API for end-to-end examples.

Common questions

Can both run in parallel during migration? Yes, and that is the recommended path. The agent reports to Observer; the Statuspage API stays in place until DNS cutover. Subscribers can be on either system during overlap. What about historical metric values? Observer’s history starts when the agent first reports; past metric values are not imported. How do I keep on-call alerting unchanged? Recreate each destination on the Alerts page (Slack, Teams, PagerDuty, generic webhook). See Configure outbound webhooks for the generic webhook and its signature scheme.
Talk to supportFor large accounts, contact support before you start.