Step-by-Step: How to Test Your M91 Alert Link Without Waking Anyone
You're about to plug M91 into your app, your approval workflow, or your AI agent. First, you want to know the link works.
But there's a catch. A real M91 alert rings real phones at full volume, even on silent. Nobody wants to wake the whole team just to test a setting.
Good news: M91 has a safe test built in. You can check your alert link without ringing a single phone.
Quick answer: To test an M91 alert link safely, call or open the link with nothing added after it. M91 replies with your channel's name and wakes nobody. Add a title only when you want a real alert to ring.
What Is an M91 Alert Link?
M91 is a free human-in-the-loop alerting app built by MSG91. Every M91 channel has its own send link. When software calls that link with a title, M91 rings every phone in the channel until someone answers.
That one link is how you add a human-in-the-loop (HITL) step to any software. It's how an automation or AI agent asks for a human approval, a human review, or a human takeover. You don't need an SDK or an API key to send an alert.
How to find your link:
Open your channel in the M91 app.
Find the send link on the channel screen.
Tap the copy icon to copy it.
Treat this link like a password. Anyone who has it can alert your channel. Don't put it in public code, a website, or a shared chat.
Why Test the Link First?
A quick test is the last step of your alert link setup in M91. It catches the problems that would make a real alert fail at the worst time:
The link was copied wrong.
The link works, but it points to the wrong channel.
People were invited but never finished joining, so nobody gets the alert.
Think of it like checking a friend's address before you mail an important letter. It takes a minute, and it saves you from a letter that never arrives.
Step 1: Check the Link Without Waking Anyone
Use the link exactly as you copied it, with nothing added after it. No title. No question mark.
M91 replies with your channel's name. No phone rings. This is called a connection test.
M91 does this on purpose. Link previews, web crawlers, and email scanners open links on their own. If a bare link rang phones, every paste could wake your team.
For developers:
bash
curl -sS "YOUR_SEND_LINK"
The reply looks like this (shortened):
json
{"success": true, "data": {"ok": true, "channel": {"name": "Store managers"}}}
Check one thing: is that the channel name you expected? If yes, move on.
Careful: if your link has ?title= at the end, delete everything from the ? onward before you test. A link with a title is a real alert, and it will ring everyone.

Step 2: Fix What the Check Tells You
| What you see | What it means | What to do |
|---|---|---|
| Your channel's name | The link works | Go to Step 3 |
| A different channel's name | Right kind of link, wrong channel | Copy the link from the correct channel |
401 or UNAUTHORIZED |
The link is wrong, cut short, or was turned off | Copy it again from the app and paste the whole link as one piece. Don't add a / at the end |
Your link starts with https://m91.msg91.com/s/ |
That's the old address, used until October 2026 | Change the start to https://m91-api.msg91.com/s/. The part after /s/ stays the same |
| No reply at all | Your system can't reach M91 | Check your network or firewall settings. The problem isn't the link |
Step 3: Make Sure Everyone Has Joined
This is the most common reason an alert reaches nobody. In M91, being invited is not the same as being in the channel. Each person must:
Install M91 and sign in with the phone number you invited.
Allow notifications, so alerts can reach them.
Accept the invitation.
Open the channel and tap the people icon to see the Members list. Everyone who should get phone alerts needs to show ACCEPTED, not INVITED.
If someone reinstalled the app, they should open it once so their phone is registered again.

Step 4: Send One Small Test Alert
When you're ready to hear it ring, send one real test alert. Tell your team first. Say "Test alert at 3 PM, please tap the button." It rings at full volume, even on silent.
The easiest way: tap Send a test alert on the channel screen in the M91 app. Everyone in the channel gets it. Open it and tap a button to see how it works.
Want to choose how hard it rings? Use the link or code way below with LOW severity. A LOW alert rings once and never phones anyone.
The no-code way: add these words to the end of your link and open it in a browser:
YOUR_SEND_LINK?title=Test%20alert%20from%20setup&severity=LOW&respond=Got%20it&customId=setup-test
Your browser shows a simple result page instead of code. That's normal.
For developers:
bash
curl -sS -X POST "YOUR_SEND_LINK" \
-H "Content-Type: application/json" \
-d '{
"title": "Test alert from M91 setup. Please tap Got it.",
"severity": "LOW",
"customId": "setup-test",
"responseOptions": [{"label": "Got it", "effect": "SHARED"}]
}'
Titles need at least 5 characters. Write one that makes sense on a locked phone screen.

