Hot answers tagged

4

One workaround should be to pass in the WhoId as an object, rather than a string. WhoId:"[{id:003xxxxxxxxxxxx}]" This is needed for the WhoId which is a for Task or Event.


4

CTI Adapters are specific to your phone system and are supplied by the company that makes your phone system or a third party. Look at the AppExchange for some vendors to research: https://appexchange.salesforce.com/results?keywords=cti


4

There are several ways of accomplishing this, that I can think of. A relatively simple way, would be to build an apex rest service that can be invoked by the phone service, which would, lets say, add a new record into a custom object with the user identifier and incoming number. An Open CTI adapter implemented using a Visualforce page, and assigned to the ...


4

Open CTI is not yet supported in the LWC! Even if you manage to solve it, as of today you won’t get much support on this as it is not officially supported! There are couple of alternate approach you can take Use aura components and in aura components you can access sforce methods easily! A sample app to show this is in below git https://github.com/...


3

Call center users will always see the softphone in the Salesforce Classic UI. The only way to stop displaying the softphone on those pages is to remove the user from the call center. https://help.salesforce.com/HTViewHelpDoc?id=cti_admin_manageagentsremove.htm&language=en_US


3

It looks like there is an issue with the Visualforce session being generated. Can you open a support case and provide login access to salesforce support and steps to reproduce if possible? Then email jhurst[at]salesforce.com with the case number and I can take a look. Thanks


3

Well I guess I found a way out. Instead of using integration.js I used interaction.js which is generally used to communicate with CTI and directly called the method by just "sendCTIMessage" <apex:page> <script src="/support/api/26.0/interaction.js" type="text/javascript"></script> <script type="text/javascript"> ...


2

Here Parent page is from Salesforce domain and the Visualforce page you wrote is from force.com domain. sendCTIMessage is sending message through different domain so that communication cannot be happened. To make it work both Console and Visualforce page must be from same domain at least. One of the work around can be is create custom interaction log ...


2

I'd recommend having it stored locally either inside the VF page or hosted inside your Salesforce org as a static resource. Having the script residing on another server has downsides like: It can be changed by a 3rd party without a notice which potentially may lead to multitude of security risks The server might be down and your page won't work, or the ...


2

In JavaScript values from a parent scope are visible in the child scope. So in this case you can just directly reference the value of test in the callback function: var test = "some data"; var callback = function (response) { ... console.log('test=' + test); ... }; The callback function is invoked by code outside your control which is why ...


2

You need to use visualforce and controller Extension to meet your requirement. Use support:clickToDial component which renders a valid phone number as click-to-dial enabled for Open CTI. This field respects any existing click-to-dial commands for computer-telephony integrations (CTI) with Salesforce. <apex:page standardController="Account" ...


2

I have not found a way. We've pushed Salesforce to make Open CTI support enabled by default for Lightning apps but haven't found anyone who is responsive.


2

The soft phone is the bridge between your telephony system and Salesforce. You can use any CTI-capable phone system, such as Avaya, AT&T, or even Skype. When you dial a number on the soft phone, it sends the command to your phone so the call can be completed. Similarly, when an incoming call starts ringing on your phone, you can answer it via the soft ...


2

Apex REST service option will also work (like Suraj suggested), but it needs custom object data to be stored (which may be transient info) in SFDC DB. Then you need to look for a way to delete them , etc.. I would recommend going for a Client/Server Web Service model, which does not involve APEX/VF/Custom objects. You can create an html page (loaded in the ...


2

For anyone struggling with an issue of OpenCTI API methods not getting invoked without any visible cause - in our case this turned out to be the issue with Call Center configuration: the CTI Adapter URL was configured like so: apex/<softPhonePageName>, without the leading slash. This was not an issue in terms of the SoftPhone page being displayed, but ...


2

As the documentation specifies, you must use a standard URL query string syntax: sforce.interaction.runApex('GlobalWebServicesEx', 'CreateCTILogs', 'caseid='+encodeURIComponent(cid)+'&callid='+encodeURIComponent(call), callback); Note that you should always use encodeURIComponent to avoid accidental escaping issues with special characters.


2

Rather than using a Custom Setting, create a new unique External Id Text field on Activities (which includes Task and Event) to store the Call Id. Your code cannot reasonably expect to maintain a persistent mapping between Call Ids and Task Ids in Custom Settings. Instead, store the Call Id on the Task object itself, and handle updates by upserting ...


1

Main disadvantage here is configurations that you need to configure record pages/layouts for each of profile while Call Centers/Open CTI gives ability to setup it once in utility bar. Also Open CTI enabled and user added in callcenter makes phone fields clickable and Call could be performed by clicking on that field. If you just use component designed to ...


1

To use Open CTI, you'll need more than a Community User License. If I'm not mistaken, it requires at least a Salesforce Platform license and more likely a Salesforce CRM license. Community users are "external" users, not internal users. Open CTI was developed for use by internal users.


1

The documentation has a good diagram about who owns what https://help.salesforce.com/articleView?id=cloud_cti_api_overview.htm&language=en_US&type=0 Open CTI is purely the JavaScript library that keeps the Salesforce front end up to date, to track the active call data, and provides some methods for saving objects as well. The connection to the ...


1

As an alternative, you could look to use the Open CTI method saveLog() which despite it's name can create any entity.


1

Solution to solve the issue is adding below script in demoCallControl page <script> enableClickToDial(); </script>


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 ...


1

I found the answer after all. This is not explained very well but the CallObject is not the call centre but rather the unique id of the call. If you set this then it will show up as a call in the feed. I am wondering how I can get a manually logged call to show up without setting this field though? If I don't have a unique call id because they are manually ...


1

The Open CTI API includes a saveLog() method: Saves or updates an object in Salesforce. Have a look at the documentation that shows how to use it, this would allow you to create a new call log (probably as a Task). If you are creating your own Task then you'll want to link it to the call using the CallObject field on task to contain the unique call ID.


1

These are the points which will help you understand datetime in salesforce: Salesforce DB always save datetime in UTC SOAP api call return all date and datetime in UTC format. You can convert your datetime to users timezone before making callout to salesofrce. Let me know if you need some more information and please add some more information like which ...


1

All instances where Salesforce API is invoked whether via javascript, remoting, external tools (OpenCTI, data loader) are counter against API limits usage. Only following are exmpted:- Outbound messages Apex callouts for more details refer:- https://help.salesforce.com/apex/HTViewHelpDoc?id=integrate_api_rate_limiting.htm


1

This function is documented by sfdc here: http://www.salesforce.com/us/developer/docs/api_cti/Content/sforce_api_cti_searchandscreenpop.htm But this does not contain a clear example indeed. To search only in Contact, you should be able to use this syntax: sforce.interaction.searchAndScreenPop('111-111-1111', 'object=Contact', 'inbound', callback);


1

I just added the cleanFormatting function that is invoked from startCall function, here the three functions tht I'm using: sforce.interaction.cti.onClickToDial(startCall);//Invoke startCallFunction /********************************* Start a call to salesforce **********************************/ function startCall(...


1

The reason why getPageInfo doesn't return any page information here is because of the Visualforce override. On a VF page, there might not be any object id, object name or even an object associated with the page. Conversely, even if there is, the API has no way to understand/ inspect what the "objectid", "object" field on a VF page represents. A custom ...


Only top voted, non community-wiki answers of a minimum length are eligible