Kaizen #32 - Handling Custom Modules with Zoho CRM #API

Kaizen #32 - Handling Custom Modules with Zoho CRM #API

Hello everyone!

Welcome back to another post in the Kaizen series.
This week we are going to dive deep in exploring the custom modules and the possible operations that you can perform in API with them.

Zoho CRM offers more than ten standard modules for different purposes like Sales, Marketing, and so on. However, in some scenarios, they do not satisfy the requirements. In such cases, Zoho CRM lets you create custom modules to meet your business needs..

In this post, we will discuss the following things related to a custom module:
1. Insert a record
2. a) Update multiple records
    b) Update a specific record
3. a) View all the records
    b) View a specific record
4. a) Delete multiple records
    b) Delete a specific record
5. Upload an attachment

We will be considering the 'Student' module as our custom module, and hence all the input samples and responses will be about the student module. The fields in our Students module are:

S.No.
Field Label
Data Type
1
Attendance
Percent
2
Created By
Single Line
3
Email
Email
4
Email Opt Out
Boolean
5
Marks
Number
6
Modified By
Single Line
7
Phone
Phone
8
Secondary Email
Email
9
Student Image
Student Image
10
Student Name
Single Line
11
Student Owner
Lookup

The following image gives an overview about the Web UI of our custom module.



1. Insert a record in the Custom Module

We begin with discussing how to insert a record in the custom module. The procedure is similar to that of inserting a record in any standard module. We need the api_name of our custom module. We use the modules API that lists all the modules available in our org to fetch the. We then need to search for the name of our custom module. The value of the key "api_name" gives the API name of your custom module. In our case, the custom_module_API_name is "students."

Request URL : {{api-domain}}/crm/v2/{custom_module_API_name}
Request Method POST 
Sample URL : {{api-domain}}/crm/v2/students
Sample Request Body : 
{
    "data": [
        {
            "Name": "Jack",
            "Phone": "9876543210",
            "Email": "jack.geller@zohocorp.com",
            "Attendance": 87,
            "Marks":90,
            "Owner":
            {
                "name": "Patricia Boyle",
                "id": "3719520000000191015",
                "email": "patricia.boyle@zohocorp.com"
            }
        }
    ]
}

Sample Response:
{
    "data": [
        {
            "code": "SUCCESS",
            "details": {
                "Modified_Time": "2020-04-30T12:35:34+05:30",
                "Modified_By": {
                    "name": "Patricia Boyle",
                    "id": "3719520000000191015"
                },
                "Created_Time": "2020-04-30T12:35:34+05:30",
                "id": "3719520000000711023",
                "Created_By": {
                    "name": "Patricia Boyle",
                    "id": "3719520000000191015"
                }
            },
            "message": "record added",
            "status": "success"
        }
    ]
}

2a. Update a specific record in the Custom Module

In this section, we will update a specific record in the Custom Module. The procedure is similar to Update a Specific Record API that we use for any Standard Module. We will be requiring record_id of the specific record that we are going to update.The ids of the records can be retrieved from Get Records API.

Request URL : {{api-domain}}/crm/v2/{custom_module_API_name}/{record_id}
Request Method PUT 

Sample URL: {{api-domain}}/crm/v2/students/3719520000000711016
Sample Request Body:
{
    "data": [
        {
            "Name": "Jackson",
            "Phone": "9876543212",
            "Email": "jack.geller@zohocorp.com",
            "Attendance": 89,
            "Marks": 90
        }
    ]
}
Sample Response:
{
    "data": [
        {
            "code": "SUCCESS",
            "details": {
                "Modified_Time": "2020-04-30T13:48:26+05:30",
                "Modified_By": {
                    "name": "Patricia Boyle",
                    "id": "3719520000000191015"
                },
                "Created_Time": "2020-04-30T12:29:45+05:30",
                "id": "3719520000000711016",
                "Created_By": {
                    "name": "Patricia Boyle",
                    "id": "3719520000000191015"
                }
            },
            "message": "record updated",
            "status": "success"
        }
    ]
}


2b. Update multiple records in Custom Module

