Guides & Tutorials

Sales Overview in Odoo CRM: Managing Campaigns, Status and Follow-ups

More leads, less overview? How campaign-based tracking, a status system, and a daily workflow keep your sales in Odoo CRM under control.

Jonas Hottler
January 27, 2026
11 min read time
odoocrmvertriebvertriebsueberblickkampagnen-trackingfollow-upsales-management
Sales Overview in Odoo CRM: Managing Campaigns, Status and Follow-ups - Guides & Tutorials | Blog

Sales Overview in Odoo CRM: Managing Campaigns, Status and Follow-ups

The more leads you work, the harder it gets to keep an overview. Every sales team doing active outbound knows this problem. This guide shows how campaign-based tracking keeps your sales in Odoo CRM structured.


The Problem: Pipeline Alone Is Not Enough

The Odoo pipeline is a good tool for opportunity management. But it answers a different question than the one that comes up daily in outbound sales.

The pipeline answers:

  • Which sales phase is this deal in?
  • What's the expected revenue?
  • When is the next step in the sales process?

Outbound sales needs:

  • Which lead belongs to which campaign?
  • What outreach status do they have there?
  • When is the next email due?
  • Who replied, who didn't?
  • Which leads are blocked (Do Not Contact)?

Pipeline and outreach tracking are two different systems. One doesn't replace the other.


Campaign-Based Tracking as the Solution

Instead of only placing leads in pipeline stages, you additionally assign them to campaigns. Each campaign has:

  • A name and code (e.g., "Q1-DACH-SaaS")
  • A language (DE/EN)
  • Configurable wait times (initial_delay_days, followup_days)
  • An email sequence with multiple steps
  • A lead list with individual statuses

Campaign Dashboard The dashboard shows per campaign: leads, status distribution, due actions.

6 Statuses for Clarity

Every lead in a campaign has one of six statuses:

StatusWhat it meansNext action
NewAssigned, not yet contactedSend first email
ContactedAt least one email sentWait for reply or follow up
RepliedResponse receivedQualify
PositiveInterest signaledSchedule meeting/call
Not NowCurrently no interestRe-approach later
DeadNo further contactArchive

A lead can have different statuses in different campaigns. "DACH-SaaS: Contacted" and "UK-Enterprise: Positive" simultaneously – that's not a contradiction.


The Daily Workflow

Here's what a structured sales day with campaign-based tracking looks like:

1. Open Dashboard

Check the dashboard in the morning:

  • How many emails are due today?
  • Are there new replies?
  • Which leads need a status change?

2. Send Due Emails

The system shows which leads expect an email. Before sending, a placeholder check wizard runs – it warns if a lead has incomplete data (no first name, no company).

Email Composer Templates with 20+ placeholders – every email feels personally written.

Placeholders like {{ first_name }}, {{ company_name }}, and {{ sender_name }} are filled in automatically. Every email looks like it was written by hand.

3. Process Replies

Replies are detected automatically. The lead status changes to "Replied". You qualify: Is this positive? "Not Now"? Or "Dead"?

4. Update Status

After calls or meetings: update status, add notes. On "Positive," optionally convert to pipeline opportunity.


Bulk Operations for Large Lead Volumes

With 200+ leads per campaign, individual processing is unrealistic. The module supports bulk operations:

Bulk Assign Assign leads to a campaign directly from the filtered list view.

  • Bulk Assign: Assign multiple leads to a campaign at once
  • Batch Sending: Send all due emails of a step at once
  • Filtered Views: Filter leads by status, campaign, due step

Assigning 200 leads to a campaign takes under 5 minutes. Individually, it would be an hour.


GDPR Under Control

Compliance is not an afterthought. The Do-Not-Contact system works at three levels:

LevelEffect
LeadSingle lead is blocked
ContactPerson blocked across all leads
CompanyCompany blocked – cascades to all contacts and leads

Each block is logged with reason and timestamp. 5 predefined reasons are available. This ensures full traceability during audits – when and why a contact was blocked.


Multi-Sender: Everyone Sends from Their Own Address

For deliverability and authenticity, each team member sends from their own address:

  • Custom display name
  • Custom signature
  • Custom SMTP server

Recipients see "Thomas from Company X" – not "info@company.com". This improves open rates and looks more professional.


Practical Tips

3 Templates per Campaign Are Enough

Initial contact, follow-up with added value, final attempt. More than three steps rarely add value – they just increase complexity.

Don't Set Wait Times Too Short

3–5 days between steps is a good benchmark. Daily follow-ups come across as aggressive.

Maintain Status Consistently

The overview only works if statuses are current. "Replied" must be qualified within 24 hours – otherwise the view becomes stale.

Check Dashboard Daily

5 minutes in the morning is enough. Due emails, new replies, status changes. The overview only stays current if you use it.


Availability

The system described is available as an Odoo module:

Built on Odoo 18 – versions for Odoo 17 and 19 coming soon.


Conclusion

Sales overview in Odoo CRM requires more than pipeline stages. Campaign-based tracking with clear statuses, automatic follow-up reminders, and bulk operations makes the difference between "I think we contacted that lead" and "Lead is in Q1-DACH-SaaS, Step 2, follow-up due tomorrow."

The more structured the process, the less falls through the cracks.

👉 More details about the module 👉 Our experience report

Tags

odoocrmvertriebvertriebsueberblickkampagnen-trackingfollow-upsales-management