Actions API - Webhooks APIs - Part 1

Actions API - Webhooks APIs - Part 1



Hello all!!
Welcome back to a fresh Kaizen week.
In the previous weeks, we covered Workflow Rules APIs, Actions APIs - Email Notification APIs, Tasks Update API, and Field Update API.

This week, we will continue with another Actions API - Webhooks API in Zoho CRM.

Webhooks in Zoho CRM

A webhook allows Zoho CRM to send real-time information to another application the moment something important happens. Webhooks let CRM push data instantly to an external URL whenever the workflow condition is met.
Webhooks do not notify on every record event by default. They trigger only when specific automations, such as a Workflow Rule you configure, are executed. This helps for specific real-time automation needs, such as sending high-value leads to an external validation service.

Use case

Zylker, an IT solutions provider, uses Zoho CRM to manage all incoming leads. But not every new lead is ready for the Sales team right away. Not all leads need immediate follow-ups. For leads with a high Profit Score (80+), it usually means strong buying intent, but they may contain fake information.

Why does Zylker use Zoho CRM and send these leads to an external validation application?

Before Sales reaches out, Zylker wants to make sure these high-value leads have valid information. While CRM keeps the lead data organized, a specialized third-party validation systems check any fraudulent activities and confirm whether the email, phone number, or other details are real.

To do this quickly, Zylker uses Webhooks in Zoho CRM. The moment a lead crosses the 80+ score, Zoho CRM automatically sends the lead’s data to Zylker’s external validation system. This lets Zylker verify the lead in real time and send back a clean, accurate, sales-ready profile for the Sales team to follow up on.

From here, we will explain every part of Webhooks by showing how it looks in the Zoho CRM UI and how to do the same using the API. Each step will be shown side-by-side, so you can clearly see how the UI setup translates into the API request.

Configuring Webhooks for Zylker’s Use Case - UI Method

  1. Go to Setup 
  2. Navigate to Automation
  3. Choose Actions -> Webhooks
  4. Click Configure Webhook
You will see the window shown below.
Webhook - UI view

The following sections explain what each field means in three parts:
  1. Basic fields to configure Webhook.
  2. Configuring Headers 
  3. Configuring Body

Filling the basic Webhook details via UI



Filling the basic Webhook details via Create Webhook API

Request URL: {{api-domain}}/crm/v8/settings/automation/webhooks
Request Method: POST
Input JSON

{
    "webhooks": [
        {
            "name": "Push High Score Leads",
            "description": "Send leads with Profit Score > 80 to validation system.",
            "module": {
                "api_name": "Leads",
                "id": "5725767000000002175"
            },
            "authentication": {
                "type": "general"
            },
            "http_method": "POST"
        }
    ]
}


Keys explanation

  1. name (mandatory): Name of your webhook.
  2. description: Add a short note about what this webhook does.
  3. module (mandatory): Select the module from where the external application listens the changes. In our case, select Leads module to push high-score leads.
  4. url (mandatory):  Specify the external endpoint where CRM will send the data. This lets the external application see what CRM sends.
    1. Note: In this post, we have used an endpoint from Webhook.site
  5. authentication (mandatory): Specify authentication type for the webhook endpoint. 
  6. Possible types:
    1. general: The receiving system does not require OAuth. You can pass OAuth tokens manually in headers.
    2. connections:
      1. OAuth-based integrations: Systems that use Zoho’s Connections.
      2. For our Zylker use case, we select General.
            Note: In Zoho CRM API V8, Webhooks currently support only General authentication. Connection-based authentication will be available in a future update.
  1. http_method (mandatory): Select a HTTP method that allows you to send structured data. 
            Possible values: POST, GET, PUT, DELETE

In our case, we use POST to create a new record in the external app with the necessary lead details, allowing the external system to run its validation checks.

HTTP methods and their supported parameters - Headers, Body, URL Parameters

  HTTP Method

  Headers

  Body

  URL Parameters

POST

  • Module parameters

  • Custom parameters

Type: form-data

Module parameters
Custom parameters
User-defined parameters

Formats: null

Type: raw

Formats: Text, JSON, HTML, XML

      Not Supported

PUT

  • Module parameters

  • Custom parameters

Type: form-data

Module parameters
Custom parameters
User-defined parameters

Formats: null

Type: raw

Formats: Text, JSON, HTML, XML

      Not Supported

