Tutorials

Migrate from UptimeRobot

Import UptimeRobot monitors safely, review fidelity, and complete the remaining cutover manually.

Overview

HowlOps reads UptimeRobot v3 (with a monitor-only legacy v2 compatibility path) and can create supported monitors, heartbeats, maintenance windows, and unpublished status pages. It does not modify UptimeRobot and does not store the source API key. Before you select anything, preview classifies each row as Exact, Imports with changes, Needs review, or Unsupported.

Notification contacts, integrations, groups, and tags are fetched as secret-free inventory, not activated as standalone HowlOps resources. Incident and performance history is not migrated. Use the cutover checklist below for everything the provider API cannot transfer safely.

Time: a few minutes for monitors, plus manual validation and cutover

Prerequisites: a UptimeRobot Read-only API key and a HowlOps account

Run the monitor import

  1. In UptimeRobot, open Integrations & API → API and create a Read-only API key. A write-capable Main API key is not required.
  2. In HowlOps, go to Settings → Import, choose UptimeRobot, paste that key, and confirm the source account's IANA timezone (for example Europe/Prague). UptimeRobot does not expose this setting through its API; HowlOps needs it to interpret maintenance-window wall-clock times.
  3. Run the read-only preview. Nothing is created during preview. Review every fidelity badge, warning, and expanded Details section.
  4. Exact, dependency-complete rows may be selected by default. Lossy rows require an explicit selection. Missing or unknown fidelity is never treated as Exact or preselected. Unsupported rows cannot be imported. Paused monitors and heartbeats remain paused; an otherwise active lossy monitor is also staged paused until you verify its replacement notification channels and changed behavior.
  5. Confirm the selected rows. One item-level creation error does not stop later items; an authentication, pagination, or malformed provider response fails the read safely.
  6. Review the summary and download the CSV report. The summary keeps a provider-specific pending cutover inventory for unsupported contacts, integrations, and lossy mappings; a completed job is not shown as a green cutover success while that inventory remains.

You can leave the page after starting. Return to Settings → Import and use Latest migration import to reopen a running job or its final report. Job progress and pending cutover inventory are stored tenant-scoped in HowlOps; the source API key is not stored.

Monitor type matrix

UptimeRobot v3 typeClassificationHowlOps resultPreserved / action required
HTTPExact or lossyHTTP monitorURL, interval, timeout, method, redirect setting, accepted status codes, response-time threshold, SSL/domain-expiry enablement, and supported IP preference can be preserved. Any unrepresentable setting makes the row lossy; read its warnings.
KeywordExact or lossyKeyword monitorURL, interval, keyword value, and exists/not-exists behavior are preserved. Case sensitivity and other advanced HTTP behavior require review. A missing keyword is unsupported.
PingExact or lossyPing (ICMP) monitorHost and interval are preserved. An interval raised to the HowlOps plan minimum is lossy.
PortExact or lossyTCP monitorHost, TCP port, and interval are preserved. This is a TCP connect only; it does not inspect a protocol payload.
HeartbeatExact or lossyHeartbeatInterval and grace period are preserved. Attached provider-only settings remain manual.
DNSExact for a single supported expectationDNS monitorOne A, AAAA, CNAME, MX, TXT, or NS record/value pair and a supported IP preference can be preserved. Multiple expectations and other record types are rejected rather than weakened.
API, UDP, Visual Comparison, or an unknown future typeUnsupportedNothing createdKeep the row as a migration exception and recreate an equivalent HowlOps check manually where one exists. Never substitute a different check silently.
Any paused supported monitor or heartbeatExact or lossyPaused resourceThe configuration is created but stays paused. HowlOps never reactivates a paused source object implicitly.
Any active lossy monitorLossyPaused monitorHowlOps stages it paused atomically. Recreate and verify replacement notification paths, review every changed setting, send a controlled test, and only then activate it.

An interval below the workspace's current minimum is raised to that minimum and reported as a lossy change.

