Migrate from Better Stack
One-click import of your Better Stack (Uptime) monitors into HowlOps, plus a manual checklist for channels and status pages.
On this page
- Overview
- One-click monitor import (recommended)
- What gets imported
- Re-running is safe
- Manual steps (channels & status pages)
- Concept mapping
- Step 1: Recreate notification channels
- Step 2: Assign channels to monitors
- Step 3: Recreate your status page
- Step 4: Validate and cut over
- Differences to be aware of
- What's next
Overview
HowlOps imports your Better Stack Uptime monitors directly through the Better Stack API. Notification channels and status pages are still a short manual step because they do not 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
One-click monitor import (recommended)
- In HowlOps, go to Settings → Import (or start it from the onboarding wizard).
- Choose Better Stack and paste your API token (Better Stack: Uptime → API tokens). A read-only token is enough because the import only reads, and HowlOps never stores your token.
- 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.
- Tick the monitors you want and click Import. A progress bar shows
Importing 34/120…; a problem with one monitor never stops the rest. - You get a summary such as
117 imported, 3 skippedand a Download report CSV.
What gets imported
| Better Stack monitor type | HowlOps equivalent | Notes |
|---|---|---|
| Status / Expected status code | HTTP / HTTPS monitor | Direct equivalent |
| Keyword | HTTP monitor + keyword check | Maps to must contain |
| Keyword absence | HTTP monitor + keyword check | Maps to must not contain |
| Ping | Ping (ICMP) monitor | Host taken from the monitor URL |
| TCP | TCP monitor | Host and port taken from the monitor's target |
| UDP, SMTP, POP, IMAP, DNS, Playwright | not imported | HowlOps has no equivalent check type for these; see below |
- 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; a DNS resolution check can be recreated as a HowlOps DNS monitor.
- 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 the workspace's current minimum and the report records the adjustment. An imported monitor is not rejected only because its source interval is faster than the active HowlOps entitlement.
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 Stack | HowlOps equivalent | Notes |
|---|---|---|
| Status / Expected status code monitor | HTTP / HTTPS monitor | Direct equivalent |
| Ping monitor | Ping (ICMP) monitor | Direct equivalent |
| TCP monitor | TCP monitor | Direct equivalent: a raw TCP connect check, no payload inspection |
| UDP / SMTP / POP / IMAP / DNS / Playwright monitor | none | HowlOps does not have these monitor types (DNS resolution checks can be recreated manually as a HowlOps DNS monitor). For most "is the service up" cases, use an HTTP monitor against the service's health endpoint instead. |
| Keyword / Keyword absence monitor | HTTP monitor + keyword check | Keyword check is a setting on the HTTP monitor |
| On-call calendar | On-call schedule | Recreate manually: not covered by this importer |
| Integration | Notification channel | HowlOps calls them "channels" |
| Status page | Status page | More customisation options available |
The one-click import above handles the monitors, so you do not need to recreate them by hand. The steps below cover the parts the importer does not touch: notification channels and status pages.
Step 1: Recreate notification channels
In Integrations → + Add Channel, recreate each Better Stack integration:
| Better Stack integration | HowlOps channel type |
|---|---|
| Slack | Slack (Incoming Webhook) |
| Webhook | Custom Webhook |
| PagerDuty | PagerDuty |
| SMS / Phone call | SMS / 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:
- Open the monitor and click Edit.
- In the Notifications section, add the appropriate channels.
- Click Save.
Step 3: Recreate your status page
- Go to Status Pages → + New Status Page.
- Give it the same name and select the same monitors.
- 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:
- Let HowlOps run in parallel for at least 24 hours to confirm monitors are checking correctly.
- Trigger a deliberate test failure (take down a test endpoint briefly) to confirm alert delivery.
- Verify the status page looks correct.
Once you are confident everything is working:
- Disable or delete monitors in Better Stack.
- Update your DNS or subscriber links to point to the new HowlOps status page URL.
Differences to be aware of
- Check intervals: the importer applies the minimum returned for your current Uptime plan. Review current intervals on the pricing page.
- Probing regions: Select from the regions currently available to your workspace. The monitor form always shows the live list; Probing regions explains how regional results are combined.
- 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
- Concepts: Monitors: understand all monitor options
- Concepts: Escalation: set up escalation policies
- Tutorials: Public status page: configure your new status page
Was this page helpful?