Howdy, tech wizards! Welcome back to another exciting post in our Kaizen series.
This week, we will explore how to leverage the power of APIs to manage and interact with emails within the Zoho CRM platform.
Consider you are the Manager of a technological company called Zylker Technologies, which uses Zoho CRM. You want to email a client using your organization's email ID and manage the reply emails within your CRM account. The first step in bringing your organization's email to your CRM account is IMAP/POP3 configuration.
Zoho CRM supports email integration via Internet Messaging Access Protocol (IMAP) and Post Office Protocol 3 (POP3). These are email protocols that standardise the exchange of mails between the servers and clients.
IMAP
|
POP3
|
IMAP keeps emails on the server and allows you to access them from multiple devices.
|
POP3 downloads emails to a local device. You can either keep a copy of them on the server or remove them to manage the storage of your web server.
|
It synchronises email actions (read, delete, move) across all devices, providing a consistent email experience.
|
It does not synchronise actions across devices, making it challenging to manage emails on multiple devices.
|
IMAP is ideal for users who need to access their emails from different devices or prefer centralised email management.
|
POP3 is suitable for users who prefer offline email access and want to save storage space on the server.
|
Following steps will help you to integrate your email with Zoho CRM.
-
Navigate to
Setup > Channels > Email > Email Configuration
to choose your email service.
-
Under
choose the protocol to configure
select IMAP or POP integration based on your email service provider and business needs.
Once you configure the IMAP/POP3 mail, the
SalesInbox
tab will sync and display all your mails.
Now that we have everything ready, we will take a look at how to email your clients using APIs.
Request URL
: {api-domain}/crm/{version}/{module_api_name}/{record_id}/actions/send_mail
Request Method
: POST
Scope
: ZohoCRM.send_mail.{module_name}.CREATE (or) ZohoCRM.send_mail.all.CREATE
Supported Modules
: Leads, Contacts, Deals, Accounts, Sales Orders, Purchase Orders, Invoices, Quotes, Cases, and Custom.
Request Body
:
{
"data": [ { "from": { "user_name": "Patricia Boyle", }, "to": [ { "user_name": "Christopher Maclead", } ], "cc": [ { "user_name": "Jack Williams", } ], "org_email": true, "consent_email": true, "mail_format": "html", "subject": "Test Email", "content": "<h3><span style=\"background-color: rgb(254, 255, 102)\">New Product Launch is on Aug 15,2023!</span></h3><h3><span style=\"background-color: rgb(254, 255, 102)\">REGARDS,</span></h3><div><span style=\"background-color: rgb(254, 255, 102)\">AZ</span></div><div><span style=\"background-color: rgb(254, 255, 102)\">ADMIN</span></div>" } ] } |
You can also use other request JSON keys mentioned in
this
document to send an email. When you email a client, the email automatically gets added to the related lists of the record specified in the request url.
There are a few other conditions that you need to check while emailing a client using the Send Mail API.
(i) from Addresses
As you are sending the email from your CRM account, you should use only the IMAP/POP3 configured email IDs. To know the configured email IDs of your CRM account, make a GET API call for the
list of allowed "from" addresses
.
Request URL
: {api-domain}/crm/{version}/settings/emails/actions/from_addresses
Request Method
: GET
Scope
: ZohoCRM.settings.emails.READ
Response
:
{
"from_addresses": [ { "default": true, "user_name": "Patricia Boyle", "type": "primary", }, { "user_name": "Jack Williams", "id": "5545974000000434026", "type": "pop", }, { "user_name": "Patricia Boyle", "id": "5545974000001222005", "type": "org_email", } ] } |
- The API lists the email addresses configured in the IMAP/POP3 accounts (
imap
and
pop
), the email ID used to sign in the CRM account (
primary
) and the configured organization email addresses (
org_email
). You can use any of these email addresses to email the clients.
-
The
default:true
denotes the default
from
email address configured for UI usage. This will auto populate the
from
email address while emailing a client via UI. Anyhow, you have to specify the
from address
in the send mail API.
-
If the email with
type:org_email
in this API response is used as a
from
address of the send mail API, the
org_email
key in the same send mail request body has to be marked as
true
.
(ii) Modules that are Applicable for using Templates/Inventory Templates
Consider you want to send welcome emails to all of your new leads. You cannot manually draft a welcome email every time Zylker gets a new lead. Instead you can create a welcome email template and insert it to the draft.
To insert template/inventory templates while emailing a record, make a
Metadata API
call of the particular module and check for the key
inventory_template_supported
.
-
inventory_template_supported: true
states you can add inventory templates in the body of the mail.
-
inventory_template_supported: false
states you can add only the email templates and not the inventory templates in the body of the mail.
In our case, you want to send welcome emails to leads. So, let us check this key for the module,
Leads
.
Since
inventory_template_supported: false
for Leads, we can
add only email templates
to its records. Below is the request body of the send mail API with welcome template,
{
"data": [ { "from": { "user_name": "Patricia Boyle", }, "to": [ { "user_name": "Carissa Kidman", }, { "user_name": "Felix Hirpara", }, { "user_name": "Kayleigh Lace", } ], "cc": [ { "user_name": "Jack Williams", } ], "mail_format": "html", "subject": "Welcome to Zylker", "template": { "id": "5545974000000640001" } } ] } |
Though Zoho CRM supports email Integration, sometimes you may want to import emails from a different email service provider and add them to certain records. You can use this API for adding only particular emails to a record without completely synchronising or integrating the email service provider with Zoho CRM.
Request URL
: {api-domain}/crm/{version}/{module}/{record_id}/actions/associate_email
Request Method
: POST
Scope
: ZohoCRM.modules.emails.ALL (or) ZohoCRM.modules.{module}.ALL
Supported Modules
: Leads, Contacts, Quotes, Invoices, Sales_Orders, Purchase_Orders, Deals, Accounts and Custom.
Request Body
:
{
"Emails": [ { "from": { "user_name": "Patricia Boyle", }, "to": [ { "user_name": "Christopher Maclead", } ], "cc": [ { "user_name": "Jack Williams", } ], "subject": "Test Email", "content": "<h3><span style=\"background-color: rgb(254, 255, 102)\">New Product Launch is on Aug 15,2023!</span></h3><h3><span style=\"background-color: rgb(254, 255, 102)\">REGARDS,</span></h3><div><span style=\"background-color: rgb(254, 255, 102)\">AZ</span></div><div><span style=\"background-color: rgb(254, 255, 102)\">ADMIN</span></div>", "mail_format": "html", "date_time": "2023-07-27T22:24:12+05:30", "sent": true, "linked_record": { "id": "5545974000002858070", "name": "Mega Deal", "module": { "api_name": "Potentials", "id": "5545974000000002181" } }, "original_message_id": "000146" } ] } |
This sample input JSON is for linking an email to a record in Deals.
The
original_message_id
key is the unique ID provided by any email service provider after sending an email. To avoid adding an already existing email to a record, this unique ID has to be specified while adding an email to a record.
Now as a manager, you may want to associate the sales reps' emails with the corresponding records they have handled. To achieve this, add the record owner's ID to the owner key in the request body. Only users with admin profile can perform this action.
The API extends its horizon to associating emails with the inline images to a record. For this, you have to upload the image to Zoho File System using the
Upload files to ZFS API
. Ensure you specify the parameter
"type":"inline"
while uploading the inline images to the ZFS.
The ID provided in the response of this API has to be specified in the content key of associate email to a record API as follows:
"content": "<h3><span style=\"background-color: rgb(254, 255, 102)\">New Product Launch is on Aug 15,2023!</span></h3><h3><span style=\"background-color: rgb(254, 255, 102)\"><img class=\"ZCrmImage\" src=\"crm\/img_id:c5afdcdbe17cd7bcee305c1a23067169caf522cbf76ed9d1c9c06408b22888ee\"></span></h3><h3><span style=\"background-color: rgb(254, 255, 102)\">REGARDS,</span></h3><div><span style=\"background-color: rgb(254, 255, 102)\">AZ</span></div><div><span style=\"background-color: rgb(254, 255, 102)\">ADMIN</span></div>" |
We hope you found this post useful and engaging!
If you have any queries, feel free to drop them in the comments section below or reach out to us directly at
support@zohocrm.com
. We eagerly await your thoughts and feedback on this!
Keep an eye out for more valuable insights on our developer space!
Cheers!
Recent Topics
Changing Corporate Structure - How Best to Adapt Current and Future Zoho Instances
My current company is Company A LLC with a dba ("doing business as" - essentially an alias) Product Name B. Basically, Company A is the legal entity and Product Name B is what customers see, but it's all one business right now. We currently have a Zoho
how to add subform over sigma in the CRM
my new module don't have any subform available any way to add this from sigma or from the crm
{"errors":[{"id":"500","title":"Servlet execution threw an exception"}]}
Here's the call to move a file to trash. The resource_id is accurate and the file is present. header = Map(); header.put("Accept","application/vnd.api+json"); data = Map(); data_param1 = Map(); att_param1 = Map(); att_param1.put("status",51); data_param1.put("attributes",att_param1);
How to Install Zoho Workdrive Desktop Sync for Ubuntu?
Hi. I am newbie to Linux / Ubuntu. I downloaded a tar.gz file from Workdrive for installing the Workdrive Desktop Sync tool. Can someone give me step by step guide on how to install this on Ubuntu? I am using Ubuntu 19.04. Regards Senthil
Integración Books para cumplir la ley Crea y Crece y Ley Antifraude (VeriFactu)
Hola: En principio, en julio de 2025, entra en vigor la ley Crea y Crece y Ley Antifraude (VeriFactu). ¿Sabéis si Zoho va a cumplir con la ley para cumplir con la facturación electrónica conectada a Hacienda? Gracias
How to upload own video?
How can you upload your own video on your zoho website? I do not want to use another host, but i want to insert my own files. how can i do this?
Support new line in CRM Multiline text field display in Zoho Deluge
Hi brainstrust, We have a Zoho CRM field which is a Muti Line (Small) field. It has data in it that has a carriage return after each line: When I pull that data in via Deluge, it displays as: I'm hoping a way I can change it from: Freehand : ENABLED Chenille
A couple of minor enhancements to Workflows
Last updated on September 17, 2024: These enhancements were initially available for early access, and we've now enabled them for all users. We are elated to announce a couple of enhancements to custom functions in our Workflows! Say hello to: "Source"
Announcing new features in Trident for Windows (v.1.32.5.0)
Hello Community! Trident for Windows just got better! This update includes new features designed to improve and simplify email and calendar management—and it includes a feature you’ve been waiting for. Let’s dive into what’s new! Save emails in EML or
How to render either thumbnail_url or preview_url or preview_data_url
I get 401 Unauthorised when using these urls in the <img> tag src attribute. Guide me on how to use them!
Zoho CRM Calendar | Custom Buttons
I'm working with my sales team to make our scheduling process easier for our team. We primary rely on Zoho CRM calendar to organize our events for our sales team. I was wondering if there is a way to add custom button in the Calendar view on events/meeting
Option to Empty Entire Mailbox or Folder in Zoho Mail
Hello Zoho Mail Team, How are you? We would like to request an enhancement to Zoho Mail that would allow administrators and users to quickly clear out entire folders or mailboxes, including shared mailboxes. Current Limitation: At present, Zoho Mail only
Default Sorting on Related Lists
Is it possible to set the default sorting options on the related lists. For example on the Contact Details view I have related lists for activities, emails, products cases, notes etc... currently: Activities 'created date' newest first Emails - 'created
Directly Edit, Filter, and Sort Subforms on the Details Page
Hello everyone, As you know, subforms allow you to associate multiple line items with a single record, greatly enhancing your data organization. For example, a sales order subform neatly lists all products, their quantities, amounts, and other relevant
Create custom rollup summary fields in Zoho CRM
Hello everyone, In Zoho CRM, rollup summary fields have been essential tools for summarizing data across related records and enabling users to gain quick insights without having to jump across modules. Previously, only predefined summary functions were
Create static subforms in Zoho CRM: streamline data entry with pre-defined values
Last modified on (9 July, 2025): This feature was available in early access and is currently being rolled out to customers in phases. Currently available for users in the the AU, CA, and SA DCs. It will be enabled for the remaining DCs in the next couple
Create Lead Button in Zoho CRM Dashboard
Right now to create Leads in the CRM our team is going into the Lead module, selecting the "Create Lead" button, then building out the lead. Is there anyway to add the "Create Lead" button or some sort of short cut to the Zoho CRM Dashboard to cut out
Searching customer field
Hello, When entering a receipt, we select customer information. The customer information is synced with Zoho CRM. However, we can't find the customer information because it searches for words that begin with the entered value. It needs to search for words
Introducing Version-3 APIs - Explore New APIs & Enhancements
Happy to announce the release of Version 3 (V3) APIs with an easy to use interface, new APIs, and more examples to help you understand and access the APIs better. V3 APIs can be accessed through our new link, where you can explore our complete documentation,
Rotate an Image in Workdrive Image Editor
I don't know if I'm just missing something, but my team needs a way to rotate images in Workdrive and save them at that new orientation. For example one of our ground crew members will take photos of job sites vertically (9:16) on his phone and upload
Improved RingCentral Integration
We’d like to request an enhancement to the current RingCentral integration with Zoho. RingCentral now automatically generates call transcripts and AI-based call summaries (AI Notes) for each call, which are extremely helpful for support and sales teams.
Resume Harvester: New Enhancements for Faster Sourcing
We’re excited to share a set of enhancements to Resume Harvester that make sourcing faster and more flexible. These updates help you cut down on repetitive steps, manage auto searches more efficiently, and review candidate profiles with ease. Why we built
Using Zoho Flow to create sales orders from won deal in Zoho CRM
Hi there, We are using Zoho Flow to create sales orders automatically when a deal is won in Zoho CRM. However, the sales order requires "Product Details" to be passed in "jsonobject", and is resulting in this error: Zoho CRM says "Invalid input for invalid
WIDGET in related record list ZOHO CRM; how to get and put data to subform custom fields?
he need: Read and write two custom subform line-item fields on Quotes: Segment_wyceny (picklist/text) and W_pakiecie (number). Write works; read does not return these fields via SDK. Environment Zoho CRM Widget Zoho Embedded App SDK v1.2 Module: Quotes
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
Zoho CRM Tracking Google Enhanced Conversions
Can anyone @Zoho, consultants, or users help me understand if Zoho CRM is going to support Google's Enhanced Conversions? I included some information from Google below about it. We use Google Adwords for our pay per click advertising for lead generation,
zoho click, and nord VPN
Unfortunately, we've been having problems with Zoho Click, where essentially the line cuts off after about a minute's worth of conversation every time we are on VPN. Is there a way we can change this within the settings so it does not cut the line off
Recurring Supervisor Rule Reminders for Open/In-Progress Tickets
Hello Zoho Support Team, I would like to suggest a potential improvement regarding reminders for tickets and activities in Zoho Desk. Currently, it is possible to set reminders only once. In the Supervisor Rules section, it is possible to configure reminders
Connecting Portals from different Zoho apps
Hi, I note that Zoho has functionality for customer portals for several of the Zoho apps, like CRM, Projects, Desk etc. Is there any way to connect these portals? It would be great if we could give our customers access to a portal in which they could
Billing Management: #5 Usage Billing
After understanding the nuances of Advance Billing and Retainers, we will explore one of the booming billing models. Long ago, villagers drew water from a shared well in a small village. The well was a lifeline for the entire community. Ravi, the well
Function #10: Update item prices automatically based on the last transaction created
In businesses, item prices are not always fixed and can fluctuate due to various factors. If you find yourself manually adjusting the item rates every time they change, we have the ideal time-saving solution for you. In today's post, we bring you custom
Inventory Adjustments
Hi, How to transfer the material from one head to another ? Like materials purchased for manufacturing the laptop need to transfer from consumption inventory (Quantity of raw materials reduced) to destination inventory ( Quantity of Laptop increased)
Zoho CRM Community Digest - Aug 2025 | Part 1
Hey everyone! The first half of August went by, and we have a few announcements and some good noteworthy discussions. So, let's take a look at them! Product Updates: Introducing Connected Records feature: Zoho CRM’s Next-Gen UI now includes Connected
Problems with email templates (HTML - Outlook)
Hi there, I've been trying to create a newsletter from the template "Business 4". Everything looks great in the preview, but when I send it to my Outlook inbox, the layout doesn't seems to stick. More particularly: - The line-height is way more reduced, even though I used the line-height tool from the template - Columns but they are sometimes misaligned - Font size is not always the one I've selected. Could you help? Thanks!
Please make it easier to Pause syncing
right now it takes 3 clicks to get there. sounds silly, but can you make it just 2 clicks to get it done instead? thats how dropbox does it, 2 clicks to pause instead of 3.
How to create a Zoho CRM report with 2 child modules
Hi all, Is it possible to create a Zoho CRM report or chart with 2 child modules? After I add the first child module, the + button only adds another parent module. It won't let me add multiple child modules at once. We don't have Zoho Analytics and would
SalesIQとPageSenseの利用について
初めての投稿で場違いだったらすいません。 弊社ではSalesIQを運用しているのですが、追加でPageSenseの導入もしたいと現場からの声があります。 両サービスともクッキー同意バナーが必要なサービスなのですが 弊社では同意無しに情報はとりませんという方針なので 2つ入れると2つバナーを出す必要がでてきます・・・ 両サービスを運用されてる方があれば運用状況とか教えてほしいです。 PageSenseについては詳細まで機能を理解してないなかでの質問です。
How to integrate Zoho Forms with Zoho CRM on Standard Plan
Hello Zoho Support Team, I am using the Standard Zoho Forms plan (USD 30/user) and I would like to integrate Zoho Forms with Zoho CRM so that certain fields in my forms can be automatically prefilled using data from Deals in CRM. Specifically, I want
CRM : Function to add user name to text field
I have a lookup field in a module that is linked to the CRM users so we can assign a Project Lead to the customer. Sadly Zoho Marketing Automation doesn't sync Lookup fields so I need to extract information from the lookup to text fields: Lookup field
Export PDF File Name
Is it possible to change the default Zoho .pdf naming scheme for inventory items like quotations? Would like to use the the Subject as the default quote name. Is this possible?
Next Page