> This page is for Agent Handler.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.merge.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.merge.dev/_mcp/server.

# Zoho Cliq

**Authentication:** OAuth. See [Magic Link](/merge-agent-handler/features/magic-link) for the runtime auth flow, or [Application credentials](/merge-agent-handler/admin-setup/add-oauth-credentials) to bring your own OAuth app.

## Sample use cases

* Post the daily standup summary to the `#engineering` channel
* List the messages in the `Support Escalations` chat from today
* Create a channel for the `Q3 Launch` project and add the team

## Available Tools

#### add_bot_to_channel

Add a bot to a channel, by the bot's unique name (ask the user) and the channel's unique name (use list_channels). Th...

#### add_channel_members

Add members to a channel by user ID or email. Supply user_ids (use list_users) or email_ids. Use list_channels to fin...

#### add_custom_domain

Add a custom domain to the organization. Requires name (the domain). After adding, verify ownership with verify_custo...

#### add_department_members

Add members to a department. Requires user_ids. Use list_departments for department IDs and list_users for user IDs...

#### add_designation_members

Add members to a designation. Requires user_ids. Use list_designations for designation IDs and list_users for user ID...

#### add_reaction

Add an emoji reaction to a message in a chat. Use list_chats for chat IDs, list_messages for message IDs, and list_re...

#### add_role_users

Add users to a role. Requires user_ids. Use list_roles for role IDs and list_users for user IDs. Inverse: remove_role...

#### add_team_members

Add members to a team. Requires user_ids (use list_users to find user IDs). Use list_teams to find team IDs. Inverse...

#### add_thread_followers

Add one or more users as followers of a thread, so they receive reply notifications. Notifies the added users. Use li...

#### add_transient_status