In this section, we will update multiple records in a custom module. We use Update Records API to update multiple records in the custom module. We must specify the IDs of the records along with data of those records that we want to update in the input body.The records can be fetched using Get Records API.

Request URL : {{api-domain}}/crm/v2/{custom_module_API_name}
Request Method :  PUT 

Sample URL: {{api-domain}}/crm/v2/students
Sample Request Body:
{
    "data": [
        {
            "id": "3719520000000711016",
            "Attendance": 95
        },
        {
            "id": "3719520000000711023",
            "Attendance": 89
        }
    ]
}
Sample Response:
{
    "data": [
        {
            "code": "SUCCESS",
            "details": {
                "Modified_Time": "2020-04-30T13:44:44+05:30",
                "Modified_By": {
                    "name": "Patricia Boyle",
                    "id": "3719520000000191015"
                },
                "Created_Time": "2020-04-30T12:29:45+05:30",
                "id": "3719520000000711016",
                "Created_By": {
                    "name": "Patricia Boyle",
                    "id": "3719520000000191015"
                }
            },
            "message": "record updated",
            "status": "success"
        },
        {
            "code": "SUCCESS",
            "details": {
                "Modified_Time": "2020-04-30T13:44:44+05:30",
                "Modified_By": {
                    "name": "Patricia Boyle",
                    "id": "3719520000000191015"
                },
                "Created_Time": "2020-04-30T12:35:34+05:30",
                "id": "3719520000000711023",
                "Created_By": {
                    "name": "Patricia Boyle",
                    "id": "3719520000000191015"
                }
            },
            "message": "record updated",
            "status": "success"
        }
    ]
}


3a. View all the records in the Custom Module

In this section, we will retrieve all the records in a custom module. The procedure is similar to that of listing all the records in any standard module.

Request URL : {{api-domain}}/crm/v2/{custom_module_API_name}
Request Method GET 

Sample URL : {{api-domain}}/crm/v2/students
Sample Response:


3b. View a specific record from the Custom Module

In this section, we will retrieve the details of a specific record in the custom module.We will be requiring record_id of the specific record that we want to view.The ids of the records can be retrieved from Get Records API

Request URL: {{api-domain}}/crm/v2/{custom_module_API_name}/{record_id}
Request Method GET 

Sample URL: {{api-domain}}/crm/v2/students/3719520000000711023
Sample Response:


4a. Delete multiple records from the Custom Module

In this section, we will delete multiple records from the custom module. We must specify the ids of the records to be deleted. The ids of the records can be retrieved from Get Records API.

Request URL : {{api-domain}}/crm/v2/{custom_module_API_name}?ids={record_ids separated by commas}
Request Method DELETE 

Sample URL : {{api-domain}}/crm/v2/students?ids=3719520000000711016,3719520000000711004
Sample Response:
{
    "data": [
        {
            "code": "SUCCESS",
            "details": {
                "id": "3719520000000711016"
            },
            "message": "record deleted",
            "status": "success"
        },
        {
            "code": "SUCCESS",
            "details": {
                "id": "3719520000000711004"
            },
            "message": "record deleted",
            "status": "success"
        }
    ]
}


4b. Delete a specific record from the Custom Module

In this section, we will discuss deleting a specific record from the custom module.We must specify the record_id of the records to be deleted. The id of the record can be retrieved from Get Records API.

Request URL : {{api-domain}}/crm/v2/{custom_module_name}/{record_id}
Request Method DELETE 

Sample URL : {{api-domain}}/crm/v2/students/3719520000000711044
Sample Response:
{
    "data": [
        {
            "code": "SUCCESS",
            "details": {
                "id": "3719520000000711044"
            },
            "message": "record deleted",
            "status": "success"
        }
    ]
}


5. Uploading an attachment to the Custom Module

In this section, we will upload an attachment to the custom module. Specify the record_id to which the attachment needs to be added. The id of the record can be fetched from Get Records API.

Request URL : {{api-domain}}/crm/v2/{custom_module_name}/{record_id}/Attachments
Request Method POST 

Sample URL : {{api-domain}}/crm/v2/students/3719520000000722003/Attachments
Note : Add the file to be uploaded as a multi-part file.

Sample Response:





