Extension pointers for integrating Zoho CRM with Zoho products #8: Upload and manage Zoho Workdrive folders and files from within Zoho CRM

Extension pointers for integrating Zoho CRM with Zoho products #8: Upload and manage Zoho Workdrive folders and files from within Zoho CRM

Keeping records on your customers and business prospects is essential for tracking data, conducting follow-ups, and running a business smoothly. When you use two separate applications, and store relevant data in each, checking and tracking data becomes more difficult.
 
Integrating applications that contain customer data is an effective solution for easily synchronizing and managing data across both applications. In this post, we'll look at how to integrate Zoho CRM with Zoho Workdrive in order to synchronize and manage Workdrive files and folders associated with a CRM contact across both applications.
 
Consider the following scenario: You've converted a lead to a contact in Zoho CRM. Now, you must associate files with that contact, such as legal documents or proofs. To do this, you can create a team folder where every team member can access and manage the contact's folders and files. 
 
In order to store contact-specific files, you can create a new folder (within the team folder) for each WorkDrive contact by clicking a button within their CRM record. You can even create a widget for uploading files to the contact's Workdrive folder from within CRM. 
 
Create a connector for Zoho Workdrive and add connector APIs
  • Create a new connector in your Zoho Workdrive extension using the Connectors feature under Utilities in the left-side panel of the Zoho Developer console. 
Note: Zoho Workdrive follows OAuth 2.0 protocols for authentication. You can learn how to register Zoho products and retrieve your client credentials here.
 
                                                
 
The connector details for the above example are as follows:

Request Token URL
https://accounts.zoho.com/oauth/v2/auth?scope=,WorkDrive.users.READ,WorkDrive.files.CREATE,
WorkDrive.teamfolders.CREATE&access_type=offline
Access Token URLhttps://accounts.zoho.com/oauth/v2/token
Refresh Token URLhttps://accounts.zoho.com/oauth/v2/token
Scopes
WorkDrive.users.READ,WorkDrive.files.CREATE,
WorkDrive.teamfolders.CREATE
                                                 
 
The Zoho Workdrive REST APIs we added for our example are as follows:
 
Connector API NameMethod typeURL
Get ZUIDGEThttps://www.zohoapis.com/workdrive/api/v1/users/me
Get all teams of a userGEThttps://www.zohoapis.com/workdrive/api/v1/users/${zuid}/teams
Create team folderPOSThttps://www.zohoapis.com/workdrive/api/v1/teamfolders
Create new folderPOSThttps://www.zohoapis.com/workdrive/api/v1/files
File uploadPOSThttps://www.zohoapis.com/workdrive/api/v1/upload?filename=${file_name}&parent_id=${file_parent_id}&override-name-exist=true
 
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.
 
Create a settings widget to build team folder and assign them to Workdrive teams 
  • Create a settings widget to select a team to manage a contact's folders and files.
  • We'll also create a CRM variable called "Team Folder ID" to store the assigned team's ID information for future operations.


Settings widget.js code snippet
Util={};
var teamidvalue;
 
   //Subscribe to the EmbeddedApp onPageLoad event before initializing the widget 
   ZOHO.embeddedApp.on("PageLoad",function(data)
  {
var data =  {
    }
 
//Invoking the 'Get ZUID' API to retrieve the user's ZUID
ZOHO.CRM.CONNECTOR.invokeAPI("xxx.workdrive.getzuid",data)
.then(function(dataa){
    console.log(dataa);
    response = dataa.response
    responsejson=JSON.parse(response);
    zuiddata=responsejson.data;
    zuid=zuiddata.id;
 
    var data =  {
          "zuid" : zuid
    }
//Invoking the 'Get all teams of a user' API to fetch all the teams of a user
ZOHO.CRM.CONNECTOR.invokeAPI("xxx.workdrive.getallteamsofauser",data)
.then(function(dataa){
    console.log(dataa);
    response = dataa.response;
    responsejson=JSON.parse(response);
    teamdata=responsejson.data;
 
  for (i = 0; i < teamdata.length; i++) 
    {
 
      teamid=teamdata[i].id;
      attributes=teamdata[i].attributes;
      teamname=attributes.name;
      var teamlist = document.getElementById("teamlist");
      var option = document.createElement("OPTION");
      option.innerHTML = teamname;
      option.value = teamid;
      teamlist.appendChild(option);
    }
    })
})  
})
    Util.getvalues=function()
    {
//Retrieving the value chosen in the teamlist
      teamidvalue=document.getElementById("teamlist").value;
/*Constructing data and passing to 'Create team folder' API to create a team folder called "CRM Contacts test"*/
var data =  {
 
          "extension_team_folder_name" : "CRM Contacts test",
          "parent_id":teamidvalue
    }
ZOHO.CRM.CONNECTOR.invokeAPI("xxx.workdrive.createteamfolder",data)
.then(function(dataa){
    console.log(dataa);
    response = dataa.response;
    responsejson=JSON.parse(response);
    teamfolderdata=responsejson.data;
    teamfolderid=teamfolderdata.id;
 
//Set the ID of the team selected in the teamlist to the "Team Folder ID" CRM variable
          var variableMap = { "apiname": "xxx__Team_Folder_ID", "value": teamfolderid};
ZOHO.CRM.CONNECTOR.invokeAPI("crm.set", variableMap);
 
ZOHO.CRM.API.getOrgVariable("xxx__Team_Folder_ID").then(function(data){
  console.log(data);
});
});
    }

 
