12

You should be able to follow the steps in the Live Agent's Developers Guide and the Service Cloud Workbook's section on Live Agent for the main steps and various configurations of Live Agent. For specifically setting up a Pre-Chat form on an external site vs. on a Force.com Site page, there is not much of a difference. I've supplied sample code and other ...


8

You have to type ;; (i.e., semi-colon semi-colon) in the chat window to prompt the quick text as documented here. Also, make sure that the agent has access to the record (org wide defaults, sharing, etc.) and that the Quick Text record(s) are assigned to the Live Agent channel.


7

Unfortunately, no there is not a way to do it. The recommended approach is to use what you are already aware of -- Custom Settings. See this #askforce tweet responded to by the product manager at Salesforce. Is there a way to determine LiveAgent API Endpoint from Apex or JS? liveagent.init(endpoint,chakey,org) Response: Unfortunately, no, not ...


7

For some reason the Visitor calls aren't documented in the REST API documentation. You can perform the REST version of these by dropping the .jsonp suffix and moving the version into the header. To retrieve the settings, try: curl 'https://$HOST/chat/rest/Visitor/Settings?Settings.prefix=Visitor&Settings.buttonIds=\[$MY_BUTTON_ID]\]&Settings....


7

When manually creating the Case in a console component instead of letting Salesforce create the Case automatically via pre-chat or deployment API then you will need to use an apex trigger on the LiveChatTranscript object and add a custom text field Chat Key to your Case object to correlate the records in the trigger. Custom Console Component Here is sample ...


6

Received an answer from Salesforce support: First of all, header parameter names listed in the documentation are wrong. They should be: X-LIVEAGENT-AFFINITY X-LIVEAGENT-SESSION-KEY X-LIVEAGENT-SEQUENCE X-LIVEAGENT-API-VERSION (this is the only one correctly named in the docs) To have the sessionId call return the affinity token, along with the X-...


6

UserServicePresence is the right place to look. Offline is simply the absence of a status. If there are no UserServicePresence records where IsCurrentState==true, the user is in an offline state.


5

Example: Create a case with the value "Chat" as Origin. <input type='hidden' name='liveagent.prechat:caseorigin' value='Chat'/> <input type='hidden' name='liveagent.prechat:caseContactId' value='{!$User.ContactId}'/> <input type="hidden" name="liveagent.prechat.findorcreate.map:Case" value="Origin,caseorigin;ContactId,caseContactId;" /> &...


5

The syntax you have to find an existing record looks correct. I assume that you have a button somewhere or something to actually submit the form. You haven't specified what to create if it isn't found. You do that with the map.doCreate method. The doFind alone does not create a new record. If it doesn't find anything the console just stays on the ...


5

There is no way to do this from the Live Agent configuration. The following is not a practical solution but it could be an option if this was a MUST HAVE type of requirement. I would create a custom object that would be created as soon as the chat is accepted, that custom object would represent a chat session and would have a status such as "Started" and "...


5

