Hello everyone!
Welcome back to another week of Kaizen!
In today's post, we will discuss:
- What is Postman?
- Zoho CRM's API Collection in Postman
- Where is it available?
- Prerequisites for using the collection
- Forking the API Collection from Zoho CRM Developer Workspace
- Setting up the environment
- Registering a Client in Zoho API Console
- Generating tokens
- Making an API call
- A quick alternative to token generation using Guided Auth
1. What is Postman?
- A popular tool for API development and testing.
- User-friendly interface for making API requests, viewing responses, and managing different environments.
2. Zoho CRM's API Collection in Postman
- Boilerplate requests that you can use to test and explore the CRM APIs in various environments for multiple organizations.
- Makes the process of exploring APIs swift and effortless. It also significantly reduces the risk of errors.
3. Where is it available?
4. Prerequisites for using the Collection
- A Zoho CRM account to access the Zoho API Console.
- A registered client (self-client/web-based) to generate an org-specific grant token.
5. Forking the API Collection from Zoho CRM Developer Workspace
- Download and install Postman.
- In the Postman app, click the search icon at the top bar and type Zoho CRM Developers. The Zoho CRM Developers Workspace opens.
- Click Collections on the left bar.
- Click the more actions icon.
- Click Create a Fork.
- Give a name to your collection, and choose the workspace you want to save it to.
- You can select one or more environments to fork and pin to the collection.
- Click Fork Collection. Forking will happen in the background.
6. Setting up the environment
An environment is a group of variables that you can reuse in API requests and scripts.
- Click Environments on the left bar.
- Click Create Environment and give it a name.
- Under Variable, add the following variables:
client-id
client-secret
redirect-uri
authorization-code
access-token
refresh-token
accounts-url
api-domain
expiry-time
7. Registering a client in Zoho API Console
For your app to be able to use users' data in Zoho CRM across multiple orgs, you must register your app as a client in Zoho CRM.
In this post, we have used Self Client as the client type. For details about when to choose between a self-client and web-based client, refer to this Kaizen post.
- Go to Zoho API Console.
- Click Add Client.
- Choose Self Client from the list of client types and click Create Now.
- You will see the client ID and client secret.
8. Generating the tokens for a self client
Zoho CRM APIs follow the OAuth2.0 protocol for authentication.
This involves three tokens viz, grant token(authorization code), access token and refresh token.
- Grant token - Also called the authorization code, for a self client, this token is generated in the API console itself. This token informs Zoho's authorization server(Zoho Accounts) that your app wants to access Zoho CRM users' data(bound by scopes). This token is environment-specific, i.e, if you choose a production org while generating this token, you can access Zoho CRM data in the production environment only. This token is valid from 3 minutes to 10 minutes based on what you choose in the console.
- Access token - After you have authenticated your app and generated a grant token, you must exchange it with Zoho Accounts for an access token. This access token will also have the same scopes as your grant token. This token is valid for one hour. You must send this token in the header of every API call as a bearer token.
- Refresh token - Since the access token is valid only for an hour, you can use the refresh token to generate a new access token. Instead of creating a grant token again for the same scopes and generating another access token, you can directly use the refresh token and get a new access token with the same scope. Refresh token is valid until you revoke it.
Let's see how to generate these tokens.
Creating the grant token is a one-time process. After you generate access and refresh tokens using the grant token, you can simply use the refresh token to create new access token every hour.
9. Making an API call
Now that we have generated the tokens, let's make an API call using the access token.
- Navigate to V6 > REST APIs > Records > Get Records > Accounts.
- You can see the request with a few fields already in place.
- Modify the parameters as required.
- Under Auth, you can see the variable {{access-token}} that holds the access token we generated earlier.
- Hit Send to get a response.
10. A quick alternative to token generation using Guided Auth
Postman has introduced a new flow called the Guided Auth. This method allows new users to acquaint themselves with making API calls and testing them, without the hassIe of setting up a client.
In this flow, Zoho acts as the client and takes care of generating the grant and access tokens for a set of pre-defined scopes.
Follow these steps to use Guided Auth.
- Click Set Up New Authorization in Postman.
- Click Authorize. You will be redirected to Zoho's Login page.
- Sign in to your Zoho account.
- Choose the org for which you want to generate the token.
- Click Agree on the consent screen to grant permission to use your Zoho CRM data as per the scopes on the screen.
In the backend, Zoho generates the grant and access tokens, and you will see the access token in your Postman instance under Auth Credentials.
Note that flow does not give you a refresh token. This method is only to get a head-start with APIs without facing authorization errors. As always, the access token is valid for an hour, after which you have to follow the process of authorizing Zoho to generate another token.
As you can see, when you use our API collection, making API calls to Zoho CRM is a piece of cake as all the requests are already in place with examples.
We hope you found this post useful. We'll meet you next week with another interesting post!
Cheers!
Recent Topics
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
Multiple Vendor SKUs
One of the big concerns we have with ZOHO Inventory is lack of Vendor Skus like many other inventory software packages offer. Being able to have multiple vendor skus for the same product would be HUGE! It would populate the appropriate vendor Sku for
In Zoho Projects, is there a way to create a folders template under documents that can be used once a project is created?
We have a specific folder structure that we would like to use that is standard across every project. Instead of having to create this structure every time a project is created, is there a way to create a template for the folders that can be added?
Zoho Payroll in France
When will Zoho Payroll be available in France ?
Blueprint - 'On hold' state with an automatic transition?
I think I'm missing something here so I'm hoping if I explain what I'm trying to achieve someone might be able to give me a way around it. We sometimes get request far in advance but we don't want to action them unless it is 7 days from when they are
HOW TO VIEW INDIVIDUAL COST OF NEWLY PURCHASED GOODS AFTER ALLOCATING LANDED COSTS
Hello, I have been able to allocate landed costs to the purchase cost of the new products. however, what i need to see now is the actual cost price (original cost plus landed cost), of only my newly purchased products to enable me set a selling price
Client Script: $Client.refresh({ triggerOnLoad: true }); not triggering onLoad Client Scripts
Hey friends! I'm trying to store a temporary var, refresh the page for the user, then check that temporary var and do some actions. Theoretically using the title's code: $Client.refresh({ triggerOnLoad: true }); should refresh the page and trigger on
Calculate months and years between 2 dates on subform
I am looking for a function syntax for an employment candidate to calculate the number of years and months (decimal format. eg 1.2 years) they are employed. I have their start date entered, but if the end date is blank, that tells me they are still employed
Combine related grouping values into categories in CRM analytical components
Hello everyone, Analyzing large datasets can be challenging when dealing with numerous individual data points. It's often difficult to extract meaningful insights when information is scattered and ungrouped. To address this, we're adding options to create
How Kiosk Studio can simplify sales for bank employees | Kiosk Studio Session #4
Hello everyone, Banks can boost revenue by cross-selling to their current customers. For example, they can sell credit cards, personal loans, and more to existing account holders. To do this, bank employees move all around the CRM, open and close records,
Next Page