Building a Twilio call center in Salesforce. Part 1: General overview, tools and architecture

Recently I was given the opportunity to build a call center for incoming and outgoing calls that works from inside Salesforce. The benefit of such a call center integrated into Salesforce is that the sales people will have the customer data immediately available with the incoming phone call or make an outgoing phone call directly from the customer record. I’m going to share a few words about the architecture and the problems I stumbled upon when building this. Just for the record, Salesforce provides plenty of ready made VoIP solutions that you can easily install and start using out of the box. Those solutions are not cheap, but still they are ready to use and require no development time. Still, if you want to  automate business processes and have custom actions into the callcenter it’s easier to rely on a custom solution.

To paint the picture I’m going to provide details about used technologies and general architecture:

1. The phone infrastructure is handled by Twilio – easy to learn and well documented. It allows you to build VoIP telephone systems programatically, using Node.JS. In short, if you want to handle phone calls via the browser you can develop custom made call center yourself. Furthermore it provides SMS infrastructure if you want to automate SMS notifications as well. The idea behind Twilio is that it provides an API which allows you to start/end phone calls and you can build on top of this API whatever comes into your mind related to a phone system.  So far it works great and it’s really stable.

2. Salesforce Callcenter – Salesforce service called “Callcenter” allows you to integrate telephony systems directly inside the Salesforce UI. With simple words, it gives you a set of tools that will allow you to build a phone UI and show it to your users in Salesforce. You can configure the callcenter to be accessible through a small window in each Opportunity record and consultants will be able to call prospective clients from the client information tab itself. This feature is available for all kind of records, not only the opportunity view.

3. Javascript – when developing the telephony system you will mostly work with Javascript inside the Salesforce environment. With it you will need to build the phone UI itself(phone keyboard, accepting incoming calls, making outgoing calls etc). Apart from building the dynamic UI you will also use it to communicate with the backend of Salesforce.

4. Apex Code – this will be the backend tool which you will use when developing in the Salesforce environment. It will be used to fetch data from the Salesforce database, make external and handling incoming API calls to Twilio. Apart from communicating with the external Twilio environment you will need it to send events to the javascript softphone that you will build in Salresforce.

4. Node.Js – you will need Node.Js to build your telephony system in the Twilio environment.


Part 2 will explain the problems I struggled upon when using the Salesforce Callcenter.

Part 3 will shed some light on how Twilio functions work and how they allow you to program voice communication channels.


Leave a Reply

Your email address will not be published. Required fields are marked *