Hello everyone!
Welcome back to another post in the Kaizen series!
We are incredibly grateful for all the feedback we received, and as promised, we will answer all the queries in this Kaizen series.
This week, as requested by a user, we will do a detailed comparison between Webhooks, Functions, and Schedules.
Let's dive right in!
In modern CRM automation and business workflows, three key mechanisms stand out for executing custom logic and integrations—Webhooks, Functions, and Schedules. While these might seem similar at first glance, each serves distinct purposes and offers unique advantages depending on your use case.
Understanding when and how to use each approach is crucial for building efficient, scalable, and maintainable automation systems. This Kaizen post will help you navigate these choices with practical use cases and clear guidelines.
Let's see what each of these features means.
1. Webhooks
Event-driven external communication
Webhooks are HTTP callbacks that automatically trigger when specific events occur in your CRM system. Think of them as "reverse APIs" where instead of your app polling for changes, the system pushes notifications to your external endpoints.
Key Characteristics
- Trigger: Can be triggered by workflows, approvals, and real-time event-based(record creation, updates, deletions).
- Execution: External to the CRM platform. Send HTTP POST/GET requests to an external URL.
- Response time: Near-instantaneous.
- Reliability: Dependent on external endpoint's availability.
When should you use Webhooks?
- Send simple, real-time notifications to external systems.
- These are lightweight notifications where you just want to inform external systems that something happened in your CRM, but do not expect a response.
- Trigger immediate actions in the external app.
- When data changes happen in your CRM, you can use webhooks to inform the external system of the same and trigger specific actions in the external system.
- Live notification and alerts.
- Webhooks can send live notifications and alerts when an important event occurs in CRM. You can use multiple channels like SMS, emails, push notifications, etc., to notify of the event.
Examples
- Notifying an external system when a lead is converted.
- Triggering payment processing when invoice status changes.
- Sending SMS immediately when a high-priority lead is created.
2. Functions
Server-side custom logic
Functions in Zoho CRM are custom code snippets written in Deluge scripting language to execute your custom business logic.
Key Characteristics
- Trigger: Can be triggered by various events or called directly through APIs, workflows, or button actions.
- Execution: Internal to the CRM platform as they run on Zoho CRM servers.
- Response time: Fast.
- Reliability: High, with in-built error handling mechanisms.
- Support full Deluge scripting.
- Can call external APIs and handle responses.
When should you use Functions?
- Complex business logic that requires access to CRM data
- Involves complex decision-making processes to compare and analyze data from multiple modules of your CRM or other service. Functions work great here as they can access data via APIs easily.
- Data validation and transformation
- You can check for data correctness to align with your business rules and convert them to the right format to use them as necessary at various places. Functions are ideal as they can validate against existing CRM data and apply complex transformation logic in real-time.
- Custom workflow actions
- You can orchestrate functions to perform multi-step processes across modules that standard workflow actions cannot perform.
Examples
- Validating data against business rules before saving.
- Implement approval workflows with multiple stakeholders.
- Triggering complex multi-module workflows like converting a lead to a contact and account, triggering workflow rules for the new account, adding a follow-up task to the converted lead, and adding it to marketing campaigns.
3. Schedules
Time-Based Automation
Schedules in Zoho CRM are functions that are executed automatically at specific intervals of time. They are perfect for batch processing, data synchronization, regular clean up, and sending routine reminders.
Key Characteristics
- Trigger: Time-based schedules like a cron job.
- Execution: Internal to the CRM platform.
- Response time: Depends on the schedule frequency.
- Reliability: High, with automatic retry mechanisms.
- Support full Deluge scripting.
- Supports OAuth-based API calls and data fetching from internal or external systems.
When should you use Schedules?
- Batch data processing
- Instead of processing records one at a time as they are created or updated, you can batch them all in groups to be processed later, say after business hours. This is not only efficient but also does not impact system performance during peak hours.
- Synchronize data
- You can run a schedule to compare data between your CRM and external system and regularly update them to have up-to-date information on both systems.
- Periodic reporting and analytics of your data
- Create reports, update dashboards, and analytics like weekly sales performance, at set intervals to ensure your teams and stakeholders have the right data.
- Maintenance and housekeeping
- These are the usual behind-the-scenes tasks like archiving old data, deleting temporary files, etc., once a week to keep your CRM system running smoothly.
Examples
- Daily data backup and archival
- Weekly sales performance reports
- Monthly lead scoring recalculation
- Quarterly data cleanup and deduplication
- Sync product data in CRM with an external ERP system every eight hours.
Here is a comparison table to help you decide which feature to use.
Feature | Webhooks | Functions | Schedules |
Trigger | On CRM events(real-time) | On CRM events/manually | On a schedule(time-based) |
Custom Logic | No(send data only) | Yes(custom script in Deluge) | Yes(deluge, time-driven logic) |
External Calls | Limited(webhook only) | Extensive(APIs, CRM modules) | Extensive APIs, CRM modules) |
Data Manipulation | No | Yes | Yes |
Best For | Simple push notifications | Complex workflow automation | Recurring tasks |
Examples | Notifying ERP, sending SMS | Auto-updating field, triggering emails | Daily follow-up, weekly performance report |
Best Practices
- Keep it simple. When you need a quick, no-frills integration, go with webhooks first.
- Put your smarts in one place. Use functions whenever you need custom business rules or to tie together different parts of your CRM.
- Schedule wisely. If you have regular batch jobs or routine tasks, set them to run on a schedule, ideally during off-peak hours so your team's daily operations are not slowed down by behind-the-scenes processes.
- Watch and learn. Build in error logging and notifications for both functions and scheduled jobs, so you can catch and fix problems before they snowball.
- Stay efficient. Remember that functions and scheduled scripts count against your API and execution limits. So, write lean code and keep an eye on your usage.
Begin by pinpointing your unique needs, weigh the pros and cons of each option, and be open to mixing methods when necessary. True automation success depends on solid error handling, ongoing monitoring, and regular upkeep.
We hope you found this post useful. Let us know if you have questions in the comments or drop us an email at support@zohocrm.com.
Cheers!
-----------------------------------------------------------------------------------------------------------------------------------
Recent Topics
Can I re-send the Customer Satisfaction Survey after a ticket closure?
Hello, Some customers does not answer the survey right after closure, is it possible to re-send after a few days or weeks? Best Regards!
Filter contacts based on selected category in Zoho Desk ticket
Hello community, I’m setting up the Tickets module in Zoho Desk and I need help implementing the following: When a category is selected in a ticket, I want the Contact field to be filtered so that it only displays contacts that are related to that category.
Mapping a new Ticket in Zoho Desk to an Account or Deal in Zoho CRM manually
Is there any way for me to map an existing ticket in Zoho desk to an account or Deal within Zoho CRM? Sometimes people use different email to put in a ticket than the one that we have in the CRM, but it's still the same person. We would like to be able
Introducing Multi-Asset Support in Work Orders, Estimates, and Service Appointments
We’re excited to announce a highly requested enhancement in Zoho FSM — you can now associate multiple assets with Work Orders, Estimates, and Service Appointments. This update brings more clarity, flexibility, and control to your field service operations,
Assign Income to Project Without Invoice
Hello, Fairly new user here so apologies if there is a really obvious solution here that I am just missing... I have hundreds of small deposits into a bank account that I want to assign to a project but do not want to have to create an invoice every time
Tracking Non-Inventory Items
We have several business locations and currently use zoho inventory to track retail items (sales and purchase orders). We were hoping to use zoho inventory to track our non-inventory items as well (toilet paper, paper towels, etc). I understand that we
Profile Page View Customization
I need to change the fields, sections from the profile view of an emplyoyee.
Zoho Desk Android app update: Filter, Sort and Saved filters Enhancements
Hello everyone! We are excited to introduce the below features on the Android version Zoho Desk mobile app: 1. Filter & Sort support has been introduced for the Contacts and Accounts modules. 2. Sort options is now available in Custom Modules as well.
Zoho CRM Meetings Module Issues
We have a use-case that is very common in today's world, but won't work in Zoho CRM. We have an SDR (Sales Development Rep) who makes many calls per day to Leads and Contacts, and schedules meetings for our primary Sales Reps. He does this by logging
How to filter Packages in zoho inventory api
Hi Team, I want to perform some tasks in a schedular on the packages which are in "Shipped" state. I tried to use filter_by in my api call but in return I get response as {"code":-1,"message":"Given filter is not configured"} My Api request is as follows
Accessing shared mailboxes through Trident (Windows)
Hi, I have a created a couple of shared mailboxes. The mailboxes are showing up on the browser based Zoho workplace, but I cannot seem to figure out how to access my shared inboxes through Trident (Windows). Am I missing something or is this feature not
Issues Logging into ZOHO
Hello, one of my coworkers is having issues logging into ZOHO, she has requested a code when entering and the email is correct but she has not received the code. can you help us with this?
Feature Request: Ability to set Default Custom Filters and apply them via URL/Deluge
I've discovered a significant gap in how Zoho Creator handles Custom Filters for reports, and I'm hoping the Zoho team can address this in a future update. This limitation has been raised before and continues to be requested, but remains unresolved. The
Closing the Loop: Why Lookup Asymmetry is Harming Data Integrity in Creator
TL;DR: Lookup fields allow users to add new related records inline via the "+" icon, but there's no equivalent ability to edit an existing related record without navigating away and losing form context. Adding a native "Edit" icon—with automatic User
Syncing with Google calendar, Tasks and Events
Is it possible to sync Zoho CRM calendar, task and events with Google Calendar's tasks and events. With the increasing adoption by many major tool suppliers to sync seamlessly with Google's offerings (for instance I use the excellent Any.do task planning
filtering lookup field options based on information in another module.
In our CRM system. We have the standard Accounts and Deals modules. We would like to introduce the ability to classify Accounts by Sector. Our desired functionality is to have a global list of all sectors that an Account can select, with the ability to
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!
Cliq iOS can't see shared screen
Hello, I had this morning a video call with a colleague. She is using Cliq Desktop MacOS and wanted to share her screen with me. I'm on iPad. I noticed, while she shared her screen, I could only see her video, but not the shared screen... Does Cliq iOS is able to display shared screen, or is it somewhere else to be found ? Regards
Service op locatie organiseren met Zoho FSM: waar lopen organisaties tegenaan?
Bij organisaties met service teams op locatie merken we vaak dat de complexiteit niet zozeer in de planning zelf zit, maar in wat er rond die planning gebeurt. Denk aan opvolging na interventies, consistente servicerapporten, en het bijhouden van installaties
Workflow Down/Bug
We have a workflow that sends an email to one of our internal departments 10 minutes after a record is created in a custom module. The workflow actually works correctly. However, we have now noticed that on January 8, between 3:55 p.m. and 4:33 p.m.,
Introducing Assemblies and Kits in Zoho Inventory
Hello customers, We’re excited to share a major revamp to Zoho Inventory that brings both clarity and flexibility to your inventory management experience! Presenting Assemblies and Kits We’re thrilled to introduce Assemblies and Kits, which replaces the
Automate pushing Zoho CRM backups into Zoho WorkDrive
Through our Zoho One subscription we have both Zoho CRM and Zoho WorkDrive. We have regular backups setup in Zoho CRM. Once the backup is created, we are notified. Since we want to keep these backups for more than 7 days, we manually download them. They
Does the ability exist to make tax on the customer profile mandatory?
I am reaching out to inquire about the possibility of making the "Customer Tax" field mandatory when creating a new customer in Zoho. We want to ensure that all customers have their tax information recorded to maintain compliance with our internal processes.
CRM gets location smart with the all new Map View: visualize records, locate records within any radius, and more
Hello all, We've introduced a new way to work with location data in Zoho CRM: the Map View. Instead of scrolling through endless lists, your records now appear as pins on a map. Built on top of the all-new address field and powered by Mappls (MapMyIndia),
How to apply customized Zoho Crm Home Page to all users?
I have tried to study manuals and play with Zoho CRM but haven't found a way how to apply customized Zoho CRM Home Page as a (default) home page for other CRM users.. How that can be done, if possible? - kipi Moderation Update: Currently, each user has
Send Whatsapp with API including custom placeholders
Is is possible to initiate a session on whatsapp IM channel with a template that includes params (placeholders) that are passed on the API call? This is very usefull to send a Utility message for a transactional notification including an order number
IMAP mail after specify date
Hi My customer's mail server is on premise and mail storage is very huge. So It never finish sync. and finally stop sync. Cloud CRM have a option like zoho mail sync mail after some date.
email association with CRM
Why is it 2024 (almost 2025) and Zoho has not figured out how to integrate email with CRM? It is so inconsistent at associating emails within CRM. I am an attorney. I have clients and work with other attorneys. Attorney John Doe is associated with multiple
Fix the speed
It takes ages to load on every step even though my dataset is quite small.
Credit Note for Shipped and Fatoora pushed invoices
We have shipped a Sales Order and created an Invoice. The Invoice is also pushed to Fatoora Now we need to create a credit note for the invoice When we try it, it says we need to create a Sales Return in the Zoho Books, we have already created a Sales
Whatsapp Connection Status still "Pending" after migration
Hello, I migrated my WhatsApp API to Zoho from another provider a day ago. So far the connection status is still “Pending”. There is a problem? How long does it usually take?
FSM - Timesheet entires for Internal Work
Hi FSM Team, Several of my clients have asked how they can manage internal timesheets within Zoho FSM. Since their technicians already spend most of their day working in FSM, it would be ideal if they could log all working hours directly in the FSM app.
Add a way of clearing fields values in Flow actions
It would be great if there was an option to set a field as Null when creating flows. I had an instance today where I just wanted to clear a long integer field in the CRM based on an action in Projects but I had to write a custom function. It would be
Role Management
I am creating an analytics dashboard for a company that will be utilized by its various departments such as Finance, Marketing, and HR. My goal is to design the dashboard with separate tabs for each department. Additionally, I plan to implement role-based
Link Contacts to Billed Accounts
Hello, I want to do a survey on all my customers of 2025. For that I want to select all contacts linked to accounts who where billed in 2025. How to I create this link to I can then use Zoho Survey with this database of contacts?
Highlight a candidate who is "off limits"
Hello: Is there a way to highlight a candidate who is "off limits"? I would like to have the ability to make certain candidate and / or Client records highlighted in RED or something like that. This would be used for example when we may have placed a candidate somewhere and we want everyone in our company to quickly and easily see that they are off limits. The same would apply when we want to put a client or former client off limits so no one recruits out of there. How can this be done? Cheers,
Announcing new features in Trident for Windows (v.1.37.5.0)
Hello Community! Trident for Windows just received a major update, with a range of capabilities that strengthen email security and enhance communication. This update focuses on making your mailbox safer and your overall email experience more reliable.
Early Payment Discount customize Text
Hi, I’m currently using Zoho Books and am trying to customize the standard “Early Payment Discount” message that appears in the PDF invoice template. I’ve reviewed the documentation here: https://www.zoho.com/books/help/invoice/early-payment-discount.html
Automatic Matching from Bank Statements / Feeds
Is it possible to have transactions from a feed or bank statement automatically match when certain criteria are met? My use case, which is pretty broadly applicable, is e-commerce transactions for merchant services accounts (clearing accounts). In these
Deprecation of SMS-based multi-factor authentication (MFA) mode
Overview of SMS-based OTP MFA mode The SMS-based OTP MFA method involves the delivery of a one-time password to a user's mobile phone via SMS. The user receives the OTP on their mobile phone and enters it to sign into their account. SMS-based OTPs offer
Next Page