- Print
- PDF
Copilot automates the post-interaction phase by summarizing the customer’s requests and agent’s promised actions at the end of each call. This summary is generated by analyzing the call transcript through Knovvu VA services. With the Salesforce integration, the summary is pushed to Salesforce CRM. It allows the agent to complete the wrap-up process faster, reduces manual effort, and ensures the captured summary is accurate, actionable, and standardized.
Step-by-step configuration
Create a Virtual Agent (VA) project specifically for the post call automation in salesforce, or use the existing RTG-Integration project flow designed for this purpose. Add the following http nodes:
There are 3 http nodes that need to be configured for salesforce:
Authentication
Uses client_id, client_secret, username, and password to bypass multi-factor authentication (MFA) for simplicity in demonstration/POC environment.
Access token is retrieved from Salesforce's identity service.
The token is stored as tokenResponse for use in subsequent requests.
Account Search
Identify the account in Salesforce based on the phone number used as conversationID.
A GET request is made using the token and phone number.
accountID is extracted from the first element of searchResponse.records.
Account Update with Summary
Update the account record with the AI-generated summary. AI summarization is done using OpenAI APIs triggered by HTTP node(s).
The summary field in the content json must exactly match the field name in Salesforce.
Work & Data Flow
Example request for Sales force authentication API:
"name": "login",
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "formdata",
"formdata": [
{
"key": "grant_type",
"value": "password",
"type": "text"
},
{
"key": "client_id",
"value": "3MVG9gYjOgxHsENLELFMIKy1vrUgvS.AhtZjzAPSukYMbMcNEM6Xdc9ysEc6QG_D5f.8SRJDIRP_ieUNpCQ9q",
"type": "text"
},
{
"key": "client_secret",
"value": "5BC81E85A9E8C34D20CF50CAA2C5CDEC57592BDA8E6C6F2A0D1974B0213D3A12",
"type": "text"
},
{
"key": "username",
"value": "bugra.samli-tl2u@force.com",
"type": "text"
},
{
"key": "password",
"value": "Sales1234",
"type": "text"
}
]
},
"url": {
"raw": "https://login.salesforce.com/services/oauth2/token",
"protocol": "https",
"host": [
"login",
"salesforce",
"com"
],
"path": [
"services",
"oauth2",
"token"
]
}
},
The response is:
{
"access_token": "00D5g00000Axxxx!AQ0AQJqxxxxx...",
"instance_url": "https://yourInstance.salesforce.com",
"id": "https://login.salesforce.com/id/00D5g00000Axxxx/0055g00000Bxxxx",
"token_type": "Bearer",
"issued_at": "171xxxxxxx",
"signature": "XXYYYZZZ..."
}
Example request for Sales force GetAccountId API:
{
"name": "GetAccountId",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{Token}}",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "https://sestek.my.salesforce.com/services/data/v57.0/parameterizedSearch/?sobject=Account&Account.limit=1&q=+&Account.fields=id",
"protocol": "https",
"host": [
"sestek",
"my",
"salesforce",
"com"
],
"path": [
"services",
"data",
"v57.0",
"parameterizedSearch",
""
],
"query": [
{
"key": "sobject",
"value": "Account"
},
{
"key": "Account.limit",
"value": "1"
},
{
"key": "q",
"value": "+"
},
{
"key": "Account.fields",
"value": "id"
}
]
}
},
The response is:
{
"totalSize": 2,
"done": true,
"searchRecords": [
{
"attributes": {
"type": "Account",
"url": "/services/data/v59.0/sobjects/Account/0015g00000xxx"
},
"Id": "0015g00000xxx",
"Name": "Acme Inc."
},
{
"attributes": {
"type": "Account",
"url": "/services/data/v59.0/sobjects/Account/0015g00000yyy"
},
"Id": "0015g00000yyy",
"Name": "Salesforce Co."
}
]
}
Example request for Sales force Update API:
{
"name": "New Request",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{Token}}",
"type": "string"
}
]
},
"method": "PUT",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"Description\" : \"summary\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://sestek.my.salesforce.com/services/data/v57.0/sobjects/Account/{{AccountId}}",
"protocol": "https",
"host": [
"sestek",
"my",
"salesforce",
"com"
],
"path": [
"services",
"data",
"v57.0",
"sobjects",
"Account",
"{{AccountId}}"
]
}
},
The response is 204.