Kaizen #97 - Email APIs

Kaizen #97 - Email APIs

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.   

Email 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. 

Emailing a Client using API  

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",
        "email": "zylkertechnologies@zylker.com"
      },
      "to": [
        {
          "user_name": "Christopher Maclead",
          "email": "christopher@rangoni.com"
        }
      ],
      "cc": [
        {
          "user_name": "Jack Williams",
          "email": "jack.williams@zylker.com"
        }
      ],
      "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",
      "email": "patricia.boyle@zylker.com"
    },
    {
      "user_name": "Jack Williams",
      "id": "5545974000000434026",
      "type": "pop",
      "email": "jack.williams@zylker.com"
    },
    {
      "user_name": "Patricia Boyle",
      "id": "5545974000001222005",
      "type": "org_email",
      "email": "zylkertechnologies@zylker.com"
    }
  ]
}

  • 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",
                "email": "zylkertechnologies@zylker.com"
            },
            "to": [
                {
                    "user_name": "Carissa Kidman",
                    "email": "carissa@goodknits.com"
                },
                {
                    "user_name": "Felix Hirpara",
                    "email": "felixhirpara@chapman.com"
                },
                {
                    "user_name": "Kayleigh Lace",
                    "email": "kayleigh@printingdimensions.com"
                }
            ],
            "cc": [
                {
                    "user_name": "Jack Williams",
                    "email": "jack.williams@zylker.com"
                }
            ],
            "mail_format": "html",
            "subject": "Welcome to Zylker",
            "template": {
                "id": "5545974000000640001"
            }
        }
    ]
}

Associate an Email with a Record         

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",
        "email": "zylkertechnologies@zylker.com"
      },
      "to": [
        {
          "user_name": "Christopher Maclead",
          "email": "christopher@rangoni.com"
        }
      ],
      "cc": [
        {
          "user_name": "Jack Williams",
          "email": "jack.williams@zylker.com"
        }
      ],
      "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>"

