Print this page

Sample Request for creating a Case with Live Agent REST API

Knowledge Article Number 000229076
Description You can find a contact or create a new one (if no contact is found) and then create a case and associate the contact with the newly created case using Live Agent REST API

The "entityName" and "linkToEntityName" are case sensitive, eg. "entityName"="case" will not work , so use "entityName"="Case"

You can use following request body to create a case via Live Agent REST API .

Request Body
------------------------
{
   "sessionId":"7d18f437-e59b-4412-a1a6-5d206f654693",
   "organizationId":"00DM0000000qBYp",
   "buttonId":"573M00000008OUp",
   "deploymentId":"572M00000008OOS",
   "userAgent":"",
   "language":"en-US",
   "screenResolution":"1920x1080",
   "visitorName":"John A",
   "prechatDetails":[
       {
         "label":"LastName",
         "value":"SFDC",
         "entityMaps":[
            {
               "entityName":"contact",
               "fieldName":"LastName"
            }
         ],
         "transcriptFields":[
            "LastName__c"
         ],
         "displayToAgent":true
      },
      {
         "label":"FirstName",
         "value":"test",
         "entityMaps":[
            {
               "entityName":"contact",
               "fieldName":"FirstName"
            }
         ],
         "transcriptFields":[
            "FirstName__c"
         ],
         "displayToAgent":true
      },
      {
         "label":"Email",
         "value":"test@sfdctest.com",
         "entityMaps":[
            {
               "entityName":"contact",
               "fieldName":"Email"
            }
         ],
         "transcriptFields":[
            "Email__c"
         ],
         "displayToAgent":true
      },
      {
         "label":"Status",
         "value":"New",
         "entityMaps":[
            {
               "entityName":"Case",
               "fieldName":"Status"
            }
         ],
         "transcriptFields":[
            "caseStatus__c"
         ],
         "displayToAgent":true
      },
      {
         "label":"Origin",
         "value":"Web",
         "entityMaps":[
            {
               "entityName":"Case",
               "fieldName":"Origin"
            }
         ],
         "transcriptFields":[
            "caseOrigin__c"
         ],
         "displayToAgent":true
      },

      {
         "label":"Subject",
         "value":"TestCaseSubject",
         "entityMaps":[
            {
               "entityName":"Case",
               "fieldName":"Subject"
            }
         ],
         "transcriptFields":[
            "subject__c"
         ],
         "displayToAgent":true
      },
      {
         "label":"Description",
         "value":"TestCaseDescriptionShr",
         "entityMaps":[
            {
               "entityName":"Case",
               "fieldName":"Description"
            }
         ],
         "transcriptFields":[
            "description__c"
         ],
         "displayToAgent":true
      }
   ],
   "prechatEntities":[
   {
         "entityName":"Contact",         
         "saveToTranscript":"contact",
         "linkToEntityName":"Case",
         "linkToEntityField":"ContactId",
         "entityFieldsMaps":[
           
             {
               "fieldName":"LastName",
               "label":"LastName",
               "doFind":true,
               "isExactMatch":true,
               "doCreate":true
            },
            {
               "fieldName":"FirstName",
               "label":"FirstName",
               "doFind":true,
               "isExactMatch":true,
               "doCreate":true
            },
            {
               "fieldName":"Email",
               "label":"Email",
               "doFind":true,
               "isExactMatch":true,
               "doCreate":true
            }
                       
         ]
      },
       {
         "entityName":"Case",
         "showOnCreate":true,          
         "saveToTranscript":"Case",
         "entityFieldsMaps":[
            {
               "fieldName":"Status",
               "label":"Status",
               "doFind":false,
               "isExactMatch":false,
               "doCreate":true
            },
            {
               "fieldName":"Origin",
               "label":"Origin",
               "doFind":false,
               "isExactMatch":false,
               "doCreate":true
            },  

         {
               "fieldName":"Subject",
               "label":"Subject",
               "doFind":false,
               "isExactMatch":false,
               "doCreate":true
            },
            {
               "fieldName":"Description",
               "label":"Description",
               "doFind":false,
               "isExactMatch":false,
               "doCreate":true
            }         
         ]             
        
      }      
      
   ],
   "receiveQueueUpdates":true,
   "isPost":true
}


 
Resolution Setup Needed

Make sure Live agent is fully configured and get the following 
- deploymentId
- buttonId
- hostname (
To find your organization’s Live Agent API endpoint, from Setup, click Customize > Live Agent > Settings. ). 

Steps to Replicate

Using Google Chrome Advanced REST Client .Replace the hostname variable with your API endpoint in the URL for each new request - https://hostname/chat/rest/System/SessionId  

Step-1: Get the session ID with the below data

URL: https://c.la7cs.salesforceliveagent.com/chat/rest/System/SessionId  

Headers:   X-LIVEAGENT-API-VERSION: 34
                 X-LIVEAGENT-AFFINITY: null
Method: GET

Response Received:
===================
{
key: "cac2d9ac-5600-44cd-b714-c12fb054136a!ca5c5b3b-0096-4c80-8ff0-40d372016576"
id: "cac2d9ac-5600-44cd-b714-c12fb054136a"
affinityToken: "2c341fa0"
clientPollTimeout: 40
}


Step-2: Use the session id obtained above in the next call to ChasitorInit to create a Case. Use the Request Body provided above

URL: https://c.la7cs.salesforceliveagent.com/chat/rest/Chasitor/ChasitorInit

Headers: X-LIVEAGENT-API-VERSION : 34
         X-LIVEAGENT-SESSION-KEY: cac2d9ac-5600-44cd-b714-c12fb054136a!ca5c5b3b-0096-4c80-8ff0-40d372016576
         X-LIVEAGENT-AFFINITY: 2c341fa0

Method: POST

Response Received:
===================
OK ( Raw)
Unexpected token O (JSON)

- You can see 3 sub tabs ,1st for liveagent transcript, 2nd for contact ( a new contact is created if none found) , 3rd for a new Case created and the contact record is attached to this case).

Related links
---------------------
https://resources.docs.salesforce.com/sfdc/pdf/live_agent_rest.pdf 
https://developer.salesforce.com/docs/atlas.en-us.live_agent_rest.meta/live_agent_rest/live_agent_rest_data_types.htm?search_text=case%20sensitive#CustomDetail
 




promote demote