
Welcome back to another week of Kaizen!
Last week, we discussed how Zylker Cloud Services used the Workflow APIs to discover and audit all the automations in their CRM, listing every workflow, checking triggers, and understanding their automation limits. This week, we take the next step: understanding what configurations are valid before creating or updating workflows via APIs.
 Step 4: Workflow Rule Configurations API 
When you work in the CRM UI, creating workflows feels straightforward. The interface shows only valid triggers and actions. Try adding an unsupported action, and it simply will not appear. This is because the UI enforces hundreds of rules behind the scenes.
With APIs, these validations must be handled manually. That is where the Workflow Rule Configurations API comes in. It gives all the valid triggers and actions for a given module, preventing errors before they happen.
 Why this API matters 
Consider two examples:
You want to create a workflow for the Products module based on a Scoring Rule update. The UI hides this option because scoring rules are not supported for Products.
You try to add a Field Update action for a Record Delete trigger. This is invalid, as the record no longer exists. The UI prevents it, but via API, you would get an error if you try to create or update the workflow with this configuration.
The Configuration API removes this guesswork, allowing you to fetch and respect valid triggers and actions.
Sample Request:
GET {api-domain}/crm/v8/workflow_configurations?module=Deals
Sample Response:
{     "workflow_configurations": {         "related_triggers_details": [             {                 "api_name": "Notes",  // The API name of the related module that can trigger workflows                 "module": {  // Details about the related module                     "singular_label": "Note",                       "plural_label": "Notes",                       "api_name": "Notes",                          "name": "Notes",                               "id": "4876876000000002197"                 },                 "name": "Notes",  // Module name                 "triggers": [  // Available triggers for this related module                     {                         "api_name": "create",                         "deprecated": false,                         "name": "Create",                              "scheduled_actions_supported": true,                           "actions": [  // List of supported actions for this trigger                             "add_tags",                             "remove_tags",                             "email_notifications",                             "tasks",                             "create_record",                             "create_connected_record",                             "add_meeting",                             "webhooks",                             "functions",                             "flow"                         ]                     },                     // ... other triggers (create_or_edit, edit, delete) omitted for brevity                 ]             }         ],         "triggers": [  // Primary triggers for the Deals module itself             {                 "api_name": "score_increase",                   "deprecated": false,                      "name": "ScoreIncrease",                    "scheduled_actions_supported": false,  // Indicates whether scheduled actions are allowed for this trigger                 "actions": [  // Only these instant actions are supported                     "field_updates",                     "assign_owner",                     "add_tags",                     "remove_tags",                     "email_notifications",                     "tasks",                     "webhooks",                     "functions",                     "circuits",                     "flow"                 ]             },             // ... other triggers omitted for brevity ...         ],         "actions": [  // Details about available workflow actions             {                 "is_clickable": true,                                    "associate_action": false,                        "limit_per_action": null,                            "api_name": "schedule_call",                        "supported_in_scheduled_action": true,                    "name": "ScheduleCall",                                  "limit": 1                               // Maximum instances per workflow             },             {                 "is_clickable": true,                 "associate_action": true,                 "limit_per_action": null,                 "api_name": "tasks",                                "supported_in_scheduled_action": true,                   "name": "Task",                 "limit": 5                                         },             // ... other actions omitted for brevity ...         ]     } }  | 
 
 Interpreting and using the Workflow Configuration API 
The configuration response might look complex, but it gives us all the information we need about configuring Workflow Rules in Zoho CRM, for the specific module.
 4.1 "What can trigger my Workflow?" 
The triggers array shows all the supported triggers for that specific module.
"triggers": [     {         "api_name": "create",         "deprecated": false,         "name": "Create",         "scheduled_actions_supported": true,         "actions": [             "field_updates",             "assign_owner",             "add_tags",             "remove_tags",             "email_notifications",             "tasks",             "create_record",             "create_connected_record",             "add_meeting",             "webhooks",             "functions",             "circuits",             "flow"         ]     }, . .     // ... other triggers omitted for brevity ...     {         "api_name": "score_increase",           "deprecated": false,              "name": "ScoreIncrease",            "scheduled_actions_supported": false,         "actions": [             "field_updates",             "assign_owner",             "add_tags",             "remove_tags",             "email_notifications",             "tasks",             "webhooks",             "functions",             "circuits",             "flow"         ]     } ]  | 
 
The response lists all available triggers for the module. For each trigger type, you get:
Trigger conditions: When the workflow will be triggered (on create, edit, score change, etc.)
Action compatibility: Which actions can be used with each trigger type
Scheduled actions support: Whether scheduled actions are supported for that trigger or not.
For instance, the score_increase trigger triggers the workflow when the score of a record is increased. The scheduled_actions_supported key is false for this trigger, which means that this specific trigger type doesn't support scheduled actions. This directly translates to API behaviour: attempting to configure a Workflow Rule via API with a scheduled action for the score_increase trigger will result in an error.
This API constraint is visibly enforced in the CRM interface. When configuring a score-based trigger in the UI:

The UI proactively prevents invalid configurations by hiding unsupported options. This is the pain point that Workflow Rules Configuration API solves when you work on your workflows via APIs.
4. 2. "What can my Workflow actually do?" - Understanding Actions 
The actions array defines the execution capabilities of your workflows. For each action type, you get important information like:
Limits per action instance: Maximum number of items that can be processed within a single action instance
Instance limits: How many times this specific action can be added to a condition in the Workflow rule.
Scheduled action support: Whether the action can be added as a scheduled action.
 
For example, in the add_tags action:
{     "is_clickable": true,     "associate_action": false,     "limit_per_action": 10,        // Maximum 10 tags per Add Tags action     "api_name": "add_tags",     "supported_in_scheduled_action": true,     "name": "AddTags",     "limit": 1                      // Maximum one Add Tags action per workflow }  | 
 
From this data, it is clear that within a single Add Tags action, you can select up to 10 specific tags to add. Similarly, you can only include one Add Tags action instance in the entire workflow rule. Also, this action cannot be used as a scheduled action.
This has direct implications for API users:
Attempting to configure a workflow that adds more than 10 tags in one action will result in an error
Trying to add two separate Add Tags actions to the same workflow will fail
Adding a Add Tags action under scheduled actions section will also result in an error.
 
In the UI, these constraints are proactively taken care of.  As seen in the GIF, if you add fewer than 10 tags, clicking Add Tags again only lets you edit the existing action. Also it lets you add only up to 10 tags in an action. And if you have already added an action with 10 tags, the Add Tags option will no longer be available. Either way, the system prevents any possibility of adding a second Add Tags action, regardless of tag count.
This UI experience is what the Workflow Rules Configuration API replicates for developers. By checking these limits before making API calls, you can build workflows using APIs with the same confidence and error-free experience that UI users have.
 4.3. “What can trigger my Workflow from a related module?” – Understanding related triggers 
The related_triggers_details array shows how changes in related records can trigger workflows in your primary module. For example, in the Deals module, for the Notes related trigger:
"related_triggers_details": [     {         "api_name": "Notes",  // The API name of the related module         "module": {  // Detailed information about the related module             "singular_label": "Note",                  "plural_label": "Notes",                 "api_name": "Notes",                     "name": "Notes",                        "id": "4876876000000002197"           },         "name": "Notes",  // Module name         "triggers": [  // Available triggers for this related module             {                 "api_name": "create",  // Trigger when related records are created                 "deprecated": false,                   "name": "Create",                   "scheduled_actions_supported": true,                   "actions": [  // Supported workflow actions for this trigger                     "add_tags",                     "remove_tags",                     "email_notifications",                     "tasks",                     "create_record",                     "create_connected_record",                     "add_meeting",                     "webhooks",                     "functions",                     "flow"                 ]             },             // ... other triggers (create_or_edit, edit, delete) omitted for brevity         ]     } ]  | 
 
For each related module, you get:
Module information: Details about the related module that can trigger workflows.
Available triggers: The actions on the related record (create, edit, delete, etc) that can trigger the workflow.
Supported actions: For each trigger, the actions that are supported for that specific trigger.
For instance, the Notes related trigger allows you to create workflows that execute when notes are added to deals. The configuration shows that when a note is created, your workflow can perform actions like sending email notifications, creating tasks, triggering webhooks, and more.
If you try to include an unsupported trigger or unsupported action, the API call will fail. For example, adding a field_updates action for a Notes create trigger . The configuration API response clearly shows that field_updates is not among the supported actions for Notes-related triggers.
The API also gives us important differences between trigger-action configurations. For example, while field_updates action is supported for the create trigger for the main module (Deals), the same action is not supported for the related module (Notes) create trigger. These distinctions would otherwise only be discovered through API errors.
In the UI, this limitation is enforced. When setting up a workflow triggered by Notes, the "Field Updates" action does not appear in the available actions list.
By checking the related_triggers_details section before making API calls, you can discover exactly which actions are supported for each related module trigger, thus avoiding configuration errors while creating or updating Workflow rules.
 Conclusion 
The Workflow Configuration API transforms how we approach automation development through APIs. Instead of discovering constraints through failed API calls, we can now design workflows with the right configuration, without any trial-and-error methods. It gives us complete visibility into all valid trigger-action combinations before a single line of code is written, enough information to build automations triggered by related records, and limit awareness to respect action constraints before they become API errors.
For Zylker, this means we can now confidently proceed with updating the old Workflow rules and creating new ones. In our next post, we will put this knowledge into action.
We hope that you found this post useful. If you have any questions or feedback, let us know in the comments below, or write to us at support@zohocrm.com. We would love to hear from you!
Recent Topics
 
Zoho Projects - Visual improvement to parent and sub-task relationship
Hi Projects Team, My feature request is to improve sub-task visibility. Please see screenshot below. I really think parent child relationships could be visually improved. Even if the first letter of the parent task was inline with other same level tasks
 
Items Below Reorder Point Report?
Is there a way to run a report of Items that are below the Reorder Point? I don't see this as a specific report, nor can I figure out how to customize any of the other stock reports to give me this information. Please tell me I'm missing something s
 
New Toolbar in Zoho Sheet
We have revamped our toolbar design in this new version of Zoho Sheet. Below are some screenshots to help you get accustomed to this new interface. Click on the picture below to view the animated image in its original size. Scroll down this post to learn about the changes. Highlight of Changes: The previous format tab is now split into 2 tabs - Home and Format. The Home tab contains the commonly used functions and the Format tab holds formatting related options. Under the Home tab towards the far
 
Zoho inbuilt Telephony made a lot of issues!
Hi there, I am a user that I am working with zoho inbuilt telephony around 1 month. Non of my colleagues are happy with this app! most of the time customer cannot hear my customer service team, customers say our voice is breaking. whenever Telephony support
 
Sending workflow notifications using popular chat services
Hello everyone, We have introduced instant and scheduled notifications on some of the most popular chat platforms to facilitate easy collaboration, quick action, and wider reach. Workflow notifications can be sent to the following chat platforms: Zoho
 
Webhook not firing.
I created a webhook using the Web UI, it looks very nice and the testing worked without an issue, but when i save/ update a ticket, the webhook is not firing. Here are the details of the web-hook i get from using the API "modifiedTime": "2019-10-22T09:23:37.380Z",
 
Adding Images to a Quote in Zoho CRM
We are currently preparing to use Quotes in Zoho CRM and we are building out our Quote templates.  We came across an issue of not being to add Images of the products to the Quote - specifically in the body of the Quote templates.   This is a problem,
 
Applications built with Zoho Creator
Hi, I’m really interested in seeing how others have built their application using Zoho Creator, especially those designed for external users (clients, vendors, or the public). If you’ve developed something along those lines and don’t mind sharing, I’d
 
Is it posssible to add Asap Widget on Wordpress?
I have tried to add the ASAP widget so users could iniciate chats and see the KB information but nothings seems to work. I have tried to add the script using a php snippet that adds the to the footers and also tried one for the header in the functio
 
Require ticket resolution
Hi Zoho team, Is there a way to require resolution even if an agent did not use a blueprint? for example, our blueprint has a "resolve" transition but what if agent revoked blueprint and manually set the status of ticket to closed? Is there a way where
 
Tables from ZohoSheets remove images when updated from source
I have a few tables from a ZohoSheet in a ZohoWriter document that will remove the images in the cells when I refresh from the source. The source still has the images in the table when I go to refresh. After updating from the source, as you can see the
 
API Pagination Error: 'from' Parameter Limit
Hello, I am encountering an error while paging through the Zoho Desk API results: Status code: 422 - {"errorCode":"UNPROCESSABLE_ENTITY","message":"The value passed for field 'from' exceeds the range of '0-4999'."} Is 5000 the maximum number of records
 
How to go to the next open ticket in the queue when agents closes ticket
Zoho Desk When agent closes a ticket - eg when they choose 'Send and Close" - where is the setting that automatically redirects them to the next open ticket in the queue?
 
External download link limit
Can You please help us to understand this For Zoho WorkDrive external users, the download limit is a maximum of 5 GB total download size and a maximum of 50 first-level files and folders What is the meaning of first level? We are using these files in
 
CRM verify details pop-up
Was there a UI change recently that involves the Verify Details pop-up when changing the Stage of a Deal to certain things? I can't for the life of me find a workflow or function, blueprint, validation rule, layout rule ect that would randomly make it
 
Custom templates for calendar report
What about being able to design custom templates for the calendar report, as well as for other types of reports? I think more users are waiting for this.
 
Print a price list or price book
Hi Community. Am I right in concluding that Zoho has no functionality to print a price list from either Zoho CRM, Zoho Inventory or Zoho Books? I won't get stuck on the fact that Zoho doesn't sync price books between Zoho CRM and Books/Inventory (more
 
Disable payment thank-you emails
Hello, can someone please tell me how to disable sending of the "Payment Thank-You" emails? 
 
Maximum tags possible in Contacts Records
I read in some documentation that Zoho allows a total of 200 tags across all records. Is this correct? So is it not possible to have one tag per record for 500 records?
 
Any way to "Pay with Check" or "Refund with Check" for Credit Notes?
When we have a Bill in Zoho Books, we can select the "Pay with Check" option which then allows us to print/cut the check directly out of Zoho Books. When we created a Credit Note and want to refund the customer, is there any way to Refund with Check,
 
CRM Mobile reports
When our engineers finish a job they like to email the customer a job report. This is best done todate as an email template but we can find no way to include an image field from that module. Is there any other options?
 
When Zoho Tables Beta will be open to EU data center
Hello all, We in EU are looking at you all using and testing and are getting jealous :) When we will be able to get into the beta also? We don't mind testing and playing with beta software. Thank you!
 
Start Form on a different page (i.e., hide form pages)?
I have a Zoho form that uses the `Field Alias - Prefill URL` feature. My goal is to have a pre-filled field that directs the user to a specific starting page in the form. For example: The URL will have a field alias that will auto-populate a field with
 
How can we disable "My Requests"?
We are not using this functionality in our system at all and our users get confused.
 
PayPal payment received recording problem
Hi, A little while back one of our customers used the PayPal payment option to pay an invoice For some reason though the payment is showing up twice within the Payments section of the invoice! Instead of setting the invoice value to ZERO, it now shows a negative value Anyone else face this problem? I've checked PayPal and there is only 1 payment in reality... A bug? Actonia ps: for anyone from Zoho Customer Service or tech team,  its Invoice 785 in our account
 
string(87) "{"code":"INVALID_TOKEN","details":{},"message":"invalid oauth token","status":"error"} " grtting this error
Using access token i am trying to add sales orders through api but it is throwing errors like the above i have mentioned. Please help me for that
 
How to mute chat notification sound by default in Zoho SalesIQ?
We’ve recently embedded the Zoho SalesIQ chatbot on our website, and we’ve noticed that notification sounds sometimes play even when the visitor hasn’t interacted with the chat widget yet. We’re trying to understand two things: Why do these sounds occur
 
Kanban View for Projects.
At our organization, we describe active projects with various statuses like "In Proofing" or "Printing" or "Mailing". In the Projects view, one can set these project statuses by selecting from the appropriate drop-down. While this works, it's difficult to view and comprehend the progress of all of your projects relative to each other in a table. Creating a Kanban view for projects where I can move them from one status to another allows me to see where each project is in the order of our workflow.
 
How to Hide Article Links in SalesIQ Answer Bot Responses
I have published an article in SalesIQ, and the Answer Bot is fetching the data and responding correctly. However, it is also displaying the article link, which I don’t want. How can I remove the link so that only the message is shown?
 
Add RECURRING option when adding email to calendar events
When you add an email to a calendar event, there is no option to make that new calendar event into a recurring event.  It is counterproductive to make an event from your email to then have to go to your calendar, find the event, and make it recurring. 
 
LINE Auto Message Connect to Zoho
When I integrated LINE into the CRM, I was prompted to disable “Chat,” “Auto Response,” and “Greeting Messages,” and to enable the webhook. However, since I have already set up some auto-reply features in LINE, including Rich Messages and greeting automation,
 
Option to block bookings from specific email address or ip adresss in zoho booking
Sometime few of our client keep booking irrelevant booking service just to resolve their queries and they keep booking it again and again whenever they have queries. Currently its disturbing our current communication process and hierarchy which we have
 
Threaded conversations for emails sent via automation
Hi Guys, I hope you are doing well. Don't you guys think we should have an option in a workflow to notify users either as a new email or the previous email thread. For example, if you have one deal in the process and there are 10 different stages during
 
Create folder is fetch fails
coming from zapier... zapier has a google drive task that searches for a specific folder in google drive, and if it fails to find the folder it will create a folder based on the search criteria, and contine along the singluar path of the flow. Trying
 
Meetups de Usuarios de Zoho - Noviembre 2025
¡Hola, Comunidad! Durante el mes de noviembre celebraremos los Meetups de usuarios de Zoho, encuentros presenciales pensados para quienes queráis mejorar vuestras estrategias de lead nurturing y aprender a sacar el máximo partido a herramientas como Zoho
 
Introducing 7 New Connectors in Zoho DataPrep!
We’ve just made data management even easier - Zoho DataPrep now supports 7 new external connectors to help you build more robust, scalable ETL pipelines. Why it matters: ✅ Broader data access ✅ More automation, less manual work ✅ Smarter pipelines, better
 
Sales Order, Invoice and Payment numbers
Hi zoho friends, it is me again, the slow learner. I'm wondering if there is a way to have it so the Sales order, invoice and payment numbers are all the same? It would be easier for me if they were the same number so there is not so many reference numbers
 
Missing information data Zoho inventory
there some missing data in Zoho inventory connection. pick list stock counts bin location we have requested it via mail and the support team doesn’t gove feedback. has anyone achieve to get these info or to ask other ya les
 
First day of trying FSM in the field.
What we found. 1. with out a network connection we were unable to start a service call? 2. if you go to an appointment and then want to add an asset it does not seem possible. 3. disappointed not to be able to actually take a payment from within the app
 
Zoho Desk app update: AI powered features
Hello everyone! We’ve introduced various AI-powered services on the Zoho Desk app. Let's take a look at what's new. Generate Content: Generate Content uses AI to formulate responses based on the your query and provides a ready-to-use reply which can be
 
Next Page