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

1

See it in the Inbox

Open Inbox — messages appear in real time, with copy buttons for the code.

JoltSMS Inbox listing verification SMS with timestamps and actions
Full inbox view with many messages
Inbox row with detected OTP code and copy helpers
Tighter crop showing code chips & copy icons
2

Turn on account-wide notifications

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

Notifications page showing endpoints and default routing
Notifications page showing endpoints and default routing
3

(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.

Per-number Notification Settings with custom rules toggled on
Per-number Notification Settings with custom rules

Heads-up: Per-number rules override account defaults for that number only.

Add or edit endpoints (Slack/Discord/Email/Webhook)

  1. Go to Notifications → Add Endpoint
  2. Pick Slack, Discord, Email, or Webhook, then follow the prompts.
Dialog to create Slack, Discord, Email, or Webhook endpoints
Dialog to create Slack, Discord, Email, or Webhook endpoints

Typical uses

Slack/Discord

Post OTPs to a dedicated #2fa channel so teammates can grab codes quickly.

Email

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 2xx on 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/joltsms

Working 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.