GET

     Not Supported

           Not Supported

  1. Module parameters
  2. Custom parameters
  3. User-defined parameters   
  

DELETE

   Not Supported

          Not Supported

  • Module parameters

  • Custom parameters

  • User-defined parameters


Each HTTP method supports different parameter types. The above table shows which methods support Headers, Request Body, and URL Parameters. Detailed explanations of these parameter types are provided in the following section.

Creating a Webhook with Headers, Body, and URL Parameters

When a webhook is triggered in Zoho CRM, the data is sent to the external application as part of the HTTP request.
The data can be sent in three places:
  1. Headers
  2. Body (Form-Data or Raw)
  3. URL Parameters 
Each part serves a different purpose.

Configuring Headers 

UI - Configuration

Headers allow you to send extra information along with your webhook request. These help when the external app needs extra data like auth tokens or CRM field values.

Zoho CRM supports two types of headers:
  1. Module Parameters - Dynamic values from CRM fields
  2. Custom Parameters  - Static values you define

Module Parameters - dynamic CRM data

Module parameters allow you to send values from CRM fields inside the header. These values change depending on the record that triggered the webhook.

A module parameter consists of:
  1. Parameter Name - A unique header key that you define. It does not have to match the CRM field API name.
  2. Parameter Type - Defines the source of the data you are mapping. It can come from the selected CRM module such as Leads and Contacts, lookup fields, User fields such as Lead Owner, or Organization fields.
  3. Parameter Value - The merge field value. Example, ${!Leads.Created_By.id}
Note: If you decide to use Headers, then you must add at least one module_parameter. Otherwise CRM will show an error. 

Example:

Parameter Name

Parameter Type

Parameter Value

Lead_Email

Leads

Email

Annual_Revenue

Leads

Annual Revenue

Profit_Score

Leads

Profit Score

Created_By

Created  By

User Id


Custom Parameters - static values

Custom parameters are key-value pairs that never change.

These are useful for:
  1. API version
  2. Tags like “zylker-crm”

Name

Value

source

zylker-crm

version

v1

 

  

Configuring Headers via Create Webhook API

Request URL: {{api-domain}}/crm/v8/settings/automation/webhooks
Request Method: POST

Input JSON

{
    "webhooks": [
        { 
            .
            .
            .
            "http_method": "POST",
            "headers": {
                "module_parameters": [
                    {
                        "name": "Lead_Email",
                        "value": "${!Leads.Email}"
                    },
                    {
                        "name": "Annual_Revenue",
                        "value": "${!Leads.Annual_Revenue}"
                    },
                    {
                        "name": "Profit_Score",
                        "value": "${!Leads.Profit_Score}"
                    },
                    {
                        "name": "Created_By",
                        "value": "${!Leads.Created_By.id}"
                 }
                ],
                "custom_parameters": [
                    {
                        "name": "source",
                        "value": "zylker-crm"
                    },
                    {
                        "name": "version",
                        "value": "v1"
                    }
                ]
            }
        }
    ]
}


When should Zylker use Headers?
For the 80+ Profit Score validation use case, Zylker can include module parameters such as Lead Email, Profit Score, and Lead ID, which are helpful for fraud-detection tools.
Similarly, Zylker can include custom parameters like source=zylker-crm and api_version=v1 to help the external system identify where the webhook originated.

Configuring the Body of a Webhook - form-data & raw formats

After setting up the basic details and Headers, the next step is to configure the Body.
The Body is where the main CRM record data is sent, which is different from the Header section that only carries metadata like auth tokens or quick identifiers.

Depending on your needs, the Body can be either Form-Data or Raw. The list below shows the supported options for each format.
  1. Form-Data:
    1. Module parameter
    2. Custom parameter
    3. User-defined format.
  2. Raw:
    1. Text - plain messages
    2. JSON -  structured API payload
    3. HTML - formatted messages
    4. XML - traditional enterprise systems


Form-Data Body: key-value 

UI - Configuration


Zoho CRM lets you build Form-Data using three types of parameters:
  1. Module Parameters
  2. Custom Parameters
  3. User Defined Parameters
Use Form-Data when the external app expects key-value pairs - similar to how HTML forms submit data.

Note:
  1. Headers are for sending supporting information that helps the external system understand the request - this can include auth details, source identifiers, or key CRM fields like email or score that help with quick categorization or filtering. 
Why do Module and Custom parameters appear again in Form-Data?

