Kaizen #7 - URL Encoding while making API Calls

Kaizen #7 - URL Encoding while making API Calls

Welcome to another week of Kaizen. In this post, we will discuss things you need to handle in your code before you start making API calls to Zoho CRM. 

If you have an application that is integrated with Zoho CRM, it will contain the code for making API calls with different request methods—GET, POST, PUT, and DELETE. We will explain the things you need to handle for each of these methods, before you use it to make API calls to Zoho CRM.  

a. GET method

A GET method is used to retrieve data/resource from the resource server. For example, Search Records.

For the GET method, you need to pass data as a parameter in the request URL, and that parameter value has to be URL encoded. 

URL encoding is a way to encode or escape reserved, unprintable, or non-ASCII characters in URLs, and convert them into a secure format. 

Consider the following example, when you try to search a lead record with an email ID(p.daly+demo1@zylker.com).





When this request URL is decoded in our end, it gets converted into:

The '+' character got decoded as 'space'. Because, the '+' character is valid in URL as a substitute for space. Therefore, they have to be encoded or escaped. If not, the URL might be misinterpreted while decoding it. 

Unsafe characters that you need to encode are the following.
  • ASCII Control characters:
    ISO-8859-1 (ISO-Latin) character ranges 00-1F hex (0-31 decimal) and 7F (127 decimal.)
  • Non-ASCII characters:
    Entire “top half” of the ISO-Latin set 80-FF hex (128-255 decimal.)
  • Unsafe characters
    Blank/empty space and " < > # % { } | \ ^ ~ [ ] `
  • Reserved characters when NOT USED for their reserved or defined purposes such as / ? : = &.
Based on your language, you can use the following methods to encode the reserved characters. 

Language
Script
Java
URLEncoder.encode("(p.daly+demo1@zylker.com)", "UTF-8");
Ruby
URI::encode("(p.daly+demo1@zylker.com)")
PHP
Python
urllib.parse.quote("(p.daly+demo1@zylker.com)".encode("UTF-8"))

After encoding, the resultant search query will have the following email ID—p.daly%2Bdemo1%40zylker.com



The corresponding cURL code for this operation is:
curl -X GET \
-H 'Authorization: Bearer 1000.b481413bedf852e81bf591e7ca769de8.85f9671a36047d740216b656c8b3ad4d' 

You can see that the data in the URL is encoded. 

b. POST/PUT method

POST method is used to insert or upload any new resources to the server. For example, Insert Records.

PUT method is used to update an existing resource. This replaces the target resource with the updated content. For example, Update Records.

You can pass the input data for an API call in different ways, based on API requirements. 
  • Sending data as parameter in the request URL
  • Sending data wrapped in a request body
Let us look into each of these methods.  

a. Sending data as a parameter in the request URL 

As mentioned in the earlier section, when you send data as a parameter in  the request URL, it has to be encoded. 

b. Sending data wrapped in a request body

When data is sent in request body, it is secure. There are two different methods  in which you can send data wrapped in a request body, for an API call. Based on  the API requirement, you can choose the appropriate method. 

  • Sending data as raw JSON in the request body 
    In this type, the data is sent as JSON in the request body. Here, you need to add the header 'Content-Type' as 'application/json'. When data is sent as raw JSON, it need not be encoded
  • Sending data as a key-value pair 
    Here, the data is given as key-value pairs. For instance, while you upload an attachment, you need to send the file data, for which you need to make the request with 'Content-Type' as 'multipart/form-data'. Here the data is wrapped in request body. Therefore, it need not be encoded. If the data you have is already encoded, you must use the 'application/x-www-form-urlencoded' content-type and you cannot send file data with this content-type.



Consider the following example of inserting leads.



The corresponding cURL code is:
-H 'Authorization: Bearer 1000.b481413bedf852e81bf591e7ca769de8.85f9671a36047d740216b656c8b3ad4d' \
-H 'Content-Type: application/json' \
 -d '{
    "data": [
        {
            "Company": "Zylker",
            "Last_Name": "Daly",
            "First_Name": "Paul",
            "Email": "p.daly+demo1@zylker.com",
            "State": "Texas"
        },
        {
            "Company": "Villa Margarita",
            "Last_Name": "Bran",
            "First_Name": "Hofstadter",
            "Email": "bran.h+demo2@villa.com",
            "State": "Texas"
        }
    ],
    "trigger": [
        "approval",
        "workflow",
        "blueprint"
    ]
}'