Zoho CRM also offers API support to fetch all the emails of a record , list the users with whom a record's emails are shared , and download email attachments and inline images . They help us to streamline email-related processes, enhance communication, and maximize the efficiency of email management. 

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! 





    Access your files securely from anywhere

          Zoho Developer Community




                                    Zoho Desk Resources

                                    • Desk Community Learning Series


                                    • Digest


                                    • Functions


                                    • Meetups


                                    • Kbase


                                    • Resources


                                    • Glossary


                                    • Desk Marketplace


                                    • MVP Corner


                                    • Word of the Day



                                        Zoho Marketing Automation


                                                Manage your brands on social media



                                                      Zoho TeamInbox Resources

                                                        Zoho DataPrep Resources



                                                          Zoho CRM Plus Resources

                                                            Zoho Books Resources


                                                              Zoho Subscriptions Resources

                                                                Zoho Projects Resources


                                                                  Zoho Sprints Resources


                                                                    Qntrl Resources


                                                                      Zoho Creator Resources



                                                                          Zoho Campaigns Resources


                                                                            Zoho CRM Resources

                                                                            • CRM Community Learning Series

                                                                              CRM Community Learning Series


                                                                            • Kaizen

                                                                              Kaizen

                                                                            • Functions

                                                                              Functions

                                                                            • Meetups

                                                                              Meetups

                                                                            • Kbase

                                                                              Kbase

                                                                            • Resources

                                                                              Resources

                                                                            • Digest

                                                                              Digest

                                                                            • CRM Marketplace

                                                                              CRM Marketplace

                                                                            • MVP Corner

                                                                              MVP Corner





                                                                                Design. Discuss. Deliver.

                                                                                Create visually engaging stories with Zoho Show.

                                                                                Get Started Now


                                                                                  Zoho Show Resources


                                                                                    Zoho Writer Writer

                                                                                    Get Started. Write Away!

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

                                                                                      Zoho CRM コンテンツ






                                                                                        Nederlandse Hulpbronnen


                                                                                            ご検討中の方





                                                                                                  • Recent Topics

                                                                                                  • Questions about To Do

                                                                                                    1. I created a To Do note on Android and there is a line sorting option in the options drop down menu. But I didn’t find such an option in the PC client. I really need this option. 2. Why is there no scrollbar in To Do? When there are many lines, it is
                                                                                                  • Tip of the week 03 - Sending emails in batches

                                                                                                    Today's marketers not only want their email marketing to be efficient, but also smart. For an email campaign, you may think you have all the essential elements for lead conversion—a big mailing list, an attractive template design, and the most-engaging message content, but after hitting the ‘send’ button, you may not get the expected conversions. Wondering why? Here’s one of the major reasons. Many marketers miss out on sending the email campaign the right way. Did you know that you should not be
                                                                                                  • Sites Speed and Performance Grades

                                                                                                    I noticed that there are no recent inquiries or complaints about load speed or performance issues with Zoho Sites websites. However, I wanted to understand what Zoho has done to ensure that speed remains optimized, images are compressed and lazy loaded,
                                                                                                  • Feature Request - Configurable Payment Icons + Pay Now link in email.

                                                                                                    The PAY NOW buttons (icons) on invoices are really small. It would be great if we could make that a big, colored icon. Better would be to add a button to emails as well. 
                                                                                                  • Website Access Blocked (from one pc only) when attempting unattended access to any device

                                                                                                    Hello From one of my laptops I cannot access any remote device using unattended access. A Zoho Assist error page didplays 'Website Access Blocked. See attached.
                                                                                                  • AI read notes or explanation

                                                                                                    It would be such a great feature to have AI voices be able to read our Notes or Explanation If not having the AI speak the notes at run time, how about a feature where inside of Zoho Show you can have it look at all the notes of all the slides and have
                                                                                                  • Top Menu Disappeared from Blog Page

                                                                                                    Hi, Our top menu disappeared at Blog Posts page. However, it's still visible any other page on the website. I attached two screenshots, so it can be understood clearly. How can we bring back top menu? Thanks, K.
                                                                                                  • Managing Prepaid Hours for Consulting

                                                                                                    We are a consulting firm that bills clients a flat upfront annual fee plus an hourly rate and offer a discount for pre-paying a block of hours. Hours that surpass the pre-paid block are billed monthly at the normal rate. If there are any pre-paid hours remaining at the end of the project they are banked for future use. I'm not seeing a method of doing this in Projects/Books/CRM... thoughts?
                                                                                                  • ZOHO Widget SDK not loading in html

                                                                                                    I have this code below, I have imported the widgetsdk however I get the error shown in the image, I have tried many different ways of importing and initiating the function ZOHO but nothing is working. can someone explain what I'm doing wrong, if I am
                                                                                                  • Enhancements to Zoho Corp Help Center "Team Requests" View

                                                                                                    Dear Zoho Team, I hope this message finds you well. The ability to view both my tickets and my team’s tickets in the Zoho Corp Help Center is a fantastic feature, especially as the focal point for Zoho in our organization. However, we’ve encountered a
                                                                                                  • Allow Multiple Scheduled Appointments with Zoho Support

                                                                                                    Dear Zoho Team, I hope you're doing well. First, thank you for introducing the option to schedule support calls via the Zoho CRM booking link. This has been a fantastic enhancement, eliminating the need for back-and-forth coordination when scheduling
                                                                                                  • Projectwise budget ---

                                                                                                    Can we have a Project wise subject in addition to the Monthly, and quarterly ACCOUNT LEVEL budget?
                                                                                                  • WorkDrive API Documentation

                                                                                                    WorkDrive provides users and developers an extensive set of APIs to help integrate functionalities of Zoho WorkDrive with other Zoho applications and third-party tools. We have published the official WorkDrive API Documentation page for all external users.
                                                                                                  • Error 403: Forbidden When Updating Email Signature via API

                                                                                                    Hi Zoho Desk team, First, congratulations again on the excellent Zoho API. But, I’m encountering an issue while attempting to update an email signature via the API. Whenever I make a request to update the signature, the response returns an HTTP 403 Forbidden
                                                                                                  • Who can see draft replies on tickets?

                                                                                                    We have noticed that we are able to see draft replies made by other agents. Which settings can limit this visibility? It makes sense to me that admins and the agent who created the draft would be able to see the draft, but no one else. How can we make
                                                                                                  • Serious question: Are there actually "solo-preneurs"/small business owners who made Zoho-one work well for them?

                                                                                                    L.S. After already many years of continued struggle with Zoho-One, I am seriously wondering if there are actually solo-preneurs (one person small business owners - without a large, dedicated IT dept.) who got it (Zoho-One) to work well for their businesses.
                                                                                                  • Major iOS issues when accessing forms via the browser

                                                                                                    Hi, We have been using forms for some time, while the office staff are accessing the forms via the app on Android mobiles, we have a fleet of sub contractors that we would not like them having access to the main app as some of the forms are confidential
                                                                                                  • All notes disappeared

                                                                                                    I've been using the notebook app for over five years on my phone without being logged into an account. A few days ago I opened the app and all my notes had disappeared. Since then I tried restarting my phone, updating the app and logging into my account,
                                                                                                  • How to Iterate a Function in Zoho Desk Workflow with Delay Between Calls?

                                                                                                    Hi everyone, I’m working on a function in Zoho Desk that searches for a specific ticket record. If the ticket is not found, I need to retry the search multiple times with a delay between each attempt until the ticket is located or a maximum number of
                                                                                                  • How to Iterate a Function in Zoho Desk Workflow with Delay Between Calls?

                                                                                                    Hi everyone, I’m working on a function in Zoho Desk that searches for a specific ticket record. If the ticket is not found, I need to retry the search multiple times with a delay between each attempt until the ticket is located or a maximum number of
                                                                                                  • Work Orders / Bundle Requests

                                                                                                    Zoho Inventory needs a work order / bundle request system. This record would be analogous to a purchase order in the purchasing workflow or a sales order in the sales cycle. It would be non-journaling, but it would reserve the appropriate inventory of
                                                                                                  • Zoho Books API Limit Is RIDICULOUS!!!!!!!!!!!!!

                                                                                                    The 2,500 API call limit in Zoho Books is about as useful as AOL dialup.  Seriously Zoho, not only can I use up 2,500 API calls in no time with my own app but YOUR OWN STUPID IPAD APP blows through them super fast too, so if any one of my clients wants
                                                                                                  • QR codes in templates

                                                                                                    I'm excited about the new QR code generator. I have included a QR code that contains the record ID setting "${ID}" as input data. In the report detail it works perfectly but when printing it in a template the code is not shown.
                                                                                                  • Button Display Conditions

                                                                                                    Hi Guys, Is it at all possible to have extra button conditions? Context: We have data in our deals module which has a custom button which converts the deal into contacts + set up relationships between them. At the end of the conversion we set a field
                                                                                                  • Knowledge base: The nitty-gritty of SEO tags

                                                                                                    A well-optimized knowledge base with great SEO can benefit your company by allowing customers to find help articles and support resources using search engines. This enables customers to quickly and efficiently find the information they need without direct
                                                                                                  • Social Media Simplified with Zoho Social: Make the best out of the publishing calendar

                                                                                                    Are you a marketer who likes visualizing your plan of action before you start social media posting? Are you part of a team that works on social media on a rotational basis, so the most important task is to collaborate to avoid overlap and confusion? Or
                                                                                                  • Custom function daily limit and procedural programming

                                                                                                    Dearest Zoho Today, support confirmed that if I call a custom function from another custom function then I will use up two, with regards to my daily limit. A few times, we have blown our daily limit and that means that ordinary business processes don't run for the rest of the day. I have to mop these up the following day and there is no guarantee that I will get it right. Therefore, I can't afford to waste any. Procedural programming has been around for over 50 years now and it greatly simplifies
                                                                                                  • Unified customer portal login

                                                                                                    As I'm a Zoho One subscriber I can provide my customers with portal access to many of the Zoho apps. However, the customer must have a separate login for each app, which may be difficult for them to manage and frustrating as all they understand is that
                                                                                                  • Welcome Link Expired

                                                                                                    Hi The links sent to the users didn't get clicked on in time and now all the links have expired. Is there a way to send a new link without deleting them and re-adding them>
                                                                                                  • New enhancements: Changing portal users' email addresses and new customization options for templates

                                                                                                    Dear All, Portals have enabled organizations to extend access to various CRM modules to their customers, vendors, partners, and end users, per their business requirements. When a portal is created, an invitation email is sent to portal users with a link
                                                                                                  • Granular Time Frame Settings for Message Deletion and Editing in Zoho Cliq

                                                                                                    Dear Zoho Team, I hope you're doing well. Currently, the settings for message deletion and editing in Zoho Cliq are configured globally under: Admin Panel > Organisation > Configurations > Conversations Delete messages: Time frame to allow message deletion
                                                                                                  • New Built In QR/Barcode Generator Print Settings

                                                                                                    I'm trying out the new QR/Barcode generator field in Creator. I would think most people will want to print these, like I do. I am not seeing any way to control the height or width of the barcode for printing (inside the print/pdf template builder). The
                                                                                                  • Zoho One. Client Script

                                                                                                    Hi, I would like to know if the Client Script feature is available in Zoho One. If it's, how can I enable it?
                                                                                                  • Calendar View for Zoho Tickets

                                                                                                    Is there a way to view your tickets with due dates on a calendar view? I can not find a way to merge my Zoho Calendar and Tickets. This would be extremely helpful to my team.
                                                                                                  • Delete / Modify Default Career Site - Zoho Recruit

                                                                                                    Hello, It would be very useful if we could delete a default career site or change which of our career site is the default. Our Career site was created when there were issues with Zoho Recruit creating English CTA buttons on French Career sites. The only
                                                                                                  • Workflows for Timesheet

                                                                                                    Good day, Any way to have timesheet as triggers? I looked into Zoho Flow and into Zoho Project automation but no where can I have timesheet as a trigger. Basically, I would like to trigger something upon timesheet approval. Right now, the only way to
                                                                                                  • Is it possible to hide Developer Space for all user in Zoho Projects

                                                                                                    Hello! I am Zoho admin in a company and we want to use Zoho Project to manage projects, but after a few days of testing we are not able to "hide" the Developer Space from all kind of users except the admin. To sum up, I want to hide this for all users.
                                                                                                  • Introducing automation and utility conversations in WhatsApp marketing

                                                                                                    We’re excited to announce the addition of two new features to our WhatsApp integration: Automation and Utility conversations. These enhancements will allow you to streamline your marketing efforts and engage with your customers more effectively by automating
                                                                                                  • Extracting data from cells in zoho sheets for zoho books

                                                                                                    I am currently uploading my bank statment in excel format to zoho workdrive. I would like flow to extract certain data and send it to zoho books. Would scripting in zoho flow be able to help me with this? By this I mean should I attempt this in zoho flow
                                                                                                  • Within the Basic KPI component in Analytics, it is impossible to set "next" day range as a filter

                                                                                                    Hi there, I am currently setting up a deal dashboard for the Sales team. While it is possible to filter deal records to show records that were created LAST X days only, it looks like a NEXT X days Closing date filter is not available. Would it be possible
                                                                                                  • Next Page