Create a button in the Contacts module to make a new Workdrive folder for a contact
  • Create a button called "Create a new workdrive Folder" using the Links & Buttons feature available in the Components section of the Zoho Developer console. Then, write a function to perform the desired action.
  • For our use case, since we're creating a new folder specific to a contact inside a WorkDrive team folder, we'll create the folder with the Full Name of the Zoho CRM contact.
  • We'll also create a custom field in the Contacts module called "Folder ID" to store the ID of the new Workdrive folder to perform future operations.
Create a new Workdrive folder: Function code snippet

//Fetching the current contact details and retrieving the Full Name and custom field folder ID of the contact
response = zoho.crm.getRecordById("Contacts",contact.get("Contacts.ID").toLong());
Fullname = response.get("Full_Name");
contactfolderid = response.get("xxx__Folder_ID");
if(contactfolderid == null)
{
/*Invoking the 'Create new folder' API to get create a folder in Workdrive for the Zoho CRM contact with the name as their Full Name*/
parentfolderid = zoho.crm.getOrgVariable("xxx__Team_Folder_ID");
dynamic_map = Map();
dynamic_map.put("name",Fullname);
dynamic_map.put("folder_parent_id",parentfolderid);
 
newfolderresp = zoho.crm.invokeConnector("xxx.workdrive.createnewfolder",dynamic_map);
newfolderresponse = newfolderresp.get("response");
newfolderdata = newfolderresponse.get("data");
newfolderid = newfolderdata.get("id");
contactinfo = {"xxx__Folder_ID":newfolderid};
/* Updating the 'Folder ID' custom field in contact's record with the new folder ID obtained from the response*/
folderresponse=zoho.crm.updateRecord("Contacts",contact.get("Contacts.ID").toLong(),contactinfo);
 
return "A new workdrive folder has been created with the ID - " + newfolderid;
}
else
{
return "Folder already present for contact in Workdrive";
}
  • The above code snippet fetches the record details for the current contact to retrieve the customer's Full Name. 
  • The Workdrive parent folder ID (set using the settings widget), where the new folder for the contact will be created, is then retrieved using the getOrgVariable deluge task . 
  • The parent folder ID and the contact's Full Name are delivered to the Create new workdrive folder API to create a new folder for the contact in Workdrive.
  • The ID of the new folder is then updated in the "Folder ID" custom field using updateRecord task. 
Create a button in the Contacts module to upload files to a contact's Workdrive folder and associate it with a widget
  • Create a button called "Upload file to Workdrive" using the Links & Buttons feature available in the Components section of the Zoho Developer console, then associate a widget to perform the desired action.
Upload file to workdrive - widget.html - Please find the attachment for the widget html code.
  • The code snippet fetches the record details of the current contact, from which the custom field 'Folder ID' value is retrieved. 
  • The input file selected is also checked for its file type and name.
  • The Folder ID and the file name are then constructed and passed as parameters to invoke the 'Upload File to Workdrive' API.
Sample output
  • After installing the extension, authorize the Zoho Workdrive connector.
  • Go to Settings on the extension configuration page.
  • Choose a team to manage the contact's folders and files. Click Save.
                                    
  • A new team folder, CRM Contacts test, is created in Zoho Workdrive for the chosen team.                                    
  • Go to the Contacts module. Click on the Create a new workdrive folder button on the record's view page.                                     
  • A new folder is created in workdrive with the name of your contact.                          
  • Once the folder is created, the custom field, Folder ID is also automatically updated with the new folder ID value.                         
  • Now, click on the Upload file to Workdrive button on the record's view page.                    
 
  • The widget appears. Choose a file and click the Upload file to Workdrive button. The file will be uploaded to Workdrive.
                                     
