Kaizen 221 - Workflow & Actions Reports APIs

Kaizen 221 - Workflow & Actions Reports APIs


Over the last few weeks, we have joined Zylker Cloud Services as they restructured their automation ecosystem using Workflow APIs and Actions APIs. Along the way, we discovered how to audit workflows, update old rules, create new ones, and manage associated actions like emails, tasks, field updates, and webhooks, all using APIs.

But as their automated ecosystem has grown to nearly 100 workflow rules, a new challenge has emerged for the system administrators: Are these workflows actually doing what they were built to do? Are these automations actually working day-to-day?

A workflow can be perfectly configured yet have no impact if it never runs. A webhook could be sending data to a dead endpoint, or a critical email notification might go silent without anyone noticing.

While the CRM UI allows them to click into any single workflow to see its execution details or check the status of a specific webhook, this data is trapped in dozens of individual screens. To answer strategic questions like "What's the overall health of our automation?" or "Where should we focus our optimization efforts?", they would need to manually open, check, and compile data from over a hundred different places.

This is where the Reporting APIs become indispensable. They allow Zylker to aggregate all this scattered UI data into their central dashboard,  which supports proactive governance at scale.

STEP 1: Find workflows with heavy or complex actions 

Using Get Actions Count in Workflow Rules  

During their initial audit, Zylker noticed something interesting: within the same module, some workflows had just one or two actions, while others had ten or more bundled together. While this inconsistency wasn't necessarily wrong, after years without a cleanup they wanted to review which workflows had become particularly complex and decide whether they needed updating or splitting.

To identify such rules systematically, they call:

GET {api-domain}/crm/v8/settings/automation/workflow_rules/actions/actions_count?ids={id1, id2, id3, ..}

This API returns a detailed count of how many actions each rule contains. Using the response from API, the admins can choose to work on the Workflow Rules by complexity. In the UI, this requires inspecting workflows one by one. But using this API, up to 100 Workflows can be inspected in a single API call. The entire system can be analyzed in a matter of seconds!

Here is what the response looks like:

{

    "workflow_rules": [

        {

            "id": "4876876000016390024",

            "conditions": [

                {

                    "sequence_number": 1,

                    "instant_actions": {

                        "actions_count": [

                            {

                                "type": "field_updates",

                                "value": 1

                            },

                            {

                                "type": "add_tags",

                                "value": 1

                            },

                            {

                                "type": "email_notifications",

                                "value": 1

                            },

                            {

                                "type": "webhooks",

                                "value": 1

                            }

                        ]

                    },

                    "scheduled_actions": [

                        {

                            "actions_count": [

                                {

                                    "type": "tasks",

                                    "value": 1

                                }

                            ]

                        }

                    ],

                    "id": "4876876000016390025"

                }

            ]

        },

        {

            "id": "4876876000011208001",

            "conditions": [

                {

                    "sequence_number": 1,

                    "instant_actions": {

                        "actions_count": [

                            {

                                "type": "assign_owner",

                                "value": 1

                            }

                        ]

                    },

                    "scheduled_actions": null,

                    "id": "4876876000011208002"

                },

                {

                    "sequence_number": 2,

                    "instant_actions": {

                        "actions_count": [

                            {

                                "type": "assign_owner",

                                "value": 1

                            }

                        ]

                    },

                    "scheduled_actions": null,

                    "id": "4876876000011208004"

                },

                {

                    "sequence_number": 3,

                    "instant_actions": {

                        "actions_count": [

                            {

                                "type": "assign_owner",

                                "value": 1

                            }

                        ]

                    },

                    "scheduled_actions": null,

                    "id": "4876876000011208006"

                }

            ]

        }

        // ...other workflow rules omitted for brevity

    ]

}

 

The response is a granular breakdown, not just a simple total. For each workflow rule (id), you see every condition (sequence_number). Within each condition, the actions_count array under instant_actions and scheduled_actions lists the type of each action (email_notifications, webhooks, tasks, etc.) and the count (value) of that specific action type in that section.

In simple terms, the API tells us: For every workflow, for every condition, how many actions does it perform, and what kind are they?