Source dataClassification in this migrationWhat the importer doesCutover action
Basic monitor fields listed aboveExact when fully equivalentCreates the selected monitor or heartbeatValidate with a test failure before cutover.
URL and request secretsQuery parameters in a valid monitor URL are preserved in the created monitor but redacted from preview/report/fingerprint. URL-embedded username/password is rejected. Structured headers, body, and HTTP-auth values are never copied.Shows only a redacted URL and secret-presence warnings in previewReview whether query parameters contain credentials; rotate them after migration. Re-enter required headers, body, or destination auth manually, then test.
TLS and keyword behaviorMixedTLS certificate-error validation (checkSSLErrors) is preserved. SSL-expiration delivery preferences remain manual. Case-insensitive keyword checks are rejected; they are never weakened into case-sensitive checks.Review delivery preferences and recreate rejected keyword behavior deliberately.
Unsupported advanced type configuration, regional data, custom fieldsLossy or unsupportedPreserves only the supported subset and lists the differenceReview and reproduce the intended behavior manually.
Monitor groups and tagsInventory/manualFetches standalone inventory and copies referenced tag names onto imported monitors. UptimeRobot groups are organization metadata, not access/ownership teams, so they are not converted into RBAC teams.Review monitor organization; assign imported monitors to HowlOps teams only where access ownership is intended. Tag colours have no portable equivalent.
Alert contacts and monitor contact assignmentsInventory/manualFetches personal and organization contact inventory without destination values. Each monitor detail preserves the assigned contact ID plus source threshold and recurrence for exact cutover review; no notification channel or assignment is activated.Recreate and verify each HowlOps notification channel, then reproduce the reviewed assignments.
Active maintenance windowsExact only for the supported subsetCreates windows with the confirmed timezone, explicit imported-monitor assignments, notifications disabled, and alert suppression enabledOnce, daily, weekly, and one-numbered-day monthly recurrences are supported. Paused, auto-add, missing-assignment, multi-day monthly, and last-day-of-month windows remain manual.
Public status pagesImports with changes for the supported subsetA page with static imported-monitor membership can be created unpublished. Password-protected or tag-driven pages are rejected.Review and publish manually. Recreate password, custom domain/DNS, subscribers, branding, analytics, display options, and announcements.
Integrations and ChatOpsInventory/manualFetches secret-redacted integration inventory. No OAuth grant, webhook URL/header, bot identity, routing key, or channel binding is copied or activated.Re-authorize Slack, Teams, Google Chat, Discord, webhooks, PagerDuty, and other integrations in HowlOps, then send a test notification.
Monitor history, incidents, response-time samples, uptime statisticsUnsupportedNo historical data is fetched or importedExport separately if you need an archive; history must never trigger HowlOps alerts.

“Inventory/manual” means the preview provides a standalone, secret-free cutover row; it does not create or activate the corresponding destination resource.

Re-running is safe

HowlOps remembers the source identity for each created resource. A later run skips an already linked item instead of duplicating it or overwriting subsequent HowlOps edits. If a run is interrupted, you can safely run it again.

Cutover checklist

  1. Recreate notification channels and provider integrations. Credentials, OAuth grants, phone ownership, bot tokens, webhook secrets, and routing keys must be re-authorized rather than copied.
  2. Review imported tag labels and maintenance-window timezone, recurrence, suppression, and monitor assignments. Recreate rejected windows manually.
  3. Review imported status pages before publishing. Recreate branding, subscribers, announcements, password protection, analytics/display settings, and custom-domain DNS as needed.
  4. Review every lossy or unsupported row. Re-enter request secrets and advanced behavior, and replace unsupported check types deliberately.
  5. Run HowlOps and UptimeRobot in parallel for at least 24 hours. Trigger controlled failures for HTTP/keyword, ping, TCP, DNS, and heartbeat coverage and verify recovery notifications.
  6. Confirm that paused source objects stayed inactive and that no old UptimeRobot history was replayed.
  7. Only after validation, disable the corresponding UptimeRobot monitors and update status-page DNS and subscriber links.

What's next

Was this page helpful?