Round-Robin Lead Distribution in Appalix
Manual assignment works well for existing leads — but what about the dozen new contacts your bot, email triage, and form submissions create every day? Round-robin distribution automates the entire process: every inbound lead is assigned to the next rep in rotation, instantly, with zero manual work required.
What is round-robin distribution?
Round-robin is a scheduling algorithm that cycles through a list of team members in order, giving each person the next item in the queue. Applied to leads: the first inbound contact goes to Rep A, the second to Rep B, the third to Rep C, the fourth back to Rep A, and so on indefinitely. No rep gets two leads in a row while another rep has none.
It is the simplest fair-distribution method and the one most sales teams reach for first. It requires no scoring, no territory maps, and no manual decisions — just a toggle and a list of team members.
Enabling round-robin in Appalix
Round-robin distribution is controlled by a single toggle in workspace settings. Only Owners and Admins can change it.
- Go to Settings (sidebar → bottom).
- Scroll to the Lead Distribution section.
- Flip the toggle from Off to On.
- The change saves instantly — no confirmation dialog, no page reload.
What happens immediately after enabling
- The next contact created by the bot, email triage, or a form submission will be automatically assigned to a team member.
- Existing contacts are not retroactively reassigned — only newly created contacts are affected.
- Manual assignments you make in the Contact modal continue to work and override the round-robin assignment.
How the rotation works
Appalix uses an atomic increment pointer stored on the workspace record. Here is the exact sequence for every inbound lead:
Check rr_enabled
If round-robin is off, skip assignment and create the contact as unassigned.
Fetch accepted members
Load all workspace members who have accepted their invitation, ordered by join date (oldest first).
Pick the next assignee
Read the current rr_index from the workspace record, compute currentIndex = rr_index % members.length, and pick that member.
Increment the counter
Write rr_index + 1 back to the workspace. This happens atomically so two simultaneous leads cannot land on the same person.
Assign the contact
Write the picked user ID into the contact's assigned_to field immediately after creation.
Which lead sources trigger round-robin
Round-robin fires whenever a new contact is created by an automated source — not when contacts are created manually. The three automated sources are:
Bot triage (chat conversations)
When a visitor provides their details in a chat conversation and the bot marks them as a lead, a new Sage contact is created automatically. If round-robin is enabled, the contact is immediately assigned to the next rep.
Email triage
Inbound emails processed by the AI triage system that result in a new contact being created (first email from an unknown sender) are automatically distributed to the next rep in rotation.
Form submissions (Meta Ads, Google Ads, and embedded forms)
Leads from Meta Lead Ads, Google Ads Lead Forms, and any embedded Appalix form that create a new contact are automatically assigned via round-robin. Duplicate contacts (matched by email) are merged without triggering a new assignment.
Who is in the rotation pool
The rotation pool includes all accepted workspace members, regardless of role. Members are ordered by their join date (ascending) — the longest-tenured member is always index 0 in the pool.
- Adding a new member: They join the end of the rotation as soon as they accept their invitation. The counter picks them up naturally on the next cycle.
- Removing a member: They drop out of the pool immediately. The next lead goes to whoever the modulo lands on in the reduced list — no gaps, no errors.
- Viewers in the pool: Viewers are technically in the pool if they have accepted. If you want to exclude someone from receiving leads, consider keeping them as a pending invite or removing them from the workspace.
Overriding a round-robin assignment
Round-robin is the default — it fires at creation time. But it is never locked in. Any team member with write access (Member, Admin, or Owner) can open the contact, go to the Settings section of the edit modal, and change the Assigned to field to any other team member. The override is saved immediately and the round-robin counter is not affected — the next inbound lead will still go to whoever was next in line.
Turning round-robin off
Flip the toggle in Settings → Lead Distribution back to Off. The change takes effect immediately. New contacts created after this point will be unassigned by default. Contacts that were already assigned retain their assignment — nothing is undone.
The rr_index counter is preserved in the database. If you re-enable round-robin later, the rotation picks up exactly where it left off.
Round-robin vs. manual assignment — when to use each
| Scenario | Recommended approach |
|---|---|
| High-volume inbound (10+ leads/day) | Round-robin + occasional manual overrides |
| Territory-based sales (leads for specific regions) | Manual assignment by territory manager |
| Enterprise accounts (high-value, named reps) | Manual assignment, always |
| Small team (< 4 reps) with mixed inbound | Round-robin — simple and fair |
| Solo operator | Not needed — all leads go to you |
What's coming next
- Weighted round-robin — Give senior reps a higher share of the rotation (e.g. 2× the leads of a junior rep).
- Capacity-based routing — Pause a rep's slot when they reach a deal-count threshold.
- Scoped views — Members optionally see only their own leads, keeping the dashboard focused.
🔄
Turn on round-robin in under 10 seconds
Settings → Lead Distribution → flip the toggle. The next inbound lead will be assigned automatically.