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
Accounts Payable and receivable
I'm currently creating my accounts and noticed that I cannot create any more accounts payable or receivable. Is there any way to create more of this accounts and associate them to the default one available?
How to display Pick List values with vertical separation in Canvas
I have a Multi-Select Pick List whose values I would like displayed vertically. So far, I have only been able to figure out how to adjust the width and other sizing of the field itself or even how to wrap the values to the next line below. I am trying
Ability to Use Both AND and OR When Creating Rules (Advanced Conditions)
I'd like to be able to use more complicated logic when setting up rules. E.g. in Zoho Mail, I can choose "Advanced conditions (AND/OR) to create a rule that can be applied to multiple subject lines from the same sender. But in Zoho TeamInbox, I will have
Introducing a knowledge management and training software in Zoho Projects Plus
Keeping your workforce updated on emerging technology trends is essential to stay on top of the game. While project management software focuses on planning, execution, and project tracking, incorporating a learning management solution within project management
Problem with UTM Parameters: Zoho Forms - Zoho Desk Integration
Hi Zoho Support Team, I want to automatically capture UTM Parameters from my website URLs and pass it from Zoho Forms into Zoho Desk. I have activated the UTM tracking feature. I've integrated the UTM Tracking code in my website footer on all pages. I've
#13 Fix Mistakes Without Breaking Your Records
A customer purchases 100 custom-printed invitations for an upcoming event. A few days after delivery, they call to say that some invitations were damaged and others need to be reprinted. They request a return. The customer isn't asking for a completely
Zoho CRM upload files error
Since today, we have been experiencing issues with uploading photos to opportunities. The message indicates that the storage is full, but as far as I can see, there is still plenty of space available. Could there be an issue or a bug?
Zoho Directory : transformez vos données d’identité en décisions de sécurité
Que sont les rapports d’identité dans Zoho Directory et pourquoi sont-ils importants? À mesure que les organisations se développent, la gestion des identités devient plus complexe. Les informations existent, mais elles sont souvent réparties entre plusieurs
Re-Apply SLA When Ticket Reopened from Closed Status?
If you have an SLA applied, timers are deactivated when going to "On Hold" status type and reactivated when going back to an Open status type. What we discovered is when a customer replies to a closed case and it reopens, the SLA is not applied and timers
How to use Zoho Billing info in a workflow
We have Zoho Billing and CRM sync'd and the Billing info appears as expected for each Account in Zoho CRM, including subscription status, plan type etc. But how can we use this in a workflow? Thanks Dylan
Why can't we choose Fixed Asset account for Purchased Items? (eTims issue?)
Hello, When the company purchase items not for sale and not supposed to be in the inventory stock, like equipment for operational use, there is no way to access the Fixed Asset accounts in the drop down list. Is that an eTims limitation again? Or something
Auto-approval for shared key access not working for new users
Hello, I'm an admin of a Zoho Vault organization (34 active users, ZOHO identity provider). I have the "Auto-approval for shared key access" setting enabled in Settings → Fine-Grained Controls → Global, but it does not work as expected. The problem: When
Zoho Analytics UI Bug
Hello, all, The Aggregate Formulas in Zoho Analytics' list of fields have a 3-dot menu: If the formula has a long name, the name is not fully visible in the list, and a 3-dot menu is not accessible from it: This is not convenient, especially when the
Canvases Auto-Skewing/Adding Scroll Bars When They Were Not There Prior
Is anyone else noticing rendering issues in their canvases today? It seems to be mainly icons which now have scroll bars added which makes them all look off, though some fields seemed to revert to squished length as well. Were the icons replaced with
Marketing Tip #37: Reduce purchase doubts with better product images
When customers shop online, they cannot pick up, turn around, or inspect a product in person. That is why your product images need to do more of the selling. Two simple upgrades can make a big difference: Use zoom-friendly images so customers can look
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
Zia Agent built in ChatKit UI does not render markdown
Hi, You have a major shortcoming in the Zia Agent UI. The test UI that is embedded in agents.zoho.com allows you to test the agent has full support for rendering markdown, but your ChatKit UI does not have support for rendering markdown. If I embed it
Zoho Forms - Failed CRM Sync Improvement
I'd like to suggest an enhancement to the Zoho Forms and Zoho CRM integration. Currently, once a form entry has been submitted, there is no simple way to push that individual entry to CRM again if needed. Before anyone mentions it, I am aware that the
Will I see emails sent via campaigns in CRM?
It would be useful for people to be able to see emails sent via campagins in Zoho CRM is that possible?
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 | 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
What is MCP and How Does It Connect to Zoho Invoice?
If you've ever wished you could just tell your invoicing software what to do, without clicking through menus, pulling up reports manually, or switching tabs every five minutes, that's exactly what the Zoho MCP server is built for. MCP stands for Model
Add spaces to input format
In Zoho Inovices, I am trying to do a custom input format for a custom field. I have tried a few variations, but this is my most recent: ^[a-z][A-Z][0-9][,][-][_][:][ ]$ In this field, I will be entering different alphanumeric information, depending on
Enhancement in Zoho CRM: Introducing New Return Types for String Fields Based on Character Length
Dear Customers, We hope you’re well! In Zoho CRM, formula field with string return type is used in various scenarios where text is involved like concatenating customers’ first and last names, trimming characters from texts, performing find and replace
GLM 5 not available
Hello, I am trying to setup a Zia Agent using agents.zoho.com. The settings says that GLM5 is among the list of free zoho hosted models available. However, when I try to setup an agent and pick a model from the list only GLM 4.7 Flash is available. How
Supervisor Rules --> Custom Function
Hello, currently I can't add a custom function to a supervise rule. Is there a reason for this? Background: We have BluePrint managed tickets and actually we have a Supervise rule which should set the ticket to "closed" after 168 hours since the last
Vault Chrome Extension Asks for Master Password every single time
Is this supposed to be a feature, or is this a bug? My assumption is that it's a bug, because every time I click on the Extension, there is a red exclamation mark/notification on the Zoho Vault extension. Is the idea with the Extension that I have to
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
"Make online" not clearing previously downloaded files from disk
I downloaded a large folder via "Make offline" so I could copy it to another location. This worked. When I was done I hoped that "Make online" would restore it to the previous state where those files are not stored locally in TrueSync. This did not work—Finder
Permission Denied for Worklogs URL
We're attempting to pull worklogs data from service desk plus and when using the below URL we are met with a message stating we do not have permission. https://sdpondemand.manageengine.com/api/v3/requests/xxxxxx/worklogs/ We used SDPOnDemand.requests.ALL
Anyone in Australia using Zoho Books AND has their account with NAB?
Hi I have an account with both NAB and Suncorp. Suncorp transaction come in the next day however NAB transactions take 4-5 business days to appear. eg: A deposit made today in my Suncorp will be imported into Zoho tomorrow. A deposit made today to the NAB account will be imported maybe Saturday (Friday overnight). I have contacted both Zoho and NAB but noone seems to know why. I was just wondering if anyone else in Australia uses NAB and has this issue (or doesn't) maybe we could compare notes and
Please Make Zoho CRM Cadences Flexible: Allow Inserting and Reordering Follow-Up Steps
Sales processes are not static. We test, learn, and adapt as customers respond differently than expected. Right now, Zoho Cadences do not support inserting a new step between existing follow-ups or changing the type of an existing primary step. If I realize
Partner with HDFC And Sbi Bank.
Hdfc and sbi both are very popular bank if zoho books become partner with this banks then many of the zoho books users will benefit premium features of partnered banks.
#12 Never Leave a Billable Hour Behind
A client approves a website redesign project. The estimated effort? 40 hours. The project is going well. A few additional review meetings are scheduled. Several rounds of content changes are requested. A few "quick fixes" get added along the way. The
Close task on Completion Date entry
This discussion is similar to my issue: "backdated-task-completion-date" discussion Scenario: A bunch of tasks have been completed. But, they have not been closed. Time goes by You finally get around to closing those tasks Projects assigns the date the
Can I add Conditional merge tags on my Templates?
Hi I was wondering if I can use Conditional Mail Merge tags inside my Email templates/Quotes etc within the CRM? In spanish and in our business we use gender and academic degree salutations , ie: Dr., Dra., Sr., Srta., so the beginning of an email / letter
Records from ATE 29: Knowledge Base, Community, and AI for smarter user education
Hi Everyone, "Ask the Experts 29" was an engaging session, where we explored how to utilize the Knowledge Base for customers and internal teams, as well as emphasizing the importance of our Community. This post highlights the questions and use cases discussed,
Deleted User Emails
I need to delete a user as I need to re-use their license, but I'd like to keep all their emails that are attached to various contacts in the CRM. Their emails are hosted externally on an M365 license. Anyone any idea how best to engineer this? TIA
Its 2022, can our customers log into CRM on their mobiles? Zoho Response: Maybe Later
I am a long time Zoho CRM user. I have just started using the client portal feature. On the plus side I have found it very fast and very easy (for someone used to the CRM config) to set up a subset of module views that make a potentially extremely useful
Kaizen #246 - Incoming Lead Email Intent Detection using Zia Assistant API in Zoho CRM
Hello all! Welcome back to a fresh Kaizen week. In this post, we will explore how Zia detects positive intent from incoming emails in the Leads module using the Zia Assistant API along with Workflow Rules and Custom Functions in Zoho CRM. Use Case Problem
Next Page