You can use REST to create these records as well. I find it a much simpler approach. public static HttpResponse postSkillUser(SkillUser record) { String endpoint = URL.getSalesforceBaseUrl().toExternalForm() + '/services/data/v40.0/sobjects/SkillUser'; String authHeader = 'Bearer ' + UserInfo.getSessionId(); HttpRequest request = new ...


5

At this moment, the full Snap-In embedded_svc library structure is not available in Lightning. If you are developing in a Community and using the OOTB Lightning Snap-In component, for example, you are limited to the methods you've called out (in addition to a couple more referenced in the documentation): cmp.find("prechatAPI").getPrechatFields(); cmp.find("...


4

Not currently exposed in the API as of Winter 2014 Release.


4

Thanks to Jon Aniano ‏@jonaniano " There is an undocumented method for this (will be documented in Summer - SAFE HARBOR applies). You can use it today. Before your "init" call in your deployment code: liveagent.setChatWindowHeight(500); liveagent.setChatWindowWidth(500); where (500) in the example above would be your size in pixels. Hope this helps "


4

Yes, it is possible, you can do this by creating a custom chat window. This is explained in the Live Agent Developer guide, see the section title "Customize Chat Windows with Visualforce " Here is a snippet from the code sample provided by Salesforce: <liveAgent:clientchat > <liveAgent:clientChatSaveButton label="Save Chat" /> <liveAgent:...


4

Method One : PreChat API Only (Record Type by ID) Create a hidden input field that will host the Record Type by Id, because RecordType Name is not supported in live agent: <input type="hidden" name="liveagent.prechat.caseRecordType" value="RECORDTYPEID" /> Then in your findorcreate.map, make sure you are mapping caseRecordType to RecordTypeId in ...


4

I figured this out, I had to add "liveagent.showWhenOnline" to window._laq, but not "liveagent.showWhenOffline". Here is the working code if anyone is interested: <html> <head> </head> <body> <h1>Welcome!</h1> Thank you for contacting customer support. <p/> <a href="javascript://Chat" ...


4

As a best practice: don't do it (at least, automatically). Just because they appear to be located in a place you don't service does not mean they are in that place, or that they live there permanently. For example, what if they use a VPN, or TOR, or some aggregate connection that masks their real presence by a significant margin? What if they're on vacation, ...


4

A few things may be at play here. 1) Try passing the X-LIVEAGENT-AFFINITY value as null. This prevents the session expiry. 2) If you copied your JSON from the online documentation example, it's wrong. You may want to use JSON lint to double check if your JSON is valid or not (I suspect this is most likely the issue in your case) Unfortunately, the ...


4

The first thing i recommend you do is go to Customize > Omni-Channel > Presence Status and get the names of the presence statuses for when your users are online. Next, go to Customize > Manage Users > Permission Set and search for the permission set that contains the presence statuses you just found the names for (Presence Statuses is likely what it's named)....


4

excellent post and I am sorry to see that you had to spend so much time on this. Known issue and already tracked with bug W-3214759 Live Agent Chat is blocked in Community Templates with Locker Service. The programming mode of including a global scoped library such as deployment.js - not into the component using ltng:require - is not going to work. ...


4

By design, components are not allowed to access "the Window". For that reason, you'll not be able to get one to open in a new Window. What you will be able to do though is allow the user to press a pop-out button on the component so it pops-out into it's own Window. By design, you won't be able to cause that functionality to occur automatically. It will ...


3

Unfortunately for your situation, you still have to use a Force.com Site because LiveAgent was originally created with public end users in mind. As you noted, you only get to select a Custom Chat Page after you have selected a Force.com Site.


3

There are a few areas of Salesforce that Developer Name and Name are used. By having two different fields, you can have a developer name field that doesn't change and can more reliably be used in code. That allows the Name field to be modified and be used more of as a label. You can think of the two as Name be the the Label and Developer Name be the API Name....


3

The developer name for a skill is the equivalent of the API name for a field. This is the name you will use if you were to query or use this component via the API.


3

Information about the chat is sent via a POST to the post-chat page. The simplest solution would probably be to inspect the transcript field. If it is empty, there were no messages sent. In Apex, that check would be String.isEmpty($CurrentPage.parameters.transcript) Check out the post-chat page section of the Live Agent Developer Guide for a list of all ...


3

Just in case someone else comes across this. We have an article that explains how to handle this https://help.salesforce.com/apex/HTViewSolution?urlname=Live-Agent-Starting-a-chat-ends-with-a-404-page&language=en_US Sample Code: <div id="chatonline" /> <script type="text/javascript"> if (!window._laq) { window._laq = []; } window....


3

Remove the visibility to the Tab in their profile.


3

No, unfortunately is not possible to edit this page.


3

You can definitely pass custom data from Live Agent into the pre-chat form. You can use the Live Agent deployment method .addCustomDetail to add details in the web page where your live chat button appears. NOTE: This web page where the chat is initiated can be hosted anywhere, does not need to be a Salesforce page. Then, in your pre-chat form, there is a ...


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