Kaizen #167 - Configuration and Initialization of Zoho CRM Python SDK (V7) for different client types

Kaizen #167 - Configuration and Initialization of Zoho CRM Python SDK (V7) for different client types


Hello everyone!

Welcome back to another week of Kaizen!

Zoho CRM Python SDK allows developers to integrate Python applications with Zoho CRM. In today's Kaizen post, we will explore how to initialize and configure the SDK for both self-clients and server-based clients.

A self-client is an application type used when you want to access your own CRM account data or set up app-to-app communication in the backend without user interaction. Self clients operate solely in the backend, making them suitable for automating tasks or data synchronization. In this scenario, the developer is both the resource owner and the client. Self-clients are ideal for scenarios such as syncing data between Zoho CRM and a legacy product management system. 

A server-based client is designed for applications that will be used by multiple Zoho CRM organizations, typically solving specific use cases for various users. These applications require both a dedicated backend server and a web UI. Server-based clients handle the authorization process and application logic, redirecting users to Zoho for authorization via a web browser. Users grant permission for the app to access their CRM data, and the application consumes this data on behalf of authorized users. This type of client is suitable for developing apps that provide specialized functionality to multiple Zoho CRM accounts, such as lead management systems or custom reporting tools.

For more information on the different client types, refer to our Kaizen post on Client Types in Zoho Developer Console.

Prerequisites

Before we go into detail about the SDK initialization process, ensure that you have the following prerequisites:
  • A Zoho CRM account and access to the Zoho API Console.
  • An IDE (e.g., PyCharm) installed in your system. In this post, we will be using PyCharm for the illustration purposes.
  • Python 3.x installed on your system or the client app.

Zoho CRM Python SDK Configuration

Configuration
Description
environment
mandatory
Specify the Zoho CRM domain and environment to make API calls to. Options include USDataCenter, EUDataCenter, INDataCenter, CNDataCenter, AUDataCenter, with environments like PRODUCTION(), DEVELOPER(), SANDBOX().

token
mandatory

Contains user authentication details. Used to create an OAuthToken instance with client credentials and tokens.
Supports different authentication flows:
Grant Token Flow: Uses a grant token to generate and persist access and refresh tokens.
Refresh Token Flow: Uses a refresh token to generate and persist access tokens.
Access Token Flow: Directly uses an access token for making API calls.
ID Flow : Uses the ID from the persisted token file/DB to make API calls. This method is applicable only after the SDK has been initialized at least once using a grant token, access token, or refresh token. It is not valid for the initial setup but can simplify subsequent operations by bypassing the need for other token details.
store
optional
Manages token persistence, which is the storage and retrieval of authentication tokens. Options include:
DBStore: Stores tokens in a database (e.g., MySQL).
FileStore: Stores tokens in a file.
Custom Store: Allows the implementation of custom storage logic.
If not specified, defaults to file storage in the current working directory.
logger
optional
Configures SDK logging. Allows setting log level (e.g., INFO, DEBUG, ERROR) and file path for SDK operation logs. Helps in troubleshooting and monitoring operations.
sdk_config
optional
Contains additional SDK-wide settings:
auto_refresh_fields: Enables/disables automatic refreshing of module fields. If set to true, the SDK will refresh modules and fields metadata every hour. If set to false, the metadata should be manually refreshed.
pick_list_validation: Enables/disables validation of picklist field values.
If set to true, the SDK checks user inputs against the defined picklist values. Invalid inputs, i.e., values not present in the picklist, will cause the SDK to throw an error.
 connect_timeout: Sets the maximum time to wait for connection establishment.
read_timeout: Sets the maximum time to wait for data retrieval.
resource_path
optional
Specify the directory path for storing module field information cache. 

Initializing Python SDK for Self-Clients

To initialize the SDK for a self-client:
1. Register the Client: In the Zoho API Console, create a self-client by navigating to the Self-Client section. This client is used for applications accessing only your own CRM data.

