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
LinkedIn RSC is now live in Zoho Recruit
LinkedIn Recruiter System Connect (RSC) is here. Your Zoho Recruit data (candidates, jobs, notes, stage updates, resume attachments, and more) now syncs with LinkedIn in real time. Note: LinkedIn RSC is included with your LinkedIn Recruiter Corporate
Is there a way to show contact emails in the Account?
I know I can see the emails I have sent and received on a Contact detail view, but I want to be able to see all the emails that have been sent and received between all an Accounts Contacts on the Account Detail view. That way when I see the Account detail
Managing Shopify Payout Balances in Zoho Books
I am recording my Shopify orders as Invoices and once Shopify credits my bank account I reconcile the payout to the specific invoices and create a new transaction to account for the Shopify Merchant Fee. That is fairly straightforward to me. How should
Charging for WhatsApp replies starting in October 2026
Meta has announced that it will charge for reply messages on WhatsApp starting October 1, 2026, and the free 24-hour window will no longer exist. How will Zoho SalesIQ handle this billing? https://developers.facebook.com/documentation/business-messa
Upcoming Change: Increased character limits for module and field labels
To provide greater flexibility in customizing your CRM, we are increasing the maximum character limits for module labels and field labels in Zoho CRM. What's changing? Label Current Limit New Limit Module Label 25 characters 50 characters Subform Module
Creating Email template that attaches file uploaded in specific field.
If there's a way to do this using Zoho CRM's built-in features, then this has eluded me! I'm looking to create a workflow that automatically sends an email upon execution, and that email includes an attachment uploaded in a specific field. Email templates
SPAM (and some other) folders missing on three of my Zoho Mail accounts
I have four email accounts with Zoho Mail. Three days ago, the Spam folder on three of these accounts vanished. It is gone on the Windows and Linux desktops as well as the web-based and Android versions, and I have tried it on multiple machines. The only
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
Error 1011 saving website personalisation — blocking all changes (corrupted "home_page.content" field)
When trying to save changes under Settings → Brands → MY COMPANY → Website → Personalisation → Messenger, I receive the following error: "Either the request parameters are invalid or absent" upon checking on the developer console of the browser I get
All new Address Field in Zoho CRM: maintain structured and accurate address inputs
Availability Update: 29 September 2025: It's currently available for all new sign-ups and for existing Zoho CRM orgs which are in the Professional edition exclusively for IN DC users. 2 March 2026: Available to users in all DCs except US and EU DC. 24
Zoho CRM - Email/Message icon for Deal List View
Hi Team, My idea is to include a message icon at the start of the row of Deals when an unread message has been received. This would really help highlight the Deals where urgent action is required. Thanks for considering this request. Regards, Ashley
CRM x WorkDrive: We're rolling out the WorkDrive-powered file storage experience for existing users
Release plan: Gradual rollout to customers without file storage add-ons, in this order: 1. Standalone CRM 2. CRM Plus and Zoho One DCs: All | Editions: All Available now for: - Standalone CRM accounts in Free and Standard editions without file storage
HR Helpdesk Cases
We have Zoho One Enterprise. I'm trying to find HR Helpdesk Cases, but my UI does not match the documentation. I'm not sure how to move forward.
Tip #7 - Siri shortcuts in Zoho CRM
Hello Everyone, Here is a tip about the 'Siri Shortcuts' feature and how it works in the iOS version of the Zoho CRM mobile app. What are Siri shortcuts? Siri Shortcuts are quick actions across your apps on iOS. They can perform an action automatically
Automatic Department and Employee Sync Between Zoho One and Zoho People
Dear Zoho Support, I'm writing to propose a valuable feature request that would streamline data management and improve user experience within the Zoho ecosystem: automatic synchronization between departments and employees in Zoho One and Zoho People.
Nothing triggers a Journey
I have been on the phone with Zoho support and they claim their development team needs to investigate more. However, I've found this is a pretty standard answer after a call takes any amount of time. After that, it's days and even weeks before it actually
Manually Backorder Sales Order and/or Change Sales Order Status
Is there an option to manually 'backorder' a sales order, or otherwise change it's status? In some cases, we receive orders for products that are out of stock, but we already have issued POs to our suppliers for replenishment. Ex- we created a PO on
Backorder process review - Automating Removal of Sales Order from "On Hold" When PO is Received
Hello Zoho Inventory Team, Currently, sales orders in On Hold status are released only when the bill for the purchase order is created. In our workflow, it would be much more efficient if the sales order could automatically move out of On Hold as soon
Kaizen #254 - Building a Temporal Lead Score Decay System in Zoho CRM
Hello, CRM Wizards! Welcome to a fresh week of Kaizen. In this post, we will build a temporal lead score decay system that works alongside your existing scoring rules by introducing percentage-based score decay driven solely by customer inactivity. By
Metadata API Access to Functions
I think it would be incredibly helpful to have api access to every function's code. Our team primarily uses deluge functions to update fields across modules according to business logic. I would like to create a visual dependancy model for our CRM, but
API actions/approvals endpoint returns UNAPPROVABLE despite user having full permissions and being the assigned approver
Hi Team, We are trying to programmatically approve a record via the CRM API but consistently receive an UNAPPROVABLE error, even though the same user can approve the record without issue from the UI. Endpoint called: POST https://www.zohoapis.com/crm/v6/{module}/{record_id}/actions/approvals
Get a realistic picture of your revenue with Forecast Adjustments in Zoho CRM
#crm25q1 Dear Customers, We hope you're doing well! Today, we're here with an important enhancement for business decision makers: forecast adjustments. Let's get straight to it! With technology on the rise and CX at its core, businesses are constantly
I am not able to check in and checkout in zoho people even location access allowed
This issue i am facing in mackbook air m1, I allowed location in chrome browser and i also tried in safari but getting similar issue. Please have a look ASAP.
WhatsApp Vendors Module
Hello, so WhatsApp works with the below, mainly with the customer side modules. Can we get functionality on the vendor side modules, i.e., PO, Bills, Vendor Credits, Payments Made, Purchase Received? WhatsApp is often the preferred method of communication
Upload ticket attachments via Drag-&-Drop
Hello, if you want to upload a file to the ticket attachment you need to click the button and use the file browser to select and upload the desired file. In many cases, it would be much more efficient if you could simply drag the file to the browser window...
Introducing parent-child ticketing in Zoho Desk [Early access]
Hello Zoho Desk users! We have introduced the parent-child ticketing system to help customer service teams ensure efficient resolution of issues involving multiple, related tickets. You can now combine repetitive and interconnected tickets into parent-child
Elevate your Radar experience: Best practices part 3
In the Spotlight: Zoho Desk's Radar app Customer support requires human intelligence combined with emotional intelligence. How about these coupled with contextual intelligence? These elevate the customer support experience. When providing support through
Migrating my email from GMAIL to ZOHO MAIL..........
I am a long time GMAIL user and I really only understand how they operate, but after reviewing your tutorials and forums online, it is quite unbelievable how much more and how much more streamlined ZOHO mail is, not to mention ZOHO's wonderful, more advanced capabilities. I do have several questions about transitioning over to ZOHO. Primarily, where is the best place to start, what do I do first? And how hard is it actually to move all my business and personal accounts over here? When I sign up
Unable to send message;Reason:553 Relaying disallowed. Invalid Domain
Hi, Now when I try to reply to an email, I see the Unable to send message;Reason:553 Relaying disallowed. Invalid Domain voicemessagedownloader.com error. I tested sending an email when I set it up in the past and it worked. I have checked the Zoho Organization
RFID Scanner/Adapter Solution for barcode scanning
Hello, We will be trialing using barcode scanning for item verification during our picking process. Using a phone or a tablet is awkward and uncomfortable. Are there any Zoho compatible RFID scanners, or an RFID device/adapter that will connect with a
Approval Process not retriggering after rejection when stage is manually changed back
We have an Approval Process on the Opportunities module that triggers when Stage is changed to Negotiation (Execute on: Edit Only). On rejection, a field update action reverts Stage back to Proposal. The issue: after rejection, AE can manually changes
Free Webinar Alert! Workdrive + Office Suite in Zoho Workplace: Create, co-edit and collaborate
Hello Zoho Community! Looking for a better way to create, manage, and collaborate on your business documents? Join our upcoming webinar to discover how Zoho WorkDrive and the Zoho Office Suite (Writer, Sheet, and Show) help teams to work together from
Updating Sales orders on hold
Surely updating irrelevant fields such as shipping date should be allowed when sales orders are awaiting back orders? Maybe the PO is going to be late arriving so we have to change the shipment date of the Sales order ! Not even allowed through the api - {"code":36014,"message":"Sales orders that have been shipped or on hold cannot be updated."}
Two-Factor Authentication in Zoho Mail: Add an extra layer of security to your organization
Account security is a critical aspect of managing any organization's email. With increasing risks of unauthorized access, a single password may not always be sufficient to keep accounts protected. Zoho Mail's Two-Factor Authentication (TFA) addresses
Dark Mode - Font Colors Don't Work
When editing a document in Dark Mode and selecting font colors, they don't show up on screen. Viewing/editing the same document in Light Mode shows them just fine.
API to post drafts for social media
I we want to post draft posts to our zoho social account and then approve and schedule them within Zoho social. is this possible with for example: https://apis.zoho.com/social/v2/post TIA Jon
How to show product cards in your chatbot
Hey everyone, If you are using Guided Conversations to help customers find products, you have probably run into this problem: the bot gives customers a list of options, but they still have no idea which one to pick. There will be no images, no specs,
Changing settings for auto logoff
I've noticed that when I haven't used Cliq for a while, I have to re-enter my password. That is really clumsy, especially if you have a complicated password. Because it won't be filled in automatically. Is there a way to change that behaviour? We are
How do you create invoices before sending them through Zoho Invoice?
Hi everyone, I'm curious how other businesses handle their invoicing workflow before sending invoices through Zoho Invoice. Do you: Create invoices directly inside Zoho? Prepare them first in another invoice tool or template? Use Excel or Word before
ZML Error/Bug
Hi, I would like to request for your help regarding this kind of behavior. Requested_Start_Time & End_Time - date-time fields https://......#Page:PH_Calendar_Page?reqDate=08-04-2026 https://......#Page:PH_Calendar_Page?reqDate=07-31-2026 https://....#Page:PH_Calendar_Page?reqDate=08-03-2026
Next Page