How to Automate Skills-Based or Round-Robin Ticket Assignment in HappyFox Workflows

1 views | |

This article explains how to assign tickets to specific agents based on a ticket condition such as category, and how to build a round-robin rotation across a group of agents using HappyFox Workflows.

Applicable Plans: Available on all plans.

Note: HappyFox Help Desk includes a native Auto Assignment feature for round-robin ticket distribution, configured directly in Help Desk settings. If you only need a straightforward rotation across all agents in a category, set up native Round Robin assignment instead. Use HappyFox Workflows when you need to combine assignment with other conditions — such as skill-based routing, cross-app logic, or a rotation that isn't tied to Help Desk's built-in categories.

Prerequisites

Method 1: Assign tickets by category or field value

Use this method when every ticket matching a condition — such as category, custom field, or another ticket attribute — should go to the same agent.

  1. Add a trigger to your workflow, such as Ticket Created.
  2. Set the trigger's filter conditions to match the ticket attribute you want to route by, such as Category is Technical Support. See how to set up and combine trigger conditions.
  3. Add a Set Assignee action.
  4. In the Ticket ID field, insert the merge field for the ticket ID from the trigger event.
  5. In the Assignee field, select the agent to assign matching tickets to.

 

The Set Assignee action, configured with the ticket ID merge field and an assignee selection.

Note: If you're routing across many categories or skill groups, use a Use Lookup Table action instead of building a separate branch for each condition. Configure the table with the ticket's category (or another field) in one column and the matching agent in another, then insert the looked-up value as a merge field in the Assignee field of the Set Assignee action. See Lookup Table in Workflows for how to configure the table and its fallback value.

Method 2: Rotate assignment across a group of agents

This pattern is not a built-in round-robin algorithm — it's a workflow you build using a counter stored in a Google Sheet. Each time a ticket comes in, the workflow reads the counter, assigns the ticket to the agent mapped to that counter position, and then advances the counter for the next ticket.

Prerequisites for this method

Step 1: Create the counter sheet

  1. Create a Google Sheet with two columns: a name column and a value column.
  2. Add a single row where the name column contains the label for your counter (for example, counter) and the value column contains 1.

This sheet acts only as a placeholder that stores the counter between workflow runs. The counter value corresponds to a position in the rotation: 1 for the first agent, 2 for the second, and so on up to N, the total number of agents.

Step 2: Read the counter and assign the ticket

  1. Add a trigger to your workflow, such as Ticket Created.
  2. Add a Lookup Row from Google Sheet action.
  3. Set the match condition to find the counter row by its name — for example, where the name column equals counter. The action returns the row, including the current counter value.
  4. Add a Use Lookup Table action.
    • Add a row for each position in the rotation. The table has two columns and no column headers: in the first column, enter the counter position (1, 2, and so on); in the second column, enter the agent assigned to that position.
    • Use the counter value returned by the Lookup Row from Google Sheet action as the lookup key.
    • Set a fallback value — the agent to assign if the counter value does not match any row. See Lookup Table in Workflows for how to configure fallback values.
  5. Add a Set Assignee action.
  6. In the Ticket ID field, insert the merge field for the current ticket's ID.
  7. In the Assignee field, insert the merge field for the value returned by the Use Lookup Table action.

Step 3: Advance the counter

The Check Condition block does not provide an else branch, so the reset path and the increment path are built as two separate condition blocks.

  1. Add a Check Condition block that tests whether the counter value equals N, the total number of agents in the rotation.
  2. Under that condition, add an Update a row with provided values action that writes 1 back to the counter row, restarting the rotation.
  3. Add a second Check Condition block that tests whether the counter value is less than N.
  4. Under that condition, add a Perform Math Operations action.
  5. Set Operation to Add.
  6. Under Values, insert the merge field for the current counter value in the first Enter number field, and enter 1 in the second.

The Perform Math Operations action configured to add 1 to the counter value merge field.

  1. After the Perform Math Operations action, add an Update a row with provided values action that writes the result back to the counter row.

Note: The counter row is always the same fixed row in the sheet, so both Update a row with provided values actions write to that row.

Note: Because the rotation order lives in the Lookup Table, you can add or remove agents at any time by editing the table and updating N in both Check Condition blocks. You do not need to rebuild the workflow for each agent change.

Warning: If the agent set in the Assignee field has been deactivated or removed from HappyFox Help Desk, the Set Assignee action fails, and the failure appears in  Run History. Keep the Lookup Table's agent list up to date when someone leaves the rotation.

Related Articles