Automation #10 - Auto Assign Ticket based on Keywords

Automation #10 - Auto Assign Ticket based on Keywords



This is a monthly series designed to help you get the best out of Desk. We take our cue from what's being discussed or asked about the most in our community. Then we find the right use cases that specifically highlight solutions, ideas and tips on optimizing your customer support with the automation capabilities of Zoho Desk.

Zoho Desk offers you a few choices on how to assign your tickets. From Direct assignment to Round Robin rules, every variation cued to assign tickets in a way best suited to your business workflow.
 
These features can help you create a viable workflow easily. Even in cases when you'd like to add more context to open tickets and assign them based on their content. For example, you have a Direct Assignment rule based on a State. As per the rule any ticket originating from that State is automatically assigned to a specific Agent, say Agent 1. However, after a few conversations, the customer refers to the keyword refund in their email content. At which point you want it to include the Refund team automatically. This can be achieved using a custom function, which reads the keyword in the email replies of a customer, and automatically assigns any email matching the keyword to the concerned team based on the rule set.

We have replaced Auth-tokens with connections for all the existing custom functions. So the first step to make the most of ZohoDesk's automation capabilities is to create a connection to use in the custom function later.
 
To create the connection, carry out the following steps: 
  1. Click on Setup > Developer Space > Connections 
  2. Click Create Connection
  3. In the Pick Your Service section, under Pre-Defined Services find and select Zoho OAuth
  4. In the Connection Details section, add zohodesk as the Connection Name and Connection LinkName
  5. In the Choose Scopes list, select Desk.tickets.READ
  6. Click Create and Connect
  7. In the page that appear, click Connect
  8. If you have more than one portal associated, select the Portal to which this connection should be added and click Accept.
To create the custom function, follow the steps below: 
  1. Go to Setup, and under Automation, click Workflows.
  2. On the left panel, under Workflows, click Rules > Create Rule.
    In the Basic Information section, carry out the following steps:
  3. In the Module drop-down menu, select Tickets.
  4. Enter a name and description for the rule.
  5. If you want to activate the rule right away, select the Active checkbox. Else, you can just create the rule now and activate it later, on the Rules page.
  6. Click Next.
    In the Execute on section, perform the following steps:
  7. Select the Create checkbox to execute this rule every time a new ticket is created.  
  8. Click Next.
    In the Criteria section, if you want to create a ticket just based on the keywords, then do not select any criteria and move to the next section.
    In the Actions section, carry out the following steps:
  9. Click the + icon and select Custom Functions > New
  10. Click Edit Arguments
  11. In the Name field type TicketID, and from the Value drop-down list select Ticket Id under Ticket Information.
  12. In the script window, input the Custom Function you find below: 
    orgId = "paste orgId here";
    DepartmentB_id = "paste department B id here";
    keyword1 = "paste keyword value here";
    keyword2 = "paste keyword value here";
    TicketInfo = zoho.desk.getRecordById(orgId, "tickets", TicketID);
    subj = TicketInfo.get("subject");
    threads = zoho.desk.getRelatedRecords(orgId,"threads","tickets",TicketID).get("data").toList();
    threadId = threads.getJSON("id");
    Message_body = invokeurl
    [
    url :"https://desk.zoho.com/api/v1/tickets/" + TicketID + "/threads/" + threadId + "?include=plainText"
    type :GET
    connection:"zohodesk"
    ];
    Message_body = Message_body.getJSON("plainText");
    if ( Message_body.containsIgnoreCase(keyword1) || Message_body.containsIgnoreCase(keyword2) || subj.containsIgnoreCase(keyword1) || subj.containsIgnoreCase(keyword2)   )
    {
    info zoho.desk.ticket.move(orgId, TicketID, DepartmentB_id);
    }
Note: The connection name used in the above script should match the name that you provided while creating the connection. 

Stay tuned for more such use cases!


      • Sticky Posts

      • Zoho Desk Virtual Meetup: US Central, October 5 - 7, 2021

        After the interactive Virtual Meetups in the other regions, we are starting with the US Central and Midwest regions from October 5 to October 7, 2021. The dates for other regions will be announced soon.  At this event, we will explore the topics which
      • Register for Zoho Desk Beta Community

        With the start of the year, we have decided to take a small step in making the life of our customers a little easier. We now have easy access to all our upcoming features and a faster way to request for beta access. We open betas for some of our features
      • Ask the Experts 10: A 5-hour online Q&A on Zoho Desk Best Practices

        Welcome to Zoho Desk's Ask the Experts session! This is a monthly discussion on our  forums; wherein a panel of experts will take on questions  specific to topics related to Zoho Desk. The panel will be available for a 5-hour period and will answer any questions posted here.   Let's begin the year learning some best practices from our experts. In this month's ATE we are opening the floor to questions on how to use Zoho Desk the best way.  If you have a business use case but not sure if Workflow is
      • Share your Zoho Desk story with us!

        Tell us how you use Zoho Desk for your business and inspire others with your story. Be it a simple workflow rule that helps you navigate complex processes or a macro that saves your team a lot of time; share it here and help the community learn and grow with shared knowledge. 
      • Ask the Experts 7: A 5-hour online Q&A on Telephony and Call Module

        Welcome to Ask the Experts session! This is a monthly discussion in forums; each session, a panel of experts will take questions on specific topics related to Zoho Desk. The panel will be available for a 5-hour period and answer any questions posted here. In this month's Ask the Experts, we will take questions on everything related to Telephony and the Call Module in Zoho Desk. We will discuss the following aspects:  Integration with different Telephony vendors Routing calls to agents Converting