Actions API - Webhooks APIs - Part 2

Actions API - Webhooks APIs - Part 2


Hello all!! 
Welcome back to the follow-up Kaizen post of Kaizen #219: Actions API - Webhooks APIs - Part 1.

In the previous week, we covered how to configure a basic Webhook and how to include Headers, Body, and URL Parameters using both the POST Webhook API and the Zoho CRM UI.
In this part, we will take one of the previously discussed examples and demonstrate how to achieve the same result using the GET, PUT, and DELETE Webhook APIs.
We will also walk through how to associate a Webhook with a Workflow, how to perform real-time testing by creating a record, and how the external application receives the response sent from Zoho CRM via the Webhook.

Retrieving a Webhook using the GET - Webhook API

Request URL: {{api-domain}}/crm/v8/settings/automation/webhooks/5725767000008778002
 - Note: You can retrieve all available Webhooks using "{{api-domain}}/crm/v8/settings/automation/webhooks" request.

Request Method: GET
Sample Response:

{
    "webhooks": [
        {
            "headers": {
                "module_parameters": [
                    {
                        "name": "Lead_Email",
                        "value": "${!Leads.Email}"
                    },
                    {
                        "name": "Annual_Revenue",
                        "value": "${!Leads.Annual_Revenue}"
                    },
                    {
                        "name": "Profit_Score",
                        "value": "${!Leads.Profit_Score}"
                    }
                ],
                "custom_parameters": [
                    {
                        "name": "source",
                        "value": "zylker-crm"
                    },
                    {
                        "name": "version",
                        "value": "v1"
                    }
                ]
            },
            "created_time": "2025-11-30T07:18:50-08:00",
            "lock_status": {
                "locked": false
            },
            "editable": true,
            "module": {
                "api_name": "Leads",
                "id": "5725767000000002175"
            },
            "related_module": null,
            "url_parameters": null,
            "deletable": true,
            "description": "Send leads with Profit Score > 80 to validation system.",
            "source": "crm",
            "body": {
                "format": null,
                "type": "none"
            },
            "created_by": {
                "name": "Patricia Boyle",
                "id": "5725767000000411001"
            },
            "feature_type": "workflow",
            "http_method": "POST",
            "modified_time": "2025-11-30T07:18:50-08:00",
            "associated": false,
            "name": "Push High Score Leads",
            "modified_by": {
                "name": "Patricia Boyle",
                "id": "5725767000000411001"
            },
            "id": "5725767000008778002",
            "date_time_format": null,
            "authentication": {
                "connection_name": null,
                "type": "general"
            }
        }
    ]
}


Updating the Webhook using the PUT - Webhook API

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

Input JSON:

{
    "webhooks": [
        {
            "headers": {
                "module_parameters": [
                    {
                        "name": "Lead_Email",
                        "value": "${!Leads.Email}"
                    },
                    {
                        "name": "Profit_Score",
                        "value": "${!Leads.Profit_Score}"
                    },
                    {
                        "name": "Lead_Industry", // adding a new field
                        "value": "${!Leads.Industry}"
                    }
                ],
                "custom_parameters": [
                    {
                        "name": "source",
                        "value": "zylker-crm"
                    },
                    {
                        "name": "version",
                        "value": "v1"
                    }
                ]
            },
            "url": "https://webhook.site/abcd1234-5678-90ef-ghij-123456789axx", // changing external application's URL
            "http_method": "POST"
        }
    ]
}


Note: 
  1. You cannot update the module field. The rest of the fields can be updated using the PUT - Webhook API.
  2. Exclude a field, header section, URL parameter section, body section from the request if you want to remove its configuration from your webhook.
  3. http_method is mandatory for the Update call.
  4. To change the external URL, the http_method key is mandatory.

Deleting the Webhook using the DELETE - Webhook API

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

Sample Response:
{
    "webhooks": [
        {
            "code": "SUCCESS",
            "details": {
                "id": "5725767000008778002"
            },
            "message": "Webhook is deleted",
            "status": "success"
        }
    ]
}
Note: You cannot delete a Webhook if it is associated with any automation feature like Workflow and Blueprint.

Associating a Webhook to a Workflow Rule using the Workflow API

