1.Goal - Get the extension number of the account owner of the caller from the Salesforce to do the call distribution.
2. Extension look up service - Help
3.Automatic Call Distribution for Salesforce set up for Account Owner Extension Look Up. Default set up available with Automatic Call Distribution for Salesforce
4.Parameters required for Extension data lookup service
1.Extension Lookup ID
2.Org Id
3.PBX ID
4.Caller Id
1. Create function in Twilio for account owner extension look up.
Sample Code
Extension look up -
const axios = require('axios');
exports.handler = function (context, event, callback) {
const twiml = new Twilio.twiml.VoiceResponse();
var pbxToken = "abcdddd181282828282ws";
var orgId = "00D24000000HxH6ABCD";
var pbxId = "E0BE26-58A3C0-65B267";
var lookupid = "16FDC5-7BE6B6-463E18";
var apiBaseUrl = "https://acd1.miragecloud.com/acd/api/ExtNo/";
var callerId = event.CallerId;
var caller = callerId.split('@')[0].split(':')[1];
var url = apiBaseUrl + pbxId + orgId + "?callerid=" + caller + "&token=" + pbxToken + "&lookupid=" + lookupid;
axios
.get(url)
.then((response) => {
var responsestring = response.data;
// twiml.say('Extension number is ' + responsestring);
const VoiceResponse = require("twilio").twiml.VoiceResponse;
const responseVoice = new VoiceResponse();
const dial = responseVoice.dial({
//referUrl: "https://example.com/handler",
});
dial.sip(
"sip:" + responsestring + "@mirageaws1.my3cx.de"
);
console.log(response.toString());
return callback(null, responseVoice);
})
.catch((error) => {
console.error(error);
return callback(error);
});
};
2. Create a studio flow for the call flow and call the above extension look up function to get the account owner extension. Pass CallerId as the function parameter.
Note : To test any Automatic Call Distribution for Salesforce set up ,you can use Custom Configuration Test Tool available in PBX test tool