The same Module Parameters and Custom Parameters are available in the Body because:
  1. Headers - Provide supporting details such as identifiers or quick-check values. For example, Lead ID, or source tags that help the external system check and route the request.
  2. Body - Contains the complete lead information that the external validation system needs to process.
Although the parameter names look the same (Module, Custom), their purpose changes:

Where parameters are used

Purpose

Example

Headers

Metadata - OAuth,tags, and context

source: zylker-crm

Form-Data (Body)

Main record data - actual lead details sent to the app.

 

lead_email=patricia@zylker.com

So Zoho CRM gives you the same structure, but used differently depending on where the data is placed.

User-Defined Parameters
User-Defined parameters let you build custom, human-readable messages or templates. This parameter is available only in the Body, not in Headers. 

   

Parameter Name

Parameter Value

custom_message

New high-score lead: ${Leads.First Name}${Leads.Last Name} (Score: ${Leads.Profit Score})


This is very helpful if your external app expects a text message, notes, or a description field.

Configuring the Body of a Webhook - form-data via Create Webhook API

Request URL: {{api-domain}}/crm/v8/settings/automation/webhooks
Request Method: POST

Input JSON

{
    "webhooks": [
        {
             .
             .
             .
            "body": {
                "form_data_content": {
                    "module_parameters": [
                        {
                            "name": "Lead_Email",
                            "value": "${!Leads.Email}"
                        },
                        {
                            "name": "Annual_Revenue",
                            "value": "${!Leads.Annual_Revenue}"
                        },
                        {
                            "name": "Profit_Score",
                            "value": "${!Leads.Profit_Score}"
                        },
                        {
                            "name": "Created_By",
                            "value": "${!Leads.Created_By.id}"
                        }
                    ],
                    "custom_parameters": [
                        {
                            "name": "source",
                            "value": "zylker-crm"
                        },
                        {
                            "name": "version",
                            "value": "v1"
                        }
                    ],
                    "user_defined_parameters": {
                        "name": "custom_message",
                        "value": "New high-score lead: ${!Leads.First_Name}${!Leads.Last_Name} (Score: ${!Leads.Profit_Score})"
                    }
                },
                "type": "form_data"
            },
            .
            .
            .
        }
    ]
}


Raw Body - JSON / XML / HTML / Text

Zoho CRM’s Webhook Body section allows you to send data to an external application in a Raw format. This is useful when the receiving system expects structured data in the following structure.

You can choose:
  1. Raw + Text
  2. Raw + JSON
  3. Raw + HTML
  4. Raw + XML

Raw + Text:

Text format is the simplest. You can type any text and insert merge fields.

UI - Configuration



When to use Text?
  1. When sending a simple message. 
  2. When the external app only expects plain text.

Configuring the Body of a Webhook - Raw - "Text" via Create Webhook API

Request URL: {{api-domain}}/crm/v8/settings/automation/webhooks
Request Method: POST

Input JSON

{
    "webhooks": [
        {
           .
           .
           .
            "body": {
                "raw_data_content": "New high score lead: ${!Leads.First_Name} ${!Leads.Last_Name}, ${!Leads.Email}, ${!Leads.Annual_Revenue}, ${!Leads.Phone}, ${!Leads.Industry}, ${!Leads.Owner}",
                "format": "Text",
                "type": "raw"
            },
            .
            .
            .
        }
    ]
}


Raw + JSON:

This is the most common format for APIs. Use this when the receiving system expects structured JSON data.

UI - Configuration



Configuring the Body of a Webhook - Raw - "JSON" via Create Webhook API

Request URL: {{api-domain}}/crm/v8/settings/automation/webhooks
Request Method: POST

Input JSON

{
    "webhooks": [
        {
          .
          .
          .
            "body": {
                "raw_data_content": "{\n    \"id\": \"${!Leads.id}\",\n    \"full_name\": \"${!Leads.Last_Name}\",\n    \"email\": \"${!Leads.Email}\",\n    \"company\": \"${!Leads.Company}\",\n    \"profit_score\": \"${!Leads.Profit_Score}\",\n    \"owner\": \"${!Leads.Owner}\"\n}",
                "format": "JSON",
                "type": "raw"
            },
           .
           .
           .
        }
    ]
}


When to use JSON?
  1. When the external system expects structured data
  2. Easier validation

Raw + HTML:

HTML format is useful for sending stylized messages or formatted content.

UI - Configuration

