FAQs: Custom Actions Gallery

FAQs: Custom Actions Gallery

What is the Custom Actions Gallery?
The Custom Actions Gallery is a collection of pre-built workflow actions that extend what you can automate beyond the standard alerts, tasks, field updates, and skills available by default in Zoho Desk. It exists to address a practical limitation: while webhooks and custom functions (written in Deluge) are powerful tools for automation, they come with barriers.

Webhooks require you to construct APIs using a specific input structure rather than your own, and custom functions demand knowledge of Deluge scripting. The Custom Actions Gallery removes these barriers by offering ready-to-use actions that can be configured simply by selecting the action and specifying the required values — no coding required. Once associated with a workflow rule, these actions execute automatically whenever the rule's criteria are met.
What types of actions are available in the Custom Actions Gallery?
The gallery offers the following action types, each serving a distinct purpose:
  1. Assign Ticket — Automatically routes a ticket to a specific agent or team.
  2. Add Comment — Inserts a public or private comment on a ticket.
  3. Send Email Reply — Triggers an automated email response to the customer.
  4. Add Tags — Applies tags to a ticket for categorization and tracking.
  5. Remove Tags — Strips existing tags from a ticket.
  6. Add Followers — Adds agents as followers so they receive notifications on ticket updates.
  7. Mark Ticket as Spam — Flags a ticket (and optionally its associated contact) as spam.
  8. Share Ticket — Shares a ticket with another department for cross-team collaboration.
  9. Send Cliq Notification — Posts a notification to a Zoho Cliq chat via an incoming webhook.
  10. Reply via Instant Messaging — Sends an automated response to a customer through IM channels like WhatsApp, Telegram, LINE, or WeChat, with the reply appended to the ticket's conversation thread.
  11. Notify via Instant Messaging — Sends a notification to a customer through IM channels without associating it with a ticket's conversation thread.
  12. Extension Custom Actions — Allows you to build your own custom actions through extensions developed on the Sigma platform, which then appear in the gallery alongside the built-in actions.
What are placeholders, how to add or select a placeholder in a custom action?
Placeholders are dynamic references — enclosed in double curly brackets — that temporarily hold a position where actual data will be inserted at runtime. They allow a custom action to use live ticket data without hardcoding values. For instance, inserting ${deskPlaceHolders.tickets.assigneeId} will automatically resolve to the ID of the agent assigned to the ticket when the action executes.

For every action type, the Record ID (which corresponds to the ticket ID) is auto-populated — you do not need to manually configure it. However, certain action fields require you to manually insert placeholders to pull in the correct data. To do this, click the empty double curly brackets icon in the applicable field, and a Select Placeholders pane will appear on the right side of the screen, from which you can choose the appropriate reference.

A particularly powerful feature is the ability to use the output of one action as input to another. For example, the content generated by a Send Email Reply action can be mapped into the comment field of a subsequent Add Comment action using the placeholder ${trigger_mail.content}. This enables actions to chain together, passing data between them dynamically.

For some actions, like Assign Ticket, Add Comment, Send Email Reply, Add or Remove Tags, or Add Followers, you might need to add a placeholder to a field.

To add or select a placeholder for a custom action:
  1. Click the Empty Double Curly Brackets {} in the applicable fields of your custom actions. The Select Placeholders pane will appear on the right side of the screen.
  2. Select a placeholder to be inserted in the corresponding field of the custom action.
    The selected placeholder can eventually be replaced with actual data.
What kinds of ticket and agent data can I reference using placeholders?
The gallery provides a range of field labels that map to specific placeholders. Some commonly used ones include:
  1. Created By (${deskPlaceHolders.tickets.createdBy}) — The ID of the agent who created the ticket.
  2. Modified By (${deskPlaceHolders.tickets.modifiedBy}) — The ID of the person who most recently updated the ticket.
  3. Department (${deskPlaceHolders.tickets.assignee.associatedDepartmentIds}) — The department associated with the assignee.
  4. About (${deskPlaceHolders.tickets.assignee.aboutInfo}) — Additional information about the assignee.
  5. Owner ID — Available for contacts, products, and accounts linked to the ticket, each with its own distinct placeholder.
  6. Assignee (${deskPlaceHolders.tickets.assignee.firstName}) — The first name of the assigned agent.
These placeholders ensure that actions are context-aware and adapt to the specific ticket being processed.
How to associate a custom action with a workflow rule?
The process follows these steps:
  1. Navigate to Setup > Automation > Workflows.
  2. On the Workflow Rules page, click Create Rule.
  3. In the New Workflow page, do the following:
    • Select the Module to which the rule applies from the drop-down list.
    • Enter the Rule Name.
    • Select the Active checkbox if you want the rule to be active.
    • Enter the Description for the workflow rule.
  4. Click Next.
  5. Choose when to execute the rule, under Execute on.
  6. In the Criteria section, specify the rule criteria details.
    Select an operator between AND / OR to add multiple criteria.
  7. Click Next.
  8. In the Actions section, click the + icon and select the desired custom action from the drop-down list.
  9. Click Save.
