Recipients aren't getting SMS or calls

A flow fires, the dashboard says the notification was sent, but your phone doesn't buzz or ring. Here's how to debug it in order β€” most likely causes first.

1. Check the phone number on the User record

By far the most common cause: the phone number on the Team Member record is missing, wrong, or in the wrong format.

  1. Open Team Members.
  2. Click the recipient that should have received the alert.
  3. Look at the Phone field.

Requirements:

  • Must be in E.164 format β€” country code prefix + the rest of the number, no spaces, dashes, or parentheses. Examples:
    • βœ… +18605558312 (US)
    • βœ… +447911123456 (UK)
    • ❌ (860) 555-8312 β€” missing +, has formatting
    • ❌ 8605558312 β€” missing + and country code
    • ❌ 1-860-555-8312 β€” has dashes
  • No extension β€” extension fields aren't supported for outbound calls/SMS.
  • Real number, not voicemail-only β€” Twilio rejects some VOIP / fax / non-routable numbers.

Fix the format, save, then retrigger the alert.

2. For SMS specifically: check SMS opt-in status

JAMS IMES honors SMS opt-in/opt-out per US TCPA compliance rules. If the recipient previously replied STOP to a JAMS IMES SMS (even on a different flow, or in another tenant), they're flagged opted-out and JAMS IMES won't send them more SMS.

To check:

  1. Open Team Members β†’ click the recipient.
  2. Look for the SMS opt-in status field.
  3. If it says Opted out, the recipient needs to text START back to the JAMS IMES phone number to re-opt-in. Or you can manually flip the toggle in the user profile if you have permission AND legitimate authorization.

Important: don't manually re-opt-in a user who explicitly said STOP β€” that's a TCPA violation. Get explicit re-consent first.

For new users, the SMS opt-in checkbox on the invite accept page records their consent. If they unchecked it, SMS won't go to them until they opt in.

3. For voice calls: check whether the number can receive calls

Some phone numbers technically work for SMS but not voice (or vice versa):

  • VOIP numbers (Google Voice, some online services) sometimes block automated calls
  • Carrier-blocked numbers β€” recipient's carrier flagged the source number as spam, drops the call before ringing
  • Number type mismatch β€” landlines can't receive SMS; mobile-only services may filter unknown callers

Test by:

  1. Going to Test Calling if your tenant has the page.
  2. Calling the recipient's number with a short test message.
  3. If the test call doesn't connect, the issue is with the number itself (carrier-level), not JAMS IMES.

4. Check the Notifications log

Open Notifications and find the recent attempt:

Status shownWhat it means
SentJAMS IMES successfully handed the message to the provider (Azure/Twilio). Delivery problems past this point are downstream β€” check the recipient's device.
FailedThe provider rejected it. Click for the error message. Common: "phone number not valid" (format issue), "carrier blocked," "rate limit."
QueuedStill in the worker queue. Should clear within seconds. If stuck for >1 minute, the worker may be paused β€” check with an admin.
Quota exceededYour tenant hit its monthly notification limit. See Billing.
AcknowledgedRecipient already acked. (Probably not the one you're looking at.)
CancelledA sibling notification in the same group was acknowledged, so this one was cancelled before sending.

5. Check the worker is actually delivering

If notifications are stuck in Queued state, the backend worker may be offline. Test:

curl https://notiphone-ghbch4bjfbcncme9.centralus-01.azurewebsites.net/health

Should return 200. If it's down or slow, contact support.

6. Check provider router state (admins only)

If you're a global admin, hit:

GET /api/admin/router-state

This shows the live state of each delivery provider (Twilio, Azure Communication Services). If a provider's circuit breaker is open, that channel is rerouting to the fallback β€” but if both providers are down, nothing delivers.

7. Tenant suspended?

If your account is past due or suspended, all outbound notifications get blocked. Check Billing for the current status. Suspended tenants are also unable to receive inbound webhooks.

8. Less common: recipient's notification schedule

If you've set a notification schedule on the Team Member (e.g., "no alerts on weekends" or "only between 9am-5pm"), and the alert fires outside that window, JAMS IMES skips that recipient and moves to the next in escalation order.

Check the schedule on the Team Member profile. Either widen the window or remove the schedule if it's blocking legitimate alerts.

When all else fails

If you've worked through this list and still no luck:

  1. Note the Notification ID from the Notifications log.
  2. Note the recipient and the channel that failed.
  3. Note the rough time of the attempt.
  4. Contact JAMS IMES support with those three pieces of info. The audit log gives us enough to trace what happened end-to-end.

What's next