SquareOS Docs
Integrations

MSG91 Setting

MSG91 Setting configures SMS provider credentials and sender setup for OTP-style messages, reminders, dues, trials, and manual SMS. Exotel can also be selected for SMS where that provider is contracted.

What this page is for

MSG91 Setting configures SMS provider credentials and sender setup for OTP-style messages, reminders, dues, trials, and manual SMS. Exotel can also be selected for SMS where that provider is contracted.

Who should use it

Owner, communications admin, platform admin

Where to find it

/admin/msg91-settings

Before you start

  • For MSG91, gym owner opens the MSG91 panel, selects SMS, copies the Authkey, confirms the sender ID/header, and creates templates using the approved DLT Template ID when India DLT applies.
  • MSG91 sender ID/header must already be approved and mapped in MSG91 before staff use it in SquareOS sender accounts.
  • Template content in SquareOS must match approved SMS/DLT wording and variables; do not change approved wording casually because provider scrubbing can reject sends.
  • Use channel type SMS, provider MSG91 or Exotel, account name, external account or route, token/auth key, webhook verify token, fake provider mode for testing, and health/status tracking.
  • For Exotel, collect Account SID, API Key, API Token, approved SMS sender ID/header, DLT Entity ID, and DLT Template IDs from Exotel Dashboard Settings / API Settings and the Exotel SMS/DLT screens.
  • In SquareOS Channel Account, Account name should identify the vendor and route, External account id should hold the MSG91 route/account or Exotel Account SID, credential/token should hold the Authkey/API token reference according to the provider, and webhook verify token should be added to config/credential metadata for delivery-report callbacks.
  • In SquareOS SMS Templates, capture DLT Entity ID, DLT Template ID, Provider template / flow ID, Route, Encoding, and Variable key order for every approved SMS template. Store DLT Entity ID and DLT Template ID in designJson, keep Provider template / flow ID for MSG91 flow id or Exotel/provider reference, and use External template ID only for the provider value the dispatch path expects.
  • SMS variable key order must match the approved DLT/provider placeholder order exactly. If the provider body is approved with two placeholders, SquareOS should list exactly two variable keys in the same order and fail closed when required data is missing.
  • Create a sender account after provider account is saved; SMS send buttons need both provider and sender readiness.
  • Run Verify on the channel account, then create sender account with the approved sender value. SMS buttons should stay disabled until provider and sender are connected.
  • Current backend contract: SMS account, sender, template, queueing, opt-out, quiet-hours, delivery attempt, dead-letter records, live HTTP send dispatch for MSG91/Exotel, and SMS status callback reconciliation exist. MSG91/Exotel delivery callbacks should call POST /engagement/sms/:provider/webhook with a matching token; SquareOS maps provider message id/status into DeliveryAttempt, Message, and CampaignDeliveryLog rows. The callback parser accepts common direct callback fields plus MSG91 data-as-JSON-string callbacks with nested report rows and numeric status codes. Production SMS still requires live credential testing and one real provider callback before the gym treats delivery as certified.
  • Safe/fake provider mode or simulated delivery attempt IDs are useful for workflow testing but are not proof that MSG91 or Exotel delivered the message. Disable fake mode only for an approved real-number test with provider credentials.

Daily workflow

  • In SquareOS, open Admin, MSG91 Setting, choose channel type SMS, provider MSG91, enter account name, external account/route, Authkey/token credential reference, webhook verify token metadata, fake mode if testing, and save.
  • Create sender account using the approved sender ID/header from MSG91 or Exotel, then create or map SMS templates for OTP-style operational messages, appointment reminder, class reminder, renewal, invoice due, payment link, trial follow-up, freeze/cancellation status, and transfer status.
  • For each SMS template, copy the approved body from MSG91, Exotel, or the DLT evidence row into Body template, enter DLT Entity ID, DLT Template ID, Provider template / flow ID, Route, Encoding, and Variable key order, then link the correct sender account and provider account before activation.
  • Send a test message to an internal opted-in number and verify delivery status or dead-letter reason.
  • Keep fake mode on for sandbox or unapproved credentials.
  • Monitor dead letters and delivery failures after launch.

Watch out

  • Do not enable SMS sending before opt-in, sender, template, and provider health are confirmed.
  • Use the left menu to open related pages in Integrations.
  • Use Ask Docs for questions that are already covered in this public documentation.

On this page