Configuring the Body of a Webhook - Raw - "HTML" via Create Webhook API

Request URL: {{api-domain}}/crm/v8/settings/automation/webhooks
Request Method: POST

Input JSON

{
    "webhooks": [
        {
            .
            .
            .
            "body": {
                "raw_data_content": "<p><strong>New Lead Alert</strong></p>\n<p>Name: ${!Leads.Last_Name}</p>\n<p>Email: ${!Leads.Email}</p>\n<p>Company: ${!Leads.Company}</p>\n<p>Profit Score: ${!Leads.Profit_Score}</p>\n<p>Owner: ${!Leads.Owner}</p>",
                "format": "HTML",
                "type": "raw"
            },
            .
            .
            .
        }
    ]
}


When to use HTML?
  1. If the external system displays formatted output

Raw + XML:
Some legacy systems or enterprise applications prefer XML.

UI - Configuration

Configuring the Body of a Webhook - Raw - "XML" via Create Webhook API

Request URL: {{api-domain}}/crm/v8/settings/automation/webhooks
Request Method: POST

Input JSON

{
    "webhooks": [
        {
          .
          .
          .
                "raw_data_content": "<Lead>\n    <Id>${!Leads.id}</Id>\n    <Name>${!Leads.Last_Name}</Name>\n    <Email>${!Leads.Email}</Email>\n    <Company>${!Leads.Company}</Company>\n    <ProfitScore>${!Leads.Profit_Score}</ProfitScore>\n<LeadOwner>${!Leads.Owner}</LeadOwner>\n</Lead>",
            "format": "XML",
            "type": "raw"
        },
            .
            .
            .
    }
]
}



When to use XML?
  1. With older systems
  2. When the receiving system only supports XML

Note:
  1. When you switch the webhook method in the UI, Zoho CRM changes the options you can configure:
            GET Method
    1. Only URL Parameters are available
    2. Headers are hidden
    3. Body is hidden
    4.  Because GET requests always send data through the URL and cannot carry a body.
            DELETE Method
    1. Headers are available
    2. URL Parameters are available
    3. Body is still not supported
    4. DELETE requests can include headers, but Zoho CRM does not allow sending a body for DELETE webhooks.

  1. Date-time format:
            Zoho CRM will format any Date or DateTime fields in your webhook according to the format you select.
            
            UI - Configuration

            

           API - Configuration

 
  {
    "webhooks": [
        {
            "module": {
                "api_name": "Leads",
                "id": "5725767000000002175"
            },
            "url_parameters": {
                "module_parameters": [
                    {
                        "name": "Created_Time",
                        "value": "${!Leads.Created_Time}"
                    }
                ]
            },
            "description": "Send leads with Profit Score > 80 to validation system.",
            "http_method": "GET",
            "name": "Push High Score Leads",
            "date_time_format": {
                "datetime_format": "mm-dd-yyyy HH:MM:SS",
                "date_format": "yyyy-mm-dd",
                "time_zone": "America/Los_Angeles"
            },
            "authentication": {
                "connection_name": null,
                "type": "general"
            }
        }
    ]
}


With this, we have covered what a Webhook is in Zoho CRM, how to configure a basic Webhook, how to configure a Webhook with Headers, Body, and URL Parameters, how each component works, how to configure them using the UI, and how the same setup can be created through the POST Webhooks API.

In Part 2, we will explain 
  1. How to manage Webhooks using the GET, PUT, and DELETE Webhook APIs
  2. How to associate a Webhook with a Workflow
  3. How to perform real-time testing by creating records
  4. How an external application receives data from Zoho CRM via Webhook.

We hope this post helps you understand how to use Webhooks through the Zoho CRM Actions API - Webhooks API.

Try it out, and let us know your experience in the comments section or reach out to us at support@zohocrm.com.
Stay tuned for more insights in our upcoming Kaizen posts!