Set a temporary (transient) status that automatically expires at a given time. Requires code ('available', 'busy', or...

#### approve_channel

Approve a newly created organization-level channel that is awaiting approval (status 'pending'). Admin only. Use list...

#### archive_channel

Archive a channel to stop new messages. Use list_channels to find channel IDs. Inverse: unarchive_channel.

#### assign_reminder_users

Assign up to 4 users to a reminder, so they are notified when it fires. Use list_reminders for reminder IDs and list\_...

#### bulk_delete_reminders

Delete multiple reminders by their IDs in one call (maximum 20). Use list_reminders to find reminder IDs.

#### bulk_export_channels

Export org channels as CSV (admin only; fields default to all channel columns). Zoho returns the full export in one r...

#### bulk_export_chat_members

Export chat members as CSV (admin only; use list_chats or list_channels for chat IDs; default fields: name, email, us...

#### bulk_export_chat_messages

Export a chat transcript as JSON (admin only; use list_chats or list_channels for chat IDs). Zoho returns the full tr...

#### bulk_export_conversations

Export org chats as CSV (admin only; default fields: title, chat_id). Zoho returns the full export in one response; t...

#### create_channel

Create a new channel. Requires name and level. When level is 'team', also pass team_ids (use list_teams to find them)...

#### create_database_record

Add a record to a Cliq database. Requires database_name (use list_databases) and values keyed by the database's field...

#### create_department

Create a department with a name, lead_zuid and at least one initial member in user_ids. Optionally provide parent_dep...

#### create_designation

Create a designation (job title). Requires name (max 30 characters). Optionally associate users with user_ids (use li...

#### create_event

Create a calendar event. Sends calendar invites to the attendees you list, so it notifies those people. Requires titl...

#### create_reminder

Create a reminder for yourself, teammates, a chat, or a specific message. Requires content and time (Unix epoch milli...

#### create_role

Create a custom role. Requires name and profile_type ('Members', 'Cliq Admin', or 'Admin'). Pass clone_id (use list_r...

#### create_scheduled_message

Schedule a message for future delivery in a chat, either at a fixed time (schedule_time, ISO8601 basic yyyyMMddTHHmms...

#### create_status

Create a new saved custom status (presence code plus a message) for the authenticated user. Requires code ('available...

#### create_team

Create a new team in the organization. Requires name. Pass user_ids (use list_users) to seed initial members. Returns...

#### create_user

Invite a new organization user by email. Requires email_id. Returns a batch summary (success_users, invited_users, fa...

#### create_user_field

Create a custom user field. Requires name. Set type ('text_field', 'drop_down', 'date_picker', etc.), mandatory, encr...

#### delete_channel

Delete a channel permanently by ID. Use list_channels to find channel IDs.

#### delete_completed_reminders

Delete all reminders that are marked complete, in one call. Takes no inputs.

#### delete_custom_domain

Delete the organization's custom domain. Admin only. Takes no inputs. Inverse of add_custom_domain.

#### delete_database_record

Delete a record from a Cliq database permanently. Requires database_name (use list_databases) and record_id (use list...

#### delete_department

Delete a department by ID. Admin only. Use list_departments to find department IDs. Inverse of create_department.

#### delete_designation

Delete a designation by ID. Admin only. Use list_designations to find designation IDs. Inverse of create_designation.

#### delete_event

Delete a calendar event. Requires event_id, calendar_id, and the current edit_tag. Use list_events for event IDs and...

#### delete_message

Delete a message from a chat permanently. Use list_chats for chat IDs and list_messages for message IDs. Requires cha...

#### delete_reaction

Remove an emoji reaction from a message. Use list_chats for chat IDs, list_messages for message IDs, and list_reactio...

#### delete_reminder

Delete a reminder by its ID. Use list_reminders to find reminder IDs. Inverse of create_reminder.

#### delete_role

Delete a role by ID. Admin only. Use list_roles to find role IDs. Inverse of create_role.

#### delete_status

Delete a saved custom status by its ID. Use list_statuses to find status IDs. Inverse of create_status.

#### delete_team

Delete a team from the organization by ID. Use list_teams to find team IDs. Inverse of create_team.

#### delete_transient_status

Clear the authenticated user's current transient status before it expires. Takes no inputs. Inverse of add_transient\_...

#### delete_user_field

Delete a custom user field by ID. Admin only. Use list_user_fields to find user-field IDs. Inverse of create_user_field.

#### dismiss_snoozed_reminder

Dismiss the snooze on a snoozed reminder, so it reverts to its original fire time. Use list_reminders to find reminde...

#### follow_thread

Follow a thread as the authenticated user to receive notifications for new replies. Use list_channel_threads to find...

#### get_channel

Get a single channel by ID. Use list_channels to find channel IDs.

#### get_current_status

Get the authenticated user's current active status (code, message, and id). Takes no inputs.

#### get_custom_domain

Get the organization's custom domain and its verification status. Admin only. Takes no inputs.

#### get_database_record

Get one record from a Cliq database by its ID. Requires database_name (use list_databases) and record_id (use list_da...

#### get_department

Get a single department by ID, including its lead and member count. Admin only. Use list_departments to find departme...

#### get_designation

Get a single designation by ID. Admin only. Use list_designations to find designation IDs.

#### get_event

Get the details of a specific event, including its edit_tag (needed by delete_event) and attendees. Requires event_id...

#### get_file

Retrieve a file from a chat, channel, or bot by its file ID. Returns a merge_file_transfer reference the file-handlin...

#### get_mail_configuration

Get the organization's global mail configuration (sender name, email address, and CNAME status). Admin only. Takes no...

#### get_message

Retrieve a single message from a chat by its ID. Use list_chats for chat IDs and list_messages for message IDs. Retur...

#### get_reminder

Get a single reminder by its ID, including its content, fire time, assignees, and any anchored chats. Use list_remind...

#### get_remote_work_status

Get the authenticated user's remote-work check-in status (whether checked in, since when, and session duration). Take...

#### get_role

Get a single role by ID, including its type and description. Admin only. Use list_roles to find role IDs.

#### get_team

Get a single team by ID. Use list_teams to find team IDs.

#### get_thread_main_message

Get the main (parent) message a thread was created from, including its sender, content, and thread information. Use l...

#### get_user

Get a single user by ID. Use list_users to find user IDs.

#### get_user_field

Get a single user field by ID, including its type and options. Admin only. Use list_user_fields to find user-field IDs.

#### get_user_status

Get another user's current presence (state, activity, and status text) by user ID. Use list_users to find user IDs. F...

#### join_channel

Join a channel as the authenticated user. Use list_channels to find channel IDs. May notify the channel that the user...

#### leave_channel

Leave a channel as the authenticated user. Use list_channels to find channel IDs. May notify the channel that the use...

#### leave_group_chat

Remove the authenticated user from a group chat or channel. Use list_chats to find chat IDs. For a channel, leave_cha...

#### list_bot_subscribers

List the users subscribed to a bot, by the bot's unique name (no API lists bots, so ask the user for it). Only the bo...

#### list_calendars

List all calendars associated with the authenticated user, including each calendar's uid to pass as calendar_id to cr...

#### list_call_participants

List the participants of a specific call or meeting, with an optional live/invited/joined filter and cursor paginatio...

#### list_calls_and_meetings

List the authenticated user's call history - direct calls, meetings, and broadcasts - with optional type, category fi...

#### list_channel_members

List all members of a channel. Use list_channels to find channel IDs. Returns each member's user_id for use with upda...

#### list_channel_threads

List the threads (threaded side-conversations) in a channel, with cursor pagination. Use list_channels to find channe...

#### list_channels

List channels with optional server-side filters (name contains, status, level) and cursor pagination. Use for browsin...

#### list_chat_members

List all members participating in a group chat or channel. Use list_chats to find chat IDs. Returns each member's use...

#### list_chats

List the current user's chats (conversations). Page back by setting modified_before to the oldest returned chat's las...

#### list_database_records

List records in a Cliq database, by its unique name (use list_databases). Filter server-side with criteria (e.g. '(pr...

#### list_databases

List the Cliq databases the user can access, with each database's unique name and fields. Pass a database's name as d...

#### list_department_members

List the members of a department. Admin only. Use list_departments to find department IDs. Returns each member's user...

#### list_departments

List the organization's departments, with an optional name search and cursor pagination. Admin only. Returns each dep...

#### list_designation_members

List the members associated with a designation, with cursor pagination. Admin only. Use list_designations to find des...

#### list_designations

List up to `limit` designations (max 100); this endpoint has no further pages. Use `search` to narrow results. Admin...

#### list_events

List the authenticated user's events scheduled within the next 31 days, with optional time-window (from_time/to_time)...

#### list_messages

List messages in a chat with optional server-side time filters (fromtime, totime) and time-based pagination. Use list...

#### list_pinned_messages

List the pinned (sticky) messages in a chat, most recently pinned first. Use list_chats to find chat IDs. Requires ch...

#### list_reactions

List all reactions on a message, grouped by emoji with the users who added each. Use list_chats for chat IDs and list...

#### list_reminders

List reminders for the authenticated user, with cursor pagination. Use the category param to choose pending vs comple...

#### list_role_permissions

List all permissions assigned to a role, as a per-module mapping. Admin only. Use list_roles to find role IDs. Read t...

#### list_role_users

List the users assigned to a role. Admin only. Use list_roles to find role IDs. Returns each user's user_id for use w\...

#### list_roles

List the organization's roles (admin profiles). Admin only. Returns each role's id for use with get_role, update_role...

#### list_statuses

List all custom statuses saved by the authenticated user. Returns each status's id for use with update_current_status...

#### list_team_members

List all members of a team. Use list_teams to find team IDs. Returns each member's user_id for use with remove_team_m...

#### list_teams

List teams in the organization, optionally limited to teams the user has joined (joined=true). Returns team_id for us...

#### list_thread_followers

List the users following a thread (returns the full set, no pagination). Use list_channel_threads to find a thread's...

#### list_thread_non_followers

List the channel members who are NOT following a thread (returns the full set, no pagination). Use list_channel_threa...

#### list_user_field_layouts

List the layout configurations for user fields. Admin only. Takes no inputs.

#### list_user_fields

List all custom and system user fields in the organization. Admin only. Returns each field's id for use with get_user...

#### list_user_teams

List all teams a specific user belongs to. Use list_users to find user IDs. Returns each team's team_id for use with...

#### list_users

List organization users with optional server-side filters (search by name/email, status) and cursor pagination. Retur...

#### mark_reminder_complete

Mark a reminder as complete by its ID. Use list_reminders to find reminder IDs. Inverse: mark_reminder_incomplete.

#### mark_reminder_incomplete

Mark a reminder as incomplete (reopen it) by its ID. Use list_reminders to find reminder IDs. Inverse of mark_reminde...

#### mute_chat

Mute notifications for a chat while keeping the user an active participant. Use list_chats to find chat IDs. Inverse...

#### pin_message

Pin a message in a chat for a given duration. Set notify=true to notify participants that a message was pinned. Use l...

#### reject_channel

Reject a newly created organization-level channel that is awaiting approval (status 'pending'). Admin only. Use list\_...

#### remind_assignee

Send an immediate reminder notification to one specific assignee, bypassing the scheduled time. Notifies that user no...

#### remind_assignees

Send an immediate reminder notification to all pending assignees at once, bypassing the scheduled time. Notifies ever...

#### remote_check_in

Check the authenticated user in as working remotely. Takes no inputs. This updates the user's remote-work presence th...

#### remote_check_out

Check the authenticated user out from remote work. Takes no inputs. This updates the user's remote-work presence that...

#### remove_channel_members

Remove one or more members from a channel by user ID or email. Supply user_ids (use list_channel_members) or email_id...

#### remove_department_members

Remove members from a department. Requires user_ids. Use list_departments for department IDs and list_department_memb...

#### remove_designation_members

Remove members from a designation. Requires user_ids. Use list_designations for designation IDs and list_designation\_...

#### remove_role_users

Remove users from a role. Requires user_ids. Use list_roles for role IDs and list_role_users for current member user...

#### remove_team_member

Remove a member from a team by user ID. Use list_teams for team IDs and list_team_members for member user IDs. Invers...

#### remove_thread_followers

Remove one or more users from a thread's followers, so they stop receiving reply notifications. Use list_channel_thre...

#### send_bot_message

Send a message as a bot to its subscribers, by the bot's unique name (ask the user for it). Pass user_ids (use list_b...

#### send_channel_message

Post a message to a channel, notifying its members. Requires channel_id and text. Use list_channels to find channel I...

#### send_chat_message

Post a message to a chat, notifying its participants. Requires chat_id and text. Use list_chats to find chat IDs; a t...

#### send_message_to_channel

Post a message to a channel by its unique name (not its ID). Notifies channel members. Use list_channels to find a ch...

#### send_message_to_user

Send a direct message to a user by their email address. Notifies the recipient. Use list_users to find a user's email...

#### share_file_to_bot

Share a file to a bot, by the bot's unique name (ask the user for it). Pass the file as file_reference from the file...

#### share_file_to_channel

Share a file to a channel by its unique name. Notifies channel members. Pass the file as file_reference from the file...

#### share_file_to_chat

Share a file to a chat by its chat ID. Notifies chat participants. Pass the file as file_reference from the file uplo...

#### share_file_to_user

Share a file with a user by their email address. Notifies the recipient. Pass the file as file_reference from the fil...

#### snooze_reminder

Snooze a reminder to delay its notification by a duration (in milliseconds). Use list_reminders to find reminder IDs...

#### trigger_bot_call

Place a voice alert from a bot to specific users: Cliq calls each user and reads text aloud, with optional retries an...

#### unarchive_channel

Unarchive a channel to resume messaging. Use list_channels (status='archived') to find channel IDs. Inverse of archiv...

#### unassign_reminder_user

Unassign a user from a reminder, so they stop being notified. Use list_reminders for reminder IDs and get_reminder (t...

#### unfollow_thread

Stop following a thread as the authenticated user, to stop receiving reply notifications (also used to leave a thread...

#### unmute_chat

Restore notifications for a previously muted chat. Use list_chats to find chat IDs. Inverse of mute_chat.

#### unpin_message

Remove the pinned (sticky) message from a chat. Use list_chats for chat IDs and list_pinned_messages to see what is p...

#### update_channel

Update a channel's name, description, and/or thread auto-follow setting by ID. Set auto_follow_threads to 'enable'/'d...

#### update_channel_member_role

Change a member's role in a channel. Requires role (one of super_admin, admin, moderator, member). Use list_channels...

#### update_current_status

Set a saved status as the authenticated user's current active status, by status ID. Use list_statuses to find status...

#### update_database_record

Update fields of a record in a Cliq database. Requires database_name (use list_databases), record_id (use list_databa...

#### update_department

Update a department's details. The edit endpoint requires name and lead_zuid on every call; parent_department_id is o...

#### update_designation

Update a designation's title. Requires name (max 30 characters). Use list_designations to find designation IDs. Overw\...

#### update_event

Update a calendar event. Sends updated calendar invites to attendees, so it notifies those people. The edit endpoint...

#### update_event_status

Update your RSVP status for an event: accepted, tentative, declined, or yet_to_respond. Use list_events to find event...

#### update_mail_configuration

Update the organization's global mail configuration. The endpoint requires name, email_id and cname_status on every c...

#### update_message

Edit the text of an existing message in a chat. Set notify_edit=true to notify participants of the edit. Use list_cha...

#### update_reminder

Update a reminder's content and/or fire time. Use list_reminders to find reminder IDs. Overwrites the fields you pass...

#### update_role

Update a role's name and description. The edit endpoint requires both on every call. Use list_roles to find role IDs...

#### update_role_permissions

Update a role's permissions. Pass a list of permission entries, each naming a module (and optionally an action, statu...

#### update_team

Update a team's name and/or description by ID. Use list_teams to find team IDs. Overwrites the provided fields.

#### update_thread_state

Set a thread's state to 'closed' (stop new replies) or 'open' (reopen it). Use list_channel_threads to find a thread'...

#### update_user

Update a user's profile fields by ID. Use list_users to find user IDs. Overwrites the provided fields.

#### update_user_field

Update a user field's name, flags (mandatory, encrypted, edit_permission) or options. For a drop_down field, options...

#### upload_event_attachment

Upload a file to your calendar so it can be attached to events. Pass the file as file_reference from the file upload...

#### upsert_map_ticker

Add or update tickers (live markers) on a widget's map view. Requires widget_id and map_id (from the widget's ticker...

#### verify_custom_domain

Verify ownership of the organization's custom domain by setting its status to 'active'. Add the domain first with add...