Extension pointers for integrating Zoho CRM with Zoho products #7: Initiate remote sessions and assist customers with their concerns from within Zoho CRM

Extension pointers for integrating Zoho CRM with Zoho products #7: Initiate remote sessions and assist customers with their concerns from within Zoho CRM

With an increase in customers, there's also an increase in the demand for customer support. While customer support can be provided via a variety of channels, such as live chat, email, or phone, there may be times when a visual demonstration is required in order for a support representative to check on the issue and resolve it.

In this post, let's see how to help Zoho CRM customers through an integration with Zoho Assist. In general, a support technician handles the customer's concern in the Cases module of Zoho CRM. Consider the following scenario: whenever a support representative wants to have a remote session with a customer to troubleshoot an issue on their end, they can do so with the click of a button from within Zoho CRM.

In order to resolve the problem, the technician will have met with the customer multiple times. Having all of the created sessions logged in a separate custom module, and the case-specific sessions as a related list in the specific case record, would make it easier to keep track of the assistance provided. Let's see how we can achieve this.

Creating a connector for Zoho Assist and adding connector APIs
  • Create a new connector in your extension for Zoho Assist using the Connectors feature under Utilities in the left panel of the Zoho Developer console. 
Note: Zoho Assist follows OAuth 2.0 protocols for authentication. You can see how to register Zoho products and retrieve your client credentials here.

                                                

The connector details for our example are as follows:

Request Token URL
https://accounts.zoho.com/oauth/v2/auth?scope=ZohoAssist.sessionapi.CREATE&access_type=offline
Access Token URL
https://accounts.zoho.com/oauth/v2/token

Refresh Token URL
https://accounts.zoho.com/oauth/v2/token

Scopes
ZohoAssist.sessionapi.CREATE

  • Add the necessary connector APIs for your functionality. Please refer to the Zoho Assist API guide for details.


The Zoho Assist REST APIs we added for our example are as follows:

Connector API Name
Method type
URL
Create Session
POST
https://assist.zoho.com/api/v2/session

Note: You can refer to this post to see the detailed steps involved in creating a connector, adding the connector APIs, and associating them with the extension.

Creating a button in the Cases module and associating it with a widget to initiate a remote session
  • Create a button called "Initiate a remote session" using the Links & Buttons feature available in the Components section of the Zoho Developer console, then associate a widget to perform the desired action.
  • For our use case, since we're going to log all the newly created sessions in a custom module, let's create a custom module, Session Details, with new custom fields like Session ID, Case Name and Case status during session initiation. Here the field Case Name is a lookup type, so that a relationship can be established between the Cases and the Session Details module in the form of a related list.
Initiate a remote session.js - code snippet

Util={};
var EntityId;
var EntityName;
var temp;
var emailid;
var message;
//Subscribe to the EmbeddedApp onPageLoad event before initializing the widget 
ZOHO.embeddedApp.on("PageLoad",function(data)
{
EntityId=data.EntityId[0];
console.log(EntityId);
entityname=data.Entity;  
//Fetching the current record details and retrieving the necessary field information
ZOHO.CRM.API.getRecord({Entity:entityname,RecordID:EntityId})
.then(function(data){
dataa=data.data[0];
email=dataa.Email;
customeremail=encodeURIComponent(email);
casestatus=dataa.Status;

var x = {
"email":customeremail,
}
/*Invoking the connector API to create a remote session with the customer in Zoho Assist by passing the constructed data set*/
ZOHO.CRM.CONNECTOR.invokeAPI("xxx.zohoassist.createsession",x)
.then(function(dataa){
response=dataa.response;
parseresponse=JSON.parse(response);
representation=parseresponse.representation;
//Fetching the necessary details from the created session response 
sessionid=representation.session_id;
customerurl = representation.customer_url;
technicianurl = representation.technician_url;

document.getElementById("customeremail").value=email;
document.getElementById("myAnchor").href = technicianurl;
//Constructing and passing the fetched data to be inserted in the new custom module called Session Details
var recordData = {
"Name": "Remote Session - " + sessionid,
"testsupport__Session_ID": sessionid,
"testsupport__Case_Number":EntityId,
"testsupport__Case_status_during_the_session_initiation":casestatus,
}

//Invoking the insert record API to insert a new record of the created session details
ZOHO.CRM.API.insertRecord({Entity:"xxx__Session_Details",APIData:recordData,Trigger:[]}).then(function(data){
console.log(data);
});

ZOHO.embeddedApp.init();

})
})
})

  • The above code snippet fetches the record details for the current case, from which the customer email ID and case status are retrieved. 
  • The retrieved customer email ID is passed as a parameter to the Create session API, which creates and initiates a remote session with the customer. 
  • The relevant details such as session ID and technician URL are retrieved from the session API response.
  • The retrieved details along with certain case-specific details are constructed and passed to the insert record API to be inserted as a new record in the custom module Session Details.
  • Now that the functionality is defined, the extension is published and installed in the Zoho CRM account using the private installation URL.


Sample output
  • After installing the extension, authorize the Zoho Assist connector.
  • Go to the Cases module and choose a case. Click on the Initiate a remote session button available on the record's view page. 

  • The widget is displayed with the customer email ID that the technician is going to initiate a remote session with.

  • Click on the hyperlink text "here". It will proceed to the remote session in Zoho Assist.
  • Now you can see that a new record has been inserted into the Session Details module.

  • Similarly, the record also reflects as a related list in the specific case record's view page as well.


Using this method, you can integrate Zoho CRM and Zoho Assist via an extension and perform functionalities as per your business requirements. We hope you find this information useful. Keep following this space for more advice!

SEE ALSO


    Zoho Marketing Automation

              Zoho Pagesense Resources

                Zoho SalesIQ Resources



                      Zoho TeamInbox Resources

                        Zoho DataPrep Resources



                          Zoho CRM Plus Resources

                            Zoho Books Resources


                              Zoho Subscriptions Resources

                                Zoho Desk Resources

                                  Zoho Projects Resources


                                    Zoho Sprints Resources


                                      Qntrl Resources


                                        Zoho Creator Resources


                                          Zoho WorkDrive Resources




                                              Zoho Campaigns Resources

                                                Zoho CRM Resources

                                                        Design. Discuss. Deliver.

                                                        Create visually engaging stories with Zoho Show.

                                                        Get Started Now