You can see that the data is not encoded.

c. DELETE method

DELETE method is used to delete a resource at a particular location. For example, Delete Records.

URL encoding for the DELETE method is the same as the GET method. Consider the following example of deleting leads. 

Encoded request URL:



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




                                                • Desk Community Learning Series


                                                • Digest


                                                • Functions


                                                • Meetups


                                                • Kbase


                                                • Resources


                                                • Glossary


                                                • Desk Marketplace


                                                • MVP Corner


                                                • Word of the Day


                                                • Ask the Experts





                                                          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 Writer

                                                                                            Get Started. Write Away!

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

                                                                                              Zoho CRM コンテンツ



                                                                                                Nederlandse Hulpbronnen


                                                                                                    ご検討中の方




                                                                                                          • Recent Topics

                                                                                                          • How to export all line-item descriptions for a specific item in Zoho Books?

                                                                                                            I am trying to audit a specific item (“Item X”) that has been invoiced multiple times with different line-level descriptions. Here’s the situation: I am using Zoho Books (Professional). Each invoice may contain the same item but with different descriptions
                                                                                                          • Show/ hide specific field based on user

                                                                                                            Can someone please help me with a client script to achieve the following? I've already tried a couple of different scripts I've found on here (updating to match my details etc...) but none of them seem to work. No errors flagged in the codes, it just
                                                                                                          • Where are Kanban swimlanes

                                                                                                            So i've been playing with Zoho Projects Kanban view a bit more. It appears that task lists are being used as the Kanban columns, which makes sense from the implementation point of view but not the logical one.  Kanban columns are statuses that a task can flow through, while a task list has been a logical way to organize related tasks and relate them to a mislestone. In other words a task in a particular task can go through several stages while remaining in the same task list. After doing some research
                                                                                                          • Tip 19: How to display images in Pages using ZML snippets

                                                                                                            Hi folks, We're back with another tip on how to use Zoho Markup Language (ZML) to create interactive pages in Zoho Creator. You can use ZML snippets to add various kinds of components to your pages and structure them in meaningful ways. That's not all, though—using ZML you can ensure your application is automatically compatible with all kinds of devices without any inconsistencies. We often get questions from users about how to invoke Deluge scripts within ZML code. Here's a simple use case for adding
                                                                                                          • Can zoho swign format block text spacing automatically when prefilled from zoho crm?

                                                                                                            I'm sending zoho sign template from zoho crm, so that zoho crm pre-populates most fields. I have existing pdf documents that i am having signed. I have no ability to change the pdf documents, they are standardized government forms. The problem I am facing
                                                                                                          • Forced Logouts - Daily and More Frequent

                                                                                                            In the last month or so, I've been getting "power logged out" of all of my Zoho apps at least daily, sometimes more frequently. This happens in the same browser session on the same computer, and I need to re-login to each app separately after this happens.
                                                                                                          • Zoho Inventory / Finance Suite - Add feature to prevent duplicate values in Item Unit field

                                                                                                            I've noticed that a client has 2 values the same in the Unit field on edit/create Items. This surprised me as why would you have 2 units with the same name. Please consider adding a feature which prevents this as it seems to serve no purpose.
                                                                                                          • Reference lookup field values in Client script

                                                                                                            hello all, I'm using a "ZDK.Apps.CRM.Products.searchByCriteria" function call, which is returning the matching records correctly; however, one of the fields is a lookup field which I need the associated data. I believe there is a way to get this data
                                                                                                          • In App Auto Refresh/Update Features

                                                                                                            Hi,    I am trying to use Zoho Creator for Restaurant management. While using the android apps, I reliased the apps would not auto refresh if there is new entries i.e new kitchen order ticket (KOT) from other users.   The apps does received notification but would not auto refresh, users required to refresh the apps manually in order to see the new KOT in the apps.    I am wondering why this features is not implemented? Or is this feature being considered to be implemented in the future? With the
                                                                                                          • Every time an event is updated, all participants receive an update email. How can I deactivate this?

                                                                                                            Every time an event is updated in Zoho CRM (e.g. change description, link to Lead) every participant of this meeting gets an update email. Another customer noticed this problem years ago in the Japanese community: https://help.zoho.com/portal/ja/community/topic/any-time-an-event-is-updated-on-zohocrm-calendar-it-sends-multiple-invites-to-the-participants-how-do-i-stop-that-from-happening
                                                                                                          • Online Assessment or any aptitude test

                                                                                                            This video is really helpful! I have one question — if I share an assessment form link (through email or with the application form on my career page), how does Zoho Recruit evaluate it? Can a candidate use Google or external help while taking the test,
                                                                                                          • How can I filter a field integration?

                                                                                                            Hi,  I have a field integration from CRM "Products" in a form, and I have three product Categories in CRM. I only need to see Products of a category. Thanks for you answers.
                                                                                                          • Email task creator when task is updated/marked complete

                                                                                                            I am looking for a way to notify the creator of a task in zoho todo when - Task is updated Task is closed Comments entered 1 and 2 are critical, and I cannot find a zoho flow to do this. There is no way that as a manager I will know when someone has completed
                                                                                                          • How to move emails to Shared Mailbox?

                                                                                                            Hello, I created a Shred Mailbox instead of using a distribution group. But I cannot move previous emails to certain shared mailbox. Is it possible move some emails from inbox to shared mailbox?
                                                                                                          • How to implement new online payment gateway?

                                                                                                            Hello, Can you tell me how to proceed to implement my local payment gateway? DIBS has an open avaiable API that should be easy to implement into ZOHO BOOKS. http://tech.dibspayment.com/dibs_payment_window
                                                                                                          • Zoho CRM - Portal Users Edit Their Own Account Information

                                                                                                            Hi Community, I'm working on a client portal and it seems like the only I can make the Account record editable to the Contact, is if I add another lookup on the Account to the Contact record. Am I missing something as the account already has a list of
                                                                                                          • I’ve noticed that Zoho Sheet currently doesn’t have a feature similar to the QUERY formula in Google Sheets or Power Query in Microsoft Excel.

                                                                                                            These tools are extremely helpful for: Filtering and extracting data using simple SQL-like queries Combining or transforming data from multiple sheets or tables Creating dynamic reports without using complex formulas Having a Query-like function in Zoho
                                                                                                          • Connecting Zoho Mail with Apollo.io

                                                                                                            Hi, I am trying to connect my Zoho Mail account with my Apollo.io account to start sending cold email for prospecting purposes. I have activated the IMAP setting but I am still unable to connect to the Apollo account. I am using my email credentials but
                                                                                                          • Where does this report come from in the Zoho One ecosystems?

                                                                                                            Is this directly from MA, Analytics or ??? ???
                                                                                                          • Contact's title in "Contact Role Mapping"

                                                                                                            When I'm creating a deal, I'd like to see the contacts title in the listing. Right now, I only see this: How can I get the contact's title in there?
                                                                                                          • Zoho CRM - Client Portal - Hide Notes Related List

                                                                                                            Hi Community, I'm building a customer portal and I can't find a way to hide the notes related list. I don't want the client to see the notes I have about them. Is there a way to do this as it is no bin/trash icon when I hover over.
                                                                                                          • "Pivot Table" Conditional Formatting

                                                                                                            Team, I there a way to use conditional formatting a "Pivot Table"  report? Thanks, Arron Blue Pumpkin Hosting | Solutions Made Simple
                                                                                                          • How many clients can be added to Zoho Practice?

                                                                                                            How many clients can be added to Zoho Practice without having their zoho app?
                                                                                                          • Stage History

                                                                                                            when viewing a ticket , and you look at stage history tab (kanban view) and look at the stage duration column in days, it shows the current stage of the ticket as " current stage ". Should it not rather show the amount of days it has been in that current
                                                                                                          • Send Automated WhatsApp Messages and Leverage the Improved WhatsApp Templates

                                                                                                            Greetings, I hope all of you are doing well. We're excited to announce a major upgrade to Bigin's WhatsApp integration that brings more flexibility, interactivity, and automation to your customer messaging. WhatsApp message automation You can now use
                                                                                                          • Automating Ticket Responses Using Zoho Desk's AI Features

                                                                                                            We’re looking to set up an automation within Zoho Desk that can analyze incoming emails or tickets and automatically respond with relevant knowledge base articles based on the content of the request. Could you please guide us on how to configure this
                                                                                                          • Optimising CRM-Projects workflows to manage requests, using Forms as an intermediary

                                                                                                            Is it possible to create a workflow between three apps with traceability between them all? We send information from Zoho CRM Deals over to Zoho Projects for project management and execution. We have used a lookup of sorts to create tasks in the past,
                                                                                                          • Service locations are tied to contacts?

                                                                                                            Trying the system out. And what I discovered is that it seems that the whole logic of the app is, I'd say, backwards. There is a Customer - a company. The company has contact persons and service locations can be associated with different contact persons.
                                                                                                          • Enhancements to Zoho Maps integration tasks

                                                                                                            Hello everyone, We're excited to announce enhancements to the Zoho Maps integration tasks in Deluge, which will boost its performance. This post will walk you through the upcoming changes, explain why we're making them, and detail the steps you need to
                                                                                                          • Bug in Total Hour Calculation in Regularization for past dates

                                                                                                            There is a bug in Zoho People Regularization For example today is the date is 10 if I choose a previous Date like 9 and add the Check in and Check out time The total hours aren't calculated properly, in the example the check in time is 10:40 AM check
                                                                                                          • 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
                                                                                                          • UPS Label size when generated via Zoho

                                                                                                            We've integrated UPS with Zoho inventory. When creating and downloading the shipping labels they are created in a larger paper size. I'd like them to be generated to print on a 4x6 printer. Zoho have told me I need to do this within our UPS portal. UPS
                                                                                                          • Narrative 12: Sandbox - Testing without the risk

                                                                                                            Behind the scenes of a successful ticketing system: BTS Series Narrative 12: Sandbox - Testing without the risk What is a sandbox environment? A sandbox environment is a virtual playground that allows you to test freely and experiment with various elements
                                                                                                          • Dynamically catching new file creations

                                                                                                            I have a team folder with many subfolders, and in those folders we add new documents all the time. I'd like to have a workflow or script to notify me (and then take other actions) when a file is added anywhere in that structure that ends in "summary.txt".
                                                                                                          • Announcing new features in Trident for Mac (1.27.0)

                                                                                                            Hello everyone! Trident for macOS (v1.27.0) is here with new features and enhancements to improve scheduling and managing your calendar events. Let's take a quick look at them. Stay aligned across time zones. Both the scheduled and original time zones
                                                                                                          • Branding of native system emails

                                                                                                            Make system emails adjustable in terms of branding. We want our system to be completely white label, because it is not a CRM anymore, it's way more than that. We are following the strategy of "CRM for everyone" to use the CRM in all departments, not only
                                                                                                          • Slow uploads of large files

                                                                                                            I'm wanting to use Workdrive for transferring large images and video (we're talking things from 100MB-5GB). I'm running solo on a 500MBit/sec fiber connection. I'm getting upload speeds to Workdrive of no more than about 1-3Mbytes/sec when going through
                                                                                                          • Notes of Tasks in Zoho CRM

                                                                                                            Hello, Is there a way to filter the Notes that appear on a Task to only show the notes related to that specific Task and not display all the Notes of the objects related to that Task (Accounts, Contacts, Deal, etc). In essence, our team struggles to understand
                                                                                                          • Migrate Your Notes from OneNote to Zoho Notebook Today

                                                                                                            Greetings Notebook Users, We’re excited to introduce a powerful new feature that lets you migrate your notes from Microsoft OneNote to Zoho Notebook—making your transition faster and more seamless than ever. ✨ What’s New One-click migration: Easily import
                                                                                                          • need to upload from airtable to google drive

                                                                                                            I have a zapier zap that automates between airtable and google drive. When a customer uploads a new file into airtable via a client portal interface, zapier uploads that file into a folder linked to that customer's project record. I need to replicate
                                                                                                          • Next Page