The action is now associated with the workflow rule and will execute automatically whenever the rule's trigger conditions and criteria are met.
Can tickets be automatically assigned to specific agents or teams?
Yes. The Assign Ticket action lets you automatically route tickets to a designated agent or team as part of a workflow rule. When configuring this action, you choose an assignee type — Agent, Team, or Agent in a Team — and then specify the assignee name or team name accordingly.

For example, if your organization wants all tickets from premium customers to be assigned to a dedicated contact owner, you can set up a workflow rule that triggers on ticket creation with a criteria matching that contact, and then associate the Assign Ticket action to handle the routing automatically.
What does the Share Ticket action do, and can I share a ticket with multiple departments at once?
The Share Ticket action makes a ticket visible to another department so that agents across teams can collaborate on resolution.

When configuring this action, user can select a target department and a permission level:
  1. Full Access — Agents in the receiving department can reply to the ticket and perform all actions.
  2. Restricted Access — Agents can leave private comments and forward ticket conversations, but cannot reply directly.
  3. Read-only Access — Agents can view the ticket and leave private comments, but cannot reply.
User can only share a ticket with one department per Share Ticket action. However, since up to 5 custom actions can be associated with a single workflow rule, you can add the Share Ticket action up to five times — each targeting a different department — effectively sharing the ticket with up to five departments through one rule.
How does the Mark Ticket as Spam action work, and does it affect the associated contact?
This action automatically flags a ticket as spam, moving it out of the regular ticket queue and into a separate Spam Tickets view. This is particularly useful when user receive repetitive marketing or advertising tickets that are irrelevant to the support operations.

When configuring the action, there is a checkbox labeled Mark associated contact as spam. Enabling this option will flag not only the ticket but also the contact who submitted it. This means future tickets from that contact will be handled according to the spam management settings, providing an additional layer of filtering against persistent unwanted submissions.
What is the difference between Reply via Instant Messaging and Notify via Instant Messaging?
Both actions send messages to customers through IM channels such as WhatsApp, Telegram, LINE, and WeChat, but they differ in how the message relates to the ticket:
  1. Reply via Instant Messaging — The message is sent as a response and is appended to the ticket's conversation thread. This means agents can follow up on the conversation within the ticket's context, maintaining continuity. For most IM channels, replies can only be sent as a response to an existing customer ticket. WhatsApp is an exception — agents can also initiate a conversation as a reply to the associated WhatsApp number mapped to the customer's contact details.
  2. Notify via Instant Messaging — The message is sent as a standalone notification and is not associated with any ticket. It can only be viewed within the respective IM account. This is suitable for scenarios like sending booking confirmations, subscription renewal reminders, or payment due date notices — communications that don't need to be tied to a support ticket.
Both actions require you to select an IM account and a pre-configured template message. Templates for IM can be created under Setup > Channels > Instant Messaging > Canned Messages, where you can define a name, tags, and message content (with support for placeholders).
How does the Send Cliq Notification action work, and what setup is required?
This action sends a notification to a Zoho Cliq chat window, allowing teams to monitor ticket activity directly from their Cliq interface. To configure it, user need to provide an Incoming Webhook URL and a notification message.

Setting up the webhook involves navigating to the Zoho Cliq platform, selecting a bot, editing its Incoming Webhook Handler code, and optionally modifying the code to convert HTML formatting into Cliq's markdown format (for example, converting <b> tags to * for bold text). After saving, user can copy the Incoming Webhook Endpoint URL, generate a Webhook Token, and append the token to the endpoint URL. This combined URL is what needed to be pasted into the Send Cliq Notification action configuration.

Once active, whenever the associated workflow rule triggers, a notification will appear in the Cliq chat of users subscribed to that bot.
What are Extension Custom Actions, and when would I use them?
Extension Custom Actions allow the user to create their own custom actions through extensions developed on Zoho's Sigma platform. When the user install such an extension on their Zoho Desk account, the custom action that was built will appear in the Custom Actions Gallery alongside the built-in actions, and can be integrated with workflow rules just like any other action.

This is useful when the standard gallery actions don't cover a specific business need. For example, to automatically move tickets between departments when a customer expresses interest in another department's products — a behavior not covered by the default actions — user could build an extension that performs this operation and then deploy it as a custom action within the workflow rules.
Can a custom action be edited or deleted after being associated with a workflow rule?
Yes, both operations are supported.
To edit a custom action:
  1. Navigate to Setup > Automation > Workflows.
  2. Under the Actions section of the relevant workflow rule, locate the action type.
  3. Click the Edit icon next to it.
  4. Make your changes and click Save.
To delete a custom action:
  1. Go to Setup > Automation > Workflows.
  2. Under the Actions section, locate the action type.
  3. Click the Remove icon next to it.
  4. Confirm by clicking Delete in the pop-up.
Note: If the output of the action are trying to delete is being used as input in another action, an alert will appear warning you of the dependency. User should resolve that dependency before proceeding with the deletion.
What happens if a custom action fails during execution?
When a custom action fails, the failure is logged in the Ticket History along with the rule name, action name, status, and the reason for failure.

