{ "scriptContent": { "header": { "scriptName": "Salesforce\\SF NICE CTI Outbound Voice Export", "busNo": 4606881, "mediaType": 4, "mediaTypeName": "call", "purposeType": "General", "variableRedaction": "", "nextActionId": 11, "status": "Active", "lastSavedIn": "cxs" }, "actions": { "1": { "actionId": 1, "libraryId": "B2F794C5-0232-40E7-9830-76D573BF57D7", "name": "BEGIN", "version": 1, "label": "Begin", "dependencyOrder": "0", "implType": "0", "x": 1224, "y": 872, "xws": 1224, "yws": 872 }, "2": { "actionId": 2, "libraryId": "B333DA63-33C8-4297-A58A-E9546CF7F0F2", "name": "SNIPPET", "version": 1, "label": "Set Credentials", "dependencyOrder": "1", "implType": "0", "x": 1440, "y": 856, "xws": 1440, "yws": 856 }, "3": { "actionId": 3, "libraryId": "B2AEDEE9-AB1E-4923-9D64-04CEE8118482", "name": "AgentAssistV1_LIBID_b2aedee9-ab1e-4923-9d64-04cee8118482", "version": 1, "label": "Agent Assist", "dependencyOrder": "2", "implType": "1", "x": 2352, "y": 856, "xws": 2352, "yws": 856 }, "4": { "actionId": 4, "libraryId": "EA1363D4-FADE-4CAC-B15E-C4C514C2F9B5", "name": "ONRELEASE", "version": 1, "label": "Onrelease", "dependencyOrder": "3", "implType": "0", "x": 1224, "y": 1256, "xws": 1224, "yws": 1256 }, "5": { "actionId": 5, "libraryId": "B333DA63-33C8-4297-A58A-E9546CF7F0F2", "name": "SNIPPET", "version": 1, "label": "Send endOfConversation event to Agent AI widget", "dependencyOrder": "4", "implType": "0", "x": 1504, "y": 1240, "xws": 1504, "yws": 1240 }, "6": { "actionId": 6, "libraryId": "93FB8888-30CF-4DF3-8ED9-1F2986819080", "name": "END", "version": 1, "label": "End", "dependencyOrder": "5", "implType": "0", "x": 2216, "y": 1256, "xws": 2216, "yws": 1256 }, "7": { "actionId": 7, "libraryId": "B333DA63-33C8-4297-A58A-E9546CF7F0F2", "name": "SNIPPET", "version": 1, "label": "Send Data to Salesforce", "dependencyOrder": "6", "implType": "0", "x": 2048, "y": 856, "xws": 2048, "yws": 856 }, "8": { "actionId": 8, "libraryId": "B333DA63-33C8-4297-A58A-E9546CF7F0F2", "name": "SNIPPET", "version": 1, "label": "User Auth", "dependencyOrder": "5", "implType": "0", "x": 1712, "y": 856, "xws": 1712, "yws": 856 }, "10": { "actionId": 10, "libraryId": "B333DA63-33C8-4297-A58A-E9546CF7F0F2", "name": "SNIPPET", "version": 1, "label": "Update Data", "dependencyOrder": "8", "implType": "0", "x": 1824, "y": 1240, "xws": 1824, "yws": 1240 } }, "properties": { "1": { "0": { "name": "RootFolder", "value": "" }, "1": { "name": "Application", "value": "" }, "2": { "name": "ParamCount", "value": "" }, "3": { "name": "Parameters", "value": [ "Unnamed0" ] } }, "2": { "0": { "name": "Data", "value": "//NICEOPENCTI ORG\r\n//NICEOPENCTIPACKAGER ORG\r\nASSIGN global:salesforce_key=\"TO-BE-FILLED-IN\" //ClientID\r\nASSIGN global:salesforce_secret=\"TO-BE-FILLED-IN\" //ClientSecret\r\nASSIGN global:salesforce_username=\"TO-BE-FILLED-IN\" //SF Username\r\nASSIGN global:salesforce_password=\"TO-BE-FILLED-IN\" //SF Password\r\n\r\n//Agent AI Configuration\r\nASSIGN global:clientsecret=\"Kore.ai ClientSecret\"\r\nASSIGN global:clientid=\"Kore.ai ClientID\"\r\nASSIGN global:botid=\"Kore.ai BotID\"\r\nASSIGN global:baseurl=\"kore.ai AgentAI Widget URL\"\r\nASSIGN global:language=\"en\"\r\n\r\n//'customdata' object can be utilized to pass information to Agent AI Bot\r\n//For example, customdata.agentId = \"{agentid}\"\r\nDYNAMIC customdata\r\n\r\nASSIGN global:customdata_string = \"{customdata.asJSON()}\"" }, "1": { "name": "MaxStringSize", "value": "Limit2K" } }, "3": { "0": { "name": "assistLaunchConfigName", "value": "KAA" }, "1": { "name": "actionRestUrl", "value": "" }, "2": { "name": "AgentId", "value": "" }, "3": { "name": "AgentUUId", "value": "" }, "4": { "name": "AgentAssistMasterId", "value": "" }, "5": { "name": "BotExchangeVersion", "value": "" }, "6": { "name": "scriptParams", "value": "" } }, "4": { "0": { "name": "CauseCode", "value": "" }, "1": { "name": "CallResult", "value": "" } }, "5": { "0": { "name": "Data", "value": "DYNAMIC params\r\nparams.conversationId = \"{contactid}\"\r\nparams.botid = \"{botid}\"\r\nparams.clientid=\"{clientid}\"\r\nparams.clientsecret=\"{clientsecret}\"\r\nparams.baseurl=\"{baseurl}\"\r\nparams.language=\"{language}\"\r\nrequestBody = \"{params.asJSON()}\"\r\n\r\nexistingUserProxy = GetRESTProxy()\r\nexistingUserProxy.ContentType = \"application/json\" // set content type\r\n\r\nASSIGN tempArr = \"{baseurl.split('/')}\"\r\n\r\nASSIGN baseURI = \"{tempArr[1]}\"\r\nbaseURI.append(\"/\")\r\nbaseURI.append(\"{tempArr[2]}\")\r\nbaseURI.append(\"/\")\r\nbaseURI.append(\"{tempArr[3]}\")\r\n\r\nASSIGN summaryURI = \"{baseURI}/integrations/nice/triggerSummary\" //set endpoint url\r\nresponsedBody = existingUserProxy.MakeRestRequest(summaryURI, requestBody ,0, \"POST\")\r\n\r\nASSIGN responseString=\"{responsedBody.asJSON()}\"" }, "1": { "name": "MaxStringSize", "value": "Limit2K" } }, "6": {}, "7": { "0": { "name": "Data", "value": "// Insert the records after authentication\nIF access_token!=''\n{\n // set request body\n DYNAMIC agent_Details\n agent_Details.KAA__contact__c = \"{contactid}\"\n agent_Details.KAA__agentId__c = \"{agentid}\"\n agent_Details.KAA__status__c = \"true\"\n agent_Details.KAA__screenPopup__c=\"false\"\n agent_Details.KAA__customData__c=\"{customdata_string}\"\n requestBody = \"{agent_Details.asJSON()}\"\n\n\n existingUserProxy = GetRESTProxy()\n existingUserProxy.ContentType = \"application/json\" // set content type\n\n // set Authorization\n ASSIGN requestAuth = \"Bearer \"\n requestAuth.append(\"{access_token}\")\n existingUserProxy.AddHeader(\"Authorization\",requestAuth)\n existingUserProxy.ContentType = \"application/json\"\n\n ASSIGN SobjectName = \"KAA__CxoneData__c\" //set sobject name\n ASSIGN salesforceSobjectURI = \"{salesforceBaseURI}/services/data/v58.0/sobjects/{SobjectName}\" //set endpoint url\n responsedBody = existingUserProxy.MakeRestRequest(salesforceSobjectURI, requestBody ,0, \"POST\")\n //ASSIGN global:bearerToken = \"{global:existingResult.autoSuggestResults}\"\n\n sObjectId = \"{responsedBody.id.$value}\"\n\n}" }, "1": { "name": "MaxStringSize", "value": "Limit2K" } }, "8": { "0": { "name": "Data", "value": "//User Authentication\r\n\r\nASSIGN global:access_token = \"\" // assign global varible for set access token\r\nASSIGN global:sObjectId = \"\" // assign global varible for set id\r\n\r\n\r\nASSIGN global:salesforceBaseURI = \"TO-BE-FILLED-IN\" // set baseurl\r\n\r\n// set credentials\r\nASSIGN salesforcekey =\"{salesforce_key}\"\r\nASSIGN salesforcesecret =\"{salesforce_secret}\"\r\nASSIGN salesforceusername =\"{salesforce_username}\"\r\nASSIGN salesforcepassword =\"{salesforce_password}\"\r\n\r\n\r\n// urlencoded form\r\nASSIGN salesforcekey=salesforcekey.urlencode\r\nASSIGN salesforcesecret=salesforcesecret.urlencode\r\nASSIGN salesforceusername=salesforceusername.urlencode\r\nASSIGN salesforcepassword=salesforcepassword.urlencode\r\n\r\n\r\ntokenproxy=GetRESTProxy()\r\n\r\n//create local variable and append credentials\r\nASSIGN tokenRequestParms=\"\"\r\ntokenRequestParms.append(\"grant_type=password\")\r\ntokenRequestParms.append(\"&client_id={salesforcekey}\")\r\ntokenRequestParms.append(\"&client_secret={salesforcesecret}\")\r\ntokenRequestParms.append(\"&username={salesforceusername}\")\r\ntokenRequestParms.append(\"&password={salesforcepassword}\")\r\n\r\nASSIGN salesforceAuthURI=\"{salesforceBaseURI}/services/oauth2/token\" // set endpoint url\r\ntokenResult = tokenproxy.MakeRestRequest(salesforceAuthURI, tokenrequestParms, 0, \"POST\")\r\n//call api and store responsed in local variable\r\n\r\n// check status code and get access token\r\nIF tokenproxy.StatusCode = 200\r\n{\r\n access_token = \"{tokenResult.access_token.$value}\"\r\n}\r\n" }, "1": { "name": "MaxStringSize", "value": "Limit2K" } }, "10": { "0": { "name": "Data", "value": "\nIF sObjectId!=''\n{\n // set request body\n DYNAMIC agent_Details_update\n agent_Details_update.KAA__status__c = 'false'\n reqBody = \"{agent_Details_update.asJSON()}\"\n\n existingUserProxy = GetRESTProxy()\n existingUserProxy.ContentType = \"application/json\" // set content type\n\n // set Authorization\n ASSIGN requestAuth = \"Bearer \"\n requestAuth.append(\"{access_token}\")\n existingUserProxy.AddHeader(\"Authorization\",requestAuth)\n existingUserProxy.ContentType = \"application/json\"\n\n ASSIGN SobjectName = \"KAA__CxoneData__c\" //set sobject name\n ASSIGN salesforcesobjectURI = \"{salesforceBaseURI}/services/data/v58.0/sobjects/{SobjectName}/{sObjectId}\"\n // set endpoint url\n existingUserProxy.MakeRestRequest(salesforcesobjectURI, reqBody ,0, \"PATCH\")\n\t\n}" }, "1": { "name": "MaxStringSize", "value": "Limit2K" } } }, "branches": { "1": [ { "to": 2, "label": "", "type": "default", "labelDistance": null, "index": 0, "ports": "r,l", "lineType": "straight", "elbows": [] } ], "2": [ { "to": 8, "label": "", "type": "default", "labelDistance": null, "index": 0, "ports": "c,c", "lineType": "straight", "elbows": [] } ], "4": [ { "to": 5, "label": "", "type": "default", "labelDistance": null, "index": 0, "ports": "r,l", "lineType": "straight", "elbows": [] } ], "5": [ { "to": 10, "label": "", "type": "default", "labelDistance": null, "index": 0, "ports": "r,l", "lineType": "straight", "elbows": [] } ], "7": [ { "to": 3, "label": "", "type": "default", "labelDistance": null, "index": 0, "ports": "r,l", "lineType": "straight", "elbows": [] } ], "8": [ { "to": 7, "label": "", "type": "default", "labelDistance": null, "index": 0, "ports": "r,l", "lineType": "straight", "elbows": [] } ], "10": [ { "to": 6, "label": "", "type": "default", "labelDistance": null, "index": 0, "ports": "c,c", "lineType": "straight", "elbows": [] } ] }, "schemaVersion": "1.0.0" } }