STEP 2: Diagnose execution health: Is it working or just configured? 

Using get Workflow Rule usage report API

Identifying complex workflows is important, but Zylker’s admins also need to figure out if they are are actually working. This is a crucial part of automation governance.

A workflow might be executing regularly, but an email notification configured inside it may bounce every time. A webhook may silently fail due to a server issue. These operational issues are difficult to detect by simply knowing whether a workflow has executed.

In the CRM UI, admins can click View Usage for a workflow. But this still exposes information one rule at a time and without aggregation across rules. When you operate nearly a hundred workflows, this method does not scale.

To understand action-level outcomes inside a specific workflow, Zylker uses:

GET {api-domain}/crm/v8/settings/automation/workflow_rules/{workflow_rule_ID}/actions/usage?executed_from={from_date}&executed_till={to_date}

This API returns rich statistics, including:

  • how many times the workflow executed

  • how many times each action inside it succeeded or failed

  • delivery metrics for emails (open, sent, delivered, bounced, clicked)

  • scheduled vs. instant action performance

  • which conditions executed successfully

Here is a sample response:

{

    "workflow_rules": [

        {

            "trigger_count": 3,     // Total times this workflow was triggered

            "name": "High Value Lead Rule",    // Workflow name

            "id": "4876876000013248001",      // Workflow ID

 

            "conditions": [       // Usage details grouped per condition

                {

                    "instant_actions": {

                        "actions": [      //Instant actions execution details

                            {

                                "queue_count": 0,   //Asynchronous actions pending for execution in the queue

                                "related_details": { //Email delivery metrics for bulk email_notifications actions

                                    "bulk_mail": false,

                                    "unopened": 0,

                                    "sent_percentage": 100,

                                    "opened": 1,

                                    "delivered": 1,

                                    "unsent": 0,

                                    "bounced": 0,

                                    "clicked": 0,

                                    "sent": 1

                                },

                                "name": "High revenue Lead added", //Action name

                                "success_count": 1,    // Number of successful executions

                                "failure_count": 0,    // No failures for this action

                                "id": "4876876000016390103",   // Action ID

                                "type": "email_notifications",        // Action type

                                "associated_time": "2025-10-16T16:19:58+05:30" // When this action was added to the workflow

                            },

                      ...... //omitted for brevity

 

                        ]

                    },

 

                    "scheduled_actions": [     // Scheduled actions usage metrics

                        {

                            "id": "4876876000016390118",  // ID of the scheduled action block

                            "actions": [

                                {

                                    "queue_count": 0,      //Asynchronous actions pending for execution in the queue

                                    "related_details": {   //Email delivery metrics for bulk email_notifications actions

                                        "bulk_mail": false,

                                        "unopened": 0,

                                        "sent_percentage": 100,

                                        "opened": 1,

                                        "delivered": 1,

                                        "unsent": 0,

                                        "bounced": 0,

                                        "clicked": 0,

                                        "sent": 1

                                    },

                                    "name": "High revenue Lead added",

                                    "success_count": 1,   // Number of successful executions

                                    "failure_count": 1,   // Number of failures

                                    "id": "4876876000016390103",

                                    "type": "email_notifications",

                                    "associated_time": "2025-10-16T16:19:58+05:30"

                                }

                            ]

                        }

                    ],

 

                    "usage_count": 2,      // The number of times this condition matched

                    "id": "4876876000013248002"     // Condition ID

                },

 

                // more condition blocks omitted for brevity

           ],

 

            "reset_time": "2025-10-16T16:23:04+05:30"       //When usage metrics were last reset

        }

    ]

}

 

 

This single API call provides what would take hours of manual UI investigation, i.e., a complete performance audit. By scripting this for their key workflows, Zylker transforms workflow management from a time-consuming manual task to an easy, automated process.

STEP 3: Monitor system-wide integration health 

The workflow usage report gave Zylker deep insight into individual workflows. But they still have unanswered questions about their external integrations.

Zylker relies on webhooks to push deal data to their project management tool, sync contacts to their marketing platform, and notify their support system. A single failing webhook can break an entire business process, and these failures often happen silently.

