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

> Node: Seven (`sms77`) · Action · v1
> Category: Communication · Credentials: Seven API (`sms77Api`)
> Updated: 2026-08-16

# Seven

> Send SMS messages and make text-to-speech voice calls via seven.io.

## Overview

Seven (formerly sms77) is a cloud communication platform for SMS and voice messaging. This tool supports two resources: SMS (send text messages) and Voice (text-to-speech calls). Both use form-encoded POST requests to the seven.io gateway API. The SMS resource supports optional scheduling (delay), flash messages, performance tracking, TTL, labels, and foreign IDs. The Voice resource supports an optional caller ID. Authentication is via an API key passed in the X-Api-Key header. The API uses a string success code "100" to indicate success.

**Category:** Communication  
**Tool Name:** `sms77`  
**Version:** 1

**Appearance:** Icon: `lucide-MessageSquare` | Color: `#29A1A1`

## Node Type

**Action** — processes input items and produces output

## Input / Output

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

## Credentials

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

### Resources

| Resource | Value |
|----------|-------|
| SMS | `sms` |
| Voice Call | `voice` |

### Operations

| Operation | Value | Description |
|-----------|-------|-------------|
| SMS: Send | `send` | Send an SMS message |
| Voice Call: Send | `send` | Convert text to voice and call a number |

### Parameters

#### SMS: Send

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| From | `string` | No | — | The caller ID displayed on the receiver's device. Max 16 numeric or 11 alphanumeric characters. Supports expressions. |
| To | `string` | Yes | — | The recipient phone number(s), comma-separated. Can also be contact or group names from seven.io. Supports expressions. |
| Message | `string` | Yes | — | The message to send. Max 1520 characters. For Voice calls, this is the text-to-speech content. Supports expressions. |
| Options | `collection` | No | `{}` | Additional settings for the text message. |
| — Delay | `dateTime` | No | — | Pick a date for time-delayed dispatch. |
| — Foreign ID | `string` | No | — | Custom foreign ID returned in DLR (delivery report) callbacks. |
| — Flash | `boolean` | No | `false` | Send as a flash message displayed directly on the receiver's screen without being stored. |
| — Label | `string` | No | — | Custom label used to group analytics. |
| — Performance Tracking | `boolean` | No | `false` | Whether to enable performance tracking for URLs found in the message text. |
| — TTL | `number` | No | `2880` | Custom time to live specifying the validity period of the message in minutes. |

#### Voice Call: Send

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| To | `string` | Yes | — | The recipient phone number(s), comma-separated. Can also be contact or group names from seven.io. Supports expressions. |
| Message | `string` | Yes | — | The message to send. Max 1520 characters. For Voice calls, this is the text-to-speech content. Supports expressions. |
| Options | `collection` | No | `{}` | Additional settings for the voice call. |
| — From | `string` | No | — | The caller ID. Use only verified sender IDs, virtual inbound numbers, or shared virtual numbers. Supports expressions. |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. |

## Output Data

One output item is produced per input item, on the `Output` port, for both resources. The seven.io response is merged onto the item JSON at the top level rather than nested under a wrapper property, so the rest of the incoming item passes through unchanged and response fields are addressed directly by expression. Binary data on the input item is forwarded untouched. Sending to several recipients in one To field still produces exactly one output item — the node never fans out.

The gateway reports its outcome in a `success` field, and the node treats any value other than the string `"100"` as a failure even though the HTTP request itself succeeded, so an item that reaches the `Output` port is one the gateway accepted. In the rare case that the API answers with a JSON array rather than an object, the array is placed on `_sevenResponse` instead of being merged. Failures go to the `Error` port in `errorPort` mode, carrying `_error`.

## Usage Examples

- Send an SMS notification to a customer when their order ships
- Send a verification code via SMS to a phone number
- Make a text-to-speech voice call to deliver an urgent alert
- Send a scheduled SMS reminder for an upcoming appointment
- Send a flash SMS that displays directly on the recipient screen

## Example Configuration

Send a text message with an alphanumeric sender ID:

```json
{
  "type": "sms77",
  "parameters": {
    "resource": "sms",
    "operation": "send",
    "from": "YourCompany",
    "to": "{{ $json.phone }}",
    "message": "Your order {{ $json.orderId }} has shipped."
  }
}
```

Schedule a reminder, tag it for analytics, and keep a foreign ID for the delivery report:

```json
{
  "type": "sms77",
  "parameters": {
    "resource": "sms",
    "operation": "send",
    "from": "Reminders",
    "to": "{{ $json.phone }}",
    "message": "Reminder: your appointment is tomorrow at {{ $json.time }}.",
    "options": {
      "delay": "{{ $json.sendAt }}",
      "foreign_id": "appt-{{ $json.appointmentId }}",
      "label": "appointment_reminders",
      "ttl": 1440
    }
  }
}
```

Send a flash message that appears on screen without being stored:

```json
{
  "type": "sms77",
  "parameters": {
    "resource": "sms",
    "operation": "send",
    "from": "Emergency",
    "to": "+49876543210",
    "message": "URGENT: please check your email immediately.",
    "options": {
      "flash": true,
      "performance_tracking": true
    }
  }
}
```

Place a text-to-speech call, letting the account's default caller ID stand:

```json
{
  "type": "sms77",
  "parameters": {
    "resource": "voice",
    "operation": "send",
    "to": "{{ $json.phone }}",
    "message": "This is an automated message. Your delivery arrives today between 2 and 4 PM."
  }
}
```

Place the same call from a specific verified number:

```json
{
  "type": "sms77",
  "parameters": {
    "resource": "voice",
    "operation": "send",
    "to": "+49876543210",
    "message": "This is a reminder about your appointment tomorrow at 3 PM.",
    "options": {
      "from": "+4901234567890"
    }
  }
}
```

### 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

Seven (sms77) sends SMS messages and makes text-to-speech voice calls via the seven.io API. Use it for notifications, alerts, verification codes, or automated voice announcements.

### Notes

- The sender is set differently per resource: SMS uses the top-level From field, while a voice call takes its caller ID from Options.
- Both resources share one Options field, so entries you configured for SMS are still sent if you switch the node to Voice Call. Clear the ones that no longer apply when you change resource.
- To accepts several comma-separated recipients, or a seven.io contact or group name, and the whole send counts as one request.
- A response code other than `"100"` fails the item, so a wrong API key or a rejected message surfaces as an item error rather than a quietly successful send.