Extension Pointers - JS SDK Series#7: Managing records, handling attachments, and adding notes from a widget

Extension Pointers - JS SDK Series#7: Managing records, handling attachments, and adding notes from a widget

Zoho CRM JS SDK supports APIs that help manage records, attach files, and add notes to a record, all from within the widget itself. The term record refers to the detailed information about an individual entity in the Zoho CRM module. Attachments and notes are additional information that add extra context to the record details for a variety of purposes, including sales, SLAs, proofs, etc. 

Let's first look at the syntax of each API followed by a working example demonstrating the purpose of the different APIs.

ZOHO.CRM.UI.Record
Syntax:

This API can help with multiple functionalities in managing records, such as:
ZOHO.CRM.UI.Record.create(data) - open CreatePage of the specified Record.
ZOHO.CRM.UI.Record.edit(data) - open EditPage of the specified Record.
ZOHO.CRM.UI.Record.open(data) - open DetailPage of the specified Record.

Here, data refers to the configuration object of 'object' type.

Configuration Object

Name
Type
Description
Entity
String
SysRefName of the module.
RecordID
String
The ID of the record to open or edit.
Target
String
Allowed values "_blank". To open the create/edit/open page of the record in a new tab.

ZOHO.CRM.API.attachFile

This API is used to attach files to a record in a module.

➤ The attachment will appear under the 'Attachments' related list section of the record.
➤ The maximum attachment limit for a record is 100MB.
➤ All attachment formats are supported except exe files.
➤ The API can be used in all modules that support the 'Attachments' section.

Syntax:

ZOHO.CRM.API.attachFile(config)

Here, config refers to the configuration object.

Configuration Object

Name
Type
Description
Entity
String
SysRefName of the module.
RecordID
String
The record ID for which the attachment is to be associated.
File
Object
File object to be attached.

The file object holds two properties.

Name
Type
Description
Name
String
The name of the file.
Content
Object
The file content.


ZOHO.CRM.API.addNotes

This API is used to add notes to a specific record in a module.

Syntax:

ZOHO.CRM.API.addNotes(config)

Here, config refers to the configuration object.

Configuration Object

Name
Type
Description
Entity
String
SysRefName of the module.
RecordID
String
The record ID for which the note is to be associated.
Title
String
The title for the note.
Content
String
The note content.

Consider a simple scenario where a user is running an ecommerce store using their Zoho CRM account. Their store offers a wide range of hardware and software products. There are also certain discount deals that are offered for several products in accordance with their sales strategy. Let's say that, after a good turnover, the user wants to delink a product from a certain discount deal. Besides delinking, the user would like to attach some of the relevant files and add notes to the deal in order to provide additional information on the reason for the delinking. The user would also like to view the full details of the product before delinking it from the deal. Let's see how all these features can be done from a widget.



Record.js code snippet:

Util={};
var EntityIds;
var EntityName;
var temp;

