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
VIEW HEADERS PARAMETERS
A function was created in zoho creator. In the microservices “https://creator.zoho.com/userhome/<adminuser>/admindashboard#/microservices”. A custom API was created and associate the function. In the postman I send some data, how can I visualize what
Problem applying batch operation error keeps looping that error
Problem applying batch operation error keeps looping that error an wont login
Shared Email Sending Duplicate Copies of Emails
Hi there, We recently have moved our info@ email to Team Inbox to trial. We set this channel up using the Microsoft setup which works fine and have 3 users. I am wanting to know: 1. When I send a new email, it will create a copy of that email and send
merhaba
merhaba sosyal medya paketimiz mevcut ama yorumları göremiyoruz ve o yüzden cevap veremiyoruz destek rica ediyoruz.
Teaminbox not working
We couldn't send or receive any mail within the team inbox. Displaying error 'Unable to process this request.'
Related lists New option in missing
hi I have created quite a few modules and added as related lists to my main module. Some have new, some dont I can not see why?
Cliq and ToDo integrations?
I'm a bit surprised not to find any way to open a Cliq chat for the current thread, or to create a Zoho Mail ToDo from a thread. Are these on the roadmap?
Reply-to names are mangled
Hello, I'm seeing an odd behavior in replies. Steps to reproduce: 1. Click reply to an email from "John Doe <doe.john@example.com> in TeamInbox Expected outcome: TO field pre-filled with "John Doe <doe.john@example.com>" Actual outcome: TO field pre-filled
I CANT UPGRADE MY FREE ACCOUNT
I TRY TO UPGRADE MY FREE ACCOUNT AND I COULD NOT UPGRADE IT CAN SOMEBODY TELL ME WHY? AND I HAVE THE MONEY SO.
Level up your ASO game with tags & categories in store reviews
Introducing tags and categories in Apptics' store reviews Dear Apptics community, If your app is listed on the Play Store or App Store, you already know how important store reviews and ratings are. They’re one of the most direct signals of user sentiment
Including attachments with estimates
How can attachments be included when an estimate is sent/emailed and when downloaded as a .pdf? Generally speaking, attachments should be included as part of an estimate package. Ultimately, this is also true for work orders and invoices.
Adding VENDOR SKU to PURCHASE ORDERS
how can we add the Vendor SKU when issuing a Purchase Order , so the PO shows the Supplier SKU and our own Internal SKU , which is what we want to receive into the system .
Possible to freely prompt/query CRM data using Zia?
Is it possible to prompt Zia to query on any information stored in the CRM, especially on the data stored in custom text fields? My use case is the people in my organisation have entered lots of text in custom text fields to capture information from an
Restrict employees to take only one day holiday from a multi-day festival holiday
Hi everyone, I have a requirement related to Optional/Festival Holidays in Zoho People. For example, in the month of May there are three optional holiday dates: May 11, May 12, and May 13. Employees can choose one of these days as their optional holiday.
Cannot modify colours in invoice email template
I have tried switching browsers... but I cannot change the (pretty horrible) default colours in the preset email when sending an invoice... the blue banner, red outstanding total and the bright green button... I can change other things but not the colours?
Cannot find zpuid for Zoho Projects user
I'm using the Zoho Projects v3 API to create a task. The task is created successfully, but in order to assign the task owner, the "Create a Task" API also requires the zpuid of the task owner. Unfortunately I cannot find any user-related API calls that
Print a document from Zoho Writer via Zoho Creator
If i use the code below i can get writer to create a new document or email it to me but i want to be able to print it directly from the browser and not have to send it via email and then print. Below is the code im using. Attached options form zoho writer
Allow styling for specific Subform fields in Zoho Creator
Sometimes in forms we need to visually highlight a specific field inside a Subform (for example Sanctioned Amount, Approved Value, Critical Fields, etc.) so that users immediately notice it while entering data. Currently there is no direct UI option to
Placeholder format in Number field does not reflect Max Digits configuration
When the Max Digits (Maximum digits of number) property is set to a smaller value (for example, 2 digits), the placeholder in the input field still displays a 7-digit format (#######). The same behavior can also be observed in Decimal and Currency field
How does SKU work when selling products in parts in Zoho Inventory
Hello everyone, Zoho Inventory does not understand the physical cutting of the piece.. It only tracks quantities of the unit (like feet ). So when you sell part of an item, the system simply reduces quantity for that SKU. Assume that i have a 50 ft long
CRM Cadences - working timesThe Friday afternoon? The next Monday morning? Not at all?
I think I’m writing saying that cadence emails are only sent during the organisations set working hours in CRM. So if a particular email is set to send for example in three days and that lands on a Sunday (when working hours are not operational) when
CRM Cadences - working times
I think I’m right in saying that cadence emails are only sent during the organisations set working hours in CRM. So if a particular email is set to send for example in three days and that lands on a Sunday (when working hours are not operational) when
Push Notification for New Bookings in Zoho Bookings App
when a someone schedules an appointment through the booking page, is there any option to receive a push notification in the mobile app?
Add the same FROM email to multiple department
Hi, We have several agents who work with multiple departments and we'd like to be able to select their names on the FROM field (sender), but apparently it's not possible to add a FROM address to multiple departments. Is there any way around this? Thanks.
Zoho Desk View Open Tickets and Open Shared Tickets
Hi, I would like to create a custom view so that an agent can view all the open tickets he has access to, including the shared tickets created by a different department. Currently my team has to swich between two views (Open Tickets and Shared Open Tickets).
Zoho Expense - Bi-Weekly Report Automation
Hi Zoho Expense Team, My feature request is to please include an option to automate creation of reports bi-weekly (every 2 weeks)
How to Fetch data from Sales Order and Insert into Purchase Order with Deluge
Hello, I am wanting to write a Deluge script that would take the shipping address on a Sales Order and upon conversion to a Sales Order automatically insert it into that corresponding PO. I am new to Deluge but understand that it has great capabilities.
Arquitetura de Aplicações no Zoho Creator: Por que pensar nisso desde o início
Muitas empresas começam a utilizar o Zoho Creator criando formulários simples para automatizar processos internos. Isso é natural — a plataforma é extremamente acessível e permite construir aplicações rapidamente. O problema começa a aparecer quando a
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.
How to Customize & Reorder Spaces in Zoho One 25 (Spaces UI) — Admin Tips Not in the Docs
Hey Zoho Community, After digging around in the new Spaces UI, I found a couple of admin features that aren't well documented yet but are really useful. Sharing here in case others are looking for the same things. 🔁 How to Change the Default Space Users
Non-Avalara Tax Automation wtih Zoho Books
We are paying a ridiculous amount for Avalara. Our team wants to make a change, but they're the only software fully integrated with Zoho. We also don't have the bandwidth to do this manually, so we do need some sort of automated software solution. We
System Components menu not available for Tablet to select language
I have attached a screenshot of my desktop, mobile, and tablet menu builder options. I am using 2 languages in my application. Language Selection is an option under the System Components part of the menu, but only for my desktop and phone(mobile). My
Approvals in Zoho Creator
Hi, This is Surya, in one of my creator application I have a form called job posting, and I created an approval process for that form. When a user submits that form the record directly adding to that form's report, even it is in the review for approval.
Function #9: Copy attachments of Sales Order to Purchase Order on conversion
This week, we have written a custom function that automatically copies the attachments uploaded for a sales order to the corresponding purchase order after you convert it. Here's how to configure it in your Zoho Books organization. Custom Function: Hit
How Zoho Desk contributes to the art of savings
Remember the first time your grandmother gave you cash for a birthday or New Year's gift, Christmas gift, or any special day? You probably tucked that money safely into a piggy bank, waiting for the day you could buy something precious or something you
Estimate PDF Templates - logo too large
Hello, I cloned a standard estimate template, but my logo is showing up much larger than intended. This doesn’t happen with the standard invoice template, where the logo displays correctly. How can I adjust the logo size in the estimate template? Thank
Select CRM Custom Module in Zoho Creator
I have a custom module added in Zoho CRM that I would like to link in Zoho creator. When I add the Zoho CRM field it does not show the new module. Is this possible? Do i need to change something in CRM to make it accesible in Creator?
Invoice emails not sending but reminders are
I am a new user. I have been creating some dummy invoices before I go live and have struck a block. Emails for the invoice are not being recieved by the recipient, however, when I send a reminder for the same invoice the email is sent. NOTE: I have checked
Deleted account recovery
I ended up accidentally deleting our Zoho invoice account while trying to work something out. Emailed support for recovery and restoration of the deleted account, if possible, but they responded by saying they can't find an account associated with that
Devis et factures multipage coupées
Bonjour, je suis sur Zoho invoice et je rencontre un problème sur mes devis et factures lorsqu'ils dépassent 1 page. je me retrouve souvent avec des lignes coupées ou le sous total page 1 et le total page 2. j'aimerai savoir s'il existe une possibilité
Next Page