sms-sender

n8n community node to send SMS via MessageMedia

Package Information

Released: 8/16/2025
Downloads: 16 weeklyย /ย 31 monthly
Latest Version: 1.0.35
Author: Community Contributors

Documentation

n8n-nodes-sms-sender

Community node for n8n to send SMS via MessageMedia with a clean, focused interface.

โœจ Features

  • MessageMedia SMS integration - SMS provider with global reach https://messagemedia.com
  • Clean, simple UI - No complex provider selection or credential confusion
  • Optional sender number - Uses default account number if "From" field is blank
  • Phone number normalization to E.164 format and encoding detection (GSM7 vs UCS-2)
  • Test mode (stub endpoint) and sandbox dry-run
  • Rate limiting between messages
  • Robust error handling and validation

๐Ÿš€ Install

Option 1: n8n Community Nodes (Recommended)

  1. In n8n, go to Settings โ†’ Community Nodes โ†’ Install
  2. Enter: n8n-nodes-sms-sender
  3. Click Install

Option 2: npm CLI

npm i n8n-nodes-sms-sender

๐ŸŽฏ Node Configuration

Basic Information

  • Display Name: MessageMedia SMS Sender
  • Name: smsSender
  • Group: transform
  • Inputs: main
  • Outputs: main

Field Structure

The node provides a clean, focused interface with logical field organization:

1. MessageMedia API Credentials

  • Required: MessageMedia API Key and Secret
  • Single credential field - No confusion about which credentials to use

2. Message Details

  • To (required) - Destination phone number in E.164 format
  • From (optional) - Sender phone number (uses default account number if blank)
  • Message (required, up to 1600 characters) - SMS content

3. Operation Modes

  • Use Sandbox - Dry run mode, no external calls, simulated success
  • Test Mode - Redirects to https://httpbin.org/post for testing

4. Additional Fields

  • Status Callback URL - Webhook URL for delivery status updates
  • Encoding: auto | GSM7 | UCS-2 (auto-detects by default)
  • Rate Limit (ms) - Delay between messages
  • Fail if Undeliverable (default: true) - Throw error if validation fails
  • Return Raw (default: false) - Include provider response in output

๐Ÿ” Credentials

MessageMedia API

  • apiKey - Your MessageMedia API Key
  • apiSecret - Your MessageMedia API Secret

๐Ÿ“ฑ MessageMedia Integration

API Endpoint

  • URL: POST https://api.messagemedia.com/v1/messages
  • Auth: Basic (API Key / Secret)
  • Body: { messages: [ { content, destination_number, source_number } ] }

Field Mapping

  • to โ†’ destination_number (required)
  • message โ†’ content (required)
  • from โ†’ source_number (optional - uses default account number if blank)

Features

  • Australian focus with global SMS capabilities
  • Optional source number - automatically uses account default if not specified
  • Delivery reports via webhook callbacks
  • Rich media support (MMS capabilities)

๐Ÿ”„ Field Behavior

When "From" field is provided:

  • โœ… Sender number is included in API request
  • โœ… Uses the specified number as source

When "From" field is blank:

  • โœ… No source_number sent to API
  • โœ… MessageMedia uses default account number
  • โœ… Ideal for single-account setups

๐Ÿ“‹ Example Workflow

{
  "nodes": [
    {
      "parameters": {
        "to": "+61437536808",
        "message": "Hello from n8n!",
        "additionalFields": {
          "statusCallbackUrl": "https://your-webhook.com/sms-status"
        }
      },
      "type": "n8n-nodes-sms-sender.smsSender",
      "typeVersion": 1,
      "name": "MessageMedia SMS Sender"
    }
  ]
}

๐Ÿงช Testing

Local Testing

npm test

n8n Testing

  1. Sandbox Mode: Returns simulated success without external calls
  2. Test Mode: Redirects to httpbin.org for HTTP testing
  3. Live Mode: Sends actual SMS via MessageMedia API

๐Ÿ› ๏ธ Troubleshooting

Common Issues

  • 401/403: Check MessageMedia API credentials and permissions
  • Invalid numbers: Ensure E.164 format like +61437536808
  • Sandbox vs Test Mode:
    • Sandbox: Returns fake success without any HTTP call
    • Test Mode: Calls stub endpoint (httpbin.org)
  • Missing "From": Node automatically uses default account number

Phone Number Format

  • Required: E.164 international format (e.g., +61437536808)
  • Not supported: Local formats like 0437536808 (must include country code)
  • Validation: Node automatically normalizes and validates numbers

๐Ÿ”ง Technical Details

MessageMedia API Integration

  • Endpoint: https://api.messagemedia.com/v1/messages
  • Authentication: Basic auth with API Key/Secret
  • Request Format: JSON with messages array
  • Response: Includes message_id, status, and delivery information

Phone Number Handling

  • E.164 normalization for consistent formatting
  • Encoding detection (GSM7 vs UCS-2) for optimal delivery
  • Validation with helpful error messages

Rate Limiting

  • Configurable delays between messages
  • Prevents API throttling and improves delivery success
  • Millisecond precision for fine-grained control

๐Ÿ“ฆ Version History

  • 1.0.32 - Sender Dropdown
  • 1.0.31 - Initial release

๐Ÿค Contributing

This is a community node for n8n, focused on providing a clean, reliable MessageMedia SMS integration. Feel free to contribute improvements, bug fixes, or enhancements!

๐Ÿ“„ License

MIT License - see LICENSE file for details.

๐Ÿ”— Links

Discussion