Step 5: Read the Result
If you sent the test with a link or code, the reply tells you who it reached. Look at the number called delivered. If you also see deduplicated, check that first.
| What you see | What it means | What to do |
|---|---|---|
delivered is 1 or more |
The alert was sent to that many phones | Go to Step 6 |
deduplicated: true |
It's a repeat, so nobody was alerted again | You sent the exact same test within 5 seconds, or an alert with the same customId is still open. Change the title, or close the open alert |
delivered is 0 |
It worked, but nobody could get it | People haven't finished joining. Go back to Step 3 |
CHANNEL_EMPTY |
Nobody can receive alerts in this channel yet | People must install M91, sign in, and accept the invite |
unregistered lists numbers |
Those people were invited but never signed in | They install M91 and sign in with the invited number |
noDevice is more than 0 |
They signed in, but no phone is registered | This often happens after a reinstall. They open M91 once |
Sent, but a phone stayed silent? "Delivered" means sent, not heard. Check that M91 is allowed to send notifications on that phone, then reopen the app.
Step 6: Answer It, Then Close It
Tap the button on the phone. The only real proof that a person saw an alert is an answer coming back.
M91 keeps an alert open until somebody closes it, even after someone answers. So close your test alert when you're done. You can do it two ways:
In the app: open the alert and tap Close alert.
In code: use the steps below.
For developers, read the answer back first:
bash
curl -sS "YOUR_SEND_LINK/alerts/setup-test"
The decision field shows the answer once someone taps a shared button like "Got it." Until then, it stays null.
Then close the test alert:
bash
curl -sS -X POST "YOUR_SEND_LINK/close" \
-H "Content-Type: application/json" \
-d '{"customId": "setup-test"}'
Closing also frees the customId, so the next alert with that name can ring. If the close says 404 or 403, that's fine. It just means there was nothing left to close.

Your M91 Alert Link Test Checklist
- Link copied from your channel, with nothing after it
- Connection test shows the right channel name, and no phone rang
- Everyone installed M91, allowed notifications, and shows ACCEPTED
- Team told before the real test
- One test alert sent, with
deliveredabove 0 - Someone tapped the answer, and it came back
- Test alert closed
If every box is checked, your alert link setup is done.
Next: Add Your Human-in-the-Loop Step
Now plug your M91 link into the place where your software needs a person:
Human approval: give the alert "Approve" and "Reject" buttons before a refund, payment, or risky action.
Human takeover: give it a "Take over" button when a bot or AI agent gets stuck and a customer wants a person.
Urgent alerts: use HIGH or CRITICAL severity when a problem can't wait. A HIGH alert escalates to a phone call only if nobody has answered or even opened it. A CRITICAL alert keeps ringing and escalates to phone calls.
New to M91? Start with What Happens When Your Software Needs a Human Approval?. To see how an answer travels back to your software, read How the M91 Alert Flow Moves an Alert From Software to a Person.
👉 Get M91 free and test your first alert link
Frequently Asked Questions
How do I test an M91 alert link without waking anyone?
Call or open your M91 send link with nothing added after it. M91 replies with the channel's name and rings no phones. This is the connection test.
What is the M91 connection test?
It's a safe check of your send link. A bare link, with no title, raises no alert. It only confirms the link works and shows which channel it belongs to.
Does opening the M91 alert link in a browser send an alert?
Only if the link has a title on it. A bare link is just a connection test. A link with ?title= raises a real alert and rings every phone in the channel.
Can I test M91 without writing code?
Yes. Tap Send a test alert on the channel screen in the M91 app. Or add ?title= and &severity=LOW to your link and open it in a browser.
Why did my test alert reach nobody?
Usually because people were invited but didn't finish joining. Each person must install M91, sign in with the invited number, allow notifications, and accept the invite. Check the delivered number in the reply.
Why didn't my second test alert ring?
Either you sent the exact same test within 5 seconds, or an alert with the same customId is still open. Change the title, or close the first alert, then send again.
What severity should I use for a test alert?
Use LOW. It rings once and never phones anyone.
Is the M91 send link secret?
Yes. Treat it like a password. Anyone with the link can alert everyone in the channel.
What does "delivered" mean in M91?
It's the number of phones M91 sent the alert to. It means sent, not heard. The only proof a person saw the alert is their answer coming back.
Is M91 free?
Yes. M91 is free forever, with every feature, every alert, and every person on your team included.
Should I test M91 before adding it to an AI agent or approval workflow?
Yes. Run the connection test, send one test alert, and get an answer back. Then your HITL human approval or human takeover step will work when it really matters.
Keep reading
How the M91 Alert Flow Moves an Alert From Software to a Person
Learn how the M91 alert flow sends a titled request, gets a human response, and
What Happens When Your Software Needs a Human Approval?
M91 is a Walkover alerting app that reaches the right person for decisions when automation needs human input. It rings phones, escalates to calls, and records responses with a simp…