Rotate new Zendesk tickets across a group of agents in a fixed order, using HappyFox Workflows and a Google Sheet to track whose turn is next.
Applicable Plans: Available on all plans.
Note: HappyFox Workflows already documents a round-robin pattern for tickets that live in HappyFox Help Desk, using a numeric counter stored in a Google Sheet and the inbuilt Set Assignee action. See How to Automate Skills-Based or Round-Robin Ticket Assignment in HappyFox Workflows.
Prerequisites
- Your Zendesk account is connected to HappyFox Workflows. See Integrating Zendesk with HappyFox Workflows.
- Google Sheets is integrated with HappyFox Workflows, and the connected Google account has at least editor access to the sheet you'll use. See Integrating Google Sheets with HappyFox Workflows.
- The default language of the Google Sheets file is set to English (United States). See the locale warning in the Google Sheets integration article.
- Your Zendesk plan supports triggers and webhooks.
- You have admin access in both Zendesk and HappyFox Workflows.
- The agents in the rotation already exist as active agents in Zendesk.
Step 1: Create the rotation-tracking sheet
- Create a Google Sheet with two columns: Key and Assignee.
- Add one data row. In Key, enter a fixed label such as
current. In Assignee, enter the identifier of the first agent in the rotation — an agent ID, name, or email address all work. Use the same identifier format consistently in this sheet and in the Lookup Table you'll build in Step 4.
Note: This row is the only row the workflow reads from and writes to. It exists purely to store which agent is "current" between one ticket and the next — you don't need a row per ticket or per agent here.
Step 2: Create a Zendesk trigger to call the workflow on ticket creation
- Log in to HappyFox Workflows and click Create Workflow.
- Select Catch Webhook as the trigger.
- Copy the webhook URL that HappyFox Workflows generates for this trigger.
- In Zendesk Admin Center, navigate to Apps and integrations > Webhooks.
- Click Create webhook.
- Select Trigger or Automation as the connection method.
- Paste the webhook URL into the Endpoint URL field.
- Set the Request format to JSON.
- Save the webhook.
- Navigate to Objects and rules > Business rules > Triggers.
- Click Add trigger.
- Set the trigger condition so it fires when a ticket is created — for example, Status | Is | New. Your Zendesk admin can confirm the exact condition that reliably captures ticket creation in your account.
- Under Actions, click Add action. Select Notify webhook, then select the webhook you created in step 9.
- In the JSON payload field, include the ticket ID, formatted as JSON.
- Save the trigger.
Warning: The payload sent to HappyFox Workflows must be valid JSON. If the payload is malformed or sent in a different format, the Catch Webhook trigger does not fire and the workflow never runs.
Step 3: Look up the current assignee and assign the ticket
- Add a Lookup Row from Google Sheet action. This action only needs a column to match on and a value to match against — it has no separate header-name mapping to configure, and it returns the full matching row.
- Select the Account, Spreadsheet, and Worksheet for the sheet you created in Step 1.
- Set the action to match on the Key column, with '
current'as the value to match. - Add an Update Ticket action for Zendesk. This action requires a Ticket ID to identify which ticket to update, plus whichever fields you want to change.
- In the Ticket ID field, insert the merge field for the ticket ID received in the webhook payload.
- In the Assignee field, insert the merge field for the value the Lookup Row from Google Sheet action returned from the Assignee column.
Step 4: Determine and store the next assignee
- Add a Use Lookup Table action under Inbuilt Actions.
- In the Lookup Key field, insert the merge field for the current assignee value returned in Step 3.
- In the Lookup Type dropdown, select Lookup Table.
- In the Lookup Table section, add one row per agent in the rotation. In the left column, enter an agent's identifier; in the right column, enter the agent who should receive the next ticket. Map the last agent in the sequence back to the first agent, so the rotation loops instead of stopping.
- In the Fallback Value field, enter the first agent in the rotation. This is the agent assigned if the stored value doesn't match any row in the table — for example, if an agent was removed without updating this table.
- Click Save and Test to validate the configuration.
Note: Because the rotation order lives in this Lookup Table rather than in the sheet, you can add or remove agents at any time by editing the table. You don't need to rebuild the rest of the workflow when the rotation changes.
- Add an Update a Row with Provided Values action.
- Select the same Account, Spreadsheet, and Worksheet used in Step 3.
- In the Row Number field, insert the merge field for the row number returned by the Lookup Row from Google Sheet action in Step 3.
- Under Column Values, add a column value pair with Column Name set to
Assigneeand Column Value set to the merge field for the Lookup Value returned by the Use Lookup Table action. - Enable the workflow.
Warning: If the agent selected in Step 3's Assignee field is no longer active in Zendesk, the Update Ticket action fails, and Run History shows the failure. If an agent leaves the rotation, update the Lookup Table in Step 4 and, if needed, the current value stored in the Google Sheet.
Note: This method reads and writes a single shared row on every workflow run. If two tickets are created in very close succession, both runs could read the same current assignee before either one writes the next value, sending two tickets in a row to the same agent instead of two different agents. For high-volume ticket creation, account for this when reviewing assignment fairness.
Your Zendesk tickets are now assigned in rotation across the agents in your Lookup Table, one agent at a time, looping back to the start once the sequence completes. To apply the same rotation concept to tickets inside HappyFox Help Desk instead of Zendesk, see How to Automate Skills-Based or Round-Robin Ticket Assignment in HappyFox Workflows.