I am new to Salesforce and I am not sure what to use to achieve below.

Imagine the situation.

  1. Somebody makes a phone call on the number 01843668832.
  2. The phone call goes through external company witch capture information such as caller telephone number, call lenght etc.
  3. I pull stats from external company about this phone call using SOAP API.
  4. Now I got this information and I am pushing it to SalesForce.
  5. Salesforce receive this information and shows the pop up with received information to the agent.

My question is how do I achieve step 4 & 5?

Another thing is that I will need to do this for multiple Salesforce accounts. For example I will have 3 different accounts on SF.

Account A, Account B, Account C.

By account I mean completely different Salesforce account with different users, owner by different person.

I will have have three different phone numbers:

number 123 - Belonging to Account A

number 456 - Belonging to Account B

number 789 - Belonging to Account C

I will have access to the phone call stats for all of these numbers.

I will get permission to access and change Account A, B & C Salesforce data using oAuth2 authentication.

When phone call happen to number 123 I want the pop up to show only for Account A. When phone call happen to number 456 I want the pop up to show for Account B. And so on.

Do I have to create Visual Force page or can that be places in standard Sales Force page (standard layout)?

Can this be achieved using Salesforce Open CTI ?

  • One of the solutions may be to create custom visualforce page that include apex:detail (standard layout ) section, and custom object like Call__c (for example). Then, on page load, add some action poller mechanism (or JS remoting task ) for every 10-15 seconds fetch newly created records with lookup to this account and if they are -- show some popup via JS. Minuses -- that is JS cliesn side logic, what mean that it may be some delay between record start to be inserted in salesforce and actual popup appears
    – kurunve
    Commented Apr 11, 2016 at 8:27
  • @kurunve Thanks I will give it a go. Please tell me because I cannot wrap this around my head, how will I give access to that visualforce page to all the accounts (account a, b & c) ? I only own Account A. I do not have login/password to account B & C, I only got permission to read/write and whatever oauth2 gives me.
    – zachu
    Commented Apr 11, 2016 at 8:30
  • by account you mean User? or Account?
    – kurunve
    Commented Apr 11, 2016 at 8:33
  • Completely different Salesforce account with different users, owner by different person
    – zachu
    Commented Apr 11, 2016 at 8:35
  • so, by account you mean company? like salesforce organisation?
    – kurunve
    Commented Apr 11, 2016 at 8:37

1 Answer 1


The scenario you describe is a high-level integration scenario, so it's difficult to give specific answers. Most of what you mention is achievable, but it all depends on the features of your third-party telephony provider.

The OpenCTI API allows you to search and 'pop' (display) records in Salesforce via javascript. You can either pop the matching record itself (ie: the page layout for the record) or a custom VisualForce page that you build (in which case you're supplied a query string to find the right record). This takes care of step number 5 in your scenario.

I'm not too clear about steps 3 and 4. What kind of SOAP API are you using to get this information? Where are you pushing it from? Are you building a bridge between this telephony provider and Salesforce? Or is your provider pushing it onto you using the Salesforce SOAP WSDL?

You mention that you pull stats like call duration, but that is only available after the call has ended. So, are you retrieving the record when the call starts or after the call ends?

As for the different SF accounts (I prefer to call them 'Orgs' to avoid confusion with the Account standard object), it all depends on whether your telephony provider's solution has the ability to integrate with different orgs.

Once you have all the information inside Salesforce, displaying it should be fairly easy. You could store it as custom fields in your Salesforce objects and add them to the page layout.

Just out of curiosity, have you already chosen a telephony provider? Because those are questions that perhaps they could be able to answer or to demo for you.

  • Thank you for your answer that is very helpful! Sorry for delay I've been on holiday. There is two scenarios I am going to be retrieving the record when the call starts and after the call ends but in this question I only want to concentrate on the scenario when the CALL STARTS. I provided the telephony provider with URL and when the call starts they send some stats to that URL. This is how I capture the data. My script will then receive this information and I want to forward it to Salesforce. I am not sure how OpenCTI works, I been reading but is not very clear how do I get that data into SF?
    – zachu
    Commented Apr 26, 2016 at 9:59
  • Hi, I'm still not quite sure of what data you're talking about. Using OpenCTI (javascript library), when a call starts, Salesforce can match any record containing a string supplied by your telephony provider (usually the calling line number). Salesforce can match and pop any records that contain that string, but it's data already existing in the org (Contacts, Leads, custom sObjects...). We to push all call stats (duration, ring time, talk time, etc), at the end of the call, when all the information is available. From what I see your approach is completely different.
    – mkorman
    Commented Apr 26, 2016 at 14:26
  • My telephony provider provides me with caller telephone number. You say "Salesforce can match any record containing a string supplied by your telephony provider " - and this is exactly what I want to do. My question is how do I tell salesforce: "Hi Salesforce this is the telephone number: 12345678, match the record if it exists and please pop it on the screen".
    – zachu
    Commented Apr 26, 2016 at 14:41
  • I already created simple softphone layout which is displayed on the left side in my Salesforce, I just don't know how to tell salesforce "Phonecall is happening right now, this is the number, pop it in the softphone on the left"
    – zachu
    Commented Apr 26, 2016 at 14:43
  • The way my telephony provider provides me with caller telephone number is they append it to the URL i provide. So If i provide them with url: xyz.com they will send caller telephone number like: xyz.com?callerNumber=12345678
    – zachu
    Commented Apr 26, 2016 at 14:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .