You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ServiceNow中集成WhatsApp?配置Twilio/Infobip遇阻求助

ServiceNow集成WhatsApp实现Incident更新通知方案

一、Twilio集成步骤与问题排查

1. 基础配置准备

  • 确认Twilio账号已开通WhatsApp业务功能,获取Account SID、Auth Token,以及已验证/审批的WhatsApp发送号码(如官方测试号+14155238886或自有品牌号)
  • 在ServiceNow中通过Business Rule触发消息发送(适配Incident更新场景)

2. Business Rule核心配置

  • 触发条件:选择Incident表,触发时机设为记录更新,可按需添加过滤规则(如状态变更、新增备注等)
  • 执行脚本:
// 处理呼叫者手机号为国际标准格式
var callerPhone = current.caller_id.mobile_phone;
if (!callerPhone || !callerPhone.startsWith('+')) {
    callerPhone = '+86' + callerPhone.replace(/[^0-9]/g, '');
}

// Twilio参数配置
var twilioAccountSid = '你的Twilio Account SID';
var twilioAuthToken = '你的Twilio Auth Token';
var twilioFromNumber = 'whatsapp:+14155238886'; // 替换为你的发送号,需带whatsapp:前缀
var messageBody = 'Incident #' + current.number + '已更新,当前状态:' + current.state.getDisplayValue();

// 调用Twilio API发送消息
var request = new sn_ws.RESTMessageV2();
request.setEndpoint('https://api.twilio.com/2010-04-01/Accounts/' + twilioAccountSid + '/Messages.json');
request.setHttpMethod('POST');
request.setBasicAuth(twilioAccountSid, twilioAuthToken);

request.addParameter('From', twilioFromNumber);
request.addParameter('To', 'whatsapp:' + callerPhone);
request.addParameter('Body', messageBody);

var response = request.execute();
gs.log('Twilio发送结果:状态码' + response.getStatusCode() + ',响应内容' + response.getBody());

3. 常见问题排查

  • 格式错误:发送/接收号码必须带whatsapp:前缀,且手机号为国际标准格式(含国家码)
  • 权限限制:检查ServiceNow的出站HTTP请求列表是否已添加api.twilio.com,确保允许访问该域名
  • Twilio侧拦截:测试号仅能给已验证的手机号发消息;品牌号需完成WhatsApp商业账户审批,否则消息会被拦截

二、Infobip集成步骤与问题排查

1. 基础配置准备

  • 获取Infobip的API Key、区域Base URL(如https://eu.api.infobip.com),以及已配置完成的WhatsApp发送号码
  • 确认Infobip账号已完成WhatsApp业务注册,目标手机号在测试阶段已完成验证

2. Business Rule核心配置

  • 触发条件同Twilio:Incident表记录更新时触发,按需添加过滤规则
  • 执行脚本:
// 处理呼叫者手机号为国际标准格式
var callerPhone = current.caller_id.mobile_phone;
if (!callerPhone || !callerPhone.startsWith('+')) {
    callerPhone = '+86' + callerPhone.replace(/[^0-9]/g, '');
}

// Infobip参数配置
var infobipApiKey = '你的Infobip API Key';
var infobipBaseUrl = 'https://eu.api.infobip.com'; // 替换为你的区域Base URL
var infobipFromNumber = '你的WhatsApp发送号';
var messageBody = 'Incident #' + current.number + '已更新,当前状态:' + current.state.getDisplayValue();

// 调用Infobip API发送消息
var request = new sn_ws.RESTMessageV2();
request.setEndpoint(infobipBaseUrl + '/whatsapp/1/message/text');
request.setHttpMethod('POST');
request.setRequestHeader('Authorization', 'App ' + infobipApiKey);
request.setRequestHeader('Content-Type', 'application/json');

var requestBody = {
    "messages": [
        {
            "from": infobipFromNumber,
            "to": callerPhone,
            "content": {
                "text": messageBody
            }
        }
    ]
};

request.setRequestBody(JSON.stringify(requestBody));
var response = request.execute();
gs.log('Infobip发送结果:状态码' + response.getStatusCode() + ',响应内容' + response.getBody());

3. 常见问题排查

  • API版本错误:确保使用Infobip当前可用的WhatsApp API版本(如v1),避免因版本过期导致请求失败
  • 签名验证失败:检查Authorization头格式是否为App 你的API Key,不要添加多余前缀
  • 模板限制:正式商用场景下,WhatsApp要求使用预审批的消息模板;测试阶段可使用自由文本,但正式环境必须切换为审批通过的模板

内容的提问来源于stack exchange,提问作者Gunashekar n

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 21:39:36