Cheers!


    • Sticky Posts

    • Kaizen #210 - Answering your Questions | Event Management System using ZDK CLI

      Hello Everyone, Welcome back to yet another post in the Kaizen Series! As you already may know, for the Kaizen #200 milestone, we asked for your feedback and many of you suggested topics for us to discuss. We have been writing on these topics over the
    • 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.
      • 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
      • API method to get activity feed in Recruit

        Hi community, I'm trying to figure out - is there any API method tto get information about datetime when Recruit/Candidates record tag where added?
      • Printing Mailing labels

        Is there any way to adjust the size of the printing labels? or product would I use to print labels from Zoho? Thanks, Josef Krieger Moderation Update (14th April 2025): We have another post discussing the same topic with votes and feedback from users.
      • Default to Current Date

        I'm importing data from a excel spread sheet that does not have date column and I'd like the date column in the Zoho Database to default to the current date. Any way I can do this?
      • Different Company Name for billing & shipping address

        We are using Zoho Books & Inventory for our Logistics and started to realize soon, that Zoho is not offering a dedicated field for a shipping address company name .. when we are creating carrier shipping labels, the Billing Address company name gets always
      • Make Packages from multiple sales order of a single customer

        Our customers sends orders to us very frequently, some times what customer wants is to ship items from 5 to 6 sales orders in a single shipment. it will be very nice if, zoho can implement this function, in which we can select items from other sales orders of the customer.
      • Show Custom Button in Portal Listview Canvas

        I have created a custom button that shows in a list view of deals (internally I can see it). I have permissions to allow this button on the portal. But it is not displaying in the canvas list? Before I do too much leg work, is this function allowed?
      • Zoho Sites "pages" management page

        I have 80 plus pages on zoho sites. When I go to the "pages" link to view and edit pages, They are not in any kind of order, so I spend lots of time searching for pages when I need to edit or create new. How can I change the view order of all my pages
      • AI feature in Zoho Desk suggesting answers based on past ticket threads

        Hi I would like to suggest something that would be very useful : instead of suggesting answers based on the Knowledge Base, I think it would be great if Zia could analyze the history of all customer and agents threads, to suggest answers in new tickets.
      • Advanced Customization of the Help Center using JavaScript

        Hello everyone, The Help Center in Zoho Desk can be customized by using HTML and CSS to provide structure and enhance the page's appearance—but what if you want to add interactive and dynamic elements? You can add these effects with JavaScript, a programming
      • Introducing Zoho POS for the Kingdom of Saudi Arabia

        Hey everyone, We are excited to kick-start December with a completely personalized edition of POS for retail businesses in Saudi Arabia to help run your operations with ease. It offers four different subscription plans—Free, Standard, Professional, and
      • Unveiling Zoho Sites 2.0 - A new dimension in website building

        Dear Zoho Sites Users, We are thrilled to announce the launch of Zoho Sites 2.0 today! This refresh represents a significant step forward in the capabilities of Zoho Sites and is crucial for creating a lasting and positive impact on our customers' businesses.
      • Script Editor not an option

        I am trying to apply a script to a sheet and Script Editor is not an option. I don't want to go outside Sheets to do this (like Creator) if it can be done inside Sheets.
      • Not able to link email text.

        Kindly check Zoho Sites. I am unable to turn a text into a email link. The save button does not work. Kindly try yourself to see it not responding to save.
      • Migrate data from old to new account

        Hy, Have one Old Zoho Notebook Account with Data , want to migrate that whole Data to New Zoho Notebook Account which is in Zoho One . Is that possible ? If Yes then how?
      • Zoho Analytics Regex Support

        When can we expect full regex support in Zoho Analytics SQL such as REGEXP_REPLACE? Sometimes I need to clean the data and using regex functions is the easiest way to achieve this.
      • Add Custom Reports To Dashboard or Home Tab

        Hi there, I think it would be great to be able to add our custom reports to the Home Tab or Dashboards. Thanks! Chad
      • landed cost-need help with different currency under the same bill

        I’m having trouble recording landed costs in Zoho Inventory/Books. My purchase order is in CNY, but the landed cost (freight) I pay is in USD. Zoho forces everything under the same bill to use one currency, so I can’t enter the landed cost in its actual
      • Pricing Strategies: #1 Nuances in Pricing

        When Clara first opened her digital printing shop, pricing was simple. She sold handmade greeting cards, planners, business cards, and other physical items at fixed label prices, individually and in bulk. One SKU, one price, one bill, and that's all it
      • [Free Webinar] Learning Table Series – Education Management in Zoho Creator

        Hello Everyone! We’re excited to invite you to another edition of Learning Table Series, where we showcase how Zoho Creator empowers industries with innovative and automated solutions. About the Learning Table Series The Learning Table Series is a free,
      • Move attachments from one module to another with Deluge

        I have created a button that works just like the convert button for my custom modules. I would like this custom function to move any attachments in this record to the new module. I can't seem to find any documentation on how this can be accomplished.
      • Help in function code

        Hi, could someone look at the code below and tell me what 's wrong with it? After a deal creation or edition the code should find the related Account, than all open Deals for that Account and copy the field Total_Open_Deals from the Account record to
      • Automation Series: Auto-update Phase Status

        Hello Folks! You can auto-update your phase's status based on status of underlying tasks using custom functions. In this series, we will showcase how to create and run custom functions, using Deluge, with ease. Follow the steps below and automate your
      • how to add subform over sigma in the CRM

        my new module don't have any subform available any way to add this from sigma or from the crm
      • Zoho Projects - Project Details on the Project Menu

        Hi Project's team, I've helped may businesses setup and use Zoho Project and one thing I see time and time again is confusion on where to find the Project Details information. I would be much more intuitive if Project Details was on the menu before Dashboard.
      • Zoho Projects - Add Feed to Project Tabs

        Hi Projects Team, I'm working on a lightweight communications requirement for one of my customers in relation to communicating with their client users via Zoho Projects. I noticed that the Feed is only available in the Collaboration section, but you can
      • Flow - Fetch info from drop down in another module

        I am running into a road block which I thought would be a simple task. My goal - The account is assigned to a "route" which can be selected from a drop down menu and adds a tag to the account accordingly (easy enough). Now when I create a task for this
      • Show unsubscribed contacts ?

        Hello, I would like to display the unsubscribed contacts. Unfortunately, I do not have this subscription type as described in the documentation (https://help.zoho.com/portal/en/kb/marketing-automation-2-0/user-guide/contacts/contact-management/articles/subscription-type-24-1-2024#Subscription_Type_field.)
      • Zoho Developer Community Hackathon 2025 is LIVE!

        Hey developers! It’s that time of the year again — the Zoho Developer Community Hackathon 2025 is officially open for registrations! If you’ve been waiting for a chance to stretch your skills, try something new, or finally bring that idea to life, this
      • Converted Leads Not Showing in Lead Reports

        Converted leads are not showing in the Lead reports. How can I make converted leads visible in the report,
      • Text widgets in dashboards

        Having a text widget in a dashboard would help immensely. It would allow adding links to related documents, relevant CRM views, etc. It would allow adding explanations of the data displayed in the other widgets, about how to interpret them or about filtering.
      • [Webinar] Zoho Writer for content creators and publishing houses

        Managing multiple drafts, edits, and client reviews doesn't have to slow you down. Join our upcoming webinar to see how Zoho Writer helps content creators and publishing houses create, edit, and publish seamlessly—all in one place. You'll learn how to:
      • Adding Reports to Portals

        Is there a way to add Reports to portals so only the user can see report templates relevant to them?
      • How to assign one Manual to multiple Spaces?

        Hello, I have two spaces, one called tech knowledge and the other one called HR knowledge. I have a manual that is called HR tech. I want to assign this manual to HR knowledge and tech knowledge. How should I do that?
      • Introducing VeriFactu Support in Zoho Books

        Hello users, Spain has introduced the VeriFactu system under Real Decreto 1007/2023 to ensure integrity, traceability, and anti-fraud compliance in e-invoicing. Starting January 1, 2026, all B2B invoices must be reported to Agencia Estatal de Administración
      • How can I assign courses to Spaces?

        How can I make courses show up here in this space?:
      • When will Zoho Learn be able to support SCORM files on the mobile app?

        When I click the SCORM content, I just get a message saying it's not possible yet. Yet implies that it will be coming soon. All I'm asking for is a realistic timeline so I know whether or not to invest my time in using it. If it will be soon, then I will
      • Announcing new features in Trident for Windows (v.1.35.6.0)

        Hello Community! Trident for Windows just got better with an update that makes working with your emails even more efficient. Let’s dive into what’s new! Work with PST files more efficiently. You can now do more than just view mounted PST files. You can
      • Marketing Tip #9: Track your traffic sources

        Not all marketing channels work equally well. Knowing whether your visitors come from Google, Instagram, or email helps you focus on what actually drives sales. Try this today: Check your Zoho Commerce reports or connect Zoho PageSense to see your top
      • Google Analytics import data inaccurate (as of October 11, 2025)

        We have Zoho Analytics connected to GA4 to import daily event data. This has been running without issue for a couple of years. However, a month ago we started noticing discrepancies. All data until October 10 lines up perfectly - October 11 onward is
      • Next Page