2. Generate Grant Token: After registering the client, manually generate a grant token from the API Console. Specify the necessary scopes, such as ZohoCRM.modules.ALL, based on the data you need to access.
Note: The grant token is valid for a short duration, typically 3–10 minutes, and is used to generate access and refresh tokens, using which one can access the CRM data.



3. Install the Python SDK
Install the Zoho CRM Python SDK in your Python project. The latest SDK version supports V7 of Zoho CRM APIs. 

4. Exchange Grant Token for Access and Refresh Tokens
Use the SDK in your code to exchange the grant token for access and refresh tokens. The SDK provides built-in methods to handle this process, and it will automatically manage token generation and persistence after initialization.



5. Access CRM Data:
With the tokens in place, your backend application can access and interact with Zoho CRM data programmatically, enabling tasks like data synchronization.
Here is a sample code for initializing Python SDK for a self-client.



Initializing Python SDK for Server-Based Clients

Before initializing the SDK for a server-based client, you must register your application in the Zoho API Console.


After registering the client, you can proceed with initializing the SDK for the server-based client. When using a server-based client with the Zoho CRM Python SDK, you have two options for handling authentication:
  • Generate the grant token manually and let the SDK manage the rest, including access token generation and refresh operations.
  • Write custom code to handle the entire OAuth process, from grant token generation to subsequent API calls. This approach is commonly used in server-based applications where automation and granular control over the flow are essential.
In the sample code, we demonstrate a complete implementation of initialization for a server-based client. The code includes generating the grant token for the required scopes, initializing the SDK with the tokens, and fetching records from Zoho CRM.

Understanding the Sample Code

The code defines an HTTP server that automates the OAuth process and interacts with Zoho CRM APIs. Here's a breakdown of its key functionalities:
Grant Token Generation:
When the user accesses http://127.0.0.1:8081/login, the server redirects them to Zoho's authorization page with the necessary OAuth scopes that is defined in the code.
After successful authorization, Zoho redirects the user to the redirect URL configured for the client in the API console, with a grant token and other parameters. The code parses this redirected URL to extract the grant token and the associated location.
SDK Initialization:
Using the extracted grant token, the SDK generates access and refresh tokens. These tokens are securely stored in a data store (FileStore in this case) using a unique identifier that corresponds to the user-org combination.


If no existing entry for the user-org combo is found in the token store, a new record is created with the user's grant, access, refresh tokens, and other details. When the same user logs in again, the SDK checks the token store for an existing entry. If an entry exists, the grant, access, and refresh tokens are updated while retaining the ID and user details. This ensures that no duplicate entries are created in the token store. Please note that in the background, the SDK retrieves the organization and user information to uniquely map the tokens. Without these scopes, the SDK cannot determine which user-org combination a token belongs to. Consequently, multiple entries might be created for the same user

API Call to Fetch Leads:
If the initialization is successful, the user will be redirected to http://127.0.0.1:8081/records. At this endpoint, the server uses the get_records method to fetch Leads data from the account. The response is processed, and the lead details (ID, Last Name, Company) are displayed as an HTML table.


We hope you found this post helpful and informative. By now, you should have a clear understanding of how to initialize and configure the Zoho CRM Python SDK for both self-clients and server-based clients.

Stay tuned for more insights, tutorials, and practical examples in our upcoming Kaizen posts. Your feedback matters to us. Let us know your thoughts or questions in the comments below. Until next time, happy coding!



