Load Balancer keeps ticket assignment fair and predictable. The moment a new ticket is raised in your Freshservice account, the app checks the groups you've configured and the percentage share you've given each one, then automatically routes the ticket to the group whose turn it is — so no single team gets overloaded while another sits idle.
How it works
Ticket is raised
A ticket is created in Freshservice inside your configured active hours.
Load is calculated
Load Balancer checks each group's percentage share against the current running distribution.
Ticket is balanced
The ticket is routed to the correct group automatically and the count updates for the next ticket.
Why teams use it
-
Even workload distribution — split incoming tickets across groups by percentage instead of manual round-robin assignment.
-
Works within business hours — define an active time window and time zone, so routing only happens while your teams are online.
-
No code required — everything is configured through guided setup screens inside the app.
-
Built natively for Freshservice — authenticates directly against your Freshservice subdomain and API key, and uses Freshservice's own Workflow Automator as the trigger.
Complete this one-time setup inside Load Balancer first. It connects the app to your Freshservice account and defines how tickets should be split across your groups.
Freshservice Authentication
Required- Enter your Subdomain — just the part before
.freshservice.com, e.g.spritle. - Enter your Freshservice API Key. Use the here link on this screen to jump straight to where it's found in Freshservice.
- Click Validate to confirm the app can connect to your account before continuing.
Freshservice Ticket Mandatory Fields
Optional- Freshservice can require certain custom fields whenever a ticket is created or updated. Any that apply to your helpdesk are listed here.
- Fill in a value for each mandatory field so the app can supply it automatically on every ticket it touches.
- If your helpdesk has none configured, the screen simply confirms "There are no Mandatory Fields."
- Click Save Fields to continue.
Status and Groups
Required- Primary Workspace and Default group — the workspace this configuration applies to, and the fallback group used when a rule doesn't otherwise apply.
- Un-resolved / Resolved status — map your Freshservice statuses (e.g. Open → Un-resolved; Resolved, Closed → Resolved) so the app tracks active load correctly.
- Time zone — used to evaluate the active-hours window you'll set in Step 4.
- ID holder field and Rule ID holder field — the custom ticket fields the app uses to record which group and rule handled a ticket. These should not be edited by agents.
Assignment Configuration
Required- Set the active From / To time window — routing only runs inside this window (e.g.
09:00 AM – 10:00 PM). - Choose the Groups to include in the split.
- Enter the percentage share for each group — they should add up to 100%.
- Click Validate to check the split, then Save Configuration to activate it. Use Add Configuration if you need more than one split — for example, per workspace.
With the app configured, the last step is a small workflow inside Freshservice that tells Load Balancer whenever a new ticket is raised.
Build the "Ticket is raised" workflow
Freshservice Admin- In Freshservice, go to Admin → Global Settings → Ticket Automator (Workflow Automator) and
create a new workflow — for example,
load test. - Set the trigger to Ticket is raised.
- Add a step to prepare the ticket fields / workspace data the app needs, then branch on
YES into a Web Request action — labelled here
W2 to push to app. - Set the workflow to Active so every new ticket is sent through it.
Configure the Web Request node
Webhook- Request Type:
POST - Endpoint: paste the unique webhook URL provided by Load Balancer exactly as given.
- Credentials / Authentication Type: leave as
Inline CredentialandNo Auth— the endpoint URL is already unique to your account. - Body: build the JSON payload with the ticket fields the app needs (id, workspace, created date, and so on) using Insert Placeholder to pull in live Freshservice values.
{
"ticket": {
"id": "{{ticket.id_numeric}}",
"ws": "{{ticket.workspace.id}}"
}
}
Everything Load Balancer gives you, once it's set up — from how it splits ticket load to how it stays out of your team's way.
Percentage-based load balancing
Split incoming tickets across any number of groups using a simple percentage per group, so no team ends up overloaded.
Business-hours aware routing
Define an active From–To window and time zone so tickets are only balanced while your teams are actually online.
Native Freshservice integration
Authenticates directly with your Freshservice subdomain and API key — no middleware, code, or extra infrastructure required.
Flexible status mapping
Map your own Un-resolved and Resolved statuses so load calculations reflect how your team actually works, not a fixed default.
Multiple configurations
Run different group and percentage splits for different workspaces or scenarios, and switch between them without losing history.
Automatic mandatory-field handling
Satisfies any Freshservice-required custom fields when the app updates a ticket, so routing never gets blocked by validation.
Built-in validation
Every setup screen includes a Validate step, catching misconfigurations before they can affect live tickets.
Workflow-driven trigger
Uses Freshservice's own Workflow Automator, giving you a full audit trail of every "ticket raised" event sent for balancing.