The CRM UI provides detailed views of each webhook's activity. However, identifying patterns across all integrations, like silent failures or volume anomalies, requires manually consolidating data from multiple screens. For teams with many integrations, this consolidation becomes time-consuming to perform regularly.

Zylker solves this by using the Webhooks Actions Usage Report API to get time-series data for all integrations at once, followed by the Get Action Failures API for diagnostics.

 3.1 Track volume trends and spot anomalies  using Webhooks Actions Usage Report API

They call the usage report API grouped by date and resource to see daily call volumes:

GET {api-domain}/crm/v8/settings/automation/webhooks/actions/usage_reports?group_by=date,resource&type=webhooks&from_date={date}

Sample Response:

{

    "data_usage": [

        {

            "date": "2025-12-09",

            "resource": {

                "name": "Premium Lead Alert",

                "id": "4876876000016390771"

            },

            "count": 4,

            "type": "webhooks"

        },

        {

            "date": "2025-12-09",

            "resource": {

                "name": "Deal to Project Sync",

                "id": "4876876000017550012"

            },

            "count": 4,

            "type": "webhooks"

        },

        {

            "date": "2025-12-09",

            "resource": {

                "name": "Contact to Marketing Platform",

                "id": "4876876000017550018"

            },

            "count": 8,

            "type": "webhooks"

        },

        {

            "date": "2025-12-08",

            "resource": {

                "name": "Deal to Project Sync",

                "id": "4876876000017550012"

            },

            "count": 8,

            "type": "webhooks"

        },

        // ...omitted for brevity ...

        {

            "date": "2025-12-07",

            "resource": {

                "name": "Deal to Project Sync",

                "id": "4876876000017550012"

            },

            "count": 1, //  Anomaly: very low number

            "type": "webhooks"

        },

        // ... remaining entries omitted for brevity ...

    ],

    "info": {

        "max_limit": 2500,

        "per_page": 200,

        "count": 12,

        "page": 1,

        "more_records": false

    }

}

 

The response provides a daily log of which webhooks fired and how often. The real insight comes from analyzing two key patterns:

  1. Missing activities: If a webhook that typically appears daily suddenly has no entries for multiple days, it indicates the upstream workflow has stopped. This is a silent business process failure.

  2. Volume Anomalies: If a normally steady webhook shows a 300% spike in daily calls, it could indicate system errors generating duplicate records, or legitimate business surges worth investigating.

From the response data, Zylker can instantly spot that the Deal to Project Sync webhook's execution dropped to just 1 call on a specific day, which is a volume anomaly. Meanwhile, the Premium Lead Alert webhook may be missing entirely from recent dates, which is a missing activity alert.

 3.2 Investigate Webhooks failures with Get Action Failures API - Webhooks 

Volume anomalies tell Zylker that something is wrong. To understand what went wrong and where, they need detailed failure diagnostics.

For this, they use the Get Action Failures – Webhooks API:

GET {api-domain}/crm/v8/settings/automation/webhook_failures?from=2025-10-15&to=2025-10-22

You can optionally filter by:

  • webhook_id : to focus on a specific webhook

  • module : to see failures only for a specific module

  • from and to : to restrict the date range (max 90 days). 

Sample Response:

{

    "webhook_failures": [

        {

            "webhook": {      // The webhook that failed

                "name": "Premium Lead Alert",

                "id": "4876876000016390771"

            },

            "entity_details": {    // Record that triggered the webhook

                "module": {

                    "api_name": "Leads",

                    "id": "4876876000000002175"

                },

                "name": "Freelancer.com",

                "id": "4876876000016474049"

            },

            "failure_time": "2025-10-21T17:08:07+05:30", // When the failure occurred

            "failure_reason": "page_notfound",  // Why it failed (e.g., page_notfound, unauthorized, timeout)

            "id": "4876876000016474075",        // Failure entry ID

            "workflow_rule": {         // Workflow that triggered this webhook

                "name": "WF-C",

                "id": "4876876000016390881"

            }

        },

//... omitted for brevity

    ],

    "info": {

        "per_page": 200,

        "count": 17,

        "page": 1,

        "more_records": false

    }

}

 

