DOCS

Migrate from Better Stack

One-click import of your Better Stack (Uptime) monitors into HowlOps — plus a manual checklist for channels and status pages.

Overview

HowlOps imports your Better Stack Uptime monitors directly over the Better Stack API. Notification channels and status pages are still a short manual step (they don't map one-to-one). Nothing in Better Stack is ever modified — the import only reads.

Time: a few minutes for monitors, plus a little for channels/status pages Prerequisites: a Better Stack Uptime API token; a HowlOps account


  1. In HowlOps, go to Settings → Import (or start it from the onboarding wizard).
  2. Choose Better Stack and paste your API token (Better Stack: Uptime → API tokens). A read-only token is enough — the import only reads, and HowlOps never stores your token.
  3. Click Load items to see a preview table of every monitor and what it maps to. Rows that can't be imported are shown in yellow with the reason.
  4. Tick the monitors you want and click Import. A progress bar shows Importing 34/120…; a problem with one monitor never stops the rest.
  5. You get a summary — 117 imported, 3 skipped — and a Download report CSV.

What gets imported

Better Stack monitor typeHowlOps equivalentNotes
Status / Expected status codeHTTP / HTTPS monitorDirect equivalent
KeywordHTTP monitor + keyword checkMaps to must contain
Keyword absenceHTTP monitor + keyword checkMaps to must not contain
PingPing (ICMP) monitorHost taken from the monitor URL
TCP, UDP, SMTP, POP, IMAP, DNS, Playwrightnot importedHowlOps has no equivalent check type for these — see below
  • TCP / UDP / SMTP / POP / IMAP / DNS / Playwright monitors are skipped with a reason in the report. For most "is the service up" cases, recreate them as an HTTP monitor against the service's health endpoint.
  • Keyword monitors with no keyword configured are still imported (as a plain HTTP-style check) with a note in the report — set the keyword afterwards in the monitor's settings if you want the check re-enabled.
  • Check intervals are clamped up to your plan's minimum and a note is added to the report (Better Stack's check frequency can go as low as 30 s depending on plan; HowlOps Uptime Free = 120 s, and paid plans go faster). Nothing fails just because an interval was too fast for your plan.

Re-running is safe

Every import is idempotent — HowlOps remembers which Better Stack monitor created which HowlOps monitor, so a second run updates or skips rather than duplicating. If an import is interrupted (e.g. a deploy restarts the service mid-run), just run it again.


Manual steps (channels & status pages)

The rest of the migration is a short manual checklist. The concepts map closely between the two platforms.

Concept mapping

Better StackHowlOps equivalentNotes
Status / Expected status code monitorHTTP / HTTPS monitorDirect equivalent
Ping monitorPing (ICMP) monitorDirect equivalent
TCP / UDP / SMTP / POP / IMAP / DNS / Playwright monitornoneHowlOps does not have these monitor types. For most "is the service up" cases, use an HTTP monitor against the service's health endpoint instead.
Keyword / Keyword absence monitorHTTP monitor + keyword checkKeyword check is a setting on the HTTP monitor
On-call calendarOn-call scheduleRecreate manually — not covered by this importer
IntegrationNotification channelHowlOps calls them "channels"
Status pageStatus pageMore customisation options available

Step 1: Recreate notification channels

In Integrations → + Add Channel, recreate each Better Stack integration:

Better Stack integrationHowlOps channel type
EmailEmail
SlackSlack (Incoming Webhook)
WebhookCustom Webhook
PagerDutyPagerDuty
SMS / Phone callSMS / Voice

After adding each channel, click Send Test Alert to verify it works before assigning it to monitors.


Step 2: Assign channels to monitors

For each monitor:

  1. Open the monitor and click Edit.
  2. In the Notifications section, add the appropriate channels.
  3. Click Save.

Step 3: Recreate your status page

  1. Go to Status Pages → + New Status Page.
  2. Give it the same name and select the same monitors.
  3. If you had a custom domain on Better Stack, follow the custom domain setup in Tutorials: Public status page.

Step 4: Validate and cut over

Before disabling Better Stack:

  1. Let HowlOps run in parallel for at least 24 hours to confirm monitors are checking correctly.
  2. Trigger a deliberate test failure (take down a test endpoint briefly) to confirm alert delivery.
  3. Verify the status page looks correct.

Once you are confident everything is working:

  1. Disable or delete monitors in Better Stack.
  2. Update your DNS or subscriber links to point to the new HowlOps status page URL.

Differences to be aware of

  • Check intervals: HowlOps Uptime Free has a 120-second minimum. Paid Uptime plans get faster intervals: 60 s on S, 30 s on M, down to 15 s on L.
  • Probing regions: HowlOps probes from four global regions — Nuremberg (EU), Helsinki (EU), N. California (US), and Singapore (Asia) — so you keep worldwide coverage when cutting over from Better Stack's checkpoints.
  • Heartbeats: if you were using Better Stack's heartbeat/cron monitoring, switch to native HowlOps heartbeats — they are not covered by this importer and need to be recreated (Heartbeats → + New Heartbeat).
  • On-call and escalation: Better Stack on-call schedules are not imported. Set up schedules and escalation policies in HowlOps to ensure alerts are not missed.

What's next

Was this page helpful?