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

                                                                                                  • 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
                                                                                                  • Pulling Specific Products from Sales Orders in Books to a CRM Record

                                                                                                    We currently process orders directly through our website (woocommerce) as well as through manual sales orders in zoho books. When an order comes through the website, all of the individual products from that order show up in the CRM record of that customer.
                                                                                                  • Você já viu os cursos do Zoho Mind?

                                                                                                    Pessoal, Tem uma plataforma da Zoho chamada Zoho Mind, muito interessante os cursos e vídeos tutoriais que lá possui. Para a turma do Zoho Creator, tem uma dica de Buscar dados em Formulário, segue o link e clique em Zoho Creator. https://www.zohomind.com.br/#/videostutoriais
                                                                                                  • Como gerar gatilhos para pagamento de impostos no Zoho Books?

                                                                                                    Olá Pessoal, boa tarde! Gostaria de saber como vocês estão escriturando os impostos a pagar no Zoho Books. Vi que temos a opção de Bills, porém se eu escriturar nesta aba do Zoho Books para gerar lembretes de tempo de vencimento por exemplo vai refletir
                                                                                                  • Subform Time field to string.

                                                                                                    Good afternoon All. I have a Subform 'Delivery_Receiving_Hours' that captures Day (Dropdown), Time_Open (Time), and Time_Close (Time). I need to capture this data and send it to a multiline field in the CRM. The code, posted below, below will capture
                                                                                                  • workflow for bounced email gets triggered, but email is status = opened

                                                                                                    Hello, I have a workflow that sends me an email if outgoing email are bounced. Now I got some kind of this emails, but the corrosponding contacts have status = open at the email. Why this bounce-workflow is triggered? Reports > Email Reports > Bounce
                                                                                                  • Data export

                                                                                                    I need to export our customer's data and projects' data for our purpose but am unable to export full data i only get around 3160 projects and around 2k customer can you please help me to get full data, please
                                                                                                  • Adjusting Physical Inventory

                                                                                                    Not getting very far with support on this one, they say they are going to fix it but nothings happened since November. Please give this a thumbs up if you would like to see this feature or comment if you have some insight. Use Case: Inventory set to be
                                                                                                  • Zoho Marketing Plus : Un outil tout-en-un pour la création de pages, la collaboration et la gestion du calendrier marketing

                                                                                                    Nous sommes ravis de vous présenter trois nouvelles fonctionnalités puissantes de Zoho Marketing Plus s’enrichit désormais d’un page web (l'éditeur de pages), qui vous permet de créer des pages attrayantes et à fort taux de conversion pour vos campagnes
                                                                                                  • Grouping payments to match deposits

                                                                                                    Is there a way to group multiple invoice payments together so they match credit card batches and grouped deposits in the bank account? Basically, we are creating invoices for each of our transactions, and applying a payment to each of the invoices. Our payments are either credit cards or checks. We want to be able to group payments together so when our bank account reflects a credit card batch made up of many transactions, or the deposit we took to the bank that has multiple checks from different
                                                                                                  • Employees can not add some expenses suddenly

                                                                                                    Zoho expense was working fine and whenever there was a new merchant, it would automatically add and also the same auto added in Zoho Books (due to merchant-vendor sync) untill now. From today, it is having problems in searching the existing vendors and
                                                                                                  • Zoho email setup in office365

                                                                                                    When i am trying to setup zoho mail setup using my domain in office365 and it is not working and it says that we couldn't log on to the incoming (IMAP) server and please check your email address and password and try again. I was able to login using my
                                                                                                  • iOS 10: Caller ID new feature?

                                                                                                    Hi, in the update history of the iOS App (for iOS10) - v.3.2 - i found the point "caller identification" has this feature been deactivated again? i cannot find anything on my iphone on how to activate this feature. or does it just work from the beginning?
                                                                                                  • Recommendations to store meeting notes for easy access from Contacts, Accounts & Deals module records?

                                                                                                    I would like your advice on how to achieve this use case for my organization. It’s related to where/how best to store meeting notes from a conversation with Contact(s) working at an Account (Company) in the context of a Deal. The ideal solution (from
                                                                                                  • Bank reconciliation. Match Transaction -filter

                                                                                                    When matching an imported bank statement file we only get a match if it is an excact match on both amount and date. Then a suggestions comes up with a very broad selection regarding amount, and no default "between" dates. I can then go an manually adjust the filter, and have to put in from-to amounts and dates. How do I set a default from-to date?  As an example, I would like the date to be +- 3 days, Thanks.
                                                                                                  • Added new staff but does not appear in other organization list

                                                                                                    Hi, I added the new staff under Sales Manager in the contacts, but it does not appear in the other organization list where I need to create a contact, and I can't select the newly added Sales Manager
                                                                                                  • Integrating Calendly with Zoho Calendar in Zoho Mail

                                                                                                    I moved my office into a business incubator space that uses Calendly for meeting management and events. Calendly doesn't have a integration with Zoho Calendar and vice versa. I was directed to Zapier for integration but it doesn't have an integration
                                                                                                  • Map fields from module X to a lookup field in subform in module Y

                                                                                                    Hi there In the 1st screenshot attached, you can see a subform in myLeads module. You can see that there is a number already filled there - that is the 'Property ID' and it is a single line field. It is the 'Property ID' of an entry I have in another
                                                                                                  • 🎄 Jingle, Mingle, and Automate: Spread Christmas Cheer with Zoho Desk Auto-Replies! 🎄

                                                                                                    Hello Everyone! Welcome to this week's episode of the Community Learning Series. Christmas is in the air, and I’m sure we can all feel the jingle and the mingle of the season! The folks at Zylker Techfix are no exception—they’re busy with holiday plans
                                                                                                  • how to create a new line in string in Client Script?

                                                                                                    I want to show an alert using client script, I need to add a new line in String, I assume I can use \n\n inside a string, but unfortunately it doesnt work ZDK.Client.showAlert("First Line \n\nI expect this is in second line");
                                                                                                  • Surely it's time Inline editing from views

                                                                                                    I think the first request I found for in-line editing from grids was approximately 12 years ago - that post was locked because it was suggested Zoho sheetview solved the problem. However, it's now 2024, and in-line editing from grids is just a basic expectation.
                                                                                                  • Multi branding issue with sender addresses

                                                                                                    Hello, I'm currently working on a project involving two (seperate) brands. Named 'Windeck' and 'Prolance'. They've chosen CRM Plus and I'm currently working on CRM, SalesIQ, Social and Marketing Automation. So far, I'm able to make enough separations
                                                                                                  • How to Replace an Assessment in a Job Opening on Zoho Recruit

                                                                                                    Hi everyone, I’m currently using Zoho Recruit and would like to replace the assessment linked to a specific job opening. I want to remove the existing assessment and add a new one. What is the best way to do this without losing any important data or affecting
                                                                                                  • Is there API Doc for Zoho Survey?

                                                                                                    Hi everyone, Is there API doc for Zoho Survey? Currently evaluating a solution - use case to automate survey administration especially for internal use. But after a brief search, I couldn't find API doc for this. So I thought I should ask here. Than
                                                                                                  • Email Campaigns overview page is missing SENT DATE and # people sent to!

                                                                                                    I would like to see the date the email campaign was sent, so I can understand and track when each email campaign was sent. Right now, unless you go to a contact who received a campaign, you cannot see when the campaign was sent (!!!!!!). So, if my boss
                                                                                                  • SEO recommendation of H1 tag for website tittle

                                                                                                    The exact words are “ It is good practice to place the page title inside the H1tag.” Now I already have one H1 tag on my website but it is not website tittle. In the SEO recommendation that is clear too that I have h1 tag on my page. Now I don’t know
                                                                                                  • How to choose other payment methodes than creditcards

                                                                                                    We have connected stripe as a payment provider in zoho books, booking, commerce and checkout. In stripe we selected al major payment methodes for Belgium (mainly bancontact). However, at checkout customers seems to have only the possibility to pay with
                                                                                                  • Introducing Zia LLM: Zoho’s in-house Generative AI solution for CRM's AI capabilities

                                                                                                    Hello everyone, We're excited to announce the launch of our in-house Large Language Model (LLM) by Zia to power our AI offerings. What is LLM? LLM stands for Large Language Model, a powerful AI technology that processes and generates human-like text based
                                                                                                  • How to call a Creator function which is in a different Creator application?

                                                                                                    How to call a Creator function which is in a different Creator application?
                                                                                                  • Can the code in my "Successful form submission" WF be invoked from a function?

                                                                                                    Can "Successful form submission" be invoked from a function? Data gets into a form manually and programatically. My code in "successful form submission" is good and I want to reuse it/call it, from another function which does Insert Into How to achieve
                                                                                                  • Kaizen #169 - Serialization and Schema Management in Queries

                                                                                                    Hello everyone! Welcome back to another post in the Kaizen series! In Kaizen #166, we discussed handling Variables in Queries and associating the query in Kiosk. This week, we will discuss Serialization and Schema management in Queries. Business Scenario
                                                                                                  • Introducing Keyboard Shortcuts for Zoho CRM

                                                                                                    Dear Customers, We're happy to introduce keyboard shortcuts for Zoho CRM features! Until now, you might have been navigating to modules manually using the mouse, and at times, it could be tedious, especially when you had to search for specific modules
                                                                                                  • Feature Request: Notebooks within notebooks (Tree-like structure)

                                                                                                    Dear Zoho! I already migrated all my stuff from Google Keep, Im really fond of Zoho Notebook so far. One thing that could make the service much more powerful is multi-level notebooks (or tree like structure). For example, entering into Notebook named
                                                                                                  • Can't get authorization for Sandbox environment using the self client

                                                                                                    Hello, After creating a self client, and following the client-credentials method (as it's not optimat to manually generate a code for every 10 minutes), after inputting the sandbox org id for SOID parameter, im getting the error: "error": "no_org". For
                                                                                                  • Create landing pages from Zoho Marketing Plus

                                                                                                    Hey everyone, Over the last few months, we've introduced various features and enhancements to bolster the marketing capabilities of Zoho Marketing Plus and make it simpler for everyone. To that end, we're excited to announce that Zoho LandingPage is now
                                                                                                  • Custom service report or Zoho forms integration

                                                                                                    Hello, So far the experience with Zoho FSM and the integration with Books has been good, however there are limitations with service reports. As with my business, many organisations send technicians to different types of jobs that call for a different
                                                                                                  • Email tracking subdomain

                                                                                                    The Email Tracking configuration screen of the ZeptoMail asks for a subdomain. I have gone through the documentation but could not find more information about how that subdomain is used by ZeptoMail to track the emails. Can someone throw some light about
                                                                                                  • Chart View group X-axis values above a value

                                                                                                    I have a data set with X values ranging from 0 up to 300-400, the Y values are an AVG of the values for the given X. I am interested in the values at the low end of the scale, say 0-10 and want the X values 10 and greater to be grouped into a single category
                                                                                                  • Next Page