Skip to navigation

Zoho Cliq

Connect your AI agents to Zoho Cliq.

Authentication: OAuth. See Magic Link for the runtime auth flow, or Application 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…