来自Twilio工作室的访问号码友好名称

时间:2018-05-08 06:31:11

标签: twilio twilio-studio

我们正在建立一个IVR,每个城市有多个号码用于各种广告系列。例如:Metro,Bus,Google,Facebook,Website等。

当有来电时,我们正在使用该号码在Salesforce上创建一个潜在客户,但我们错过了广告系列。

虽然可以访问CallFrom编号{{trigger.call.From}}和CallTo编号{{trigger.call.To}},但我们也想访问该号码的友好名称。

此号码的友好名称包含广告系列,有没有办法访问它,所以它会与其余信息一起发送出来?

由于

2 个答案:

答案 0 :(得分:0)

Twilio开发者传道者在这里。

当您收到来自Twilio的来电时,您只会收到request parameters in the documentation,其中不包含您的号码的友好名称。

您可以使用Twilio函数作为Studio流程的一部分来获取该数字。您需要将from number作为参数传递给Function,方法是将它设置为widget设置中的参数,如下所示:

Set a Function Parameter called "To" and fill it with <code>{{trigger.call.To}}</code>

正如您所看到的,我们正在使用数据trigger.call.To,这是传入的电话号码。

然后,你的函数看起来像这样:

exports.handler = function(context, event, callback) {
  const phoneNumber = event.To;
  const client = context.getTwilioClient();

  client.incomingPhoneNumbers.list(
    {
      phoneNumber: phoneNumber
    },
    (err, data) => {
      if (err) {
        return callback(err);
      }
      const response = { FriendlyName: data.incomingPhoneNumbers[0].friendlyName };
      callback(null, response);
    }
  );
};

这会将数据返回到您的流程中,您可以稍后在流程中以{{widgets.MY_WIDGET_NAME.parsed.FriendlyName}}的形式访问它。

让我知道这是否有帮助。

答案 1 :(得分:0)

一些旧帖子,以防万一这可以帮助某人...

首先,谢谢Phil为我提供的指导。我必须稍加修改您的代码才能使其与3.x Twilio Client API一起使用,并且我添加了phoneNumber本身作为后备值。这个版本是“众所周知的”,并且在本文发布之日对我有用:

exports.handler = function(context, event, callback) {
  const phoneNumber = event.To;
  const client = context.getTwilioClient();

  client.incomingPhoneNumbers.list(
    {
      phoneNumber: phoneNumber
    },
    (err, data) => {
      if (err) {
        return callback(err);
      }
      console.log("data = " + data);
      var fName;
      if (data.length) {
          fName = data[0].friendlyName;
      }
      else {
          fName = phoneNumber;
      }
      const response = { FriendlyName: fName };
      callback(null, response);
    }
  );
};