Several common failure scenarios are documented:
  1. Agent deletion or deactivation: If the agent or team specified in an Assign Ticket or Add Followers action has been deleted or deactivated, the action will fail. The fix is to update the assignee or follower input to a valid agent or team.
  2. Insufficient permissions: If the agent who created the action does not have the profile permission to perform that action (for example, creating an Add Comment action without comment permissions), the action will fail. This failure affects all actions associated with that workflow rule. Only agents with the appropriate profile permissions should create actions to avoid this.
  3. Removed placeholder values: If a custom field that was used as a placeholder value in a Send Email Reply or Add Comment action is later deleted, the action will not execute and will be disabled. This is the only scenario in which an action is disabled rather than simply failing. To re-enable it, remove the placeholder referencing the deleted custom field and save the action again.
In cases where an action is skipped due to failure, the action is simply not executed — it does not block other actions in the workflow rule from running.

How to create templates for instant messaging (IM)?

To create templates for instant messaging, follow the steps given below:

  1. Go to Setup > Channels > Instant Messaging > Canned Messages.
  2. Click Create Canned Message at the top.
  3. On the Canned Message page, enter a name, tags, and a message.
    Note: You can insert placeholders in the Message field.
  4. Click Save.
NotesNote: You can use your saved template for the Reply via Instant Messaging and Notify via Instant Messaging custom actions.
Can automatic notifications be sent to customers through IM channels?

Yes, automatic notifications can be sent to customers via IM channels, such as WeChat, Line, WhatsApp, and Telegram by associating the Notify via Instant Messaging custom action. Notifications will not be associated with tickets, but they can be viewed within the applicable IM account.


Example: You can send booking confirmations, notices about subscription renewals, and reminders of due dates for periodic payments via IM channels.
 
To learn more >> click here.
Can agents send automatic responses to the tickets through IM channels?
Yes, agents can send automatic responses to tickets through IM channels, such as WeChat, Line, WhatsApp, and Telegram by associating the Reply via Instant Messaging custom action with their workflow rules.
 
Example: When a customer inquires about a shipment, you can send them an auto response with the product code, delivery date, status, and tracking code. This can be especially useful if the customer sends an inquiry outside the organization's business hours. 

Can to set up automated replies to the emails I receive from a customer?

Yes, whenever you receive an email from a customer, user can set up a default text reply, eliminating the need for manual replies. User can use the Send Email Reply action to draft your reply and set it to send automatically.

Example: Let's say an issue arises and causes system downtime. This will likely result in emails from multiple customers. It's not possible to reply to each customer manually, so you can create a workflow rule associating custom actions from the Custom Actions Gallery. Using this workflow rule, you can automatically trigger a reply email to the customers. 
What are incoming webhooks, and how do I insert an incoming webhook URL in the Cliq Notification?
Incoming webhooks are used for posting messages in other applications. Incoming webhook creation provides you with a unique URL to which you can send a text message as a JSON payload.

  1. Click on your profile icon and select Bots & Tools under the Cliq Options section.
  2. Select your preferred bot.
  3. Click Edit Handlers and scroll down. Press Edit Code below the Incoming Webhook Handler of your selected bot.
  4. Remove the existing code in the Response Object field and insert the following code:
    text = body.get("message"); // Retrieve the message from the request's payload.
    text = text.replaceAll("&nbsp;"," ");  // Replace the non-breaking space value with a string of empty spaces.
    text = text.replaceAll("<br />","\n"); // Replace the break element with the new line element.
    text = text.replaceAll("<b>","*"); // Replace the HTML bold element (<b>) with cliq's markdown support (*).
    text = text.replaceAll("</b>","*"); // Replace the HTML bold element (</b>) with cliq's markdown support (*).
    text = text.replaceAll("<i>","_"); // Replace the HTML italic element with cliq's markdown support (_).
    text = text.replaceAll("</i>","_"); // Replace the HTML italic element with cliq's markdown support (_).
    text = text.replaceAll("<h1>","# "); // Replace the HTML Heading1 element (h1) with the Heading1 element (#) of cliq's markdown support.
    text = text.replaceAll("</h1>","# "); // Replace the HTML Heading1 element (h1) with the Heading1 element (#) of cliq's markdown support.
    text = text.replaceAll("<h3>","### "); // Replace the HTML Heading3 element (h3) with the Heading3 element (###) of cliq's markdown support.
    text = text.replaceAll("</h3>","### "); // Replace the HTML Heading3 element (h3) with the Heading3 element (###) of cliq's markdown support.
    text = text.replaceAll("<[^>]*>",""); // Clear the element syntax.
    response.put("text",text);



  5. Click Save.
  6. Copy the incoming webhook endpoint Url.
    Sample Url
    : https://cliq.zoho.com/company/64396901/api/v2/bots/sampletesting/incoming 
  7. On the left panel, select Webhook Tokens and click Generate New Token.
  8. Copy the new token that is generated.
  9. Append the copied token to the incoming webhook endpoint URL as below:

    This URL will be your incoming webhook URL.