<!-- BusyBot node reference — https://busybot.net/tools/msg91/ -->

> Node: MSG91 (`msg91`) · Action · v1
> Category: Communication · Credentials: MSG91 API (`msg91Api`)
> Updated: 2026-08-16

# 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

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **MSG91 API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/msg91-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| SMS | `sms` |

### Operations

| Operation | Value | Description |
|-----------|-------|-------------|
| Send | `send` | Send an SMS message |

### Parameters

#### SMS: Send

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Sender ID | `string` | Yes | — | The sender ID — phone number or alphanumeric name registered with MSG91. For example: 4155238886. Supports expressions like {{ $json.senderId }}. |
| To | `string` | Yes | — | The recipient mobile number with country code. For example: +14155238886. Supports expressions like {{ $json.phone }}. |
| Message | `string` | Yes | — | The text message content to send. Supports expressions like {{ $json.body }}. |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `10` | Maximum 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:

```json
{
  "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:

```json
{
  "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:

```json
{
  "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:

```json
{
  "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:

```json
{
  "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:

```json
{
  "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:

```json
{
  "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

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes 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.