Skip to main content
When adopting Flashduty Status Page for the first time, you can create a new status page from scratch or migrate from Atlassian Statuspage to Flashduty Status Page. This guide covers the required steps for both paths. After the status page is created or migrated, components, sections, event templates, subscriptions, and event publishing are follow-up configuration tasks. Use the links at the end of this guide to continue. If you are not familiar with the core concepts, start with What is a status page.

Choose an onboarding path

Current situationRecommended pathSection
You do not have a formal status page yetCreate a Flashduty status page from scratchCreate a status page from scratch
You already use Atlassian StatuspageMigrate structure, historical events, and subscribersMigrate from Atlassian Statuspage
If you are evaluating a replacement for Atlassian Statuspage, read Status Page comparison.

Create a status page from scratch

Creating from scratch only establishes the status page entity and confirms its name, URL slug, and type. Configure branding, domain, components, subscriptions, and event publishing in the follow-up docs.
1

Confirm the status page type

Choose whether to create a public status page or an internal status page. Public status pages are for customers, partners, and external visitors. Internal status pages are for organization members and require Flashduty sign-in.
2

Navigate to status page management

Sign in to the Flashduty console, open Status Pages from the left navigation, and click Create Status Page.
3

Fill in creation details

Fill in the following fields:
FieldDescription
NameDisplay name for the status page, usually your company, product, or service name
URL slugUnique identifier used to build the status page URL; only lowercase letters, numbers, and hyphens are allowed
TypeChoose Public or Internal
4

Complete creation

Click Confirm to finish. After creation, configure basic settings, components, subscriptions, templates, and event publishing as needed.

Migrate from Atlassian Statuspage

If you already use Atlassian Statuspage, you can use Flashduty CLI to migrate components, sections, historical events, and email subscribers to Flashduty Status Page. Migration is split into two independent steps:
  1. Migrate structure and history: import components, sections, historical events, maintenance records, and notification templates.
  2. Migrate email subscribers: import the subscriber list and subscription preferences.
The two-step design is intentional: structure migration does not notify subscribers. You can verify the imported content before importing subscribers. Imported subscribers become active immediately and do not need to verify their email again.
If you use an AI coding agent such as Codex, Claude Code, or Cursor, you can first install the Agent Skills by following the flashduty-cli README. After installation, the flashduty-statuspage skill teaches the agent the Atlassian Statuspage migration commands and precautions, so it can help run the migration from your local terminal.

Prerequisites

Install Flashduty CLI

curl -sSL https://static.flashcat.cloud/flashduty-cli/install.sh | sh
For more installation options, see the CLI documentation.

Log in to Flashduty

flashduty login
When prompted, paste your APP Key. To obtain one, sign in to the Flashduty console and copy your APP Key from Profile > Personal Info.

Get your Atlassian Statuspage API Key

  1. Log in to the Atlassian Statuspage management panel
  2. Go to User icon > API info and copy the API Key
  3. Set the environment variable:
export ATLASSIAN_STATUSPAGE_API_KEY="your_api_key_here"

Get your Atlassian Statuspage Page ID

In the Atlassian Statuspage management panel, the Page ID is displayed in the page URL or page settings. It looks like 0db0rq26tg1l.

Migration steps

Migrate structure and history first, then migrate subscribers, and switch the domain last. This lets you verify imported content before subscribers start receiving Flashduty status page notifications.
1

Migrate structure and history

Run the following command to import Atlassian Statuspage components, sections, historical events, maintenance records, and notification templates. This step creates or reuses the target Flashduty status page but does not notify subscribers.
flashduty statuspage migrate structure \
  --from atlassian \
  --source-page-id <your_atlassian_page_id> \
  --api-key "$ATLASSIAN_STATUSPAGE_API_KEY"
