如何配置Twilio呼叫路由实现点击浏览器图标先呼销售手机再呼客户
Twilio 坐席先接后呼客户实现方案
核心逻辑说明
你需要的是Twilio经典的双呼(点击拨号)场景,全程走运营商语音线路,无需依赖浏览器的麦克风/耳机权限,坐席直接用自有手机接听即可完成外呼流程。
具体实现步骤
1. 前置资源准备
- 注册Twilio账号并开通语音服务,申请至少1个支持外呼的Twilio号码,确保该号码具备你业务所需地区的语音呼出权限
- 获取你的Twilio
Account SID和Auth Token,这两个凭证仅可存储在你的CRM服务端,禁止暴露到前端代码中 - 你的CRM服务端需要提供公开可访问的HTTPS接口,用于接收Twilio的Webhook回调,本地调试可借助内网穿透工具实现公网访问
2. 前端交互对接
在你的CRM前端页面给呼叫图标绑定点击事件,点击后将当前登录坐席的手机号、待拨打的客户手机号两个参数,发送到你自己的CRM后端接口,不要直接从前端调用Twilio公开接口,避免凭证泄露。
3. 服务端发起坐席侧呼叫
CRM后端收到前端的呼叫请求后,调用Twilio的Calls API发起第一通呼叫,主叫为你申请的Twilio号码,被叫为坐席手机号,同时指定回调地址参数。
以下是Node.js环境的示例代码:
const accountSid = '替换为你的Twilio Account SID'; const authToken = '替换为你的Twilio Auth Token'; const twilioClient = require('twilio')(accountSid, authToken); twilioClient.calls .create({ url: 'https://你的CRM服务域名/twilio/agent-connected?customerPhone=编码后的客户手机号', to: '坐席手机号(E.164格式,如+8613xxxxxxxxx)', from: '你的Twilio号码(E.164格式)' }) .then(call => console.log('呼叫坐席任务创建成功,SID:', call.sid)) .catch(err => console.error('呼叫创建失败:', err));
其中url参数为Twilio的回调地址,当坐席接通电话后,Twilio会主动请求该地址获取后续执行指令。
4. 坐席接通后自动呼叫客户
当坐席在手机上接听来电后,Twilio会向你上面配置的回调地址发送POST请求,你需要在该接口中返回TwiML格式的响应,告知Twilio接下来需要拨打客户手机号:
回调接口返回的TwiML示例:
<Response> <!-- 可以在这里加<Say>标签播放接通提示音,比如<Say>正在为您接通客户,请稍候</Say> --> <Dial callerId="你的Twilio号码" timeout="20" record="record-from-answer"> <Number>客户手机号(E.164格式)</Number> </Dial> </Response>
Twilio收到该响应后会自动发起对客户的呼叫,客户接通后双方即可正常通话,你也可以通过TwiML的配置扩展录音、等待音、通话状态同步等能力。
教程参考
Twilio官方文档中心有「Click to Call」场景的完整分步操作指引,覆盖Java、Python、PHP、Node.js等多种常用编程语言的示例代码,搜索对应关键词即可找到。
注意事项
- 所有号码必须使用E.164格式填写,否则会出现呼叫失败的问题
- 如面向国内用户提供服务,需提前确认Twilio号码的国内呼出权限、资费以及对应的合规要求
- 可通过配置呼叫状态回调接口,将通话时长、接通状态、录音地址等数据同步回你的CRM系统,满足数据统计需求
内容的提问来源于stack exchange,提问作者Jhaus
相关产品推荐
相关产品推荐