Using this method, you can integrate Zoho CRM with Zoho Workdrive through an extension to perform necessaryfunctionalities for your business. We hope you find this information helpful! 
 
In our next post, we will show you how to track, view, and access these Workdrive files within Zoho CRM. Keep following this space for more advice!


SEE ALSO


    Access your files securely from anywhere



                        Zoho Developer Community




                                              • Desk Community Learning Series


                                              • Digest


                                              • Functions


                                              • Meetups


                                              • Kbase


                                              • Resources


                                              • Glossary


                                              • Desk Marketplace


                                              • MVP Corner


                                              • Word of the Day


                                              • Ask the Experts





                                                        Manage your brands on social media



                                                              Zoho TeamInbox Resources



                                                                  Zoho CRM Plus Resources

                                                                    Zoho Books Resources


                                                                      Zoho Subscriptions Resources

                                                                        Zoho Projects Resources


                                                                          Zoho Sprints Resources


                                                                            Qntrl Resources


                                                                              Zoho Creator Resources



                                                                                  Zoho CRM Resources

                                                                                  • CRM Community Learning Series

                                                                                    CRM Community Learning Series


                                                                                  • Kaizen

                                                                                    Kaizen

                                                                                  • Functions

                                                                                    Functions

                                                                                  • Meetups

                                                                                    Meetups

                                                                                  • Kbase

                                                                                    Kbase

                                                                                  • Resources

                                                                                    Resources

                                                                                  • Digest

                                                                                    Digest

                                                                                  • CRM Marketplace

                                                                                    CRM Marketplace

                                                                                  • MVP Corner

                                                                                    MVP Corner





                                                                                      Design. Discuss. Deliver.

                                                                                      Create visually engaging stories with Zoho Show.

                                                                                      Get Started Now


                                                                                        Zoho Show Resources


                                                                                          Zoho Writer Writer

                                                                                          Get Started. Write Away!

                                                                                          Writer is a powerful online word processor, designed for collaborative work.

                                                                                            Zoho CRM コンテンツ










                                                                                              Nederlandse Hulpbronnen


                                                                                                  ご検討中の方




                                                                                                        • Recent Topics

                                                                                                        • Feature Request: Ability to copy notecards to Windows desktop

                                                                                                          Hello, Please consider adding the ability to copy notecards to Windows desktop. Thanks!
                                                                                                        • What is the use of the stage environment ?

                                                                                                          Salut, I am woundering what is the use of the stage environment. Usually, I do all the testing in developpement, and then go straight to production. The only thing I cannot test in developpement, is the result for portal users. Could the stage environment
                                                                                                        • Script on Page used as dashboard don't work anymore

                                                                                                          Salut, I have a page used as dashboard that worked fine, but recently the workflows don't seem to work, I have the icons like on a page for portal user when I try to look at it as admin. See screen shot : Anybody knows what could have happen ? The only
                                                                                                        • Invalid URL error when embedded sending url into iframe for my website when using in another region

                                                                                                          Hi team, My site is currently working on integrating your signature feature as part of the system functionality, it's working great but recently there's been a problem like this: After successfully creating the document, i will embed a sending url into
                                                                                                        • Add Direct Ticket Link to Zoho Help Center Portal in Email Replies

                                                                                                          Hi Zoho Support Team, We hope you're doing well. We’d like to request a small but valuable improvement to enhance the usability of the Zoho Help Center portal (https://help.zoho.com/portal/en/myarea). Currently, when someone from Zoho replies to a support
                                                                                                        • Zoho Error: This Operation has been restricted. Please contact support-as@zohocorp.com for further details

                                                                                                          Hello There, l tried to verify my domain (florindagoreti.com.br) and its shows this error: This Operation has been restricted. Please contact support-as@zohocorp.com for further details. Screenshot Given Below -  please check what went wrong. Thanks
                                                                                                        • Zoho Flow Needs to Embrace AI Agent Protocols to Stay Competitive

                                                                                                          Zoho Flow has long been a reliable platform for automating workflows and integrating various applications. However, in the rapidly evolving landscape of AI-driven automation, it risks falling behind competitors like n8n, which are pioneering advancements
                                                                                                        • Error AS101 when adding new email alias

                                                                                                          Hi, I am trying to add apple@(mydomain).com The error AS101 is shown while I try to add the alias.
                                                                                                        • How to mass update member status in a CRM Campaign?

                                                                                                          Does anybody knows how to mass update member status of the contacts (or leads) associated to a campaign. I can click on a campaign record and go to the Contacts in the Related List fields but then it shows only 10 contacts per page at once. It is hard
                                                                                                        • CRM HAS BEEN SOOO SLOW For Days 05/15/25

                                                                                                          I have fantastic Wifi speed and have zero issues with other websites, apps, or programs. It takes an excruciatingly amount of time to simply load a record, open an email, compose an email, draft a new template, etc. Am I in a subset/region of subscribers
                                                                                                        • First Respons time questions regarding ticket SLA's, Ticket Re-Assignment, and Ticket Closure.

                                                                                                          I am chasing down a few outliers on tickets that my team is reporting to me seen in some of our Zoho Analytics Dashboards with regards to Zoho Desk with regards to First Response Time. Our support organization is setup with different SLA's based on three
                                                                                                        • View Expenses in Zoho Books Without Approval or Reports in Zoho Expense

                                                                                                          Hello, I’m using both Zoho Books and Zoho Expense (on the free plan for both). I would like to view the expenses recorded in Zoho Expense within Zoho Books, but I read that they need to be approved first. Since I manage a small freelance business, I don’t
                                                                                                        • Idea: Workflow Rule Trigger Only When Subform Row Is Updated (Thanks to New Inline Row Feature)

                                                                                                          Hi Zoho team and community, With the recent update to Zoho CRM, we can now add or delete rows inside subforms without entering edit mode, using the inline Add row button. This is a fantastic improvement for user experience — seamless, fast, and efficient.
                                                                                                        • Blocking / black listing customers

                                                                                                          Hi, We have a situation, we observed that certain customers are blocking multiple appointments with our advsiors but not showing up. Some of these are repeat offenders. This leads to those service hours getting blocked and not available for genuine customers.
                                                                                                        • Turning off the new UI

                                                                                                          Tried the new 'enhanced' UI and actively dislike it. Anyone know how to revert back?
                                                                                                        • Seriously - Create multiple contacts for leads, (With Company as lead) Zoho CRM

                                                                                                          In Zoho CRM, considering a comapny as a lead, you need us to allow addition of more than one contact. Currently the Lead Section is missing "Add contact" feature which is available in "Accounts". When you know that a particular lead can have multiple contacts, why was this feature not included. Now we have to miss out other contacts or enter them somewhere in the description.!!! this is bad.
                                                                                                        • Global Sets for Multi-Select pick lists

                                                                                                          When is this feature coming to Zoho CRM? It would be very useful now we have got used to having it for the normal pick lists.
                                                                                                        • Change default "Sort by"

                                                                                                          Is there a way to change the default "sort by" when searching across modules?" in Zoho CRM? Currently the default sort method is "Modified time" but i would like to utilize the second option of "relevance" as the sort by default and not have to change
                                                                                                        • Create project (flow) and assign to person without account (company)

                                                                                                          Hi Zoho Support & Community, I'm trying to automate a process using Zoho Flow to create a Zoho Project and link it directly to a Zoho CRM Contact. This reflects our B2C workflow where we primarily deal with individual Contacts, not Companies/Accounts.
                                                                                                        • Forte's Extra Costs

                                                                                                          Hello everyone in the Zoho community, I wanted to share some information about Forte in case anyone wanted to look into them as a processor.  I currently use Stripe, but wanted to use Forte's ACH to pay vendors and take ACH payments for our products.  This is one of the only ACH processors that Zoho accepts. They state their cost is $25/month plus their transaction fees for ACH.  However, after signing up and going through their approval process, I found this out they work with a PCI compliance service
                                                                                                        • Can Zoho CRM JS SDK Send Notifications, Create Tasks & Calendar Events?

                                                                                                          Hello everyone! I’m just starting to explore this topic, so please excuse my beginner-level questions! Is it possible to use the JS SDK (https://help.zwidgets.com/help/latest/index.html) to: Send messages (signals, notifications) to specific employees,
                                                                                                        • Restricting Printing

                                                                                                          Hi Is it possible to stop users printing documents?
                                                                                                        • Backup and Restore of Projects

                                                                                                          Hi Guys, my boss asked me "do we store regulary offline Backups of Zoho Projects" and i could only answer "no way". Is there really no way to backup and restore a project manualy? As Projects is the main Product we decided to use Zoho it could be that
                                                                                                        • Enable Zia Bot for Intelligent Conversations in Zoho Cliq

                                                                                                          Hi Zoho Cliq Team, We would like to request a new feature: the ability to interact with Zia via a dedicated bot in Zoho Cliq, in a way similar to how users interact with GPT-based assistants. Use Case: We're looking for functionality beyond the existing
                                                                                                        • Zoho RPA is now available in your Zoho One bundle!

                                                                                                          Hello All! Of late, it's been quite a stint of new app integrations in Zoho One. This announcement pertains to the addition of another Zoho application, the most sought-after Zoho RPA - Robotic Process Automation, to the bundle. What is Zoho RPA? Zoho
                                                                                                        • Data types in custom fields

                                                                                                          Hi, I've been trying to create a custom field to enter purchase order dates , but there is only one data type in the drop down to choose from which is a "Text Box ( Single Line )". I need the "Date" Data type. Please give me a solution regarding thi
                                                                                                        • Change rate after xxxx kilometers

                                                                                                          Is there a way to change the miileage rate after a certain mileage. After 5000 kilometers, we want the rate to automaticly change. Thank !
                                                                                                        • Sync desktop folders instantly with WorkDrive TrueSync (Beta)

                                                                                                          Keeping your important files backed up and accessible has never been easier! With WorkDrive desktop app (TrueSync), you can now automatically sync specific desktop folders to WorkDrive Web, ensuring seamless, real-time updates across devices. Important:
                                                                                                        • Can't attach

                                                                                                          I am having problems sending attachments. I am trying to attach some PDFs to an email (as I do several times every day) but the progress bar on the attached file gets stuck somewhere between 20%-70% and when I hit send I get the error message 'Attachment
                                                                                                        • WhatsApp Channels in Zoho Campaigns

                                                                                                          Now that Meta has opened WhatsApp Channels globally, will you add it to Zoho Campaigns? It's another top channel for marketing communications as email and SMS. Thanks.
                                                                                                        • Existing subform data is being changed when new subform entries are added

                                                                                                          I'm having trouble with existing subform data being changed when new subform entries are created. I have the following setup to track registrations for a girl scout troop: Main Form: Child Subform: Registrations The data are a one-to-many relationship where each Child record has many Registrations (new Registration will be created for each year the child is in the troop.) Per the instructions, I have created the subfom, added it to the main form, gone back to the subform and created the bi-directional
                                                                                                        • Bigin: filter Contacts by Company fields

                                                                                                          Hello, I was wondering if there's a way to filter the contacts based on a field belonging to their company. I.e.: - filter contacts by Company Annual Revenue field - filter contacts by Company Employee No. field In case this is not possibile, what workaround
                                                                                                        • Button on Deal screen to automate changing deal dates?

                                                                                                          Hi I spend a lot of time working with our accounts managers here moving deals around the calendar, qualifying things etc. I'd like to have an easy way to change the closing date on a deal, from the deal screen table, rather than either click in to the
                                                                                                        • Attention API Users: Upcoming Support for Renaming System Fields

                                                                                                          Hello all! We are excited to announce an upcoming enhancement in Zoho CRM: support for renaming system-defined fields! Current Behavior Currently, system-defined fields returned by the GET - Fields Metadata API have display_label and field_label properties
                                                                                                        • How to authenticate my domain on ovh

                                                                                                          I don't succeed in adding an domain authentification on ovh. Should i first create a subdomain? But this doesn't work either, ti gi ves te same screen and the next button is greyed out when adding the info received from zoho
                                                                                                        • Undelivered Mail Returned to Sender

                                                                                                          commerciale@etruriadesign.it, ERROR CODE :550 - "The mail server detected your message as spam and has prevented delivery." I have been corresponding with the receiver and they wrote "Ciao, ho fatto verificare ma purtroppo non è un problema che deriva
                                                                                                        • Kaizen #190 - Queries in Custom Related Lists

                                                                                                          Hello everyone! Welcome back to another week of Kaizen! This week, we will discuss yet another interesting enhancement to Queries. As you all know, Queries allow you to dynamically retrieve data from CRM as well as third-party services directly within
                                                                                                        • Notifications no longer being sent to my email address for any scheduled events

                                                                                                          The last few weeks, I stopped receiving email notifications to my email for events I have scheduled and have a selected reminder option checked.
                                                                                                        • This domain is not allowed to add. Please contact support-as@zohocorp.com for further details

                                                                                                          I am trying to setup the free version of Zoho Mail. When I tried to add my domain, theselfreunion.com I got the error message that is the subject of this Topic. I've read your other community forum topics, and this is NOT a free domain. So what is the
                                                                                                        • Group to shared mailbox conversion

                                                                                                          Is it possible to convert a group in Zoho mail to a shared mailbox?
                                                                                                        • Next Page