Before you start
- The LFG Alarm app on your phone, signed in, and on your co-founder's if they should be rung too.
- One anything alarm per moment. On Alarms, tap 🔮 Anything, pick a Cooldown, choose private or friends, and tap Arm it. Copy the link and tap Test fire to hear it. Give each its own name and sound ("Site down", "Deploy done", "First sale"), so you know which one rang before you look. How the link works: How to make any app, script or feed ring your phone.
- Somewhere safe for the link: a secret or environment variable. Anyone with it can ring the alarm; tap New URL if it leaks.
Site down: your uptime monitor rings you
Most uptime monitors can call a webhook when a check fails. Paste the alarm's link there.
- UptimeRobot: in the left sidebar, open Integrations, click Add Integration and choose Webhook. Paste the link as the Webhook URL, and under Events to notify about tick Down events only, so the recovery does not ring you too. Then connect the integration to the monitors that matter. Webhooks are not on every UptimeRobot plan; check yours.
- Better Stack: open Integrations, then Exporting data, and under Outgoing webhooks click Configure and add an Incident webhook with your link. It sends a POST when an incident is created, acknowledged, resolved and more, and you can choose the events: keep only the one for a new incident. LFG Alarm ignores the body, so every event you leave on would ring.
A 30 minute Cooldown suits a site that flaps: one ring, not one per check.
Deploy or CI finished
A long deploy, a migration or an overnight test run can ring you when it ends. In GitHub Actions, add a last step:
- name: Ring my phone
if: failure() # or always() to ring on every finish
run: curl -s -X POST "${{ secrets.LFG_RING_URL }}"
Use two alarms if you want to tell success from failure by sound. For Claude Code and other coding agents running in CI, see Claude Code and Copilot in CI: a hook calls the link when the agent finishes or needs you.
First sale
The first payment from a stranger is worth being woken for. The simplest route is no code: in Zapier, use Stripe's New Payment trigger (or Make's Stripe app), then a POST to the alarm's link. Turn the Zap off after the first one, or keep it for the first week.
Do not paste the link straight into Stripe as a webhook endpoint. When the alarm is in its Cooldown it answers 429, and Stripe retries failed deliveries for up to three days, so a sale could ring you again at a random hour. If you already have your own Stripe webhook handler, add one POST to the link inside it instead. Zapier and Make guides: Zapier and Make.
A signup spike
A sudden rush usually means someone big shared you, and the first hour is when replying matters. A small scheduled job can watch for it:
import os, requests
new = count_signups_in_last_hour() # your own query
if new >= 50:
requests.post(os.environ["LFG_SPIKE_URL"], timeout=10)
Run it every 10 minutes with cron or your host's scheduler, and give the alarm a one hour Cooldown so a long spike rings once.
Launch day
Launch day is a time alarm, not an anything alarm: you know when it starts. A friends alarm rings you and the team at the same moment, wherever each of you is, and the wake board shows who got up. Pair it with a "First sale" or a spike alarm and the day rings you for the moments that follow.
Have your AI agent make it.
Paste this into ChatGPT, Claude, Grok or any AI agent that can add a connector, not into the LFG Alarm app. The setup steps come with it: get the LFG Alarm app, connect it to your agent once, and your agent makes the alarm in your account.
Use LFG Alarm to set a one-off time alarm called "We're live" for 23:55 on [launch date], make it a friends alarm, and add my co-founder [username]. Then tell me the date and time it will ring.
Already have the LFG Alarm app and connected it to your AI agent?
Why it works. A launch alarm is a time alarm your AI agent can make, shared so every phone on the team rings together.
Three founders, three alarms
Maya runs a small shop alone. UptimeRobot rings "Shop down" with Down events only. At 03:10 the certificate expires; she fixes it before the morning rush.
Theo and Priya build a two-person SaaS. Their nightly migration job rings "Deploy failed" on failure only, shared with both. Better Stack rings "API down" when an incident is created. Most nights nothing rings, which is the point.
Sam is a solo developer launching a paid app. A Zap rings "First sale" on Stripe's New Payment. It goes off at 07:40 on launch day; he turns it off at the tenth sale and keeps the signup spike alarm.
How it rings
On Android an anything alarm rings full screen like an alarm. On iPhone it arrives as a time-sensitive alert with the alarm's sound, so keep the ringer on. Time alarms, like the launch alarm, are real alarms on both, and ring through silent mode and Focus on iPhone. With an lfg.gm tab open on an awake laptop, alarms ring there too.
If it does not work
- Nothing rings: make sure the tool sends a POST, not a GET, to the full
https://api.lfg.gm/horn/...link. Opening the link in a browser does nothing. - It rang once, then stopped: that is the Cooldown. Calls inside it get a 429.
- It rings on recovery too: turn off up or resolved events in the monitor; the body is not read, so every call rings.
- A 404: the link was replaced with New URL. Paste the new one.
Learn more
- How to make any app, script or feed ring your phone
- Claude Code and Copilot in CI
- Ring your phone from Zapier and from Make
- Anything alarms, time alarms and using LFG Alarm from your AI agent
Sources and further reading
- UptimeRobot: Webhook integration
- Better Stack: Outgoing webhooks
- GitHub Actions: status check functions
- Stripe: webhooks and automatic retries
- Zapier: Stripe integrations
LFG Alarm is not affiliated with UptimeRobot, Better Stack, GitHub, Stripe, Zapier or Make.

