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

    • 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
    • Kaizen #222 - Client Script Support for Notes Related List

      Hello everyone! Welcome to another week of Kaizen. The final Kaizen post of the year 2025 is here! With the new Client Script support for the Notes Related List, you can validate, enrich, and manage notes across modules. In this post, we’ll explore how
    • Kaizen #217 - Actions APIs : Tasks

      Welcome to another week of Kaizen! In last week's post we discussed Email Notifications APIs which act as the link between your Workflow automations and you. We have discussed how Zylker Cloud Services uses Email Notifications API in their custom dashboard.
    • 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
    • Recent Topics

    • How to add employee and not invite them to log in?

      I want to add 50 employees, but invite them only when everything will be configured and ready. Is it possible? Should we create employee profiles and then convert them later? Thank you,
    • How is Your eCommerce Experience w/Zoho Inventory?

      First off, I'm SUPER grateful for the advent of Zoho Inventory and now the Zoho Commerce Suite. Overall, Inventory is a great product, especially for customers without an eCommerce presence. For eCommerce companies (especially those shipping more than ~10 packages/day), however, there are certain drawbacks that keep my clients from moving over to Zoho Inventory: Cons: 1. Invoice + Package Creation from Shopify/Other eCommerce Integrations: Zoho Inventory makes the somewhat perplexing decision to
    • Ability to Use Both AND and OR When Creating Rules (Advanced Conditions)

      I'd like to be able to use more complicated logic when setting up rules. E.g. in Zoho Mail, I can choose "Advanced conditions (AND/OR) to create a rule that can be applied to multiple subject lines from the same sender. But in Zoho TeamInbox, I will have
    • Zoho Desktop App- Unable to Minimize/Freezes

      I'm having issues with my Zoho Mail desktop app (PC). When go on my desktop and open the app this is what happens: - Unable to minimize and close app (in the screenshot attached you can see at the top right there is no option to minimize/close) - Unable
    • Zoho Invoice Zapier Integration

      Is there still a way to use Zapier with Zoho Invoice? I've read online that that migrated to Zoho Books or Billing but since I am just using Invoice I can not find a Zapier Connection anymore.
    • Conect chat of salesiq with zoho cliq

      Is there any way to answer from zoho cliq the chat of salesiq initiated by customers?
    • Bug: OAuth 2.0 State Parameter fails with Pipe Delimiters (RFC 6749 Non-Compliance)

      I've discovered a bug in how Zoho's API Console handles the OAuth 2.0 authorization flow when the state parameter contains pipe characters (|), and I'm hoping the Zoho team can address this in a future update. The Issue Zoho's OAuth 2.0 implementation
    • Zobot with Plugs

      Hello, I am having a problem with Zobot using Plugs. Here is my current flow: When I run the flow, I should immediately see the messages from the initial cards (Send Message cards), then after running the plug, and finally, see the messages after the
    • Print a document from Zoho Writer via Zoho Creator

      If i use the code below i can get writer to create a new document or email it to me but i want to be able to print it directly from the browser and not have to send it via email and then print. Below is the code im using. Attached options form zoho writer
    • Is it possible to use HTML formatting in SMS messages sent from Zoho?

      Hi everyone, I have a question regarding sending SMS from Zoho When we send emails from Zoho, we can include HTML code to format the message (like adding links, styling, etc.). Is it possible to do something similar when sending SMS messages through Zoho
    • Zoho Sign 2025–2026: What's new and what's next

      Hello! Every year at Zoho Sign, we work hard to make document signing and agreement execution easy for all users. This year we sat down with our head of product, Mr. Subramanian Thayumanasamy, to discuss what we delivered in 2025 and our goals for 2026.
    • Training for How can i Operate the Software Features

      need to Help for Training of the ZOHO Billing Software
    • Automating Vendor Contract Management between Zoho Contracts and Zoho Books using Zoho Flow

      Managing vendor agreements across procurement and finance systems often requires manually downloading executed contracts and attaching them to vendor records. This can become time-consuming and difficult to manage when dealing with a large number of contracts.
    • Problem applying batch operation error keeps looping that error

      Problem applying batch operation error keeps looping that error an wont login
    • Shared Email Sending Duplicate Copies of Emails

      Hi there, We recently have moved our info@ email to Team Inbox to trial. We set this channel up using the Microsoft setup which works fine and have 3 users. I am wanting to know: 1. When I send a new email, it will create a copy of that email and send
    • merhaba

      merhaba sosyal medya paketimiz mevcut ama yorumları göremiyoruz ve o yüzden cevap veremiyoruz destek rica ediyoruz.
    • Teaminbox not working

      We couldn't send or receive any mail within the team inbox. Displaying error 'Unable to process this request.'
    • Related lists New option in missing

      hi I have created quite a few modules and added as related lists to my main module. Some have new, some dont I can not see why?
    • Detailed list of scoring rules in Zoho CRM

      Good morning Zoho community, warm greetings The reason for my message today is that I have a problem with my CRM, which I will explain below: Our organization has scoring rules designed to rate our potential customers or leads in the application based
    • Cliq and ToDo integrations?

      I'm a bit surprised not to find any way to open a Cliq chat for the current thread, or to create a Zoho Mail ToDo from a thread. Are these on the roadmap?
    • Reply-to names are mangled

      Hello, I'm seeing an odd behavior in replies. Steps to reproduce: 1. Click reply to an email from "John Doe <doe.john@example.com> in TeamInbox Expected outcome: TO field pre-filled with "John Doe <doe.john@example.com>" Actual outcome: TO field pre-filled
    • I CANT UPGRADE MY FREE ACCOUNT

      I TRY TO UPGRADE MY FREE ACCOUNT AND I COULD NOT UPGRADE IT CAN SOMEBODY TELL ME WHY? AND I HAVE THE MONEY SO.
    • Level up your ASO game with tags & categories in store reviews

      Introducing tags and categories in Apptics' store reviews Dear Apptics community, If your app is listed on the Play Store or App Store, you already know how important store reviews and ratings are. They’re one of the most direct signals of user sentiment
    • Including attachments with estimates

      How can attachments be included when an estimate is sent/emailed and when downloaded as a .pdf? Generally speaking, attachments should be included as part of an estimate package. Ultimately, this is also true for work orders and invoices.
    • Adding VENDOR SKU to PURCHASE ORDERS

      how can we add the Vendor SKU when issuing a Purchase Order , so the PO shows the Supplier SKU and our own Internal SKU , which is what we want to receive into the system .
    • Possible to freely prompt/query CRM data using Zia?

      Is it possible to prompt Zia to query on any information stored in the CRM, especially on the data stored in custom text fields? My use case is the people in my organisation have entered lots of text in custom text fields to capture information from an
    • Restrict employees to take only one day holiday from a multi-day festival holiday

      Hi everyone, I have a requirement related to Optional/Festival Holidays in Zoho People. For example, in the month of May there are three optional holiday dates: May 11, May 12, and May 13. Employees can choose one of these days as their optional holiday.
    • Cannot modify colours in invoice email template

      I have tried switching browsers... but I cannot change the (pretty horrible) default colours in the preset email when sending an invoice... the blue banner, red outstanding total and the bright green button... I can change other things but not the colours?
    • Cannot find zpuid for Zoho Projects user

      I'm using the Zoho Projects v3 API to create a task. The task is created successfully, but in order to assign the task owner, the "Create a Task" API also requires the zpuid of the task owner. Unfortunately I cannot find any user-related API calls that
    • Print a document from Zoho Writer via Zoho Creator

      If i use the code below i can get writer to create a new document or email it to me but i want to be able to print it directly from the browser and not have to send it via email and then print. Below is the code im using. Attached options form zoho writer
    • Allow styling for specific Subform fields in Zoho Creator

      Sometimes in forms we need to visually highlight a specific field inside a Subform (for example Sanctioned Amount, Approved Value, Critical Fields, etc.) so that users immediately notice it while entering data. Currently there is no direct UI option to
    • Career site URL - Suggestion to modify URL of non-english job posting

      Hi, I would like to suggest making a few modification to career sites that are not in english. Currently, the URL are a mix of different languages and are very long. It makes for very unprofessional looking URLs... Here is an example of one of our URL
    • 3/18 オンライン勉強会のお知らせ Zoho ワークアウト (無料)

      ユーザーの皆さま、こんにちは。コミュニティチームの中野です。 3月開催のZoho ワークアウトの開催が決定しましたのでご案内します。 今回はZoomにて、オンライン開催します。 ▶︎参加登録はこちら(無料) https://us02web.zoom.us/meeting/register/BoNTN7zYR8OvOPGShqBY0A ━━━━━━━━━━━━━━━━━━━━━━━━ Zoho ワークアウトとは? Zoho ユーザー同士で交流しながら、サービスに関する疑問や不明点の解消を目指すイベントです。
    • New 2026 Application Themes

      Love the new themes - shame you can't get a little more granular with the colours, ie 3 different colours so one for the dropdown menu background. Also, I did have our logo above the application name but it appears you can't change logo placement position
    • Placeholder format in Number field does not reflect Max Digits configuration

      When the Max Digits (Maximum digits of number) property is set to a smaller value (for example, 2 digits), the placeholder in the input field still displays a 7-digit format (#######). The same behavior can also be observed in Decimal and Currency field
    • How does SKU work when selling products in parts in Zoho Inventory

      Hello everyone, Zoho Inventory does not understand the physical cutting of the piece.. It only tracks quantities of the unit (like feet ). So when you sell part of an item, the system simply reduces quantity for that SKU. Assume that i have a 50 ft long
    • Ability to Attach Record-Specific Files Automatically in Workflow Email Templates

      Currently in Zoho CRM, email templates allow attachments to be added, but these attachments are static and remain the same for every recipient. There is no straightforward option to automatically attach a file that is stored within the specific CRM record
    • CRM Cadences - working timesThe Friday afternoon? The next Monday morning? Not at all?

      I think I’m writing saying that cadence emails are only sent during the organisations set working hours in CRM. So if a particular email is set to send for example in three days and that lands on a Sunday (when working hours are not operational) when
    • CRM Cadences - working times

      I think I’m right in saying that cadence emails are only sent during the organisations set working hours in CRM. So if a particular email is set to send for example in three days and that lands on a Sunday (when working hours are not operational) when
    • Push Notification for New Bookings in Zoho Bookings App

      when a someone schedules an appointment through the booking page, is there any option to receive a push notification in the mobile app?
    • Next Page