Setup guides

Short, exact walkthroughs for the things people ask us about most. Still stuck? Contact us.

Every step below matches the current dashboard. You add and manage alert channels on the Alert Channels page (Dashboard → Alert Channels), and a channel only starts sending real alerts once it is both verified and linked to a monitor.

1. Connect the Telegram bot

Telegram alerts are available on every plan, including Free. You connect by messaging our bot and pasting the one-time code it sends back — you never have to find a numeric chat ID.

  1. In the dashboard, open Alert Channels and click + Add Channel.
  2. Set Type to telegram. A field labelled Telegram connection code appears.
  3. Open the bot at t.me/Are_we_up_bot (the modal links it as Open @Are_we_up_bot) and tap Start.
  4. The bot replies with an 8-character connection code, for example K7P2Q9RT. The code is valid for 15 minutes.
  5. Paste that code into the Telegram connection code field back in the dashboard, then click Add.

What confirms it worked: the dashboard shows a “Telegram connected!” toast and the new channel appears in your list already marked Verified — pasting a valid code proves you control that chat, so there is no separate verify step for Telegram. The bot also posts a message in the chat: “✅ Are We Up? is now connected to this chat.”

Code expired or invalid? Codes are single-use and last 15 minutes. Just open the bot again, tap Start, and paste the fresh code. To move alerts to a different chat later, open the channel, choose Edit, and paste a new code.

Last step — link it to a monitor. A channel that isn’t linked to anything will never fire. Open a monitor, find the Alert channels card, pick your Telegram channel, and click Link channel. Repeat for each monitor that should alert here.

↑ Back to top

2. Add a Slack webhook

Slack alerts are available on every plan, including Free. Are We Up? posts to a Slack Incoming Webhook, so you first create a webhook URL in Slack, then paste it into the dashboard.

Step A — Create an Incoming Webhook in Slack

  1. In Slack, go to api.slack.com/apps and create an app (or open an existing one) in your workspace.
  2. Open Incoming Webhooks and turn the feature On.
  3. Click Add New Webhook to Workspace, choose the channel alerts should land in, and click Allow.
  4. Copy the generated Webhook URL. It looks like https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX.

Treat this URL like a password — anyone who has it can post to that channel.

Step B — Add it to Are We Up?

  1. Open Alert Channels and click + Add Channel.
  2. Set Type to slack.
  3. Paste the Slack URL into the Webhook URL field. Optionally add a Label (e.g. #ops alerts) so it’s easy to spot later.
  4. Click Add. The channel is saved but starts as Pending.
  5. Click Verify on the channel. We post a test message to your Slack channel; when it arrives, the status flips to Verified.
Verification failed? Double-check you pasted the whole https://hooks.slack.com/services/… URL and that the webhook still exists in Slack. Unverified channels never send real alerts.

Last step — link it to a monitor. Open a monitor, go to the Alert channels card, select your Slack channel, and click Link channel. Down and recovery alerts for that monitor will now post to Slack.

↑ Back to top

3. Set up a custom domain on a status page

Serving a status page on your own subdomain (for example status.areweup.app) is a Pro feature. Below is exactly how it works today — including one limitation worth knowing before you announce the URL.

Where every status page lives

Every published status page is always reachable at:

https://areweup.app/p/<your-slug>

You’ll find that link on the Status Pages page in your dashboard. A custom domain doesn’t replace this path — it lets the same page also answer on your hostname, under the same /p/ route.

Step A — Point a CNAME at Are We Up?

At your DNS provider, create a CNAME record for the subdomain you want to use:

TypeName / HostValue / Target
CNAMEstatus (e.g. status.yourdomain.com)areweup.app

Use a subdomain, not a root/apex domain — most DNS providers don’t allow a CNAME on a bare apex like yourdomain.com.

Step B — Attach the domain to your page

In the dashboard, go to Status Pages, click Edit on the page, and enter your subdomain in the Custom domain field (a Pro/Business feature), then save. The dialog shows the exact working URL and the CNAME target as you type.

Prefer the API? Send the subdomain as custom_domain on your status page using a Pro (or Business) API key from Settings → API keys:

curl -X PUT https://areweup.app/api/status-pages/<status_page_id> \
  -H "Authorization: Bearer pp_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{ "custom_domain": "status.yourdomain.com" }'

Get your status_page_id from GET /api/status-pages. See the API docs for authentication. Prefer not to touch the API? Contact us and we’ll set the domain for you.

Step C — Use the URL that actually resolves

Once DNS has propagated and the domain is attached, your page is served on your subdomain under the /p/ path:

https://status.yourdomain.com/p/<your-slug>
Important — the bare root does not resolve. Visiting https://status.yourdomain.com/ by itself returns a 404: there is no redirect from the domain root to your page today. Always share and link the full /p/<your-slug> URL. If you need the bare root to work, tell us in support — it’s a known limitation, not something a DNS change on your side can fix.

Custom domains require a Pro or Business plan. If your plan later drops below Pro, your existing status pages keep working at their /p/<slug> URLs.

↑ Back to top