Hello Biginners!
With the introduction of
Zoho's Zia Agents, automation in Bigin has moved beyond predefined rules into something much more dynamic and intelligent. Instead of building rigid workflows, you can now create custom Zia Agents that understand context, process instructions, and perform actions across your applications.
Using Agent Studio, you can construct these custom Zia agents to handle specific business needs such as responding to leads, updating CRM records, or executing communication workflows on behalf of Bigin users.
What You'll Learn in This Post
In this post, we'll cover:
- Real-world scenario
- Deploying a custom Zia Agent
- Understanding the Agent API
- Triggering the agent using Zoho Flow
- Setting up required connections in Flow
- Implementing a custom function for Agent API
- Understanding the function workflow
- Integrating Bigin with the agent via Flow
- Testing the integration flow
How the Custom Zia Agent Integration Works
Before we begin, here’s a simple flow diagram showing how a custom Zia Agent connects with Bigin through Zoho Flow to automatically handle new contacts and send personalized welcome emails.
Real-world Scenario
To understand how this works in implementation, let's consider a common use case in Bigin:
Let's say you use Agent Studio to build a custom Zia Agent called Auto-Reply Agent for Leads. This agent is set up to generate and send a personalized email automatically whenever a new lead (contact) is created.
For detailed instructions on how to create and configure agents, refer to the
Creating Agents guide.
In most sales workflows, when a new contact is created, the next step is to acknowledge the lead with a quick response—something that's often done manually or through predefined workflows using generic email messages.
With Auto-Reply Agent for Leads, we can now take this a step further by integrating it with Bigin so that the entire process happens automatically with personalized email messages.
Now that the Auto-Reply Agent is ready, the next step is to deploy the agent and make it available for integration.
Watch the Integration in Action
Before we begin the implementation, here's a quick demo of the complete configuration in action. It covers from deploying a custom Zia agent to generating and sending a personalized welcome email.
Deploying a Custom Zia Agent
Zia's Agent Studio provides two ways to deploy a Zia Agent, depending on how you want to use it. One way is to deploy it as a digital employee, which allows the agent to act as in-app assistant within Zoho apps. The other way is to deploy it as a connection, where the agent is exposed via an API endpoint.
In this scenario, we deploy the agent as a connection because we want it to be triggered automatically whenever a new contact is created in Bigin. By deploying it as a connection, we can use the agent's API and integrate it with Zoho Flow to handle the automation seamlessly.
To deploy the agent, navigate to the Deploy dropdown button in Zia's Agent Studio configuration page and select Deploy using connection.
In the Tools Param Mapping sliding panel, review the configured parameters. Modify these settings if required, and then click Next to proceed.
Next, choose an existing connection from the dropdown or click New to create a new connection for the required service.
Follow the prompts to authorize the connection. Once completed, the agent will be successfully deployed and ready to be triggered via its API.
Understanding the Agent API
Let's now review the Agent API details by navigating to Integrate > Agent API. These details are essential for integrating the agent with your automation.
The deployed agent exposes an Agent API endpoint that allows you to send instructions along with contextual data.
Endpoint:
- https://agents.zoho.com/ziaagents/api/v1/agents/3989000000030001/trigger
Method: POST
Authentication: OAuth
Headers:
{
"X-ZIAAGENTS-ORG": "903723720",
"X-ZIAAGENTS-AGENT-SESSION-ID": "",
"Authorization": "Zoho-oauthtoken <token>"
}
Request body:
{
"query": "",
"reasoning": false,
"attachments": [
""
],
"systemArgs": {}
}
At a higher level, this API works like this:
- We send a prompt as a query, which tells the agent what to do.
- We pass the contact ID through systemArgs, so the agent can fetch full details from Bigin.
- The agent processes the request and performs the action.
In our use case, the action is generating and sending a personalized welcome email.
To ensure the request is routed correctly and securely, the Agent API provides the following headers:
- X-ZIAAGENTS-ORG - Identifies the Zia Agent Organization.
- X-ZIAAGENTS-AGENT-SESSION-ID - Helps track execution sessions.
- Authorization - Provides OAuth token for secure access.
Optionally, we can also use X-ZIAAGENTS-AGENT-ID to specify which agent to trigger.
Triggering the agent using Zoho Flow
Now that the agent is deployed, the next step is to trigger it automatically whenever a new contact is created in Bigin.
To achieve this, we use
Zoho Flow to build the automation.
Setting up the connections
Before building the flow, we need to configure the required connections to ensure that data can be fetched from Bigin and the Zia Agent can be triggered securely.
The Bigin connection is used to fetch details of the newly created contact. Since Bigin is available as a default server in Zoho Flow, this connection can be created directly while configuring the trigger.
To set up a Bigin connection, go to Settings > Connections in Zoho Flow. Click on Create Connection, then select Bigin from the list. Provide a name of your choice for the connection and click Authorize to complete the setup.
Ensure the connection has the Contact Created trigger access while authorizing the connection:
This allows the flow to access contact data and pass it to the custom function.
The Zia Agent is not available as a default service in Zoho Flow, so we must create a custom connection using an Auth Profile.
This connection is used to authenticate and trigger the agent via its API.
To configure this, we create an OAuth2-based Auth Profile using client credentials obtained from the Zoho API console.
First, navigate to the
Zoho API Console and register a server-side application. While registering, use the redirect URI:
https://flow.zoho.com/oAuth/callback
Once the client is created, you'll receive the Client ID and Client Secret, which are required to set up the Auth Profile in Zoho Flow.
In Zoho Flow, go to Settings > Auth Profiles and click Create to add a new authentication profile. Choose OAuth v2 as the authentication method, then enter a name of your choice for the auth profile.
Once done, do the following:
- Provide the Client ID and Client Secret from the Zoho API Console.
- Provide the Authorization URL, Access Token URL, and Refresh Token URL. For details, refer to the Zoho Accounts API documentation.
- Set the scope as: ZiaAgents.agents.TRIGGER.