With a single request, Zylker now has a clear picture of exactly which workflows are causing failures, which records are impacted, and the precise technical reason for the failure. With this information at hand, they can promptly fix the issues and ensure that critical integrations do not silently break.

STEP 4: Ensure reliable communication through Email Notifications usage reports 

Emails sent through workflows drive essential actions at Zylker. Sales managers get notified when high-value leads enter the system, account directors get alerted on lost deals, and service teams receive escalations. If these triggered emails are not sent consistently or begin spiking unexpectedly, decision-makers may be blind to critical updates.

To understand how workflow-triggered emails are being used over time, Zylker uses the Email Notification Actions Usage Report API.

Sample Request:

GET {api-domain}/crm/v8/settings/automation/email_notifications/actions/usage_reports?group_by=date,resource,type&type=email_notifications&from_date=2025-12-01

Sample Response:

 

{

  "data_usage": [

    {

      "date": "2025-12-09",       // When the email was triggered

      "resource": {

        "name": "Lost Deal Alert",  // Email notification name

        "id": "4876876000013500873"

      },

      "count": 5,                 // Number of times it was sent that day

      "type": "email_notifications"

    },

    {

      "date": "2025-12-09",

      "resource": {

        "name": "High Value Lead Notification",

        "id": "4876876000016390889"

      },

      "count": 2,

      "type": "email_notifications"

    },

    {

      "date": "2025-12-08",

      "resource": {

        "name": "Lost Deal Alert",

        "id": "4876876000013500873"

      },

      "count": 8,   // Higher usage on this day

      "type": "email_notifications"

    }

    // ... additional entries omitted

  ],

  "info": {

    "max_limit": 2500,

    "per_page": 200,

    "count": 18,

    "page": 1,

    "more_records": false

  }

}

By reviewing usage trends over time, Zylker can spot early signs of issues at either layer. If an email notification that normally triggers every day suddenly shows zero usage, it could mean the workflow condition has stopped matching, or it might indicate a failure due to factors like bounced addresses, inactive users, or restricted mail settings. Likewise, an unexpected spike in email executions might reveal either a legitimate business surge or a workflow repeatedly triggering because of duplicate records, import errors, or incorrect criteria.

In either case, Zylker is now in a position to take informed decisions.

Conclusion 

Zylker began this journey wanting stronger workflow automation. Along the way, they learned how to discover, configure, update, and extend workflow rules and actions using APIs. But as their automation ecosystem grew, a new responsibility emerged regarding governing what they had built.

The Reports APIs complete that responsibility.

With this complete toolkit, Zylker no longer just has automations. They understand them, analyze them, and continuously improve them. Their workflows have evolved from fragile scripts to managed business assets with known performance characteristics and early warning systems.

This concludes our Kaizen series on Workflow & Actions APIs. We hope this series has helped you to build, manage, and govern automation systems in your own organization.

If you have any feedback or questions, please let us know in the comments or reach out to us at support@zohocrm.com.

