产品定价 立即试用
社区版
入门 文档 指南 安装 架构 API 常见问题

twilio sms

通过 Twilio 消息服务向指定号码发送短信。

配置

  • Phone Number From — 发送方Twilio号码或Messaging Service SID。须为E.164格式(如 +19995550123)。该字段支持 templatization
  • Phone Numbers To — 接收短信的号码列表(逗号分隔)。该字段支持 templatization
  • Twilio Account SID — Twilio账户标识。
  • Twilio Account Token — Twilio认证令牌。
文档信息图标

注意:若使用Professional Edition,建议使用 Secrets storage 安全存储账户令牌。

JSON Schema

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "TbTwilioSmsNodeConfiguration",
  "type": "object",
  "properties": {
    "numberFrom": {
      "type": "string",
      "description": "Twilio phone number or Messaging Service SID (E.164 format). Supports templatization."
    },
    "numbersTo": {
      "type": "string",
      "description": "Comma-separated list of target phone numbers. Supports templatization."
    },
    "accountSid": {
      "type": "string",
      "description": "Twilio Account SID"
    },
    "accountToken": {
      "type": "string",
      "description": "Twilio Account Token"
    }
  },
  "required": [
    "numberFrom",
    "numbersTo",
    "accountSid",
    "accountToken"
  ],
  "additionalProperties": false
}

输出消息格式

节点不修改入站消息。消息数据和metadata均原样传递给链中下一节点。

消息确认行为

节点的消息确认行为由环境变量 ACTORS_RULE_EXTERNAL_NODE_FORCE_ACK 控制:

  • 设为 true — 入站消息在接收后立即确认并标记为成功处理,创建副本。短信发送异步执行,完成后副本入队交由下一节点处理。
  • 设为 false(默认)— 入站消息在整个短信发送过程中保持处理中状态。短信操作完成后将消息传递给下一节点。

消息处理算法

  1. 节点处理from模板,从入站消息数据和metadata中提取发送方号码。
  2. 节点处理to模板,从入站消息数据和metadata中提取目标号码。
  3. 短信内容直接取自入站消息data payload。去除首尾引号,并将转义换行符(\n)转换为实际换行。
  4. 通过Twilio异步向每个指定号码发送短信。
  5. 处理完成时:
    • Success:所有短信成功发送后将消息路由到 Success 连接。
    • Failure:若任一条短信发送失败,将消息路由到 Failure 连接。

输出连接

  • Success
    • 短信已成功发送到所有指定号码。
  • Failure
    • 发送短信时发生意外错误。

示例

示例1 — 发送alarm通知

设备触发alarm时发送短信告警。

入站消息

数据:

1
"Device Temperature Sensor 01 has triggered HIGH_TEMPERATURE alarm"

Metadata:

1
2
3
4
5
6
{
  "deviceName": "Temperature Sensor 01",
  "alarmType": "HIGH_TEMPERATURE",
  "userPhone": "+15551234567",
  "twilioNumber": "+15559876543"
}

节点配置

1
2
3
4
5
6
{
  "numberFrom": "${twilioNumber}",
  "numbersTo": "${userPhone}",
  "accountSid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "accountToken": "your_auth_token_here"
}

出站消息

数据:未更改。

Metadata:未更改。

Success 连接路由。

结果

已从 +15559876543向 +15551234567发送短信:

1
Device Temperature Sensor 01 has triggered HIGH_TEMPERATURE alarm

示例2 — 多收件人

向多个号码发送短信通知。

入站消息

数据:

1
"Critical: Water leak detected in Warehouse A"

Metadata:

1
2
3
4
{
  "emergencyContacts": "+15551234567,+15559876543,+15555555555",
  "companyPhone": "+15551111111"
}

节点配置

1
2
3
4
5
6
{
  "numberFrom": "${companyPhone}",
  "numbersTo": "${emergencyContacts}",
  "accountSid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "accountToken": "your_auth_token_here"
}

出站消息

数据:未更改。

Metadata:未更改。

Success 连接路由。

结果

已从 +15551111111向三位收件人(+15551234567、+15559876543、+15555555555)发送短信:

1
Critical: Water leak detected in Warehouse A