We hope you found this post useful. Keep a tab on this series for more exciting topics!

Reach out to us at support@zohocrm.com if you have any questions, or let us know in the comment section.

Cheers!


















    Access your files securely from anywhere

          Zoho Developer Community




                                    Zoho Desk Resources

                                    • Desk Community Learning Series


                                    • Digest


                                    • Functions


                                    • Meetups


                                    • Kbase


                                    • Resources


                                    • Glossary


                                    • Desk Marketplace


                                    • MVP Corner


                                    • Word of the Day



                                        Zoho Marketing Automation


                                                Manage your brands on social media



                                                      Zoho TeamInbox Resources

                                                        Zoho DataPrep Resources



                                                          Zoho CRM Plus Resources

                                                            Zoho Books Resources


                                                              Zoho Subscriptions Resources

                                                                Zoho Projects Resources


                                                                  Zoho Sprints Resources


                                                                    Qntrl Resources


                                                                      Zoho Creator Resources



                                                                          Zoho Campaigns 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

                                                                                                  • Custom service report or Zoho forms integration

                                                                                                    Hello, So far the experience with Zoho FSM and the integration with Books has been good, however there are limitations with service reports. As with my business, many organisations send technicians to different types of jobs that call for a different
                                                                                                  • Email tracking subdomain

                                                                                                    The Email Tracking configuration screen of the ZeptoMail asks for a subdomain. I have gone through the documentation but could not find more information about how that subdomain is used by ZeptoMail to track the emails. Can someone throw some light about
                                                                                                  • Chart View group X-axis values above a value

                                                                                                    I have a data set with X values ranging from 0 up to 300-400, the Y values are an AVG of the values for the given X. I am interested in the values at the low end of the scale, say 0-10 and want the X values 10 and greater to be grouped into a single category
                                                                                                  • How do I get the Text Account name instead of the Reference number?

                                                                                                    Good Morning everyone! I am very new to zoho analytics. I'm trying to create some pivot tables and when I add the Account or Division name it comes up as a reference number. From my research, I need to use a lookup. I'm having a really hard time understanding
                                                                                                  • Custom API - Need to create a string return value, not only MAP

                                                                                                    @Support: When creating a Custom API it only allows a return from a function of MAP type. The service I'm using requires a string return, how can this be achieved?
                                                                                                  • missing video-urgent

                                                                                                    hi..I have a problem regarding zoho meeting. I already record almost 2hrs for my interview session. After end my session, i'm stop the recording. Its happened when i didn't received any meeting recording at my email.But i received recording 7minutes after
                                                                                                  • Duplicate New Ticket Emails

                                                                                                    I am getting two Ticket emails when a ticket is created. The first one goes to me as the Admin helpdesk@ And because I am an Agent as well it also send to helpdesk@, support1@ and support2@ Is there any way to stop this?
                                                                                                  • Ticket Response Email Template

                                                                                                    Is there a way to have an email template automatically selected when I click on Reply for a ticket?
                                                                                                  • Unpublishing Job Post for LinkedIn

                                                                                                    Hi, We have experienced issue with the above. We did unpublish a job in Recruit but it still appear under Job section in our LinkedIn page. It did not remove from LinkedIn as it should be.  Please check and advise. Regards, Snyder 
                                                                                                  • Power of Automation :: Automatically start / pause / stop timer on task status update.

                                                                                                    Hello Everyone, A Custom function is a user-written set of code to achieve a specific requirement. Set the required conditions needed as when to trigger using the Workflow rules (be it Tasks / Project) and associate the custom function to it. Requirement:-
                                                                                                  • Editor limitations to define screen types

                                                                                                    Guys I have noticed that even in version 2.0 of the editor (which is this new one we use) we still have a lot to improve... When I compare to some more global solutions like Wix, Zyro, Go Daddy, Squarespace and Weebly feel that we have some limitations
                                                                                                  • Dúvidas do Zoho Creator

                                                                                                    Pessoal, Estou colocando um tópico para dúvidas do Zoho Creator. Um abraço, Leandro
                                                                                                  • Tropicalize Books

                                                                                                    Books is an incredibly powerful tool that works well in many countries. But I feel that it is a product that is not yet "tropicalized" for Brazil as we speak (this would be like adapting the local reality). We have many strong competitors who do more
                                                                                                  • Automatic Sitemap Generation

                                                                                                    Guys are all right? Doesn't make sense for me to have to generate a map site and upload it... because it's not automatically generated just as it is done in WIX? where the customer doesn’t have to worry about this.
                                                                                                  • SEO improvements with ZIA

                                                                                                    Are you okay? I would like to bring an idea that would be amazing to improve the product that is the possibility of being able to improve the SEO of the pages (this of each page or each article on the blog) through ZIA so that it could create page Summary
                                                                                                  • Automatically updating field(s) of lookup module

                                                                                                    I have a lookup field, which also pulls through the Status field from the linked record. When the lookup is first done, the Status is pulled through - this works perfectly. If that Status is later updated, the lookup field does not update as well. As
                                                                                                  • Initiating a SalesIQ Zobot from a custom button on Zoho Sites

                                                                                                    I have created a Zobot set to initiate on a custom action called "Fast_Answers". On Zoho Sites, I created a code snippet button and set it to on-click run the event called "Fast_Answers". I installed the SalesIQ integration code into the Zoho Sites Page
                                                                                                  • Zoho Desk -> Zoho Analytics : Where is the field for "Layout" ?

                                                                                                    I have many different layouts on my helpdesks and I want to be able to identify the stats for each one, however I can not file the field in the raw data from the Zoho Desk datasource. I thought it might be under "Tickets" but there is nothing. There is
                                                                                                  • Set resolution mandatory field

                                                                                                    Hi,  i have 2 questions:) : - i want to set the resolution field mandatory before close the ticket. Because for now, i can close the ticket without writing how i solve it - how can i setup zoho desk to receive ticket by email(e.g. clients sent email to support@mydomain.com) and it create a ticket in zoho desk
                                                                                                  • Impuesto automatico en cotizaciones

                                                                                                    Buen dia Mi pregunta es como se puede poner alguna operacion para que las cotizaciones me salgan automaticamente con impuestos ya que uno al cargarla al final tienen que añadir el porcentaje de impuesto Saludos
                                                                                                  • Zoho Assist "Agree and Download" Button "Greyed Out" ("Light Blued" Out)

                                                                                                    Anyone else having issue where support clients are unable to click "Agree and Download" to access the client so that we can provide remote support? This is for "on demand" support via accessing the support page and entering the support key and name. This
                                                                                                  • Project Billing with the Staff Hours Method in Zoho Projects

                                                                                                    The Staff Hours Billing Method in Zoho Projects allows you to bill your clients based on the actual time spent by each team member on a project, at the rate set for each user. This is useful for projects where different skill sets are needed and service
                                                                                                  • Creator Subform to CRM Subform

                                                                                                    Hello all, Has anyone successfully written data from a Creator Subform into CRM subform? I have been able to get the rows to populate but none of the data will come through. I'll add my code and the result in CRM. Creator Subform is 'Delivery_Receiving_Hours'.
                                                                                                  • custom fields not populating from deluge script into invoice

                                                                                                    Hello, I've created some Deluge script that is meant to take a few inputted invoice custom fields and calculate a few others. I can see when I execute the function that my inputted custom fields are being passed, yet im still ending up with all "null"
                                                                                                  • tax summation function - getting error

                                                                                                    Hello, I'm trying to create a function that adds all of individual tax rates from a few jurisdictions. I'm getting an error on line 9 - Value is empty and 'get' function cannot be applied. I've checked that I have data in each of the required fields,
                                                                                                  • Backstage / Zoho Books integration

                                                                                                    Hello. We have Zoho One and have slowly started using Backstage. Loving it. Problem is, we have ZERO accounting control over what is sold through this product. When will we be able to connect it to our existing Zoho Books tenant? Thank you very much!
                                                                                                  • Getting list of calendar events over api for zoho mail calendar

                                                                                                    Hi, I am using just Zoho mail without using Zoho CRM. I wanted to get all events booked in my zoho mail calendar through an api at regular intervals. I could find such API support for Zoho CRM calendar but not for zoho mail calendar. Can you kindly let
                                                                                                  • Allocate emails to user in a shared mailbox

                                                                                                    Hi, This might be obvious, but I cannot find the answer. I have 3 shared mailboxes so any team member can see the emails. Is there a way of allocating a specific email to a user so that it is their responsibility to deal with it? Thanks in advance.
                                                                                                  • Introducing Zoho Campaigns' own gateway for SMS campaigns

                                                                                                    We are excited to announce the launch of our SMS Gateway to send SMS through Zoho Campaigns. We have also made a few other changes in our current SMS Campaign model to improve your over all user experience. These updates are planned with an aim to expand
                                                                                                  • Update a lookup field in CRM from Creator using deluge

                                                                                                    I have a Creator form that creates a new account. When it creates the new account in the Accounts Module, I need it to also populate the Parent Account, which is a lookup field coming from the Module Parent Accounts, field Parent Account Name. I have
                                                                                                  • SMS Keyword Tracking in Zoho CRM From Zoho Campaigns

                                                                                                    Is there a way to track SMS leads in campaigns by associating them with specific keywords or codes? Additionally, can these leads be pushed to the CRM while retaining the keyword for tracking and reporting purposes?
                                                                                                  • Projects Multiselect API

                                                                                                    Having troubles setting a mutli select field via API. updateMap = map(); updateMap.put("UDF_MULTI1","picklist_id1,picklist_id2"); updateProjectRes = invokeurl [ url :"https://projects.zoho.com/restapi/portal/XXXX/projects/" + projectID + "/" type :POST
                                                                                                  • Bill quantity received / PO quantity

                                                                                                    PO's are raised & often the quantity received is greater than the PO quantity, so when we receive the bill & adjust the quantity on the bill we get.... Quantity recorded cannot be more than quantity ordered. This necessitates the adjustment of the PO
                                                                                                  • ZOHO BOOKS - RECEIVING MORE ITEMS THAN ORDERED

                                                                                                    Hello, When trying to enter a vendor's bill that contains items with bigger quantity than ordered in the PO (it happens quite often) - The system would not let us save the bill and show this error: "Quantity recorded cannot be more than quantity ordered." 
                                                                                                  • Adding Bluesky channel

                                                                                                    Hello, Is Bluesky (AT protocol) soon added on Social ? Bluesky is being developped and is now open to anyone (no more invitation) Thank you
                                                                                                  • Using Queries with dynamic parameters in Kiosk Studio

                                                                                                    Hi, I'm pretty new when it comes to developing within Zoho (I'm really a .NET developer), as it was just added to my responsibilities. For a new feature in the CRM, I'm trying to develop a Kiosk function to show a list of records (retrieved by the new
                                                                                                  • Unused items should not count into the available number of custom fields

                                                                                                    Hey, I realized that unused Items reduce the number of available custom fields. I can't see a case where that makes sense. Especially in our case where we have two different layouts in Deals with a lot of different fields, this causes problems.
                                                                                                  • Introducing Bot Filtering for Accurate Email Campaign Analytics

                                                                                                    Dear Marketers, We're excited to announce a new feature designed to enhance the accuracy of your email campaign analytics: bot filtering. This feature helps you filter out bot-generated opens and clicks, ensuring your campaign reports reflect genuine
                                                                                                  • Tip 37: Time Log Restriction in Zoho Projects

                                                                                                    Timesheet in Zoho Projects helps you big time in entering log hours for the tasks and issues and approving them. Now, with the new Time Log Restriction option, you can set daily and weekly log hour limits. You can restrict users from entering extra log hours than the permissible limit. The limits are restricted to 24 hours per day and 168 hours per week by default based on business hours. To customize, navigate to Task & Timesheet settings under Portal Configuration in Zoho Projects setup and enable
                                                                                                  • Chart showing schedule

                                                                                                    I want to be able to create a chart for everyday to check and which of which driver is available on the timeframe. Here's my table Name City Day Start Time End Time Driver1 Medicine Hat Monday 11:45 AM 4:45 PM Driver 2 Medicine Hat Tuesday 11:00 AM 7:00
                                                                                                  • Next Page