Until next time, Happy coding!


    • 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

    • Smarter Access Control: Role-Based Access vs. Responsibility-Based Profiles

      Every business has roles, responsibilities, and workflows. While roles help define structure, responsibilities within those roles are rarely the same. As your team grows, some members need access to only a specific set of features. Others require visibility
    • Partner with HDFC And Sbi Bank.

      Hdfc and sbi both are very popular bank if zoho books become partner with this banks then many of the zoho books users will benefit premium features of partnered banks.
    • API in E-Invoice/GST portal

      Hi, Do I have to change the api in gst/e-invoice portal as I use zoho e books for my e-invoicing. If yes, please confirm the process.
    • Member role in zoho meeting

      does a user with member role can see other users in the organization
    • How to post more than 4 Images on Instagram?

      Hi I read several articles to the topic od how to post more than 4 images on instagram, but i can't figure out how it works. I can't find the content editor and i installesd the z share extension for google chrome. Could someone please help me? Than
    • Clone Recurring Expenses

      Our bookkeeping practices make extensive use of the "clone" feature for bills, expenses, invoices, etc. This cuts down significantly on both the amount of typing that needs to be done manually and, more importantly, the mental overhead of choosing the
    • Zoho Books - How to Invoke a Custom Function in Schedulers

      We have multiple schedulers that send emails to customers in batches. Currently, we are maintaining the same code across several schedulers. Is it possible to use a custom function inside a scheduler script? If yes, how can we invoke the custom function
    • Special characters (like â, â, æ) breaking when input in a field (encoding issue)

      Hey everyone, We are currently dealing with a probably encoding issue when we populate a field (mostly but not exclusively, 'Last Name' for Leads and Contracts). If the user manually inputs special characters (like ä, â, á etc.) from Scandinavian languages,
    • Set Custom Icon for Custom Modules in new Zoho CRM UI

    • Notes badge as a quick action in the list view

      Hello all, We are introducing the Notes badge in the list view of all modules as a quick action you can perform for each record, in addition to the existing Activity badge. With this enhancement, users will have quick visibility into the notes associated
    • Is Zoho Live Chat compatible with WordPress CMS?

      Hello, I have a website called www.jjrlab.com and I'm interested in using Zoho Chat on it. Does it support WordPress CMS? Thanks.
    • Introducing spam detection for webforms: An additional layer of protection to keep your Zoho CRM clean and secure

      Greetings all, One of the most highly anticipated feature launches—Spam Detection in webforms—has finally arrived! Webforms are a vital tool for record generation, but they're also vulnerable to submissions from unauthenticated or malicious sources, which
    • Bring your CRM and Desk app inside SalesIQ with widgets

      Have you ever been confused and frustrated with multiple open tabs and switching back and forth from SalesIQ to other apps to perform your business-specific operations? How effective would it be to have all the required tools and data of the apps you
    • Speak Your Customers' Language: SalesIQ's chatbots now support 30 languages 🤖

      We're unveiling some major upgrades to our chatbot that are set to revolutionize your experience! Now SalesIQ support 30 languages for both Zobot and Answer bot. By speaking your customers' language, you can enhance engagement, improve customer satisfaction,
    • Repeat Column merge in ZOHO writer columns doesn't allow to set max columns per row

      I'm using ZOHO writer to merge data from a ZOHO CRM subform and I want it to make a table. We're using Insert Table for Column Repeat, because this is what we need. (Name of column (Teamname) and underneath that a list of names of teammembers). It works
    • Persisting email signals to contact timeline?

      Hello there. Regarding the email signals that are logged when a contact opens an email, am I correct that these signals are not logged to a contact's timeline? Ideally, I would like to have this context available for future follow-ups, if the contact
    • Trouble with using Apostrophe in Name of Customers and Vendors

      We have had an ongoing issue with how the system recognizes an apostrophe in the name of customers and vendors. The search will not return any results for a name that includes the mark; ie one of our vendors names is "L'Heritage" and when entering the
    • Really want the field "Company" in the activities module!

      Hi team! Something we are really missing is able to see the field Company when working in the activities module. We have a lot of tasks and need to see what company it's related to. It's really annoying to not be able to see it.🙈 Thx!
    • Upcoming update to Google Drive integration in Zoho Creator

      Hello everyone, We're writing to inform you about an upcoming update to how Zoho Creator integrates with Google Drive. In Zoho Creator, during actions like importing files to create an app or attaching files to fields, you can choose files directly from
    • Managing Scheduled Replies

      Communication is most effective when the intended message reaches the right person at the right time. However, this can be challenging when communication occurs across different time zones. By scheduling replies, businesses can ensure that responses reach
    • Show price book list price

      When using price books, once you add products to the price book in the Products related list you can display the Unit price which is the default list price; however, there is no option to show the price book list price. To see the price book list price
    • Allow Attaching Quartz Recordings to Existing Zoho Support Tickets

      Hi Zoho Team, We would like to request an enhancement to how Zoho Quartz recordings integrate with Zoho Support tickets. Current Behavior: At the moment, each Quartz recording automatically creates a new support ticket. However, in many real-world scenarios:
    • Can I hide empty Contact fields from view?

      Some contacts have a lot of empty fields, others are mostly filled. Is there a way I can hide/show empty fields without changing the actual Layout? I would like to de-clutter my view, and also be able to add information later as I am able. I would be
    • Manage user roles and profiles from the Bigin app (iOS and macOS)

      Hello everyone! We're happy to announce that you can manage user roles and profiles from the Bigin mobile app. The Users & Controls section has three subsections: Users, Profiles, and Roles. Users Employees who belong to your Bigin organization are called
    • Support Bots and Automations in External Channels

      Hello Zoho Cliq Team, How are you? We actively use Zoho Cliq for collaboration, including with our external developers. For this purpose, external channels are a key tool since they work seamlessly within the same interface as all of our other channels
    • Form to PDF template

      I am looking to create a Form and when information is inputted, it will merge it into a PDF template we already have. There could be multiple lines in the form and each line inputs information into a new page of a PDF template.
    • Please verify my account

      Hi, We have just launched our website and received media coverage in our country. Hundreds of users are signing up for our platform every day. We would like to send them a welcome email, but we are unable to do so because our ZeptoMail account has not
    • Subject character limit increase

      We have an occasional user case where subject lines exceed 500 characters which is the ZeptoMail imposed limit. While I understand long subject lines are not "best practice", these are particular notification emails with specific information for client
    • Account blocked

      Yesterday I got my Zeptomail account blocked due to too many hard bounces. My account is used exclusively for sending transactional emails (eg. your order has been shipped, a form has been filled, etc) and the sudden blocking impacted hundreds of websites
    • Nested notebooks

      Dear Sir/Madam, I would like to know if it is possible to nest notebooks. It would be very helpful when there are too many, as it would improve organization. Thank you for your response. Best regards.
    • Cannot see correct DNS config for mail after moving domain to another provider

      I have moved my domain from one provider to another and after that zoho mail stopped working (expected). Problem is, zoho mail admin panel still shows (10 hours after move) that all records are correct while I haven't changed anything in my domain DNS
    • Proactive Alert for Existing Open Tickets per Contact / Account

      Hello Zoho Desk Team, Greetings, and hope you’re doing well. We would like to submit a feature request aimed at improving agent awareness and efficiency when handling tickets in Zoho Desk. Use case When an agent opens a ticket (new or existing), it is
    • Ticket resolution field - can you add links, video, and images?

      Seems like the ticket resolution fields is just a text field. Any plans to add the ability to add links, images...the same functionality in the problem description box? I would like to send the customer a link to a KB article, a link to our Wiki, embed
    • Ticket Resolution - Add rich formatting, screenshots and attachments

      The resolution field only allows plain text at the moment. Many of our resolutions involve posting screenshots as evidence, it would be great for us to be able to have rich text formatting, be able to paste screenshots and add attachments in the solution
    • Kaizen #140 - Integrating Blog feed scraping service into Zoho CRM Dashboard

      Howdy Tech Wizards! Welcome to a fresh week of kaizen. This week, we will look at how to create a dashboard widget that displays the most recent blog post of your preferred products/services, updated daily at a specific time. We will leverage the potential
    • Convert Lead Automation Trigger

      Currently, there is only a convert lead action available in workflow rules and blueprints. Also, there is a Convert Lead button available but it doesn't trigger any automations. Once the lead is converted to a Contact/Account the dataset that can be fetched
    • I'm getting this error when I try to link an email to a deal inside the Zohomail Zoho CRM extension.

      When I click "Yes, associate," the system displays an "Oops!! Something went wrong" error message. I have attached a screenshot of the issue for reference.
    • Zoho Sheet - Desktop App or Offline

      Since Zoho Docs is now available as a desktop app and offline, when is a realistic ETA for Sheet to have the same functionality?I am surprised this was not laucned at the same time as Docs.
    • ZOHO add-in issue

      I cannot connect ZOHO from my Outlook. I am getting this error.
    • Marketing Automation

      L.S. Marketing Automation is and has always been part of the Zoho One bundle - according to the information provided on the Zoho Website. Why when I open Marketing Automation do I get the following message?: "Your trial has expired. We hope you enjoyed
    • Next Page