2

我们正在建立一个 IVR,并且每个城市都有多个号码用于各种活动。例如:Metro、Bus、Google、Facebook、网站等。

当有电话打进来时,我们正在 Salesforce 上使用该号码创建潜在客户,但我们错过了活动。

在访问 CallFrom 号码 {{trigger.call.From}} 和 CallTo 号码 {{trigger.call.To}} 的同时,我们还希望访问该号码的友好名称。

这个数字的友好名称包含活动,有没有办法访问它,以便将其与其余信息一起发送出去?

谢谢

4

2 回答 2

2

Twilio 开发人员布道者在这里。

当您收到来自 Twilio 的来电时,您只会收到文档中的请求参数,其中不包括您号码的友好名称。

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

设置一个名为的函数参数

如您所见,我们使用的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}}.

让我知道这是否有帮助。

于 2018-05-10T05:50:06.740 回答
1

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

首先,谢谢菲尔给我指路。我不得不稍微修改您的代码以使其与 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);
    }
  );
};
于 2019-02-12T21:46:29.623 回答