//Subscribe to the EmbeddedApp onPageLoad event before initializing the widget 
ZOHO.embeddedApp.on("PageLoad",function(data)
{
EntityIds=data.EntityId[0];
EntityName=data.Entity;

//Getting the product-related details of the deal using getRelatedRecords API
ZOHO.CRM.API.getRelatedRecords({Entity:EntityName,RecordID:EntityIds,RelatedList:"Products",page:1,per_page:200})
.then(function(data){
temp=data;
rec=data.data;
console.log(data);
$('#prodidlist').empty();

//Looping through the products
for (i = 0; i < rec.length; i++) 
{

/*populating the prodidlist list with the product names of all the products associated with the deal*/
prodid=rec[i].id;
prodname=rec[i].Product_Name;
var prodidlist = document.getElementById("prodidlist");
var option = document.createElement("OPTION");
option.innerHTML = prodname;
option.value = prodid;
prodidlist.appendChild(option);
}

})  

/*Viewing the complete details page of the selected product from the prodidlist using the record open API*/
Util.view=function()
{
ZOHO.CRM.UI.Record.open({Entity:"Products",RecordID:document.getElementById("prodidlist").value,Target:"_blank"})
.then(function(data){
console.log(data)
})
}  

Util.delink=function()
{

//Delinking the product selected from the product list and thereby dissociating it from the deal 
ZOHO.CRM.API.delinkRelatedRecord({Entity:EntityName,RecordID:EntityIds,RelatedList:"Products",RelatedRecordID:document.getElementById("prodidlist").value})
.then(function(data){
console.log(data)
})
var filesToLoad = document.getElementById("fileInputTag").files;
var filename=filesToLoad[0].name;
if(filesToLoad)
{
var file = filesToLoad[0];
ZOHO.CRM.API.attachFile({Entity:EntityName,RecordID:EntityIds,File:{Name:filename,Content:file}})
.then(function(data){
console.log(data);
});
}

// Adding the input value provided as a note to be associated with the deal  
ZOHO.CRM.API.addNotes({Entity:EntityName,RecordID:EntityIds,Title:"Delink Notes",Content:document.getElementById("notes").value}).then(function(datas){
console.log(datas);
});  

ZOHO.CRM.UI.Popup.close()
.then(function(data){
console.log(data)
})
}; 
})

  1. In the above code snippet, the entity ID and entity name are fetched on page load.
  2. The retrieved ID and entity name are then passed to the 'getRelatedRecords' API to fetch the complete 'Products' related list details of the specific deal.
  3. The products associated with the deal are then populated into a select list so the user can choose the product they would like to delink.
  4. The ZOHO.CRM.UI.Record.open API is used with the target property set to "_blank" to open the detail page of the chosen product. This displays the complete details of the product in a new tab upon clicking the 'View product details' button in the widget.
  5. Finally, upon clicking the 'Delink' button, three functions occur. Namely:
  • The chosen product is delinked from the associated deal.
  • The attachment file chosen is attached and will be available in the 'Attachments' section of the record using the ZOHO.CRM.API.attachFile API.
  • The notes provided by the user will be added to the notes section using the ZOHO.CRM.API.addNotes API.


The product is now delinked from the deal. The attachment is added under the 'Attachments' section, and the note is added under the 'Notes' section.



As stated in the above scenario, the user can choose the product they want to delink, attach a document, and add a note that is relevant to the delinking process, all from within a widget.