FlagRequiredDescription
--fromYesMigration source, currently only atlassian
--source-page-idYesAtlassian Statuspage Page ID
--api-keyYesAtlassian Statuspage API Key
--url-nameNoURL name for the newly created Flashduty public status page
--url-name is honored only when this run creates a new target status page. If the same --source-page-id is already mapped to an existing Flashduty status page from a previous migration:
  • Omit --url-name, or pass a value that exactly matches the existing target’s URL name, and the migration reuses that target.
  • Pass a value that differs from the existing target’s URL name, and the migration fails during preflight. To change the URL name, edit the target status page directly in the Flashduty console.
Format and uniqueness requirements for --url-name:
  • Normalized by MakeSlug: lowercased, hyphen-separated, and capped at 255 characters. Pure-symbol input or anything that normalizes to an empty string is rejected with url_name must not be empty after normalization.
  • Globally unique across the account’s public status pages. Collisions are rejected with url_name must be unique.
2

Check migration progress

Migration jobs run asynchronously, and the command returns immediately with a Job ID. Check progress with:
flashduty statuspage migrate status --job-id <job_id>
The migration imports components, sections, history, and templates in order. When the job completes, the output includes the Flashduty status page ID (target-page-id), which you need for subscriber migration.To cancel a running migration job, run:
flashduty statuspage migrate cancel --job-id <job_id>
3

Verify imported content

Before proceeding, verify the imported data:
# View the new status page
flashduty statuspage list --id <target_page_id>

# View imported incidents
flashduty statuspage changes --page-id <target_page_id> --type incident
You can also log in to the Flashduty console to visually inspect components, sections, and incident history.
4

Migrate email subscribers

After confirming the structure and history are correctly imported, run the subscriber migration:
flashduty statuspage migrate email-subscribers \
  --from atlassian \
  --source-page-id <your_atlassian_page_id> \
  --target-page-id <flashduty_page_id> \
  --api-key "$ATLASSIAN_STATUSPAGE_API_KEY"
FlagRequiredDescription
--fromYesMigration source, atlassian
--source-page-idYesAtlassian Statuspage Page ID
--target-page-idYesFlashduty status page ID returned by the structure and history migration
--api-keyYesAtlassian Statuspage API Key
Imported subscribers become active immediately without email verification. Email addresses marked as quarantined on the Atlassian side are automatically skipped. Subscriber migration can safely be run multiple times, and existing subscribers will not be duplicated.
5

Switch domain and RSS/Atom

If your original Atlassian Statuspage used a custom domain, point the CNAME record to the Flashduty-provided status page address. Flashduty is compatible with history.rss and history.atom, so existing RSS/Atom subscriptions can keep working.See Configure status page basics for custom domain configuration. See Subscription management for RSS/Atom feed behavior.

Complete migration example

# Set Atlassian API Key
export ATLASSIAN_STATUSPAGE_API_KEY="your_api_key_here"

# 1. Migrate structure and history
flashduty statuspage migrate structure \
  --from atlassian \
  --source-page-id 0db0rq26tg1l \
  --api-key "$ATLASSIAN_STATUSPAGE_API_KEY"
# Output: Job ID: str_abc

# 2. Poll until completed
flashduty statuspage migrate status --job-id str_abc
# Repeat until Status: completed
# Record the target-page-id from output

# 3. Verify imported content
flashduty statuspage list --id <target_page_id>

# 4. Migrate email subscribers
flashduty statuspage migrate email-subscribers \
  --from atlassian \
  --source-page-id 0db0rq26tg1l \
  --target-page-id <target_page_id> \
  --api-key "$ATLASSIAN_STATUSPAGE_API_KEY"
# Output: Job ID: sub_xyz

# 5. Poll until completed
flashduty statuspage migrate status --job-id sub_xyz

Continue configuration

After creation or migration, continue with the doc that matches your next goal. This guide does not repeat each feature’s configuration steps.
GoalDoc
Configure branding, domain, and display settingsConfigure status page basics
Design service components, section structure, and visibility rulesComponents and sections
Publish incidents or maintenance and update the timelinePublish and manage events
Prepare incident, maintenance, and recovery messagesEvent templates
Manage email, RSS/Atom, IM subscriptions, and subscriber import/exportSubscription management
Compare Flashduty Status Page with Atlassian StatuspageStatus Page comparison