Kaizen 216 - Actions APIs : Email Notifications

Kaizen 216 - Actions APIs : Email Notifications


Welcome to another week of Kaizen!
For the last three weeks, we have been discussing Zylker's workflows. We successfully updated a dormant workflow, built a new one from the ground up and more. But our work is not finished—these automated processes are operating in a vacuum.
What happens when a high-value deal is finally flagged, or a new social media post is published? How does the team know to take the next crucial step? How does the system connect with your team? Through Automatic Actions-the vital link between automation and people.   
The actions include:
  1. sending email notifications
  2. assigning tasks to users
  3. updating fields
  4. communicating with third-party applications by sending instant web notifications, etc.
In this post we will focus on Email Notifications.

After bringing structure and visibility to workflows using the custom admin dashboard, the system administrators at Zylker seek to include Workflow Actions so that details of the actions associated with each workflow can be managed from the dashboard itself. Including Email Notification details to Zylker's dashboard ensure the right people receive clear, actionable email alerts at the perfect moment.
This update to the dashboard will allow system admins to:
  1. audit the existing email notifications,
  2. create new email notifications,
  3. update existing email notifications, and
  4. clean up inactive and unwanted email notifications.

STEP 1: Discover and audit existing email notifications

To get details of email notifications in the system the admins use GET email notifications API. This gives us the required information about email notifications in the system. 

Request URL: 

GET {api-domain}/crm/v8/settings/automation/email_notifications

Response JSON: 

{
    "email_notifications": [
        {
            "template": {
                "name": "VP Alert - High Value Deal",
                "id": "6660682000001292005"
            },
            "reply_to_address": {
                "resource": {
                    "id": "5843104000000424686"
                },
                "type": "user"
            },
            "created_time": "2025-02-26T14:35:51+05:30",
            "lock_status": {
                "locked": false
            },
            "editable": true,
            "module": {
                "api_name": "Deals",
                "id": "6660682000000002181"
            },
            "related_module": null,
            "deletable": true,
            "recipient_count": "3",
            "source": "crm",
            "created_by": {
                "name": "Alex Rivera",
                "id": "6660682000000501002"
            },
            "feature_type": "workflow",
            "modified_time": "2025-07-06T16:15:58+05:30",
            "associated": true,
            "name": "VP Alert - High Value Deal",
            "modified_by": {
                "name": "Alex Rivera",
                "id": "6660682000000501002"
            },
            "id": "6660682000000000353",
            "from_address": {
                "resource": {
                    "id": "5843104000000424686"
                },
                "type": "user"
            }
        },
   //more records omitted for brevity
    ],
    "info": {
        "per_page": 200,
        "count": 2,
        "page": 1,
        "more_records": false
    }
}


STEP 2: Create new email notifications


The admin seeks to create a new email notification when a deal is lost. For creating the email notification first the admin should create an email template in Zoho CRM. 
Lost Deal Email Template

For creating an email notification, admin uses Create Email Notification API.


Request URL
: 

POST {api-domain}/crm/v8/settings/automation/email_notifications

Input JSON: 

 {
  "email_notifications": [
    {
      "template": {
        "name": "Lost Deal",
        "id": "5843104000006629014"
      },
      "module": {
        "api_name": "Deals",
        "id": "5843104000000002181"
      },
      "related_module": null,
      "feature_type": "workflow",
      "bulk_email": false,
      "recipients": {
        "to": [
          {
            "details": {
              "api_name": "${!Deals.Owner}",
              "id": "5843104000000002555"
            },
            "type": "merge_field"
          },
          {
            "details": {
              "api_name": "${!Deals.Owner.Reporting_To}",
              "id": "5843104000000256015"
            },
            "type": "merge_field"
          },
          {
            "resource": {
              "name": "Patricia Boyle",
              "id": "5843104000000424672"
            },
            "type": "user"
          }
        ]
      },
      "name": "LostDealNotification"
    }
  ]
}

Response:

{
    "email_notifications": [
        {
            "code": "SUCCESS",
            "details": {
                "id": "5843104000006646001"
            },
            "message": "alert created successfully",
            "status": "success"
        }
    ]
}

Key Fields:

1. Basic Fields
  1. name: A unique identifier for your notification (e.g., "LostDealNotification")
  2. feature_type: Set to "workflow" for automation-triggered notifications from workflow. 
  3. template: The ID and name of the email template you created earlier
  4. module: The ID and API_name of the module this  email notification applies to.
  5. bulk_email: bulk_email field indicates whether the email notification will be sent a single mass email with all recipients displayed. When this key is set as true, you can add recipients in CC and BCC
2. Recipients 
The recipients object determines who receives the notification. The possible recipients to an email notification are indicated by the to, cc and bcc keys. These  type field inside these keys indicate the type of recipient, with possible values including merge_field, group, role, role_and_subordinate, territory, territory_and_subterritory, emails, user (applicable for team modules), and profile (applicable for team modules).
You can use three main strategies to add recipients:

  1. A. Dynamic Fields (Merge Fields) 
           Use "type": "merge_field" to dynamically pull email addresses from the record:

{

  "type": "merge_field",

  "details": {

    "api_name": "${!Deals.Owner}" // Sends to the deal owner

  }

}
  1. B. Specific Users or Groups or Roles or Territories

          Use these options to send notifications to specific people

{

  "type": "user",

  "resource": {

    "id": "5843104000000424672"  // Patricia Boyle's user ID

  }

} 

  1. C. Direct Email Addresses

          Use "type": "emails" for fixed email addresses:

{

  "type": "emails",

  "details": {

    "emails": ["customer.success@zylker.com"]

  }

}

STEP 3: Updating an email notifications  

Zylker noticed a troubling pattern in their sales analytics. They were experiencing a much higher deal loss rate compared to the same period last year. The management brought in Mark Stevens, a Sales Strategist who specializes in analyzing lost deals. His first request was simple: "I need to see every lost deal as it happens to spot patterns in real-time."

Rather than creating new work flow rules or actions, the admin simply updates the existing email notification for lost deals to include Mark.

Request URL to update the lost deal email notification: 

POST {api-domain}/crm/v8/settings/automation/email_notifications/5843104000006646001

Input JSON: 

{
    "email_notifications": [
        {
            "recipients": {
                "to": [
                    {
                        "details": {
                            "api_name": "${!Deals.Owner}",
                            "id": "5843104000000002555"
                        },
                        "type": "merge_field"
                    },
                    {
                        "details": {
                            "api_name": "${!Deals.Owner.Reporting_To}",
                            "id": "5843104000000256015"
                        },
                        "type": "merge_field"
                    },
                    {
                        "resource": {
                            "name": "Patricia Boyle",
                            "id": "5843104000000424672"
                        },
                        "type": "user"
                    },
                   {
                        "details": {
                            "email": ["mark.stevens@zylker.com"]
                        },
                        "type": "emails"
                    }
                ]
            }
        }
    ]
}

Response:

{
    "email_notifications": [
        {
            "code": "SUCCESS",
            "details": {
                "id": "5843104000006646001"
            },
            "message": "alert updated successfully",
            "status": "success"
        }
    ]
}

After analyzing two weeks of lost deal notifications, Mark identified a pattern in the lost deals: over 80 percent of the recent losses were concentrated in the one industry - healthcare. He found that healthcare prospects consistently raised concerns about HIPAA compliance and data security protocols and that Zylker's sales team were not addressing them effectively. He made suggestions to train the sales team so that they can confidently address these specific requests.

STEP 4: Deleting email notifications  

Any unwanted or redundant email notification can be deleted using Delete Email Notifications API.

Request URL to delete an email notification: 

DELETE {api-domain}/crm/v8/settings/automation/email_notifications/5843104000006645001

Request URL to delete multiple email notifications: 

DELETE {api-domain}/crm/v8/settings/automation/email_notifications?ids=5843104000006645001,5843104000006645002
However, notifying alone is not sufficient. It should be followed with actionable tasks. In the next post, we will explore Workflow Tasks APIs.
We hope that you find this post on Actions - Email Notifications APIs useful. If you have any feedback, or if there are any pain-points that you would like us to address in our Kaizen series, please let us know in the comments, or reach out to us via support@zohocrm.com. 



