Overview
Lead assignment in Odoo 19 automates the distribution of incoming leads to sales reps based on configurable rules. Instead of manually assigning every lead, you define territories, specializations, and capacity limits — then the assignment engine handles routing. This ensures even workload distribution and faster lead response times.
Prerequisites
- Odoo 19 with CRM module installed
- Sales teams configured with members
- Sales Manager or Administrator access
Step 1: Enable Rule-Based Assignment
Navigate to CRM > Configuration > Settings. Under the CRM section, enable Rule-Based Assignment. This activates the assignment engine and a scheduled action. Click Save.
Step 2: Configure Assignment Frequency
After enabling rule-based assignment, configure how often the engine runs:
- Manually — Trigger assignment on demand from the pipeline view
- Repeatedly — Set an interval (every X minutes, hours, days, or weeks) for automatic assignment via the
crm.lead.auto.assignmentscheduled action
For high-volume lead generation, run assignment every 15-30 minutes. For lower volumes, hourly or daily is sufficient.
Step 3: Define Assignment Domains per Member
Go to CRM > Configuration > Sales Teams, select a team, and open the Members tab. For each member, click to edit and set:
Assignment Domain
This is a filter (domain expression) that defines which leads this member should receive. Common assignment criteria:
- Geographic territory — Country, State, or City fields
- Industry/Tags — Leads tagged with specific industries
- Lead source — Website form, trade show, referral
- Language — Match rep language skills to lead language
- Revenue range — Route high-value leads to senior reps
Preferred Assignment Domain
A secondary filter for ideal matches. The engine first tries to match leads to members' preferred domains. If no preferred match exists, it falls back to the general assignment domain.
Step 4: Set Capacity Limits
For each team member, configure:
- Maximum Leads (30 days) — The
assignment_maxfield caps lead volume per member over a rolling 30-day window - The system computes a daily quota from this monthly maximum
- Current assignment counts are tracked via
lead_day_countandlead_month_countcomputed fields
When a member reaches their capacity, the engine skips them and assigns to the next available member.
Step 5: Handle Assignment Pauses
When a rep is on vacation or overloaded, toggle the Skip Assignment (assignment_optout) checkbox on their team member record. This temporarily removes them from the assignment pool without losing their configuration.
Step 6: Test Assignment Rules
Before relying on auto-assignment:
- Create several test leads with different attributes (countries, tags, sources)
- Run the assignment manually from the pipeline view using the assignment action button
- Verify each lead was assigned to the expected team member
- Check that capacity limits are respected
Step 7: Monitor and Adjust
After activating auto-assignment, monitor the results:
- Check the CRM > Reporting > Pipeline Analysis report, grouped by Salesperson, to verify even distribution
- Review unassigned leads — they indicate gaps in your domain rules where no member matches
- Adjust capacity limits based on actual rep performance and lead response times
Common Assignment Patterns
| Pattern | Domain Rule Example |
|---|---|
| Territory-based | Country = United States AND State in [California, Oregon, Washington] |
| Product-based | Tags contains "Enterprise" or Source = "Enterprise Demo Request" |
| Language-based | Language = Spanish |
| Round-robin | No domain filter — all members receive leads equally based on capacity |
Tips
- Start with broad assignment domains and narrow them as you learn your lead patterns
- Use overlapping domains carefully — when multiple members match, Odoo assigns to the member with the most remaining capacity
- Combine assignment rules with Predictive Lead Scoring to route high-probability leads to your best closers