Receive OTPs (Inbox, Slack/Discord/Email, Webhooks)
Once your number is active, JoltSMS delivers verification texts (OTPs) to your Inbox immediately. You can also mirror those messages to Slack, Discord, Email, or your own webhook for automation.
Quick start: the three fastest ways
See it in the Inbox
Open Inbox — messages appear in real time, with copy buttons for the code.


Turn on account-wide notifications
Go to Notifications → Account-Wide Defaults and add where you want alerts for SMS Received (Slack, Discord, Email, Webhook).

(Optional) Override per-number
For a specific number, open Numbers → [Your Number] → Notification Settings, enable Custom Notification Rules, and attach endpoints just for that number.

Heads-up: Per-number rules override account defaults for that number only.
Add or edit endpoints (Slack/Discord/Email/Webhook)
- Go to Notifications → Add Endpoint
- Pick Slack, Discord, Email, or Webhook, then follow the prompts.

Typical uses
Slack/Discord
Post OTPs to a dedicated #2fa channel so teammates can grab codes quickly.
Mirror OTPs to a shared inbox for auditability.
Webhook
Feed OTPs to your internal services or secrets vault.
Permissions: Viewers can see messages; Managers/Owners can configure endpoints and rules.
What the webhook sends (example payload)
{
"event": "sms.received",
"received_at_utc": "2025-11-21T19:12:03Z",
"number": "+1 646-935-1546",
"from": "+1 650-999-0799",
"message": "Microsoft account code: 266800",
"detected_code": "266800",
"metadata": {
"provider": "JoltSMS",
"message_id": "msg_01HXXX...",
"labels": ["inbox", "otp"]
}
}Delivery expectations
- JoltSMS retries transient failures; your endpoint must return
2xxon success. - Use an idempotency check (e.g.,
message_id) to avoid double-processing on retries.
Local test tip:
# Example: receive a webhook locally with npx
npx http-echo-server --port 8080
# Set your webhook endpoint to https://<your-ngrok-or-tunnel>/hooks/joltsmsWorking with the Inbox efficiently
- Search & filter: use the search bar to find a sender, number, or keyword (e.g., "code").
- Copy helpers: click the code chip or copy icon next to a message to put the OTP on your clipboard.
- Per-number view: from Numbers, click a number to open its message history.
Recommended notification patterns
Small team
- Account-wide defaults: Slack + Email for SMS Received
- Per-number override only for critical numbers (route to a higher-priority channel)
Larger team
- Use per-number custom rules (e.g., "Marketing Number → #marketing-otp", "Prod Number → #prod-otp")
- Keep a Webhook endpoint to archive OTPs centrally
Security notes
OTPs are sensitive: restrict channels and membership.
- Use Manager/Owner roles for routing; keep most users Viewer.
- Prefer private Slack/Discord channels and protected webhooks.
- Rotate webhook tokens/URLs periodically.
How to confirm it's working
- Inbox: messages appear instantly (try a new sign-in flow).
- Notifications page: endpoint tiles show Active and "last delivery" time (green).
- Slack/Discord/Email: you see the OTP within a second or two.
- Webhook: your logs show 2xx responses from your receiver.
Troubleshooting
I'm not seeing OTPs anywhere
- •Verify the exact number (with country code) was used during sign-up.
- •Some senders rate-limit or throttle; retry or wait a minute.
- •Ensure your number shows Active on the Numbers page.
Inbox shows the SMS but Slack/Discord/Email is quiet
- •On Notifications, confirm the endpoint exists and is attached to Account-Wide Defaults → SMS Received.
- •If the number uses Custom Notification Rules, add endpoints there (overrides defaults).
- •For Slack/Discord, confirm the webhook URL is valid and the channel exists.
Webhook not firing
- •Confirm the endpoint URL is reachable from the internet and returns 2xx.
- •Check your server's TLS certificate and any IP allowlists.
- •Implement idempotency; retries may happen on network hiccups.
Teammates can't manage routes
- •Ensure they are Manager or Owner on Team Access for the number.