There are multiple APIs in the Zoho CRM JS SDK that serve and help to build extensions efficiently. Please refer to our JS SDK series for posts on other API functionalities and keep track of this space for more information.


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



                                                            • Sticky Posts

                                                            • Kaizen #217 - Actions APIs : Tasks

                                                              Welcome to another week of Kaizen! In last week's post we discussed Email Notifications APIs which act as the link between your Workflow automations and you. We have discussed how Zylker Cloud Services uses Email Notifications API in their custom dashboard.
                                                            • Kaizen #216 - Actions APIs : Email Notifications

                                                              Welcome to another week of Kaizen! For the last three weeks, we have been discussing Zylker's workflows. We successfully updated a dormant workflow, built a new one from the ground up and more. But our work is not finished—these automated processes are
                                                            • Kaizen #152 - Client Script Support for the new Canvas Record Forms

                                                              Hello everyone! Have you ever wanted to trigger actions on click of a canvas button, icon, or text mandatory forms in Create/Edit and Clone Pages? Have you ever wanted to control how elements behave on the new Canvas Record Forms? This can be achieved
                                                            • Kaizen #142: How to Navigate to Another Page in Zoho CRM using Client Script

                                                              Hello everyone! Welcome back to another exciting Kaizen post. In this post, let us see how you can you navigate to different Pages using Client Script. In this Kaizen post, Need to Navigate to different Pages Client Script ZDKs related to navigation A.
                                                            • Kaizen #210 - Answering your Questions | Event Management System using ZDK CLI

                                                              Hello Everyone, Welcome back to yet another post in the Kaizen Series! As you already may know, for the Kaizen #200 milestone, we asked for your feedback and many of you suggested topics for us to discuss. We have been writing on these topics over the


                                                            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

                                                                                              Get Started. Write Away!

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

                                                                                                Zoho CRM コンテンツ



                                                                                                  Nederlandse Hulpbronnen


                                                                                                      ご検討中の方




                                                                                                              • Recent Topics

                                                                                                              • Archiving Contacts

                                                                                                                How do I archive a list of contacts, or individual contacts?
                                                                                                              • How do I change a form's name? Why isn't this more intuitive?

                                                                                                                Can someone please let me know how to change a form's name?
                                                                                                              • Control Over Zia Generative AI Reply Assistance Behavior

                                                                                                                Hello, I would like to request an enhancement to the Zia Generative AI feature, specifically concerning the Reply Assistance within Zoho Desk. Current Issue: When replying to a ticket, the Ticket Properties section is automatically replaced by the Zia
                                                                                                              • Zia now integrated with Open AI in Zoho Desk

                                                                                                                The powerful integration of Zia with OpenAI, has empowered Zoho Desk reach a new level of efficiency and performance. With contextual self-service capabilities, Zia enables agents to boost their productivity and delivers superior customer experiences.
                                                                                                              • Zoho Desk Partners with Microsoft's M365 Copilot for seamless customer service experiences

                                                                                                                Hello Zoho Desk users, We are happy to announce that Zoho Desk has partnered with Microsoft's M365 to empower customer service teams with enhanced capabilities and seamless experiences for agents. Microsoft announced their partnership during their keynote
                                                                                                              • Employee self-service portal: Onboarding and continuous learning platform for support reps

                                                                                                                Hello everyone, In any organization, employees must go through multiple courses to learn about the product, their organization's standards, and how to respond to customer queries using the knowledge base articles available. This typically requires completing
                                                                                                              • 2024 Email Authentication Standards: Elevating Security with Google and Yahoo

                                                                                                                In contemporary email communication, email authentication plays a pivotal role in mitigating email fraud, spam, and phishing attacks. Brace yourself for a new level of security. Starting February 2024, Gmail and Yahoo will be implementing robust email
                                                                                                              • Contact custom field in layout

                                                                                                                Good day, all, I have an "Extension" custom field in contacts, and would like to display the contact extension in the ticket layout, but I don't seem to be able to. What am I missing? Thanks Rudy
                                                                                                              • Exact match in name when searching workdrive

                                                                                                                Hello, I am wondering how to search workdrive files/folders with an exact match in the name. For example, when I search across folder with the url param search[name]=someName, I get multiple results such as "someName", "someNameAndMore", or "someName
                                                                                                              • account in a diferent bas currency

                                                                                                                Is it possible to have an account in currency diferente from base currency?, lets say, the bas currency in japase yen but asset  accut called cash dollars in dollars?
                                                                                                              • Meeting impossible to use when sharing screen

                                                                                                                he Meeting tool in Brazil is practically unusable when sharing anything, whether it’s a presentation or simple navigation. When accessed via Cliq, the situation gets even worse: even basic calls fail to work properly, constantly freezing. And as you are
                                                                                                              • Changing the Default Search Criteria for Finding Duplicates

                                                                                                                Hey everyone, is it possible to adjust the default search criteria for finding and merging duplicate records? Right now, CRM uses some (in my opinion nonsensical) fields as search criteria for duplicate records which do nothing except dilute the results.
                                                                                                              • Is there a way to create a desktop shortcut for a website course portal?

                                                                                                                Hello everyone, I recently got a laptop and bought an online course from a website, Skillwint.com, which I visit regularly. I open that site many times a day and want to create a desktop shortcut so I can open it directly instead of searching in the browser
                                                                                                              • SalesIQ Tip for Admins: Your Safety Net for Data Recovery

                                                                                                                Ever clicked 'Delete' in your SalesIQ and then realized it was the wrong item? Maybe it was a prospect's chat that held important context you needed to refer to later on. Or, maybe you deleted an elaborate Zobot that you were still testing or planning
                                                                                                              • Depreciated mergeAndStore Function Help!

                                                                                                                Hello, I have a function designed to create a PDF containing information from the fields in a Deals record. There is a Writer Mail Merge template in WorkDrive that is populated via Deluge code, and a copy of the resulting PDF is then attached to the record.
                                                                                                              • Can I execute two 'functions' when completing a mail merge from CRM?

                                                                                                                Hi, I have set up a mail merge from CRM Deals to a template. I want a copy of this to be saved in Workdrive, and then a copy also saved back into the deal record from which the merge occurred. I can do both independent of each other, and managed to get
                                                                                                              • External Share > Edit: Cannot Create Zoho Files

                                                                                                                Hi Zoho, When we create an external share link with Edit permission, our external users are unable to create a Zoho file (Zoho Writer, Zoho Sheet and Zoho Show). They can only upload files. They can edit the Zoho files if we create them internally and
                                                                                                              • Zoho Mail iOS app update - RTL languages support and access emails using permalink and universal link, image upload resolution

                                                                                                                Hello everyone! In the most recent version of the Zoho Mail iOS app update, we have brought in support for RTL languages(Arabic and Urudu), providing a seamless reading experience with proper text alignment and layout throughout the app. We have also
                                                                                                              • Why are emails sending with @viazohocrm.com ?

                                                                                                                I just sent out mass emails from CRM. They are sending from the email below and people cannot reply, and they are getting this message: Address not found Your message wasn't delivered to sales.XXXXXXXX.com.au@viazohocrm.com because the address couldn't
                                                                                                              • Duplicating and referencing datasets

                                                                                                                I am moving from PowerBI to Zoho Analytics and while I find Zoho easier to use in many ways, there is one function that I use in PowerBI that I have not been able to find in Zoho.   I have several data sets that I need to modify in different ways to get
                                                                                                              • Zoho Inventory Now Supports VeriFactu for Businesses in Spain

                                                                                                                Starting from January 1, 2026, Spain requires real-time invoice reporting for all B2B transactions. From July 2026, this requirement will extend to B2C transactions as well. All reporting must be carried out through the VeriFactu to AEAT (Agencia Estatal
                                                                                                              • Enhancements to Zoho Map integration tasks

                                                                                                                Hello everyone, We're excited to announce enhancements to the Zoho Map integration tasks in Deluge, which will boost its performance. This post will walk you through the upcoming changes, explain why we're making them, and detail the steps you need to
                                                                                                              • Let’s Talk Recruit: Meet Zia, your all-in-one AI assistant (Part-3)

                                                                                                                Welcome back to the Let’s Talk Recruit series. In the part 2 post, we explored how Zia has evolved with smarter summaries and seamless AI-assisted content creation. This time, we’re diving into the latest upgrades that take productivity even further —
                                                                                                              • Announcing Early Access to "Zoho CRM for Everyone" — A new and exciting update to Zoho CRM

                                                                                                                Update : Zoho CRM For Everyone's Nextgen Interface gets an upgrade! Hello everyone, We’ve updated the Zoho CRM for Everyone Nextgen interface based on your feedback. The UI is now simpler with a unified sidebar, a more visible global search and features
                                                                                                              • Unable to verify domain for Zoho People

                                                                                                                I have added TXT records in my DNS (GoDaddy) [screenshot attached], but unable to verify even after 12 hours after adding. On checking the console, it shows some errors [screenshot attached]. It appears that the verification flow is broken - please provide
                                                                                                              • Zoho Invoice Now Supports VeriFactu for Businesses in Spain

                                                                                                                Starting from January 1, 2026, Spain requires real-time invoice reporting for all B2B transactions. From July 2026, this requirement will extend to B2C transactions as well. All reporting must be carried out through the VeriFactu to AEAT (Agencia Estatal
                                                                                                              • Zoho Billing Now Supports VeriFactu for Businesses in Spain

                                                                                                                Starting from January 1, 2026, Spain requires real-time invoice reporting for all B2B transactions. From July 2026, this requirement will extend to B2C transactions as well. All reporting must be carried out through the VeriFactu to AEAT (Agencia Estatal
                                                                                                              • Weekly Tips : Make your email content error free with Spell check in Zoho Mail

                                                                                                                As someone who writes multiple emails a day, we are bound to make both grammatical and spelling errors. Most of them we may not even notice, and even if we do, we may not have the time to correct each one individually when we are in a hurry. So how do
                                                                                                              • Introducing Enhanced Storage Management

                                                                                                                We’re excited to roll out two new enhancements in Zoho Recruit, Subscription Information and Storage Management — designed to give admins complete visibility into subscription details, feature limits, and storage consumption — all from one place inside
                                                                                                              • how to download all my files

                                                                                                                We are in the middle of zoho docs to zoho workdrive migration. I can not access my zoho docs page. I get redirected immediately to a zoho workdrive page. I would like to download all my files so that I have a backup in case something goes wrong with the
                                                                                                              • Convert Zoho Books SalesOrder - Invoice

                                                                                                                Converting a Zoho Books Sales Order into an Invoice Using the SalesOrder Convert API Hello Zoho Developers, Today, we are sharing a simple and effective solution to convert a Zoho Books Sales Order into a Zoho Books Invoice using the SalesOrder Convert
                                                                                                              • Zoho Expense - Report Templates

                                                                                                                Hi Expense Team, I do a recurring trip once every week which has the same cost: Per diem Milage Toll Payment It would be great if there was a feature which allowed me to clone a previously submitted report or create a template reports. This would save
                                                                                                              • How to add tabular data when execute Add Record API

                                                                                                                Hi everyone! I was send api updateRecord follow by this request url : https://people.zoho.com/people/api/forms/json/<formLinkName>/updateRecord with parameters "inputData", "tabularData", "recordId". Ex picture below And response success: But. When I
                                                                                                              • Tip #51- Centralized Contact Management for Better Remote Support- 'Insider Insights'

                                                                                                                For our final topic of November, we’re diving into one of the most helpful features in Zoho Assist, the Contacts section on Zoho Assist;s dashboard. Whether you’re managing multiple clients, tracking past sessions, or simply looking to streamline your
                                                                                                              • Using gift vouchers

                                                                                                                We would like to be able to offer a limited number of gift vouchers, of varying values, to our customers, and are looking for the best way to do this. We have looked at Coupons and Gift Certificates, but neither seem to fit the bill perfectly. Coupons:
                                                                                                              • Say Hello to Telephony in Zoho FSM

                                                                                                                Zoho FSM now brings complete telephony support so your team can manage inbound and outbound calls without switching tabs. Faster responses, smarter routing, and total call visibility—all in one place. Choose the telephony setup that works for you Zoho’s
                                                                                                              • E-Invoicing in Belgium with Zoho Inventory

                                                                                                                Starting January 1, 2026, Belgium is introducing mandatory electronic invoices (e-invoicing) for all B2B transactions between VAT-registered businesses. Invoices and credits notes must be exchanged in a prescribed digital format. How E-Invoicing Works
                                                                                                              • Employee ID is not correct in get records api V2 for leave

                                                                                                                Hi Team, We are facing an issue when calling the Get Records API V2. The employee.id returned in the response is not the actual employee record ID in Zoho People. As a result, our integration is forced to make an additional Get Record API call for every
                                                                                                              • Formatting Mailing Labels

                                                                                                                I want to use the "Print Mailing Labels" function on the drop down list, but I am not seeing a way to change the formatting on the mailing labels. At the moment, the information that appears on the mailing labels ARE NOT mailing addresses, but random
                                                                                                              • Zoho People. Updating TabularData

                                                                                                                I am trying to update tabular data in the record. I always have the same response. I have checked many times. Section ID is correct. May be something wrong with request structure itself. Can someone help me. Body content type: form urlencoded query params
                                                                                                              • Next Page