Using OAuth ensures that the connection remains active and secure, without relying on access tokens that expire frequently.
This Auth Profile is then used to create the Zia Agent connection.
Once the connection is created, it's used in the custom function during the API call:
- connection:"ziaagentconnection"
This allows the function to invoke the Zia Agent API securely.
Implementing the custom function
In Zoho Flow, navigate to Settings > Custom Functions and click Create Custom Function.
Provide a function name and set the return type as void, since this function is only used to trigger the agent. Add an input parameter named id with the type string, which represents the contact ID from Bigin.
Once created, the Deluge editor will open where you can define the function logic as shown below:
void trigger_lead_auto_reply(string id)
{
// Instruct the agent to fetch contact and send welcome email
query = "New lead added. Send a short, friendly welcome email to the newly created contact based on auto-reply-agent-skill instructions.";
// Build request body
body = Map();
body.put("query",query);
body.put("reasoning",false);
body.put("attachments",List());
// Pass the contact ID nested under the tool name — required for agent to extract it
recordInfo = Map();
recordInfo.put("id",id);
sysArgs = Map();
sysArgs.put("ContactId",recordInfo);
body.put("systemArgs",sysArgs);
// Headers
headers = Map();
headers.put("X-ZIAAGENTS-ORG","111860686");
headers.put("X-ZIAAGENTS-AGENT-ID","2307000000029001");
headers.put("X-ZIAAGENTS-AGENT-SESSION-ID","10000");
headers.put("Content-Type","application/json");
// Trigger the agent — fire and forget, no return needed
response = invokeurl
[
url :"https://agents.zoho.com/ziaagents/api/v1/agents/2307000000029001/trigger"
type :POST
body:body.toString()
headers:headers
connection:"ziaagentconnection1"
];
info response;
}
How this custom function works
This function acts as the bridge between Bigin and the Zia Agent API, constructs the API request, sends it to the agent, and triggers the required action.
Let's understand how it works step by step.
A. Defining the instruction (query)
- query = "New lead added. Send a short, friendly welcome email ..."
This is the instruction sent to the agent. It tells the agent what action needs to be performed and how the response should be generated.
B. Building the request body
body = Map();
body.put("query",query);
body.put("reasoning",false);
body.put("attachments",List())
Here we construct the request body based on the Agent API format:
- query: defines the task
- reasoning: disabled to keep the response concise
- attachments: not used in this scenario
C. Passing contact context using systemArgs
recordInfo = Map();
recordInfo.put("id",id);
sysArgs = Map();
sysArgs.put("ContactId",recordInfo);
body.put("systemArgs",sysArgs)
Instead of passing all contact details, we pass only the contact ID.
The agent uses this ID to fetch complete contact information from Bigin. This ensures that the agent works with latest data without increasing the request payload.
D. Setting headers
headers = Map();
headers.put("X-ZIAAGENTS-ORG","111860686");
headers.put("X-ZIAAGENTS-AGENT-ID","2307000000029001");
headers.put("X-ZIAAGENTS-AGENT-SESSION-ID","10000");
headers.put("Content-Type","application/json");
These headers help identify the organization and the specific agent being triggered.
X-ZIAAGENTS-AGENT-ID is the agent's unique identifier. You can find it on the agent's overview page in Agent Studio.
X-ZIAAGENTS-AGENT-SESSION-ID is the session ID, which you can define per your preference.
Authentication is handled through the configured connection in the function.
E. Triggering the Agent API
response = invokeurl
This is where the API call is made.
At this stage:
- The request is sent to the Zia Agent.
- The agent processes the query.
- It fetches the contact details using the provided ID.
- It generates and sends the personalized welcome email.
Integrating Bigin with Custom Function
Once the connections and custom function is set up, the next step is to configure the flow.
Create a new flow in Zoho Flow and define the following:
- Trigger: Select Bigin and choose the event Contact Created.
- Action: Add the Custom Function created earlier.
Map the required input parameter:
- Pass the Contact ID from the Bigin trigger to the function input parameter id.

