Zoho CRM and Microsoft Teams Integration: Meeting Links, Chat Notifications, and Deal Collaboration
On this page Sales teams that split their day between Zoho CRM and Microsoft Teams…
Development teams that split their attention between Jira boards and team chat lose context every time they switch tabs. Sprint updates get buried in email digests, blocker alerts arrive too late, and issue transitions happen without anyone outside the immediate assignee noticing. A Zoho Cliq and Jira integration fixes this by pushing real-time issue tracking data directly into your team channels, where conversations and decisions already happen. This guide walks through the full implementation: configuring Jira webhooks, setting up Cliq incoming webhooks, formatting message cards for sprint events, building a slash command for on-demand issue lookup, and testing the entire pipeline end to end.
Jira is where engineering teams manage backlogs, sprints, and releases. Zoho Cliq is where those same teams discuss priorities, flag blockers, and coordinate daily. Without an integration between the two, sprint visibility depends on someone manually posting updates or teammates remembering to check the board.
A direct webhook connection between Jira and Cliq eliminates that gap. Every issue transition, sprint start, sprint close, and blocker flag generates a structured notification in the relevant Cliq channel within seconds of the event. The benefits compound quickly:
The integration works for both Jira Cloud and Jira Data Center. The approach described here uses Jira’s native webhook system and Cliq’s incoming webhook API, requiring no third-party middleware or paid connectors. If your team already uses Zoho Flow for automation, you can use Flow as an alternative routing layer, but the direct webhook method gives you more control over payload formatting and channel routing.
Jira webhooks send HTTP POST requests to an external URL whenever a specified event occurs. You need Jira administrator access to create webhooks at the system level, or project admin access for project-scoped webhooks in Jira Cloud.
In Jira Cloud, go to Settings, then System, then Webhooks under the Advanced section. Click “Create a Webhook” to start a new configuration. In Jira Data Center, the path is the same: Administration, System, then Webhooks.
For a sprint-focused integration, enable these events:
| Event | Trigger | Use Case |
|---|---|---|
| jira:issue_updated | Any field change on an issue | Status transitions, priority changes, assignee updates |
| jira:issue_created | New issue created | New bug reports, stories added mid-sprint |
| sprint_started | Sprint activated | Sprint kickoff notification |
| sprint_closed | Sprint completed | Sprint completion summary |
| comment_created | New comment on an issue | Discussion threads on blockers |
Use JQL to limit webhook triggers to specific projects or issue types. For example, project = "MOBILE" AND issuetype in (Bug, Story, Task) restricts notifications to the mobile team’s work items. Note that JQL filtering does not apply to sprint-level events like sprint_started and sprint_closed, as those events fire regardless of any JQL scope you define.
Paste the Zoho Cliq incoming webhook URL here. You will generate this URL in the next section. Leave the webhook in a disabled state until the Cliq side is ready.
Zoho Cliq provides incoming webhook endpoints at the bot, channel, and extension level. For a Jira integration, the channel-level webhook is the most practical choice because it sends notifications directly to a specific team channel without requiring users to interact with a bot.
Go to the Cliq admin panel, open the Webhook Tokens section, and click “Generate New Token.” Each user can create up to 5 tokens. The token authenticates all incoming webhook calls and prevents unauthorized posts to your channels. Copy the token immediately, as Cliq masks it after creation. If your organization uses Zoho CRM webhooks for other integrations, the token management process is nearly identical.
The channel message endpoint follows this format:
https://cliq.zoho.com/api/v2/channelsbyname/{channel-unique-name}/message?zapikey={your_webhook_token}
Replace {channel-unique-name} with the exact channel name from Cliq (visible in channel settings) and {your_webhook_token} with the token you generated. For teams using Zoho’s EU or IN data centers, replace cliq.zoho.com with cliq.zoho.eu or cliq.zoho.in respectively.
Before connecting Jira, verify the endpoint works by sending a test payload using cURL or Postman:
curl -X POST "https://cliq.zoho.com/api/v2/channelsbyname/jira-updates/message?zapikey=YOUR_TOKEN" -H "Content-Type: application/json" -d '{"text":"Test message from Jira webhook setup"}'
If the message appears in your Cliq channel, the endpoint is configured correctly. Go back to Jira and paste this URL as the webhook destination, then enable the webhook.
Raw Jira webhook payloads are JSON objects that can exceed 50KB. Posting raw JSON into a Cliq channel is unreadable. Instead, use a Cliq bot with an incoming webhook handler to parse the payload and format it into a structured message card.
In the Cliq developer console, create a new bot (for example, “JiraBot”). Under the bot’s configuration, enable the Incoming Webhook Handler. This handler is a Deluge script that runs every time the bot’s webhook URL receives a POST request. The incoming JSON from Jira is available in the body parameter.
When an issue transitions from one status to another, Jira sends a payload containing the changelog object. The handler script checks for status field changes and extracts the from/to values. A well-formatted transition notification should include: the issue key and summary, the previous status, the new status, the person who triggered the transition, and a direct link back to the Jira issue.
Cliq message cards support a structured JSON format with sections, headers, and action buttons. A sprint update card typically includes:
For sprint-level events, the card structure changes. A Sprint Started card shows the sprint name, goal, start and end dates, and the total number of issues in the sprint. A Sprint Closed card adds completion metrics: issues completed versus total, and any issues carried over to the next sprint.
Blockers are the most time-sensitive updates in any sprint. A standard issue transition notification is not sufficient for blockers because they need to reach specific people immediately, not just appear in a channel feed.
There are two common patterns for blocker detection. First, if your Jira workflow has a dedicated “Blocked” status, the handler checks for transitions to that status. Second, if your team uses a “Blocker” priority level, the handler checks the priority field in the changelog. Some teams use both, flagging an issue as blocked status with blocker priority.
When a blocker is detected, the handler should take multiple actions beyond posting to the sprint channel:
This escalation pattern is similar to the alert routing described in the Zoho Cliq messaging guide, where channel-level notifications are supplemented with targeted direct messages for critical events. Teams using Zoho for IT operations can extend this pattern to route production incidents through the same channels.
Webhook-driven notifications handle the push side of the integration. A slash command handles the pull side, letting any team member look up a Jira issue directly from the Cliq chat input without opening a browser tab.
In the Cliq developer console, create a new slash command named /jira. The command accepts a single argument: the Jira issue key (for example, /jira MOBILE-342). The execution handler is a Deluge function that calls the Jira REST API, retrieves the issue details, and returns a formatted card to the user.
The slash command handler uses a Zoho Cliq connection to authenticate with Jira. Create a connection in Cliq’s connections manager using OAuth 2.0 with your Jira Cloud instance. The API endpoint for fetching an issue is:
GET https://your-domain.atlassian.net/rest/api/3/issue/{issueKey}
The response includes the issue summary, status, assignee, priority, sprint name, story points, and all custom fields. Parse the fields you need and format them into a message card identical to the transition notification cards for visual consistency.
Beyond single-issue lookup, you can extend the slash command to support these variations:
/jira sprint MOBILE to list all issues in the current active sprint for a project/jira blockers to list all issues with Blocker priority across tracked projects/jira mine to list issues assigned to the calling user in the current sprintEach variation requires a different JQL query sent to the Jira search API endpoint. The handler detects the subcommand from the argument string and routes to the appropriate query. For teams that also use GitHub for pull requests, the Cliq and GitHub integration can complement the Jira slash command by adding /pr lookups alongside /jira.
Before rolling this out to the team, run through a structured test sequence covering every event type and edge case.
| Test Case | Expected Outcome | Verify |
|---|---|---|
| Create a new issue in a tracked project | Card appears in sprint channel within 5 seconds | Issue key, summary, assignee correct |
| Transition an issue from “To Do” to “In Progress” | Transition card shows old and new status | Link to issue works |
| Set issue priority to Blocker | Alert appears in #blockers channel and DM to lead | @mention is present |
| Start a sprint | Sprint Started card in channel | Sprint name, dates, issue count correct |
| Close a sprint | Sprint Closed card with metrics | Completed vs total count accurate |
| Run /jira PROJ-123 | Issue card returned to user | All fields populated |
| Run /jira sprint PROJ | List of current sprint issues | Only active sprint issues shown |
If notifications are not arriving, check these items in order: verify the webhook token has not expired in Cliq’s token management panel, confirm the Jira webhook is enabled and not paused, check that the channel name in the URL matches exactly (Cliq channel names are case-sensitive), and review Jira’s webhook delivery logs for HTTP error codes. A 401 response means the token is invalid. A 404 means the channel name is wrong. A 429 means you have hit the rate limit, which is 100 requests per minute per token.
For Jira Data Center 10 and later, remember that webhooks are processed asynchronously by default. This means there may be a slight delay (usually under 3 seconds) between the event and the notification. Also, the $ prefix for variable substitution in webhook URLs has been removed in Jira 10, so use issue.key instead of $issue.key.
If your team manages multiple integration endpoints, consider centralizing webhook routing through a unified integration architecture to avoid token sprawl and simplify debugging.
A single-project setup validates the pattern. Scaling to multiple teams requires some additional structure.
Create a dedicated Cliq channel for each Jira project (for example, #jira-mobile, #jira-backend, #jira-platform). In the webhook handler, use the project key from the payload to route notifications to the correct channel. This prevents a single channel from becoming a noisy firehose of updates across all projects.
Not every team wants every event. Build a configuration layer (stored in a Zoho Cliq database or a simple JSON config in the bot) that lets each channel opt in to specific event types. The backend team might want only blocker alerts and sprint events, while the QA team wants every status transition to “Ready for Testing.” This filtering happens in the webhook handler before the message is posted.
For teams in regulated industries, log every webhook event to a Zoho Sheet or external logging service. The log should capture the timestamp, event type, issue key, actor, and delivery status. This creates an audit trail of who changed what and when, complementing Jira’s built-in audit log with the notification delivery record.
For a full overview of all available options, explore our complete guide to Zoho integrations.
Does the Zoho Cliq and Jira integration work with both Jira Cloud and Jira Data Center?
Yes. The webhook mechanism is available on both Jira Cloud and Jira Data Center. The webhook creation interface and event types are the same. The only difference is that Jira Data Center 10+ processes webhooks asynchronously by default, which may add a delay of 1 to 3 seconds compared to Jira Cloud.
Can I send Jira notifications to multiple Zoho Cliq channels from a single webhook?
A single Jira webhook points to one URL. To route notifications to multiple Cliq channels, use a Cliq bot with an incoming webhook handler that reads the project key from the payload and posts to the appropriate channel using the Cliq API. This gives you one webhook in Jira with intelligent routing on the Cliq side.
What is the rate limit for Zoho Cliq incoming webhooks?
Zoho Cliq allows up to 100 incoming webhook requests per minute per token. For teams with high-volume Jira activity (more than 100 issue updates per minute), batch multiple events into a single message or use separate tokens for different projects to stay within limits.
Do I need Zoho Flow or Zapier to connect Jira and Zoho Cliq?
No. The direct webhook approach described in this guide requires no third-party middleware. Jira’s native webhooks send data directly to Cliq’s incoming webhook endpoint. Zoho Flow and Zapier are alternatives that offer a no-code setup, but they add a dependency and may introduce additional latency.
How do I create a slash command in Zoho Cliq to look up Jira issues?
Create a slash command in the Cliq developer console, set up a Jira OAuth 2.0 connection in Cliq’s connections manager, and write a Deluge handler that calls the Jira REST API with the issue key. The handler parses the API response and returns a formatted message card to the user in the channel.
Aaxonix configures Zoho Cliq integrations with Jira, GitHub, and other DevOps tools, giving engineering teams real-time sprint visibility without leaving their chat workspace. Book a free consultation to get a tailored integration plan for your development workflow.
Book a free consultationConnecting Zoho Cliq and Jira through webhooks turns passive project tracking into active team communication. Start with a single project, validate the notification formats with your team, and expand to additional projects once the message card templates and routing logic are stable. The slash command for issue lookup completes the loop, making Cliq the single interface for both receiving updates and querying Jira data on demand.
Our team builds systems that actually work. No fluff, just honest architecture and clean implementation.