Idea
Previous Kaizen : Kaizen #213 - Workflow APIs - Part 1, Part 2, Part 3 | Kaizen Directory
    • Sticky Posts

    • Announcing the new SKILL.md for Zoho CRM and the updated OAS repository!

      We are introducing a new zoho-crm skill to make working with Zoho CRM Developer tools (like APIs, functions, widgets, client scripts, queries etc) easier and faster, with the help of AI in your preferred AI harness like Claude Code, Codex, Cursor, VSCode
    • Kaizen #261 : Using Zoho CRM Skill to generate complex COQL queries

      Hello everyone, In the previous Kaizen posts, we introduced the zoho-crm SKILL.md and discussed how it can help you when you are working with Zoho CRM APIs and Client Script. In this Kaizen, we will focus on using the Zoho CRM `SKILL.md` with GitHub Copilot
    • Kaizen #256 - Build an Arrival Readiness Web Tab in Zoho CRM

      Hi everyone! Welcome back to the Kaizen series! In the post, we discuss a use case in hospitality industry: how an Arrival Readiness web tab widget can be used to let reception staff identify and resolve issues before arrival of guests. Use case In the
    • Kaizen #198: Using Client Script for Custom Validation in Blueprint

      Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Kaizen #226: Using ZRC in Client Script

      Hello everyone! Welcome to another week of Kaizen. In today's post, lets see what is ZRC (Zoho Request Client) and how we can use ZRC methods in Client Script to get inputs from a Salesperson and update the Lead status with a single button click. In this
    • Recent Topics

    • What is the difference between "Reply" and "Public Comment" in a ticket?

      Hey, my company is thinking about switching to Zoho Desk but we do not understand the difference between the "Reply" and the "Public Comment" feature. When should we use which? And why? What is the difference between them? Thank you for your help! Kindest
    • Comments Vs. Replies

      I'm curious as to the difference between a "Reply" and a "Comment" on a ticket. It appears that "Replies" are what's used to determine response time SLA's and there are also used to automatically re-open tickets. I'm just trying to understand the key differences so I can educate both our clientele and our back-end users on which function/feature to use to better improve the ticket lifecycle. If anyone has any insight it would be appreciated. Thanks!
    • Widget Height were destroyed

      All widget heights in the Details Canvas view are broken.
    • CRM Address Field - States with Countries in brackets

      Hi, Could you please remove the country in brackets from the Global State List, or at least allow us to edit these entries? It looks like the brackets were added during the initial data population, perhaps by someone building the list in a spreadsheet
    • What's New in Zoho Inventory | July & August 2026

      Hello users, The July and August 2026 releases bring a range of new features and improvements across the product. From the Nigeria Edition and Super Admin enhancements to Sri Lanka IRD-compliant invoicing, Loyalty Program Management, and improvements
    • Forms data export bug

      The export csv with a password has changed for the worst. It is less secure by not allowing complex passwords. Just last week and the last year (at least) I was able to use a complex, secure password. Export CSV moreover doesn't even work if I use a simple
    • Fax and email questions

      Does Zoho offer faxing capability? If so, how to do it? And, why is has my email inbox stopped in 2019? There are no more emails since then. Also if I delete all of those emails, will they delete it from my gmail account (I'm linked to a gmail email address).
    • Create a single record from multiple images with ICR

      Hello all, Zia's Intelligent Character Recognition can now create a single record from multiple images. Users can upload up to three images at once, such as an ID, a passport, and a business card, and Zia will extract the relevant information from all
    • How to present an Analytic on a CRM dashboard and filter it on loginuser id

      How to present an Analytic on a CRM dashboard and filter it on loginuser id? I want to display an Analytics pivot table (as a widget) on a CRM dashboard and have the pivot filtered on the loginuser. I want additional user-filters available, such as date,
    • CNIL - Suivi de Pixel

      Bonjour à tous, À la suite de la nouvelle recommandation de la CNIL sur les pixels de suivi dans les e-mails, savez-vous si Zoho Campaigns permet : de conditionner le suivi des ouvertures au consentement de chaque contact ; de proposer un lien permettant
    • Convert MBOX to PST File Using Free Methods

      MBOX is a mailbox format that is used by various email clients and services, such as Thunderbird, Apple Mail, Eudora, and Google Takeout. Yet, in order to be able to open your MBOX emails in Microsoft Outlook, you have to convert them from MBOX to PST
    • Live connection to DS files in Zoho Creator / ChatGPT

      As an idea, we are using ChatGPT to build with Zoho Creator (outside of Zia), which is works brilliantly to assist write deluge, provide test suggesitons etc. Currently we are uploading the DS files which are very point in time, it would be great to have
    • Setting default From address when replying to request

      At the moment, if I want to reply to a request, the From field has three options, company@zohosupport.com, support@company.zohosupport.com, and support@company.com. The first two are really internal address that should never be seen by the customer and
    • Zoho Payroll: Product Updates - Q3, FY2026

      Over the past quarter, Zoho Payroll has added several updates to make payroll easier to process, configure, and manage. The most notable improvements cover bank integrations, reimbursement support, payslip enhancements, employee exit documentation, payroll
    • Convert OLM to PST on Mac and Windows Using Free Methods

      When your Outlook for Mac data is stored in an OLM file and you want to use it with Outlook for Windows, the simplest approach to transfer your emails and other mailbox information is to convert the OLM file to a PST file. OLM is primarily associated
    • Add Payment Information (like Bank details)

      I am using the Free plan of Zoho Books. I need to add the bank details/ UPI details on the invoice. How can I do that. I have added the details in the Bank Section.
    • Placeholders for Multi-Level Discount

      I am using custom templates for Invoices and all other modules. Since i have activated multi-level discount (an early-access feature from zoho) "discount at line-item and transaction level", I need placeholders for using them in my custom templates. With
    • Running Balance

      Please add automatically Running balance in ledger view. Taking lot of time, every time to add manually
    • Accounting on the Go Series-47: Effortless GSTIN Management- Auto Populate TaxPayer Details in Zoho Books Mobile App

      Hello everyone, Welcome back! Today, we're focusing on a feature specifically designed for our Indian users in the Zoho Books-Indian edition, particularly those who deal with GST compliance regularly. We understand the importance of accurate and efficient
    • URGENT: Stalled DC Migration >72 Hours - Records Locked [Ticket #: 167813877

      The DC migration was started on 1st October at 6 pm and we were informed migration period as 48 hours but even after more than 72 hours, the migration seems still in progress. We sent two emails to check the status but no responses. We need the migration
    • Zoho Webinar - Sharing System Audio (NOT AVAILABLE)

      Hi, We are having a serious problem with Zoho Webinar. In the webinars we run, we very often share the audio from a video we are streaming directly from YouTube or other applications. Until recently we were using Zoom, but as we use other Zoho applications
    • Cash Recipt

      You can not receive cash more than 10000 from one party in a day and two lakh in a year. In statement you can't differentiate cash or bank receipt. zoho does not support this
    • Need to set workflow or journey wait time (time delay) in minutes, not hours

      Minimum wait time for both Campaigns workflows and Marketing Automation journeys is one hour. I need one or the other to be set to several minutes (fraction of the hour). I tried to solve this by entering a fraction but the wait time data type is an integer
    • Concern Regarding Stock Validation in Inventory Management

      Hi Zoho Team, We would like to highlight a concern regarding stock validation in the inventory system. As per standard inventory management practices, if the stock level is zero, the system should not allow users to create a shipment, packing slip, or
    • Change from OST to PST on Windows 10/11 Using Free Method

      There is an advantage in converting OST files to PST format if you need to access your Outlook data on a different computer, want to keep a local copy, or are trying to recover items from an old Outlook profile. The good point is that users of Windows
    • Meet PageHealth by Zoho PageSense: a free way to find out what's holding your page back

      We all know the feeling. You've spent days tweaking headlines, moving buttons, and rewriting copy, and you're still not sure why visitors aren't sticking around. Revamping your website is hard, and figuring out what's actually getting in the way is even
    • Important: Whitelist new proxy outgoing IPs for IN, SA, and UAE data centers

      Hello everyone, We're expanding the pool of proxy outgoing IP addresses for our IN, SA, and UAE data centers by introducing new IPs alongside the existing ones. This helps ensure high availability, optimal load distribution, and redundancy for outgoing
    • Zoho Flow Custom Function Issue

      I have a use case where I will be needing to post data to a wordpress site. Specifically to a custom post type with a bunch of ACF fields. I have setup trigger event correctly for Tookan and can receive data from the webhook. In order to post the data
    • How to Open .mbox file in Gmail with Attachments?

      Gmail offer users to backup INBOX folder in .mbox file format via Google Takeout Feature. Howver there is no such option to Restore Gmail MBOX. Thus I would like to suggest you to choose an alternate approach i.e. MBOX to Gmail Wizard. This utility will open .mbox file in Gmail with attachments.  Steps to open MBOX file in Gmail are; Run MBOX to Gmail Wizard Click Add File and add .mbox file. Enter your Gmail login credentials. Click Convert button. Finished! This is how you can open MBOX file in
    • Custom Validation for On Duty

      Hi Team, We would like to have custom validation support for the On Duty form in the Attendance module. We need to apply some restrictions, such as: Limit the number of On Duty requests per month. Restrict On Duty requests on selected days. Allow employees
    • Integrating FaceBook Ads into MarketingHub

      I would like to track the clicks from a FB Ad campaign into my website via marketinghub.  I cannot currently add a MH form directly to my FB page, as I receive an error telling me I need at least 2000 subscribers on FB to be allows to do that (yikes!) What is the best way to set up MH so I can track which FB are converting well?  I know I can reach the FB reports directly, but these do not track conversions from the MH forms on my website. Best regards, Joe
    • Migration from GoDaddy to Zohomail

      Hi All, I am trying to migrate all the emails from Go Daddy to zohomail account using the migration tool. i tried with imap method, its not working. when i try it with pop method, then only the emails from the go daddy account inbox ( not other folders), is getting transferred, how can i transfer all the folders in the email account from go daddy to zoho. and also the emails which are coming from go daddy are like new unread emails ( is there any where i can differentiate from read and unread emails)
    • How do I migrate from Office 365 to Zoho Mail?

      Check out Advik Email Migration Wizard, this software is specially developed to move mailboxes from Office 365 to Zoho Webmail. In addition you can migrate from Gmail, Yahoo, Rediffmail and 80+ webmail servers to ZOHO MAIL. Isn't it amazing? This is an all in one email migration solution. Steps to export emails from Office 365 to Zoho Webmail are as follows; Run Advik Email Migration Tool in your system. Select Office 365 as source and enter its login credentials. Select mailbox folders and choose
    • How to Backup Zoho to PST?

      I'm looking for a simple way to backup Zoho Mail emails to PST format. I tried the IMAP method with Outlook, but it seems slow and complicated for large mailboxes. I need a solution that can: Export Zoho emails to PST Preserve attachments and folder hierarchy
    • Shopify connector – product cost ("Cost per item") not synced, so COGS/gross margin can't be calculated

      Hi Zoho Analytics team, I use the native Shopify connector in Zoho Analytics (cloud) to build reporting dashboards for Shopify stores. As far as I can tell, the connector does not sync product cost, so there's no way to calculate Cost of Goods Sold (COGS),
    • Zoho Sprints - Q3 Updates for 2026

      Another quarter, another set of productive features. This time our focus was mainly to simplify in-app navigations and control all your work related activities within Zoho Sprints. We delivered 7 major features and 9 enhancements, which include Zoho Sprints
    • Which Zoho CRM tasks would you want an AI assistant to handle?

      I’ve started delegating my Zoho CRM work to AI – and many tasks now take me half the time. It has been so useful that we’re now working to make it available to everyone. Instead of clicking through records and tabs, I simply describe what needs to be
    • The Social Wall: August 2024

      Hi everyone, We're thrilled to bring you the latest updates, features, and improvements to help you get the most out of Zoho Social. Let's see what was new for us at Social in August. Post documents on LinkedIn You can now reach a lot more people and
    • Free PST Password Recovery Tool

      Recoveryfix PST Password Recovery is a specialized standalone utility designed to instantly unlock encrypted Microsoft Outlook PST files . It provides an efficient way to recover, reset, or entirely remove passwords when access credentials are lost or
    • How can I add a Custom Field (or Customer_name) to a picklist?

      Our workflow is Shopify-->SO -->Picklist-->Package-->Shipment. We would like to have the Picklist template to include a custom field "Customer_Notes" (we have created this field already). This way we get alerted when a customer has notes on their account.
    • Next Page