This ensures that wherever a new contact is created in Bigin, the flow is triggered and the contact ID is passed to the custom function, which in turn invokes the Zia Agent.
Testing the Flow
After configuring the flow, it's important to test the setup to ensure everything works as expected.
Create a test contact in Bigin and verify the following:
- The flow is triggered successfully.
- The custom function is executed.
- The Zia Agent is invoked.
- A welcome email is generated and sent to the contact.

Once verified, the flow can be enabled for real-time execution.
In this post, we explored how to deploy and integrate a custom Zia Agent with Bigin using Zoho Flow.
This approach enables you to move beyond predefined workflows and build intelligent, automated communication systems using Zia Agents.
Recent Topics
Zoho Books and TRAINING SALES receipt label for eTims?
Hi, Can Zoho Books implement TRAINING SALES receipts and push them to eTims for test? In other words how can we send to Zoho or even create in Zoho training mode invoices and TEST the workflow POS>Zoho Books>eTims and back without actually registering
Canvas Detail View Related List Sorting
Hello, I am having an issue finding a way to sort a related list within a canvas detail view. I have sorted the related list on the page layout associated with the canvas view, but that does not transfer to the canvas view. What am I missing?
Workflow Assistance in Zoho CRM
Our client's sales team visits customers on-site and currently fills a physical paper form to capture customer details, and then separately re-enters the same data into Zoho CRM via the mobile app — resulting in double data entry. We want the salesperson
How do I post a new question in Zoho Community forums?
Hi everyone, I’m new to the Zoho Community and I’m trying to figure out how to properly create and publish a new topic in the forum. When I visit the community page, I can’t clearly find the option like “Add Topic” or “Post Question.” Could someone guide
Zoho CRM Kiosk question – Passing Screen Fields to a Function
I am building a Kiosk in Zoho CRM to create new Supplier (Vendors) records. Current setup: Screen 1 contains user input fields: Supplier Name (Vendor_Name) First Name (First_Name) I created a Deluge function: createSupplier(vendor_name, first_name) The
Any Zoho Books users in the Kenyan Hospitality industry? How to set service items for eTims?
Hello, We are opening a coffee shop in Kenya and would like to know if there are any Zoho books users in hospitality service industry in Kenya? We would love to know: 1. how do you cope with the absence of the mandatory Tourism Levy 2% tax option? 2.
Important changes to note for Zoho Sign users in Saudi Arabia
Dear Zoho Sign users, If your Zoho Sign account is hosted in our Saudi Arabia data centre, here's an important update on digital signature certificates in the Kingdom of Saudi Arabia. What's changing Going forward, the "Sign via Zoho Sign" option will
Cloning Item With Images Or The Option With Images
Hello, when I clone an item, I expect the images to carry over to the cloned item, however this is not the case in Inventory. Please make it possible for the images to get cloned or at least can we get a pop up asking if we want to clone the images as
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
Zoho Books | Product updates | May 2026
Hello users, We're back with the latest updates and enhancements we've rolled out in Zoho Books. From sales tax automation to scanning receipts for free, explore the updates designed to upgrade your bookkeeping experience. Sales Tax Automation [US & Canada
Blueprint Not Triggering When Lead Status Is Updated by Workflow (IndiaMART Integration)
I have set up a blueprint that triggers when a lead’s status is “New Lead.” Our CRM is integrated with IndiaMART, and when leads are created from IndiaMART, their Lead Status is initially set to None. To handle this, I created a workflow that automatically
Zoho Books | Product updates | June 2026
Hello users, Welcome to this month's roundup of what's new in Zoho Books! We have an exciting line-up this time. The highlight is the launch of the all-new France Edition with full ISCA compliance. We're also introducing features such as Layout Rules
Cloning a View
When I clone a View, it doesn't make a copy; it only creates a new copy with the same default fields as if I were creating a new view. What is the purpose of cloning if it doesn't bring in the same fields? Thanks Rudy
Does Zoho Learn integrate with Zoho Connect,People,Workdrive,Project,Desk?
Can we propose Zoho LEarn as a centralised Knowledge Portal tool that can get synched with the other Zoho products and serve as a central Knowledge repository?
Request to Update Billing Information and Payment Method
Hello, I’m using Zoho and I would like to update the billing information and change the payment card to our company card. Could you please let me know how I can do this? Thank you in advance for your help.
Zoho Analytics "Esc" key problem
I frequently use the Escape (Esc) key while building dashboards, reports, and writing SQL queries. Since the recent updates to Zoho Analytics, the Esc key no longer behaves as expected. When writing SQL queries, pressing Esc to dismiss a suggestion now
Zoho Analytics Filter Bug
I encountered a bug where typing the letter "A" in the drop-down filter of a table or query table causes the drop-down to close unexpectedly. For example, when typing "Today", the drop-down list closes as soon as "a" is entered. I tested this on another
Using Email Triggers on Zoho Flow
Hello, I'm sending the email to create the variables as this article says: https://help.zoho.com/portal/en/kb/flow/user-guide/create-a-flow/articles/email-trigger#How_email_trigger_works But the collection of the variables only seems to work when the
Number of Reopn
Hi Zoho, Is there any appropriate API call for This URL "http://support.zoho.com/api/v1/dashboards/reopenedTickets?...." what I thought is the resulting output of this call has data for number of reopen... "https://desk.zoho.com/api/v1/tickets/" + Ticket_ID
How to customize the "Placeholder Text" separately from the "Field Label" on the Booking Form?
Hi, I am currently customizing the Booking Form for one of my Workspaces in Zoho Bookings, and I need some help adjusting a custom text field. Right now, when I create a custom text field, the gray "placeholder text" inside the text box automatically
What's New in Zoho Inventory | April & May 2026
Hello users, We're excited to roll out the latest Zoho Inventory updates for April and May 2026. These enhancements are designed to make your daily operations smoother and more efficient, from advanced inventory management and flexible pricing to automated
Introducing Spotlight Forms
Hey form builders! If someone opens your form, sees the wall of fields ahead, and quietly closes the tab. It may not be because the questions were hard. It could be because the experience felt like too much. Which is why we have now introduced a new form
Related products & AI product recommendations through commerce API.
Hello Zoho team I’m looking to add related products and AI product recommendations to my Zoho Commerce webshop with custom storefront. Is this supported through the API? And if not, is this on your roadmap? Thanks in advance David
Why don't Zia agents support file uploads?
I am trying to build a Zia Agent that allows uploading of a PDF file and uses the GLM5 model to process it and extract information. But agents.zoho.com has no way to enable file uploads on the agent. Additionally, GLM5 based agents keep outputting their
Pasting Images in Zoho Desk ignores cursor location
My team has reported an issue which started recently where when we paste an image into a new or existing reply or comment, the pasted image seems to ignore the current cursor location instead paste itself at the last character present in the reply/comment,
'Pinned' notes feature of a pipeline record
Hi team, Could you please implement a feature which will allow users to pin different notes so that they will appear at the very top of the notes tab in a pipeline record. Sometimes we have a wide range of notes on a record which means more important
Announcing new features in Trident for Mac (1.37.0)
Hello everyone! We’re excited to introduce the latest updates to Trident, which are designed to take workplace communication to the next level. Let’s dive into the details. Import EML archives directly into Trident. You can now import EML archives into
Zia Agent activation in Zoho Desk forces new Organization creation instead of deploying to existing one
While attempting to complete the deployment and activation sequence of a new Zia Agent within our existing Zoho Desk environment, the activation process failed on the user interface, throwing a generic error (see print). However, despite the activation
#10 Bill While You Sleep
A consultant is reviewing last month's work. Client meetings? Done. Deliverables? Sent. Support requests? Resolved. Then they realize something. "I have completed the work... but I haven't billed the client yet." The work was completed. The client was
Team Module Issues?
We are testing Team Licenses for use by our Customer Service staff. I created a Teamspace called CSR and only assigned two users to this space: Administrator (me) and “Team License Test.” Team License Test is assigned to the Team User profile, with a
Access images from form submission in power automate
Images from form submission show up as links in power automate. How do I access the image data?
Forms cannot be accessed.
https://forms.zoho.com/ is not available, please help to fix
Associate records via the Multi-select lookup RELATED LIST via API
In the REST API, is there a way to associate records for a multi-select lookup related list other than via the linking module? There are two methods for the lookup: 1. via insert records API 2. via the linking module ...as described in https://help.zoho.com/portal/en/community/topic/kaizen-125-manipulating-multi-select-lookup-fields-mxn-using-zoho-crm-apis
Problem with CRM Connection not Refreshing Token
I've setup a connection with Zoom in the CRM. I'm using this connection to automate some registrations, so my team doesn't have to manually create them in both the CRM and Zoom. Connection works great in my function until the token expires. It does not refresh and I have to manually revoke the connection and connect it again. I've chatted with Zoho about this and after emailing me that it couldn't be done I asked for specifics on why and they responded. "The connection is CRM is not a feature to
Kaizen #245 - Real Time Signal Alerts for High-Value Abandoned Checkouts
Howdy, Tech Wizards! Welcome back to another week of Kaizen. In this post, we will build a real-time abandoned checkout notification system using Stripe, Zoho CRM Functions, Sales Signals, and Widgets. When a customer abandons a high-value purchase, Zoho
Unable to attach Fillable File Upload field to Merge Template ever since UI update
Ever since the new UI update, the field for Attachments for sending document for Signing in Writer has had an issue where trying to add a Fillable item in the Attachment field ends up always becoming a "Choose a File From Drive" option instead. No matter
Latest updates in Zoho Meeting | An improved Analytics tab and user interface, an invite pop-up revamp, an enhanced Zoho Meeting iOS app, a recording feature in the Android app, and more
Hello everyone, We’re excited to share a few updates and enhancements in Zoho Meeting. Here's what we've been working on lately: Improved analytics for meetings, an invite pop-up revamp, a multi-video feed interface in the iOS app, a recording feature
Inquiry Regarding Automated Assignment of Zoho TeamInbox Messages using Zoho Flow and Deluge
Hello, Our company is currently using Zoho TeamInbox, and we are interested in automating the assignment of responsible parties using tools such as ZOHO Flow and Deluge. Is it possible to achieve this? Allow me to provide more details. Currently, when
Kaizen #125 Manipulating Multi-Select Lookup fields (MxN) using Zoho CRM APIs
Hello everyone! Welcome back to another week of Kaizen. In last week's post in the Kaizen series, we discussed how subforms work in Zoho CRM and how to manipulate subform data using Zoho CRM APIs. In this post, we will discuss how to manipulate a multi-select
[Bug] WebAuthn passkey registration blocked on rpIds with TLDs longer than 6 characters (.accountant, .technology, etc.) — isValidDomain regex too strict
Hi, Filing on behalf of an enterprise customer where Zoho Vault is deployed across the company. The Chrome extension blocks WebAuthn passkey registration on legitimate sites whose Relying Party ID (rpId) has a TLD longer than 6 letters. This affects every
Next Page