Create a Workflow:
You can use the Configure Workflow Rule API to create a workflow.

Associate the Field Update:
You can associate a Webhook action with the workflow by using the unique ID of the Webhook.

Retrieve the Webhook ID using the Get Webhooks API.

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

{
    "workflow_rules": [
        {
          .
          .
          .
            "execute_when": {
                "details": {
                    "trigger_module": {
                        "api_name": "Leads",
                        "id": "5725767000000002175"
                    }
                },
                "type": "create_or_edit"
            },
            "module": {
                "api_name": "Leads",
                "id": "5725767000000002175"
            },
            "name": "High Profit Leads",
            "conditions": [
                {
                    "instant_actions": {
                        "actions": [
                            {
                                "name": "Push High Score Leads",
                                "id": "5725767000008775001", //associating the created Webhooks with the Workflow
                                "type": "webhooks"
                            }
                        ]
                    },
                    "scheduled_actions": null,
                    "criteria_details": {
                       .
                         .
                        .
                        "criteria": {
                            "comparator": "greater_equal",
                            "field": {
                                "api_name": "Profit_Score",
                                "id": "5725767000008570336"
                            },
                            "type": "value",
                            "value": "80"
                        }
                    }
                 
                }
            ],
            .
            .
            .
        }
    ]
}


For more details on Workflow Rules using APIs, refer to Kaizen #213 - Workflow APIs - Part 1, Part 2, and Part 3.

Sample Webhook:


Creating a high Profit Score lead using the Create Records API

To test our webhook end-to-end, we will create a high Profit Score lead using the Create Records API. When this lead meets the workflow condition, the webhook fires, allowing us to observe the exact payload sent to the external system.

Request URL:  {{api-domain}}/crm/v8/settings/automation/workflow_rules
Request Method: POST
Input JSON
{
    "data": [
        {
            "Owner": {
                "name": "Tim",
                "id": "5725767000000411001",
                "email": "tim@zoho.com"
            },
            "Annual_Revenue": 2000000,
            "Full_Name": "Patricia Boyle",
            "Layout": {
                "name": "Standard",
                "id": "5725767000000091055"
            },
            "Company": "Info Technology",
            "Email": "infotech@mail.com",
            "Industry": "Large Enterprise",
            "First_Name": "Patricia",
            "Profit_Score": 90,
            "Profit_Category": "High Profit",
            "Last_Name": "Boyle"
        }
    ]
}
Real response in Zylker’s external validation system:

After setting up the webhook and linking it to a workflow, we added a test lead that matched our condition. The external app received the webhook instantly, just the way we configured. This shows how easily Zoho CRM can push data to any system in real time. This real-time flow ensures clean, validated, enriched leads reach the Sales team faster, improving response time and conversion rates.

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!



 


    • Recent Topics

    • Problem Adding Facebook Account

      Hi, I'm new here, I'm having trouble setting up my Facebook account as a social channel. I think the issue is down to how my Facebook is set up, which is pretty confusing. I have a personal Facebook account (let’s called it A) which is my main Facebook
    • Zoho Desk Teams App is not loading

      Hi Zoho Desk support. Need an assistance on the Zoho Desk Teams app. Once I click View Ticket, it isn't showing anything. Kindly refer to attached: ZohoDesk Teams App_View Ticket Error.jpg For our Dashboard, we are still experiencing the same issue. Kindly
    • About Meetings (Events module)

      I was working on an automation to cancel appointments in zoho flow , and in our case, we're using the Meetings module (which is called Events in API terms). But while working with it, I'm wondering what information I can display in the image where the
    • Zoho People - Retrieve the Leave Details - get("LeaveCount")

      Hi, Zoho People I need to collect all of an employee's leave requests for the calendar year and check how many half-days they have taken. If I run the script on the query he just modified, I can retrieve the information related to that query and use the
    • 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
    • Which WhatsApp API works seamlessly with Zoho CRM?

      I’m exploring WhatsApp API solutions that integrate seamlessly with Zoho CRM for customer communication, lead nurturing, and automation. I would love to hear insights from those who have successfully implemented WhatsApp within Zoho CRM. My Requirements:
    • Allow people to sign a zoho form by using esign or scanned signature

      Allow people to sign a zoho form by using esign or scanned signature
    • Button to Reapply Filters on Sheet(s)

      I wrote a macro that I attached to a button to reapply the filters on all my sheets and it says it works, but it doesn't actually do anything. What is wrong with it? Is there another way? Or even make it work for one sheet? Sub UniversalFilterRefresh()
    • Integrate Multiple ZohoBooks organization with zoho projects

      We have successfully connected our Zoho Books with Zoho Projects for synronizing timesheet data. Our Business specialty is, that the staff of the Main company (A) is working on several projects, but the Clients are sometimes contracted and paying to a
    • Zoho OAuth Connector Deprecation and Its Impact on Zoho Desk

      Hello everyone, Zoho believes in continuously refining its integrations to uphold the highest standards of security, reliability, and compliance. As part of this ongoing improvement, the Zoho OAuth default connector will be deprecated for all Zoho services
    • Flexible Partial-Use Coupons (Stored Value Credits)

      Subject: Feature Request: Ability for users to apply partial coupon balances per transaction Problem Statement Currently, our coupons are "one-and-done." If a user has a $50 coupon but only spends $30, they either lose the remaining $20 or are forced
    • Unable to Assign Multiple Categories to a Single Product in Zoho Commerce

      Hello Zoho Commerce Support Team, I am facing an issue while assigning categories to products in Zoho Commerce. I want to assign multiple categories to a single product, but in the Item edit page, the Category field allows selecting only one category
    • How do I add todays date to merge field

      I don't see any selection of todays date when creating a letter. Surely the date option of printing is standard? John
    • Add RTL and Hebrew Support for Candidate Portal (and Other Zoho Recruit Portals)

      Dear Zoho Recruit Team, I hope you're doing well. We would like to request the ability to set the Candidate Portal to be Right-to-Left (RTL) and in Hebrew, similar to the existing functionality for the Career Site. Currently, when we set the Career Site
    • Tracking Emails sent through Outlook

      All of our sales team have their Outlook 365 accounts setup with IMAP integration. We're trying to track their email activity that occurs outside the CRM. I can see the email exchanges between the sales people and the clients in the contact module. But
    • Whats that

      Price?
    • The same Contact associated to multiple Companies - Deals

      Hi, I would like to know if there is an option to associate the same contact with multiple companies (two or more) deals, using the same contact details for all. This is because we have contacts who are linked to different companies or branches of the
    • Portals-Adjust Column Sizes

      I am trying to adjust the column widths in Portals tabs. Columns that don't need to be wide are wide and longer ones are very short. I thought adding more to the digits box in Edit would widen them, but it doesn't. Anyone know how to adjust these?
    • Add link/button to open approved record from approval list and detail views?

      Hi, How do I allow users to click on an approval record and open that submission? For example, userA submits a quotation then userB approves/rejects. They both can see the quotation on "completed task" list & detail views, but there's no way for them
    • record submitted from creator and invoice is creating in books , but the workflow of books is not tiggering on create of record in books

      record submitted from creator and invoice is creating in books , but the workflow of books is not tiggering on create of record in books headermap = Map(); headermap.put("X-ZOHO-Execute-CustomFunction","true"); response_inv = invokeurl [ url :"https://www.zohoapis.com/books/v3/invoices/fromsalesorder?salesorder_id="
    • Prevent editing of a record after getting approved/rejectedr

      Hi, I'd like to block any user from editing a record after it was approved or rejected, how can I do that?
    • Formula Field/Campo de Fórmula

      Hello everyone, I have a purchase requisition form in which each department submits a request, and the request is automatically routed to the person responsible for that department. In this form, I have several fields with the following link names: Quantidade1,
    • Free Webinar: Zoho Sign for Zoho Projects: Automate tasks and approvals with e-signatures

      Hi there! Handling multiple projects at once? Zoho Projects is your solution for automated and streamlined project management, and with the Zoho Sign extension, you can sign, send, and manage digital paperwork directly from your project workspace. Join
    • Formatting Problem | Export to Zoho Sheet View

      When I export data to Zoho Sheet View, ID columns are automatically formatted as scientific notation. Reformatting them to text changes the actual ID values. For example, 6557000335603071 becomes 6557000335603070. I have attached screenshots showing this
    • Introducing Workqueue: your all-in-one view to manage daily work

      Hello all, We’re excited to introduce a major productivity boost to your CRM experience: Workqueue, a dynamic, all-in-one workspace that brings every important sales activity, approval, and follow-up right to your fingertips. What is Workqueue? Sales
    • Feature Request - The Ability to Link A Customer with a Vendor

      Hi Finance Suite Team, Many businesses buy and sell products from the same companies or individuals. For example, a car sales business may buy a car from a member of the public, and that member of the public may also buy a new car from us. This makes
    • Long table name (sync from Zoho Creator)

      Dears, How can I remove the suffix in parentheses? These tables are synced from Zoho Creator and are treated as system tables, so their names cannot be changed. This issue makes the aggregation formulas look awful.
    • [Free Webinar] Learning Table Series - Streamlining incident management process with Zoho Creator

      Hello everyone, We’re excited to invite you to another edition of the Learning Table Series webinar. As you may already know, we've moved to a purpose-based approach in the Learning Table Series this year. Each session now focuses on how a Zoho Creator
    • Unattended - Silent

      How can I hide the tray icon / pop up window during unattended remote access for silent unattended remote access?
    • Importing into Multiselect Picklist

      Hi, We just completed a trade show and one of the bits of information we collect is tool style. The application supplied by the show set this up as individual questions. For example, if the customer used Thick Turret and Trumpf style but not Thin Turret,
    • Text snippet

      There is a nice feature in Zoho Desk called Text Snippet. It allows you to insert a bit of text anywhere in a reply that you are typing. That would be nice to have that option in Zoho CRM as well when we compose an email. Moderation Update: We agree that
    • Marketing Tip #18: Make your online store mobile-friendly to improve traffic

      Most online shoppers browse on their phones first. If your store is hard to read, slow to load, or tricky to navigate on mobile, they’ll bounce fast. A mobile-friendly store doesn’t just look nice; it improves engagement, reduces drop-offs, and helps
    • [Need help] Form closed. Please contact your form administrator for further assistance.

      https://forms.zohopublic.com/cceinfoifly1/form/CCE2025CCEFocusGroupRegistrationForm2025Fall/formperma/s_8XcLETTbFxZ_TAS4r_W6W5UBl8o5oxEnIX35IBKg4 I checked we didn't exceed the usage limit and form availability is enabled, Please help us enable this form
    • Zoho People. Updating TabularData

      I am trying to update tabular data in the record. I always have the same response. I have checked many times. Section ID is correct. May be something wrong with request structure itself. Can someone help me. Body content type: form urlencoded query params
    • Automatically CC an address using Zoho CRM Email Templates

      Hi all - have searched but can't see a definitive answer. We have built multiple email templates in CRM. Every time we send this we want it to CC a particular address (the same address for every email sent) so that it populates the reply back into our
    • Unable to Send Different Email Templates for Different Documents in Zoho Sign

      Hello Zoho Community, I am facing a limitation with Zoho Sign regarding email notifications sent to customers when a document is sent for signing. Currently, whenever I send any template/document for signing, the email notification that goes to the customer
    • Reminder needs 0 minute choice

      I most use 0 minute reminders.  Every other calender service has this choice.  If I create an event in my Android calendar with 0 minute reminder it will change to 5 minute.  Please ad 0 as a reminder choice, this should be a 5 minute fix.  Thanks.
    • Customer ticket creation via Microsoft Teams

      Hi all, I'm looking to see if someone could point me in the right direction. I'd love to make it so my customers/ end users can make tickets, see responses and respond within microsoft teams. As Admin and an Agent i've installed the zoho assist app within
    • Is there a way to update all the start and end dates of tasks of a project after a calendar change?

      Hi! Here's my situation. I've built a complete project planning. All its tasks have start dates and due dates. After completing the planning, I've realized that the project calendar was not the right one. So I changed the project calendar. I now have
    • How to update task start date when project start date changes?

      Hi there, When the start date of a project changes, it's important to update the start dates of the tasks associated with that project to reflect the new timeline. Is there a way to shift the start date of all project tasks when the start date of a project
    • Next Page