### ZOHO.embeddedApp.init() Source: https://www.zohocrm.dev/explore/widgets/v1.5/jssdk Initializes the widget to start listening to events from the Zoho CRM environment. ```APIDOC ## ZOHO.embeddedApp.init() ### Description Primary initialization function used to initialize the widget and start listening to events. ### Usage ```javascript ZOHO.embeddedApp.init(); ``` ``` -------------------------------- ### Custom GET request Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_methods Performs a custom GET request using the request method. ```javascript const response = await zrc.request({ path: 'https://zylker.com/posts' }); console.log(response); ``` ```json { "status": 200, "data": { "id": 101, "title": "Test GET", "body": "This is a sample body", "userId": 1 }, "headers": { "Content-Type": "application/json; charset=utf-8" } } ``` -------------------------------- ### Get All Leads (Promise Style) Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Fetches a list of leads using promise-based syntax with specific fields requested. ```javascript zrc.get('/crm/v8/Leads', { params: { fields: 'Last_Name,First_Name' } }).then(res => { console.log(res.data.data); }).catch (err => { console.error("Error fetching leads:", err); }); ``` -------------------------------- ### Create a reusable instance for external API requests Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_methods Demonstrates creating an instance with custom headers and performing various HTTP methods like GET, POST, PUT, and DELETE. ```javascript const myApi = zrc.createInstance({ baseUrl: 'https://api.myservice.com', headers: { Authorization: 'Bearer YOUR-TOKEN' } }); const allUserRes = await myApi.get('/users/'); const oneUserRes = await myApi.get('/users/123'); const createUserRes = await myApi.post('/users/', { users: [{ first_name: 'Rahul', email: 'rahul@zylkermail.com' }] }); const updateUserRes = await myApi.put('/users/123', { users: [{ first_name: 'KL Rahul' }] }); const deleteUserRes = await myApi.delete('/users/123'); console.log({ allUsers: allUserRes.data, oneUser: oneUserRes.data, newUser: createUserRes.data, updatedUser: updateUserRes.data, deletedUser: deleteUserRes.data }); ``` ```json { "allUsers": [ { "id": "101", "first_name": "Rahul", "email": "rahul@zylkermail.com" }, { "id": "102", "first_name": "Virat", "email": "virat@zylkermail.com" } ], "oneUser": { "id": "101", "first_name": "Rahul", "email": "rahul@zylkermail.com" }, "newUser": { "id": "103", "first_name": "Rahul", "email": "rahul@zylkermail.com" }, "updatedUser": { "id": "101", "first_name": "KL Rahul", "email": "rahul@zylkermail.com" }, "deletedUser": { "id": "101", "status": "deleted" } } ``` -------------------------------- ### ApiError Response Example Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_request_configuration_and_error_types Example of the JSON structure returned when an ApiError occurs. ```json { "name": "ApiError", "message": "Request failed with status code 404", "status": 404, "details": { "error": "User not found" } } ``` -------------------------------- ### GET /crm/v8/Leads Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Retrieves a list of leads from Zoho CRM. ```APIDOC ## GET /crm/v8/Leads ### Description Fetches leads from the CRM, optionally filtering by fields. ### Method GET ### Endpoint /crm/v8/Leads ### Parameters #### Query Parameters - **fields** (string) - Optional - Comma-separated list of fields to retrieve ``` -------------------------------- ### Initialize EmbeddedApp Widget Source: https://www.zohocrm.dev/explore/widgets/v1.5/jssdk Initializes the widget to start listening to events, with a prerequisite to subscribe to the PageLoad event. ```javascript //Subscribe to the EmbeddedApp onPageLoad event before initializing ZOHO.embeddedApp.on("PageLoad", function(data){ console.log(data); //Custom Business logic goes here }) //Initializing the widget. ZOHO.embeddedApp.init(); ``` -------------------------------- ### Execute CRM Function with query params (GET) Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Executes a CRM function via GET, passing query parameters. ```javascript const function_response = zrc.get('/crm/v7/functions/my_function/actions/execute?auth_type=oauth', { params: { 'query': 'value1' } }); // query params can be received in Deluge function with 'crmAPIRequest.get('params')' // crmAPIRequest should be declared as Map type argument in the Deluge function. console.log(function_response.data.details.output); // Function output will be in details.output key ``` -------------------------------- ### zrc.get Lead Details Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_methods Retrieves details for a specific Lead using the GET method. ```javascript await zrc.get('/crm/v8/Leads/3705319000000662013') ``` ```json { "status": 200, "data": { "data": [ { "First_Name": "Rahul", "Last_Name": "Sharma", "id": "3705319000000662013" } ] }, "headers": { "content-type": "application/json;charset=UTF-8", ... } } ``` -------------------------------- ### Get Current User Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Retrieves the details of the currently authenticated user. ```javascript const currentUser = await zrc.get("/crm/v8/users?type=CurrentUser"); console.log(currentUser.data); ``` -------------------------------- ### Get Spreadsheet via Connection Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_overview Fetches data from Google Sheets using a pre-configured connection named 'google_sheets'. ```javascript const res = await zrc.get('https://sheets.googleapis.com/v4/spreadsheets/98711121211100', { connection: 'google_sheets' }); ``` -------------------------------- ### Call External API (Public) Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Performs a GET request to a public external URL and logs the response data. ```javascript const external = await zrc.get("https://zylker.com/posts"); console.log(external.data); ``` -------------------------------- ### zrc.get(url) Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Performs a GET request to the specified external URL. ```APIDOC ## zrc.get(url) ### Description Fetches data from an external API endpoint using a GET request. ### Method GET ### Parameters - **url** (string) - Required - The external URL to fetch data from. ### Example ```javascript const external = await zrc.get("https://zylker.com/posts"); console.log(external.data); ``` ``` -------------------------------- ### GET /crm/v8/users Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Retrieves the current user information from Zoho CRM. ```APIDOC ## GET /crm/v8/users ### Description Retrieves the current user details. ### Method GET ### Endpoint /crm/v8/users?type=CurrentUser ### Parameters #### Query Parameters - **type** (string) - Required - Set to 'CurrentUser' ``` -------------------------------- ### Get Users via ZRC Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_overview Fetches a list of users from the CRM API using the zrc.get method. ```javascript const users = await zrc.get('/crm/v8/users'); ``` ```json { "status": 200, "data": { "users": [ { "id": "3891457000000556001", "full_name": "Catherin", "Modified_Time": "2025-04-24T18:10:09+05:30", ... } ], "info": { "per_page": 200, "count": 1, ... } }, "headers": { "cache-control": "no-store, no-cache, must-revalidate, private", ... } } ``` -------------------------------- ### zrc.get(url, config) Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_overview Performs a GET request to the specified URL. This method is used for retrieving data from Zoho CRM APIs, external services, or connection-based endpoints. ```APIDOC ## zrc.get(url, config) ### Description Sends a GET request to the provided URL. When calling Zoho CRM APIs, the domain is auto-resolved. For external or connection-based requests, provide the full URL. ### Parameters - **url** (string) - Required - The endpoint path or full URL. - **config** (object) - Optional - Configuration object including 'params' for query parameters or 'connection' for connection-based authentication. ### Example ```javascript // CRM API Request const users = await zrc.get('/crm/v8/users'); // Connection-based Request const res = await zrc.get('https://sheets.googleapis.com/v4/spreadsheets/123', { connection: 'google_sheets' }); ``` ``` -------------------------------- ### Get Specific Deal Record Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_overview Retrieves details for a specific record in the Deals module, filtering by specific fields. ```javascript const deal = await zrc.get('/crm/v8/Deals/981234567810001', { params: { fields: 'Deal_Name,Stage,Amount' } }); ``` ```json { "status": 200, "data": { "data": [ { "id": "3891457000000567925", "Deal_Name": "Benton", "Stage": "Qualification", "Modified_Time": "2025-02-14T12:08:35+05:30", ... } ] }, "headers": { "cache-control": "no-store, no-cache, must-revalidate, private", ... } } ``` -------------------------------- ### Get ticket details from Zoho Desk Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Retrieves ticket details from Zoho Desk using a configured connection. ```javascript const result = await zrc.get('https://desk.zoho.com/api/v1/tickets', { connection: 'zoho_desk' }); console.log(result.data); ``` -------------------------------- ### Get Notes Related to a Record Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Retrieves all notes associated with a specific lead record ID. ```javascript const res = await zrc.get("/crm/v8/Leads/4000001234567/Notes"); console.log(res.data); ``` -------------------------------- ### Get Count of Records with Search Criteria Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Searches for records matching specific criteria and returns the total count. ```javascript const res = await zrc.get("/crm/v8/Contacts/search", { params: { criteria: '(Email:contains:@example.com)' } }); console.log("Total:", res.data.info.count); ``` -------------------------------- ### Use zrc.createInstance for Custom Base URL Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Initializes a new API instance with a custom base URL to simplify subsequent requests. ```javascript const api = zrc.createInstance({ baseUrl: "https://api.example.com" }); const users = await api.get("/users"); console.log(users.data); ``` -------------------------------- ### zrc.createInstance(config) Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_overview Creates a reusable ZRC instance with pre-configured base URL and connection settings. ```APIDOC ## zrc.createInstance(config) ### Description Initializes a new ZRC instance to avoid repeating configuration like base URLs or connection names in every request. ### Parameters - **config** (object) - Required - Configuration object containing 'baseUrl' and 'connection'. ### Example ```javascript const sheetZrc = zrc.createInstance({ baseUrl: 'https://sheets.googleapis.com/v4', connection: 'google_sheets' }); const sheet_info = await sheetZrc.get('/spreadsheets/123'); ``` ``` -------------------------------- ### options(path, requestConfig) Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_methods Sends an OPTIONS request to determine the supported HTTP methods for a resource. ```APIDOC ## OPTIONS [path] ### Description Sends an OPTIONS request to know the supported HTTP methods for a resource. ### Parameters - **path** (object) - Required - API endpoint for Zoho CRM APIs or absolute URL. - **requestConfig** (object) - Optional - Additional options like headers, params etc. ### Request Example await zrc.options('https://someexamplewebsite.to/test/options'); ``` -------------------------------- ### OPTIONS request for supported methods Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_methods Sends an OPTIONS request to determine which HTTP methods are supported for a specific resource. ```javascript await zrc.options('https://someexamplewebsite.to/test/options'); ``` ```json { "status": 204, "headers": { "Allow": "GET, POST, PUT, DELETE, OPTIONS", "Content-Length": "0" } } ``` -------------------------------- ### ZOHO.CRM.UI.Record.create Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO_CRM_UI_Record Opens the CreatePage for a specified module. Returns a promise resolved with true or false. ```javascript ZOHO.CRM.UI.Record.create({ Entity: "Leads" }).then(function(data){ console.log(data) }) ``` -------------------------------- ### ZOHO.CRM.UI.Record.create Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO_CRM_UI_Record Opens the CreatePage for a specified module. ```APIDOC ## ZOHO.CRM.UI.Record.create(data) ### Description Opens the CreatePage of the specified Record. ### Parameters - **data** (object) - Required - Configuration Object - **data.Entity** (String) - Required - SysRefName of the module. ### Request Example ZOHO.CRM.UI.Record.create({ Entity: "Leads" }).then(function(data){ console.log(data) }) ``` -------------------------------- ### Open a WebTab Widget with ZOHO.CRM.UI.Widget.open Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO.CRM.UI.Widget Opens a WebTab Widget with custom data passed via the Message object. The method returns a promise that resolves with a boolean indicating success or failure. ```javascript var message = { arg1: "Argument 1", arg2: "Argument 2", arg3Nested: { subArg1: "SubArgument 1", subArg2: "SubArgument 2", subArg3: "SubArgument 3", } } ZOHO.CRM.UI.Widget.open({ Entity: "WebTab1_Widget", Message: message }).then(function(data){ console.log(data) }) ``` -------------------------------- ### Reusable ZRC Instance for Connections Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_overview Creates a reusable ZRC instance with a base URL and connection name to simplify multiple requests to the same service. ```javascript const sheetZrc = zrc.createInstance({ baseUrl: 'https://sheets.googleapis.com/v4', connection: 'google_sheets' }); const sheet_info = await sheetZrc.get('/spreadsheets/98711121211100'); const sheet_value1 = await sheetZrc.get('/spreadsheets/98711121211102/values/A1'); const sheet_value2 = await sheetZrc.get('/spreadsheets/98711121211102/values/A2'); ``` -------------------------------- ### zrc.request(options) Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Performs a generic HTTP request with configurable methods and body content. ```APIDOC ## zrc.request(options) ### Description Executes an HTTP request with custom configuration including method, path, and body. ### Parameters - **options** (object) - Required - Configuration object containing method, path, and body. ### Example ```javascript const res = await zrc.request({ method: "post", path: "https://zylker.com/posts", body: { title: "My Title", body: "My Content" } }); console.log(res.data); ``` ``` -------------------------------- ### Create a Lead Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Creates a new lead record in the CRM. ```javascript const leadData = { data: [{ Last_Name: "Doe", Company: "Acme Corp", Email: "johndoe@example.com" }] }; const newLead = await zrc.post("/crm/v8/Leads", leadData); console.log(newLead.data); ``` -------------------------------- ### zrc.post Create Record Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_methods Creates a new record in the Leads module using the POST method. ```javascript await zrc.post('/crm/v8/Leads', { data: [{ Last_Name: 'Doe', Company: 'Zylker' }] }); ``` ```json { "status": 201, "data": { "data": [ { "code": "SUCCESS", "details": { "id": "3705319000001037013", ... }, "message": "record added", "status": "success" } ] }, "headers": { "content-type": "application/json;charset=UTF-8", ... } } ``` -------------------------------- ### ZOHO.CRM.UI.Record.open Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO_CRM_UI_Record Opens the DetailPage for a specified record. ```APIDOC ## ZOHO.CRM.UI.Record.open(data) ### Description Opens the DetailPage of the specified Record. ### Parameters - **data** (object) - Required - Configuration Object - **data.Entity** (String) - Required - SysRefName of the module. - **data.RecordID** (String) - Required - RecordID to open ### Request Example ZOHO.CRM.UI.Record.open({ Entity: "Leads", RecordID: "1000000036062" }).then(function(data){ console.log(data) }) ``` -------------------------------- ### ZOHO.CRM.UI.Widget.open Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO_CRM_UI_Widget Opens a WebTab Widget with custom data passed via the Message object. Returns a Promise that resolves with a boolean indicating success or failure. ```APIDOC ## ZOHO.CRM.UI.Widget.open ### Description Opens a WebTab Widget with custom onLoad data. The method returns a Promise that resolves with true or false. ### Parameters - **Entity** (string) - Required - The name of the WebTab Widget to open. - **Message** (object) - Optional - A custom object containing data to be passed to the widget. ### Request Example ```javascript var message = { arg1: "Argument 1", arg2: "Argument 2", arg3Nested: { subArg1: "SubArgument 1", subArg2: "SubArgument 2", subArg3: "SubArgument 3" } }; ZOHO.CRM.UI.Widget.open({ Entity: "WebTab1_Widget", Message: message }).then(function(data) { console.log(data); }); ``` ### Response - **Promise** (boolean) - Resolves with true if the widget opened successfully, or false otherwise. ``` -------------------------------- ### ZOHO.CRM.UI.Widget.open Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO.CRM.UI.Widget Opens a WebTab Widget with custom data passed as a message object. Returns a Promise that resolves with a boolean indicating success or failure. ```APIDOC ## ZOHO.CRM.UI.Widget.open ### Description Opens a WebTab Widget with custom onLoad data. ### Method SDK Method ### Parameters - **Entity** (string) - Required - The name of the WebTab Widget to open. - **Message** (object) - Optional - The data object to be passed to the widget. ### Returns - **Promise** - Resolves with true if successful, false otherwise. ### Example var message = { arg1: "Argument 1", arg2: "Argument 2", arg3Nested: { subArg1: "SubArgument 1", subArg2: "SubArgument 2", subArg3: "SubArgument 3", } }; ZOHO.CRM.UI.Widget.open({ Entity: "WebTab1_Widget", Message: message }).then(function(data){ console.log(data); }); ``` -------------------------------- ### ZOHO.CRM.UI.Record.open Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO_CRM_UI_Record Opens the DetailPage for a specific record ID within a module. Returns a promise resolved with true or false. ```javascript ZOHO.CRM.UI.Record.open({ Entity: "Leads", RecordID: "1000000036062" }).then(function(data){ console.log(data) }) ``` -------------------------------- ### Run COQL Query Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Executes a COQL query to retrieve specific data from the CRM. ```javascript const query = { select_query: "select Last_Name, Email from Leads where Email like '%@example.com'" }; const coqlRes = await zrc.post("/crm/v8/coql", query); console.log(coqlRes.data.data); ``` -------------------------------- ### Create Deals Records Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_overview Creates multiple records in the Deals module using the zrc.post method. ```javascript const deal = await zrc.post('/crm/v8/Deals', { data: [{ Deal_Name: 'New Deal', Amount: 50000, Stage: 'Qualification' }, { Deal_Name: 'My Deal', Amount: 10000, Stage: 'Qualification' }] }); ``` ```json { "status": 201, "data": { "data": [ { "code": "SUCCESS", "message": "record added", "status": "success" } ] } }, "headers": { "clientversion": "10942545", ... } ``` -------------------------------- ### zrc.get with Query Parameters Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_methods Retrieves Lead data filtered by specific fields using query parameters. ```javascript await zrc.get('/crm/v8/Leads', { params: { fields: 'Last_Name,First_Name' } }) ``` ```json { "status": 200, "data": { "data": [ { "First_Name": "Rahul", "Last_Name": "Sharma", "id": "3705319000000662013" } ], ... }, "headers": { "content-type": "application/json;charset=UTF-8", ... } } ``` -------------------------------- ### POST /crm/v8/Leads Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Creates a new lead record in Zoho CRM. ```APIDOC ## POST /crm/v8/Leads ### Description Creates a new lead record. ### Method POST ### Endpoint /crm/v8/Leads ### Request Body - **data** (array) - Required - Array of lead objects containing fields like Last_Name, Company, and Email ``` -------------------------------- ### request(requestConfig) Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_methods Makes a fully customizable API request with complete control over the method, endpoint, headers, and body. ```APIDOC ## CUSTOM REQUEST ### Description Make fully customizable API requests with complete control over the method, endpoint, headers, body, and other request configurations. ### Parameters - **requestConfig** (object) - Required - Full request setup including method, path, headers, body. ### Request Example await zrc.request({ method: 'POST', path: 'https://zylker.com/posts', body: { title: 'Test Post', body: 'This is a sample body', userId: 1 } }); ``` -------------------------------- ### ZOHO.CRM.UI.Dialer.maximize() Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO_CRM_UI_Dialer Maximizes the CallCenter window. ```APIDOC ## ZOHO.CRM.UI.Dialer.maximize() ### Description Maximizes the CallCenter window. ### Returns - **Promise** - Resolved with true or false. ``` -------------------------------- ### POST /crm/v8/coql Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Executes a COQL query to retrieve records. ```APIDOC ## POST /crm/v8/coql ### Description Runs a COQL select query. ### Method POST ### Endpoint /crm/v8/coql ### Request Body - **select_query** (string) - Required - The COQL query string ``` -------------------------------- ### ZOHO.CRM.UI.Dialer.minimize() Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO_CRM_UI_Dialer Minimizes the CallCenter window. ```APIDOC ## ZOHO.CRM.UI.Dialer.minimize() ### Description Minimizes the CallCenter window. ### Returns - **Promise** - Resolved with true or false. ``` -------------------------------- ### Upload File to WorkDrive Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Downloads an image and uploads it to a specific WorkDrive folder using a connection. ```javascript try{ const folderId = "nxvdo037db1ab668f49698309d397cf1958d8"; const path = "https://zohoapis.com/workdrive/api/v1/upload"; const imageDownloadResponse = await zrc.get("https://picsum.photos/150", { responseType: "blob", }); console.info({ imageDownloadResponse }); const imageBlob = imageDownloadResponse.data; const formData = new FormData(); formData.append("filename", imageBlob.name || "my-random-image.jpeg"); formData.append("override-name-exist", "true"); formData.append("parent_id", folderId); formData.append("content", imageBlob); const uploadRes = await zrc.post(path, formData, { connection: "workdrive" }); console.info({ uploadRes }); } catch (error){ console.error({ error }); } ``` -------------------------------- ### zrc.post(path, body, requestConfig) Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_methods Sends a POST request. This method natively supports JSON, FormData, and URLSearchParams payloads, handling headers automatically. ```APIDOC ## zrc.post(path, body, requestConfig) ### Description Sends a POST request. Natively supports JSON, FormData, and URLSearchParams payloads. ### Parameters - **path** (string) - Required - API endpoint for Zoho CRM APIs (or) absolute URL for Connection-based requests - **body** (object) - Required - Data to send as request payload - **requestConfig** (object) - Optional - Additional options like headers, params etc. ### Request Example await zrc.post('/crm/v8/Leads', { data: [{ Last_Name: 'Doe', Company: 'Zylker' }] }); ``` -------------------------------- ### Custom POST request Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_methods Performs a custom POST request with a specified body and path. ```javascript const response = await zrc.request({ method: 'POST', path: 'https://zylker.com/posts', body: { title: 'Test Post', body: 'This is a sample body', userId: 1 } }); console.log(response); ``` ```json { "status": 201, "data": { "id": 101, "title": "Test Post", "body": "This is a sample body", "userId": 1 }, "headers": { "Content-Type": "application/json; charset=utf-8" } } ``` -------------------------------- ### Send data to wizard using ZOHO.CRM.WIZARD.post Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO.CRM.WIZARD Use this method to set field data to a record in a wizard. It returns a Promise that resolves once the data has been successfully set. ```javascript var record_data = { "field_api_name1": "field_value", "field_api_name2": "field_value" }; ZOHO.CRM.WIZARD.post(record_data); ``` -------------------------------- ### ZOHO.CRM.UI.Record.populate Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO_CRM_UI_Record Populates the given data in the entity form. ```APIDOC ## ZOHO.CRM.UI.Record.populate(RecordData) ### Description Populate the given data in the entity form. ### Parameters - **RecordData** (object) - Required - Data to populate in the form ### Request Example ZOHO.CRM.UI.Record.populate({ Annual_Revenue: "500", Description: "Populating test data", Phone: "85663655785" }).then(function(data){ console.log(data) }) ``` -------------------------------- ### head(path, requestConfig) Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_methods Sends a HEAD request to retrieve headers without the response body. ```APIDOC ## HEAD [path] ### Description Sends a HEAD request to retrieve headers without the response body. ### Parameters - **path** (string) - Required - API endpoint for Zoho CRM APIs or absolute URL. - **requestConfig** (object) - Optional - Additional options like headers, params etc. ### Request Example await zrc.head('https://someexamplewebsite.to/test'); ``` -------------------------------- ### zrc.post(url, config) Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_overview Performs a POST request to the specified URL. Used for creating or submitting data to Zoho CRM APIs. ```APIDOC ## zrc.post(url, config) ### Description Sends a POST request to the provided URL with a request body. ### Parameters - **url** (string) - Required - The endpoint path. - **config** (object) - Required - Configuration object containing the 'data' payload. ### Example ```javascript const deal = await zrc.post('/crm/v8/Deals', { data: [{ Deal_Name: 'New Deal', Amount: 50000, Stage: 'Qualification' }] }); ``` ``` -------------------------------- ### ZOHO.CRM.UI.Record.populate Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO_CRM_UI_Record Populates the entity form with the provided record data. Returns a promise resolved with true or false. ```javascript ZOHO.CRM.UI.Record.populate({ Annual_Revenue: "500", Description: "Populating test data", Phone: "85663655785" }).then(function(data){ console.log(data) }) ``` -------------------------------- ### Create Ticket in Zoho Desk Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Creates a new support ticket in Zoho Desk via the CRM connection. ```javascript const res = await zrc.post('https://desk.zoho.com/api/v1/tickets', { subject: "CRM Lead Conversion - Support Ticket", departmentId: "1234567890000123456", // Replace with Desk Dept ID contactId: "1234567890000654321", // Replace with Desk Contact ID description: "This ticket was auto-created from Zoho CRM via ZRC", priority: "High", status: "Open" }, { connection: "zoho_desk" }); console.log(res.data); ``` -------------------------------- ### ZOHO.CRM.WIZARD.post(record_data) Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO_CRM_WIZARD Sends field data to a record in the wizard. Returns a Promise that resolves when the data is successfully set. ```APIDOC ## ZOHO.CRM.WIZARD.post ### Description Sends field data to a record in the wizard. ### Parameters - **record_data** (Object) - Required - Field data to be set to the record in the wizard. ### Request Example var record_data = { "field_api_name1": "field_value", "field_api_name2": "field_value" }; ZOHO.CRM.WIZARD.post(record_data); ### Response - **Promise** - Resolved when the data is set to the record in the wizard. ``` -------------------------------- ### ZOHO.CRM.WIZARD.post(record_data) Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO.CRM.WIZARD Sends field data to a record in the wizard. Returns a Promise that resolves when the data is successfully set. ```APIDOC ## ZOHO.CRM.WIZARD.post(record_data) ### Description Sends field data to be set to the record in the wizard. ### Parameters - **record_data** (Object) - Required - Field data to be set to the record in the wizard. ### Returns - **Promise** - Resolved when the data is set to the record in the wizard. ### Example ```javascript var record_data = { "field_api_name1": "field_value", "field_api_name2": "field_value" }; ZOHO.CRM.WIZARD.post(record_data); ``` ``` -------------------------------- ### Register ContextUpdate Listener Source: https://www.zohocrm.dev/explore/widgets/v1.5/jssdk Registers a listener for the ContextUpdate event, triggered each time a Wizard's form is modified. ```javascript ZOHO.embeddedApp.on("ContextUpdate", function(data){ console.log(data); }); ``` -------------------------------- ### Download Attachment from Contact Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Downloads an attachment from a contact record as a blob. ```javascript const attachmentRes = await zrc.get("/crm/v8/Contacts/4000001234567/Attachments/4000007654321", { responseType: "blob" }); console.log(attachmentRes.data); ``` -------------------------------- ### zrc.post with URLSearchParams Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_methods Sends a POST request using URLSearchParams. ```javascript const params = new URLSearchParams(); params.append("data", "My URL encoded data"); const response = await zrc.post("https://myapi.example.com/posts", params); ``` -------------------------------- ### Upload File as Attachment to a Lead Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Uploads a file as an attachment to a specific lead record using FormData. ```javascript const formData = new FormData(); formData.append("file", fileBlob, "resume.pdf"); const uploadRes = await zrc.post("/crm/v8/Leads/4000001234567/Attachments", formData); console.log(uploadRes.data); ``` -------------------------------- ### Error Handling Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_request_configuration_and_error_types Standard error types and best practices for handling exceptions in ZRC method calls. ```APIDOC ## Error Types ### Description ZRC methods should be wrapped in a try-catch block to handle specific error types that may occur during execution. ### Error Types - **ZrcError**: Error occurred while setting up the request. - **ZrcValidationError**: Validation error due to incorrect arguments passed to ZRC methods. - **ApiError**: Server-side issue, such as status >= 300, server unreachable, or no response received. - **ConnectionError**: Issues specific to connection-based API calls. ### Example ```javascript try { const res = await zrc.request({ method: 'GET', path: 'https://api.myservice.com/users/999', connection: 'MyService_Conn' }); console.log(res.data); } catch (error) { if(error.name === 'ZrcValidationError') { console.error('Validation failed:', error.message); } else if(error.name === 'ApiError') { console.error('API issue:', error.message, ' Status:', error.status); } else if(error.name === 'ConnectionError') { console.error('Connection issue:', error.message); } else if(error.name === 'ZrcError') { console.error('Request setup issue:', error.message); } }``` ``` -------------------------------- ### PUT /crm/v8/Deals/{id} Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Updates the stage of a specific deal. ```APIDOC ## PUT /crm/v8/Deals/{id} ### Description Updates the stage of an existing deal. ### Method PUT ### Endpoint /crm/v8/Deals/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the deal ``` -------------------------------- ### RequestConfig Object Structure Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_request_configuration_and_error_types The RequestConfig object defines the parameters for making requests via zrc.request() and zrc.createInstance(). ```javascript RequestConfig: { headers: { // supported headers to be sent with the request 'content-type': 'application/json'; ... }; // while making connection requests, you must provide API domain either in baseUrl or in the path argument itself connection: string; // link name of the connection responseType: 'json' | 'text' | 'arraybuffer' | 'blob'; //If the response type not mentioned, Response will be parsed based on content-type header params: { // key-value pairs to be sent as query params in request // json and arrays are auto serialized if you need more customization, please add queryparams directly in the path variable, e.g. /path/to/myservice?name=brad&city=jaipur }; // body is auto serialized if json, form data or URL Search params is provided body: any; // mandatory for zrc.request() and zrc.createInstance() method: string; // only applicable in zrc.request() and zrc.createInstance() method path: string; // only applicable in zrc.request() method }; ``` -------------------------------- ### ZOHO.embeddedApp.on() Source: https://www.zohocrm.dev/explore/widgets/v1.5/jssdk Registers event listeners for various CRM triggers such as PageLoad, Dial, and Notify. ```APIDOC ## ZOHO.embeddedApp.on(eventName, callback) ### Description Registers a listener for specific CRM events. ### Supported Events - **PageLoad**: Triggered when an entity detail page is loaded. - **DialerActive**: Triggered when the softphone window is toggled. - **Dial**: Triggered when the Call icon is clicked in Zoho CRM. - **Notify**: Triggered when a client script flyout notification is triggered. - **NotifyAndWait**: Triggered when a synchronous client script flyout notification is triggered. - **ContextUpdate**: Triggered when a Wizard's form is modified. ### Example ```javascript ZOHO.embeddedApp.on("PageLoad", function(data) { console.log(data); }); ``` ``` -------------------------------- ### Update Deal Stage Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Updates the stage of a specific deal record. ```javascript const updateStage = await zrc.put("/crm/v8/Deals/400000112233", { data: [{ Stage: "Closed Won" }] }); console.log(updateStage.data); ``` -------------------------------- ### RequestConfig Object Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_request_configuration_and_error_types The RequestConfig object defines the structure for configuring API requests made via zrc.request() or zrc.createInstance(). ```APIDOC ## RequestConfig Object ### Description The RequestConfig object is used to define the parameters for API requests. It supports various properties for headers, connection details, query parameters, and request body handling. ### Properties - **headers** (Object) - Optional - Custom request headers (e.g., Content-Type: 'application/json'). - **connection** (String) - Optional - Connection link name to be used for connection-based requests. - **baseUrl** (String) - Optional - API Domain (e.g., https://api.example.com). Mandatory if path is a relative URL. - **params** (Object) - Optional - Query parameters passed as key-value pairs. - **responseType** ('json' | 'text' | 'blob' | 'arraybuffer') - Optional - Format of the response. Defaults to 'json'. - **body** (Any) - Optional - Data to be sent in the request payload (applicable to zrc.request() only). - **method** (String) - Optional - HTTP method like 'GET', 'POST', 'PUT', 'PATCH', 'DELETE'. Defaults to 'GET'. - **path** (String) - Optional - Absolute URL or relative path to which the request should be made (applicable to zrc.request() only). ``` -------------------------------- ### HEAD request for headers Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_methods Sends a HEAD request to retrieve response headers without the body. ```javascript await zrc.head('https://someexamplewebsite.to/test'); ``` ```json { "status": 200, "headers": { "Content-Type": "application/json; charset=utf-8", ... } } ``` -------------------------------- ### zrc.post Upload Attachment Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_methods Uploads an attachment to a Lead using FormData. ```javascript const formData = new FormData(); formData.append("file", fileBlob, "resume.pdf"); const uploadRes = await zrc.post("/crm/v8/Leads/4000001234567/Attachments", formData); ``` ```json { "status": 200, "data": { "data": [ { "code": "SUCCESS", "details": { "id": "4000001234567", ... }, "message": "attachment uploaded successfully", "status": "success" } ] }, "headers": { "content-type": "application/json;charset=UTF-8", ... } } ``` -------------------------------- ### delete(path, requestConfig) Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_methods Sends a DELETE request to remove a resource at the specified path. ```APIDOC ## DELETE [path] ### Description Sends a DELETE request. ### Parameters - **path** (string) - Required - API endpoint for Zoho CRM APIs or absolute URL. - **requestConfig** (object) - Optional - Additional options like headers, params etc. ### Request Example await zrc.delete('/crm/v8/Leads/3705319000001037013'); ``` -------------------------------- ### Register PageLoad Listener Source: https://www.zohocrm.dev/explore/widgets/v1.5/jssdk Registers a listener for the PageLoad event, triggered whenever an entity detail page is loaded. ```javascript ZOHO.embeddedApp.on("PageLoad", function(data){ console.log(data); }); ``` ```json { "Entity": "Leads", "EntityId": "3000000032096" } ``` -------------------------------- ### PATCH request for partial updates Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_methods Sends a PATCH request to update partial data, such as modifying picklist values in a field. ```javascript await zrc.patch('/crm/v8/settings/fields/111112000000067259?module=Leads', { fields: [{ pick_list_values: [{ display_value: "North_East", actual_value: "IN_North_East" }] }] }); ``` ```json { "status": 200, "data": { "fields": [ { "code": "SUCCESS", "details": { "id": "111112000000067259" }, "message": "field updated", "status": "success" } ] }, "headers": { "content-type": "application/json;charset=UTF-8", ... } } ``` -------------------------------- ### External API Request Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_overview Performs a direct REST API call to an external service. ```javascript const posts = await zrc.get('https://zylker.com/posts'); ``` ```json { "status": 200, "data": [ { "userId": 1, "id": 1 }, ... ], "headers": { "cache-control": "max-age=43200", "content-type": "application/json; charset=utf-8", ... } } ``` -------------------------------- ### Use zrc.request to POST External API Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Sends a POST request to an external API with a specified body payload. ```javascript const res = await zrc.request({ method: "post", path: "https://zylker.com/posts", body: { title: "My Title", body: "My Content" } }); console.log(res.data); ``` -------------------------------- ### Register NotifyAndWait Listener Source: https://www.zohocrm.dev/explore/widgets/v1.5/jssdk Registers a listener for the NotifyAndWait event, triggered synchronously by a Client Script flyout notify call. ```javascript ZOHO.embeddedApp.on("NotifyAndWait", function(data){ console.log("Client Script synchronous flyout notification", data); ZDK.Client.sendResponse(data.id, { choice: 'mail', value: 'example@zoho.com' }); }); ``` -------------------------------- ### ZOHO.CRM.UI.Popup.close() Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO_CRM_UI_Popup Closes the current widget popup. Returns a promise that resolves with a boolean value indicating success or failure. ```APIDOC ## ZOHO.CRM.UI.Popup.close() ### Description Closes the active widget popup. ### Returns - **Promise** - Resolves with true or false based on the operation result. ### Example ```javascript ZOHO.CRM.UI.Popup.close().then(function(data){ console.log(data) }) ``` ``` -------------------------------- ### Close Widget Popup and Reload View with ZOHO.CRM.UI.Popup.closeReload Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO_CRM_UI_Popup Closes the current widget popup and triggers a reload of the underlying view. Returns a promise that resolves with a boolean value. ```javascript ZOHO.CRM.UI.Popup.closeReload().then(function(data){ console.log(data) }) ``` -------------------------------- ### ZOHO.CRM.UI.Record.edit Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO_CRM_UI_Record Opens the EditPage for a specified record. ```APIDOC ## ZOHO.CRM.UI.Record.edit(data) ### Description Opens the EditPage of the specified Record. ### Parameters - **data** (object) - Required - Configuration Object - **data.Entity** (String) - Required - SysRefName of the module. - **data.RecordID** (String) - Required - RecordID to open ### Request Example ZOHO.CRM.UI.Record.edit({ Entity: "Leads", RecordID: "1000000036062" }).then(function(data){ console.log(data) }) ``` -------------------------------- ### ZOHO.CRM.UI.Record.edit Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO_CRM_UI_Record Opens the EditPage for a specific record ID within a module. Returns a promise resolved with true or false. ```javascript ZOHO.CRM.UI.Record.edit({ Entity: "Leads", RecordID: "1000000036062" }).then(function(data){ console.log(data) }) ``` -------------------------------- ### ZOHO.CRM.UI.Dialer.notify() Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO_CRM_UI_Dialer Triggers an audible notification for the user. ```APIDOC ## ZOHO.CRM.UI.Dialer.notify() ### Description Notifies the user with an audible sound. ### Returns - **Promise** - Resolved with true or false. ``` -------------------------------- ### Execute CRM Function with request payload (POST) Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Executes a CRM function via POST, passing a JSON payload. OAuth2 must be enabled for the function. ```javascript // 'my_function' is the api name of the function. // oauth2 should be enabled for 'my_function' in Zoho CRM functions setup page. const function_response = zrc.post('/crm/v7/functions/my_function/actions/execute?auth_type=oauth', { 'payload': 'json_body' }); // body can be received in Deluge function with 'crmAPIRequest.get('body')' // crmAPIRequest should be declared as Map type argument in the Deluge function. console.log(function_response.data.details.output); // Function output will be in details.output key ``` -------------------------------- ### patch(path, body, requestConfig) Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_methods Sends a PATCH request for partial updates to a specified Zoho CRM API endpoint or absolute URL. ```APIDOC ## PATCH [path] ### Description Sends a PATCH request for partial updates. ### Parameters - **path** (string) - Required - API endpoint for Zoho CRM APIs or absolute URL. - **body** (object) - Required - Partial data to update. - **requestConfig** (object) - Optional - Additional options like headers, params etc. ### Request Example await zrc.patch('/crm/v8/settings/fields/111112000000067259?module=Leads', { fields: [{ pick_list_values: [{ display_value: "North_East", actual_value: "IN_North_East" }] }] }); ``` -------------------------------- ### Register Notify Listener Source: https://www.zohocrm.dev/explore/widgets/v1.5/jssdk Registers a listener for the Notify event, triggered when a Client Script flyout notify call is executed. ```javascript ZOHO.embeddedApp.on("Notify", function(data){ console.log("Client Script flyout notification", data); }); ``` -------------------------------- ### DELETE /crm/v8/Deals/{id} Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Deletes a specific deal record. ```APIDOC ## DELETE /crm/v8/Deals/{id} ### Description Deletes a deal record by its ID. ### Method DELETE ### Endpoint /crm/v8/Deals/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the deal ``` -------------------------------- ### Close Widget Popup with ZOHO.CRM.UI.Popup.close Source: https://www.zohocrm.dev/explore/widgets/v1.5/ZOHO_CRM_UI_Popup Closes the current widget popup. Returns a promise that resolves with a boolean value indicating success or failure. ```javascript ZOHO.CRM.UI.Popup.close().then(function(data){ console.log(data) }) ``` -------------------------------- ### Handling ZRC Errors with try-catch Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_request_configuration_and_error_types Wrap zrc calls in a try-catch block to handle specific error types like ZrcValidationError, ApiError, and ConnectionError. ```javascript try{ const res = await zrc.request({ method: 'GET', path: 'https://api.myservice.com/users/999', connection: 'MyService_Conn' }); console.log(res.data); } catch (error){ if(error.name === 'ZrcValidationError') { console.error('Validation failed:', error.message); } else if(error.name === 'ApiError') { console.error('API issue:', error.message, ' Status:', error.status); } else if(error.name === 'ConnectionError') { console.error('Connection issue:', error.message); } else if(error.name === 'ZrcError') { console.error('Request setup issue:', error.message); } else { console.error('Unexpected error:', error); } } ``` -------------------------------- ### Delete a Deal Source: https://www.zohocrm.dev/explore/widgets/v1.5/zrc_code_samples Deletes a deal record by its ID. ```javascript const dealId = "4000000012345"; // replace with actual ID const deleteRes = await zrc.delete(`/crm/v8/Deals/${dealId}`); console.log(deleteRes.data); ```