Reference · Tools

MSG91

Send transactional SMS messages via the MSG91 platform.

Action Communication v1

The MSG91 node sends transactional SMS — notifications, alerts and one-time passcodes — through the MSG91 platform. A typical build is texting a verification code during signup, or alerting an operator when a monitored value crosses a threshold.

Node type
Action
Parameters
6
Outputs
Output, Error
Credentials
MSG91 API

MSG91

Send transactional SMS messages via the MSG91 platform.

Overview

MSG91 is an enterprise SMS communication platform popular in India and globally. This tool sends transactional SMS messages using the MSG91 sendhttp.php API endpoint. Authentication uses an API authkey passed as a query string parameter. The tool sends GET requests with sender ID, recipient mobile number, and message content as query parameters. The MSG91 API returns a request ID that can be used to track delivery status. Hardcoded parameters set the route to transactional (route=4) and country to auto-detect (country=0).

Category: Communication
Tool Name: msg91
Version: 1

Appearance: Icon: lucide-MessageSquare | Color: #56B547

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires MSG91 API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
SMSsms

Operations

OperationValueDescription
SendsendSend an SMS message

Parameters

SMS: Send

ParameterTypeRequiredDefaultDescription
Sender IDstringYesThe sender ID — phone number or alphanumeric name registered with MSG91. For example: 4155238886. Supports expressions like {{ $json.senderId }}.
TostringYesThe recipient mobile number with country code. For example: +14155238886. Supports expressions like {{ $json.phone }}.
MessagestringYesThe text message content to send. Supports expressions like {{ $json.body }}.

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo10Maximum number of items to process concurrently.

Output Data

One output item per input item — this node never fans out. The MSG91 API response is merged into the item JSON at the top level, so every field the item already carried passes through unchanged and binary data is forwarded.

The send endpoint replies with a tracking identifier rather than a JSON document, so the merged response is:

{
  "requestId": "3617343941343830383132"
}
  • requestId — the MSG91 request ID for the submitted message. Use it to look up delivery status in the MSG91 dashboard.
  • When MSG91 replies with JSON instead of a bare request ID, that JSON object is merged onto the item as-is in place of requestId.

Reference the result downstream by expression, e.g. {{ $json.requestId }}.

Usage Examples

  • Send an OTP verification code via SMS to a customer phone number
  • Send a transactional SMS notification when an order status changes
  • Send an appointment reminder SMS to a mobile number
  • Send a delivery confirmation SMS to a customer

Example Configuration

Basic SMS send configuration:

{
  "id": "msg91_node",
  "type": "msg91",
  "parameters": {
    "resource": "sms",
    "operation": "send",
    "from": "MyCompany",
    "to": "+14155238886",
    "message": "Your verification code is 123456",
    "maxConcurrency": 10
  }
}

SMS with a phone number as the sender ID:

{
  "id": "msg91_phone_sender",
  "type": "msg91",
  "parameters": {
    "resource": "sms",
    "operation": "send",
    "from": "4155238886",
    "to": "+14155238887",
    "message": "Hello! This is a test message from MSG91.",
    "maxConcurrency": 5
  }
}

Drive the recipient and body from the incoming item so one node covers a whole list:

{
  "id": "msg91_from_items",
  "type": "msg91",
  "parameters": {
    "resource": "sms",
    "operation": "send",
    "from": "Support",
    "to": "{{ $json.phone }}",
    "message": "Welcome to our service, {{ $json.firstName }}!",
    "maxConcurrency": 10
  }
}

Verification code SMS:

{
  "id": "send_verification",
  "type": "msg91",
  "parameters": {
    "resource": "sms",
    "operation": "send",
    "from": "Verify",
    "to": "+14155238886",
    "message": "Your account verification code is: 456789. Valid for 10 minutes.",
    "maxConcurrency": 10
  }
}

Order notification SMS:

{
  "id": "order_notification",
  "type": "msg91",
  "parameters": {
    "resource": "sms",
    "operation": "send",
    "from": "Orders",
    "to": "+14155238886",
    "message": "Your order #12345 has been shipped and will arrive in 2-3 business days.",
    "maxConcurrency": 10
  }
}

Appointment reminder SMS:

{
  "id": "appointment_reminder",
  "type": "msg91",
  "parameters": {
    "resource": "sms",
    "operation": "send",
    "from": "Clinic",
    "to": "+14155238886",
    "message": "Reminder: You have an appointment tomorrow at 2:00 PM. Reply CONFIRM to confirm.",
    "maxConcurrency": 10
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

MSG91 sends transactional SMS messages via the MSG91 platform. Use it to send notifications, alerts, OTPs, and other SMS communications.

Important Notes

  1. Sender ID Registration: Ensure your sender ID (alphanumeric or phone number) is registered with MSG91 before use.

  2. Phone Number Format: Always include the country code in the to parameter (e.g., "+1" for US numbers).

  3. Message Length: Consider SMS character limits when composing messages. Standard SMS supports up to 160 characters.

  4. Concurrency: The maxConcurrency parameter controls how many SMS messages are sent simultaneously. Adjust based on your MSG91 plan limits.

Frequently asked questions

Why are my messages rejected?

The sender ID, whether alphanumeric or a phone number, must be registered with MSG91 before use. An unregistered sender ID is the usual cause of rejection.

What format should the recipient number take?

Always include the country code in the `to` parameter — for example `+1` for US numbers. Bare local numbers are unreliable.

How long can a message be?

Standard SMS supports up to 160 characters; longer messages split into multiple parts, which affects cost. Keep templates tight.

Which credential does it need?

An MSG91 API credential.

Build with the MSG91 node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need MSG91 API credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.