Idea
Previous Kaizen: Kaizen #166 - Handling Query Variables in Zoho CRM | Kaizen Collection: Directory


    Access your files securely from anywhere


          All-in-one knowledge management and training platform for your employees and customers.







                                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 #198: Using Client Script for Custom Validation in Blueprint

                                                                  Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
                                                                • Kaizen #226: Using ZRC in Client Script

                                                                  Hello everyone! Welcome to another week of Kaizen. In today's post, lets see what is ZRC (Zoho Request Client) and how we can use ZRC methods in Client Script to get inputs from a Salesperson and update the Lead status with a single button click. In this
                                                                • Kaizen #222 - Client Script Support for Notes Related List

                                                                  Hello everyone! Welcome to another week of Kaizen. The final Kaizen post of the year 2025 is here! With the new Client Script support for the Notes Related List, you can validate, enrich, and manage notes across modules. In this post, we’ll explore how
                                                                • 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


                                                                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

                                                                                                                    • Cliq iOS can't see shared screen

                                                                                                                      Hello, I had this morning a video call with a colleague. She is using Cliq Desktop MacOS and wanted to share her screen with me. I'm on iPad. I noticed, while she shared her screen, I could only see her video, but not the shared screen... Does Cliq iOS is able to display shared screen, or is it somewhere else to be found ? Regards
                                                                                                                    • Alternate color rows

                                                                                                                      After I changed the background color to a dark gray and changed the alternate rows to a light gray. I have discovered that I can no longer change the text in the light gray rows to Bold.
                                                                                                                    • Collapsible Sections & Section Navigation Needed

                                                                                                                      The flexibility of Zoho CRM has expanded greatly in the last few years, to the point that a leads module is now permissible to contain up to 350 fields. We don't use that many, but we are using 168 fields which are broken apart into 18 different sections.
                                                                                                                    • Important update on our transition to the new video platform framework

                                                                                                                      As part of our ongoing platform changes, users in select regions, including the United States and other supported data center locations, have been migrated to our new video platform framework. Due to this migration, some participants may notice changes
                                                                                                                    • Zoho CRM Layout Rules: Nine New Actions, Profile-Based Execution, and Interactive Preview

                                                                                                                      Hello everyone, Availability: This feature is now available for customers in the JP and SA DCs. It is planned to be released for other customers in soon. We’re excited to announce powerful new enhancements to Layout Rules in Zoho CRM - a feature built
                                                                                                                    • Validation Rule Not Working for Mandatory Field in Zoho Blueprint

                                                                                                                      As a Zoho user, we created a validation rule for a specific field. However, we noticed that when we made the same field mandatory within a Blueprint, the validation rule we defined did not work. When we reported this issue to Zoho Support, they stated
                                                                                                                    • CRM x WorkDrive: We're rolling out the WorkDrive-powered file storage experience for existing users

                                                                                                                      Release plan: Gradual rollout to customers without file storage add-ons, in this order: 1. Standalone CRM 2. CRM Plus and Zoho One DCs: All | Editions: All Available now for: - Standalone CRM accounts in Free and Standard editions without file storage
                                                                                                                    • Ticket id issues

                                                                                                                      When I reply a ticket from desktop, it doesn't have ticket id in the subject and it's great. When I reply a ticket from Zoho desk mobile, Zoho adds ticket id in the subject and I don't want that. Please help in this matter.
                                                                                                                    • Zoho Desk Community Module Reporting

                                                                                                                      I can't seem to find any reporting for the community module in Zoho Desk. Am I missing something or are there just no reports available?
                                                                                                                    • Une collaboration simplifiée grâce à l’interopérabilité des calendriers

                                                                                                                      L’interopérabilité des calendriers permet aux équipes utilisant différentes plateformes, comme Zoho Calendar et Google Calendar, de consulter facilement les disponibilités de leurs collègues sans avoir à utiliser plusieurs outils. Dans les entreprises
                                                                                                                    • Zia AI capabilities now available in all paid editions

                                                                                                                      Hello everyone, We are expanding the availability of AI-powered features in Desk to the other paid subscriptions from 7th July 2026. Right now, the following AI-based features are available for Enterprise edition users: Intelligence: Sentiment analysis,
                                                                                                                    • Overview on users IMAP settings

                                                                                                                      We have about 30 users who all have the channels/email/email configuration/IMAP integration/O365 enabled and emails are synchronized. Here my problem: Passwords for the email accounts are expiring on individual bases and most of the users forget to update
                                                                                                                    • Format of data after export to spreadsheet

                                                                                                                      Dear Zoho, can you explain to me what is the point of a report exporting to XLSX if the format of the amounts that will be created there is in text format and not suitable for anything? Why do I need data in a sheet with which nothing more can be do
                                                                                                                    • How to add custom icons in Sites ?

                                                                                                                      I've been trying to upload some of my own icons (specific to my business) to my zoho Site draft, and can't find a way to do it. I guess the workaround could be to insert images instead of icons and upload my icons as images, but I was wondering if its possible to customize the icon library.
                                                                                                                    • Zoho Forms API

                                                                                                                      Is there any way to get all form entry list using API? Looking forward to hear from you
                                                                                                                    • #21 Five Minutes Every Monday That Replace an Hour of Digging

                                                                                                                      Welcome to the final stretch of our journey. In this series so far, you have configured Zoho Invoice, created and managed your transactions and built a workflow that shares invoices and collects payments almost on its own. You have been doing the work.
                                                                                                                    • Kaizen #251: From Campaign Leads to Sales Orders with Zoho CRM Mass Action APIs

                                                                                                                      Hello all!! In growing businesses, sales teams often deal with a large volume of records every day - leads from campaigns, qualified prospects ready for conversion, and approved quotes that must be converted into sales orders. Performing these actions
                                                                                                                    • Introducing the Employee Portal for internal job posting

                                                                                                                      Employee referrals and internal applications are one of the most trusted hiring channels. But in many organizations, employees only hear about openings through messages, word of mouth, or after the role has already been open for a while. When employees
                                                                                                                    • Inspection Table

                                                                                                                      Hello Latha, We created a job sheet that includes the new table (Inspection Table) which was introduced recently. However, agents are not able to see the rows in the inspection table. Could you please investigate this issue and get back to us? Please
                                                                                                                    • Zoho Mail is down?

                                                                                                                      We stopped getting new emails since 8:42am EST and mail.zoho.com shows an error.
                                                                                                                    • Forwarding without verification

                                                                                                                      Hi, I use Tripit to keep track of all my business travel. I've recently moved over to Zoho and wanted to set up a forwarding rule to send various travel confirmation emails automatically to plans@tripit.com Obviously this is an email address I don't control,
                                                                                                                    • Disappearing Mouse cursor in Zoho Mail / Windows 11 (Chrome + Edge)

                                                                                                                      I'm seeing an issue when writing mails with the light theme with the mouse cursor being white and the document area also being white - making it nearly impossible to see the mouse cursor. I see the problem on Windows 11 under Chrome and Edge. (Yet to
                                                                                                                    • Request to unblock user creation error (This user is not allowed to add in Zoho)

                                                                                                                      Hello Zoho Support Team, I am the Super Admin of my Zoho Mail organization. When I try to create a new business email user account, I encounter the following error message: "This user is not allowed to add in Zoho. Please contact support-as@zohocorp.com
                                                                                                                    • Zoho Mail account blocked after malware incident – request for review and unblock

                                                                                                                      Hi Zoho team and community, My Zoho Mail account has been blocked due to outgoing email activity that was detected as spam or unusual sending behavior. The root cause was a malware infection on my computer, which compromised several of my accounts, including
                                                                                                                    • creating an alias

                                                                                                                      your instructions for creating an alias are wrong. there is no add alias in my mail account. also i dont have a control panel link just a settings link how do i really make an alias
                                                                                                                    • IP Address blocked by many servers

                                                                                                                      hello team this is to inform you that the zoho ip address 103.117.158.51 has been marked spam and not trustworthy by outlook and many other company servers. kindly discontinue using this ip to maintain a healthy domain reputation for your clients. Regards
                                                                                                                    • Automatically set the default VAT percentage on a quote

                                                                                                                      Every time I create a quote, I have to manually adjust the VAT and activate the checkbox for 21%. But all of our quotes include 21% VAT. So now occasionally, it happens that the checkbox is forgotten, and the customer receives an incorrect quote (without
                                                                                                                    • What's New in Zoho Inventory | June 2026

                                                                                                                      Hello users, June 2026 introduces a range of exciting enhancements to Zoho Inventory. With the full rollout of the Zoho Inventory Windows application, the launch of Terminal Payments, and new tracking combinations in Advanced Inventory Tracking, you can
                                                                                                                    • Time Zone is incorrect

                                                                                                                      Time zone is not working properly...I've checked it twice.  I'm eastern U.S. time it's currently 12:22 pm EST.  CRM shows 3:22 pm EST.
                                                                                                                    • Send a converted Contact or Deal back to Leads using the Restore Lead extension for Zoho CRM

                                                                                                                      Hello everyone, This comes up more than people expect: a Lead gets converted into a Contact, and sometimes a Deal along with it, because at the time it looked ready. Then the situation changes the opportunity turns out to be much further off than expected,
                                                                                                                    • Zoho CRM mobile updates: Reports module, record tags, dynamic formula field, and more

                                                                                                                      Hello everyone, We've made a few updates to the Zoho CRM mobile app to enhance your mobile CRM experience and efficiency. Here's a quick look at what's new: Reports module (iOS ) Record tags (iOS) Dynamic formula field (Android) WhatsApp business deep
                                                                                                                    • Side scroll bar missing from "new editor"

                                                                                                                      The "new editor" simply lacks a side scroll bar. Unable to navigate long notes without using the keyboard. Bad upgrade... (using web version)
                                                                                                                    • Zoho Desk MCP doesn't expose all functions

                                                                                                                      Hello, I'd like to be able to draft (rather than send) ticket replies using Claude Cowork. However, the Zoho Desk MCP doesn't currently offer that, despite it being available in the API (https://desk.zoho.com/DeskAPIDocument#Threads#Threads_DraftEmailReply).
                                                                                                                    • Zoho Community Digest - July 2026 | Part 1

                                                                                                                      Hello everyone! Keeping up with everything across the Zoho ecosystem is a lot, so we're bringing back the Zoho Community Digest, now weekly. Each week we round up the need-to-know announcements from the Zoho Community Forums, four editions a month, so
                                                                                                                    • Canva Integration

                                                                                                                      Hello! As many marketing departments are streamlining their teams, many have begun utilizing Canva for all design mockups and approvals prior to its integration into Marketing automation software. While Zoho Social has this integration already accomplished,
                                                                                                                    • Feature Suggestion for Zoho Social: Auto-reply to Comments or Keywords

                                                                                                                      Hi Zoho team, I'd like to suggest a very specific feature that would be extremely helpful for customer engagement: the ability to automatically send a reply to comments on posts — either all comments or those containing specific keywords. For example,
                                                                                                                    • Bring more clarity to your blueprints with color-coded transitions

                                                                                                                      As your hiring processes evolve, blueprints naturally become more detailed. When multiple transitions connect different stages, it can take extra effort to identify approvals, rejections, reviews, and other actions at a glance. With this enhancement,
                                                                                                                    • Zoho CRM gets a new email compose and lot more

                                                                                                                      Dear Customers,  [UPDATE October 21, 2021: We have started opening these features to some of the customers already. And, it will be available to all the customers before November 2nd Week, 2021. Sorry for the delay caused]  [UPDATE February 21, 2022:
                                                                                                                    • Create modules using natural language prompts

                                                                                                                      Hello all, We’ve introduced a new enhancement to Zia that allows you to create custom and team modules in Zoho CRM using plain language prompts. Why this enhancement? Creating a custom module traditionally involves multiple steps—choosing field types,
                                                                                                                    • Automatic Matching from Bank Statements / Feeds

                                                                                                                      Is it possible to have transactions from a feed or bank statement automatically match when certain criteria are met? My use case, which is pretty broadly applicable, is e-commerce transactions for merchant services accounts (clearing accounts). In these
                                                                                                                    • Next Page