How We Transformed Our B2B Sales with Odoo CRM Outreach
Case study: How Balane Tech structured its own outbound sales with a self-built Odoo module – from spreadsheet chaos to a campaign system.

How We Transformed Our B2B Sales with Odoo CRM Outreach
This is not a marketing piece. It's an experience report about how we, as a tech agency, restructured our own outbound sales in Odoo CRM – and why we built a module for it.
The Starting Point
Balane Tech is a software agency. We build custom solutions, automations, and modules. Like most tech service providers, we depend on active outbound – clients don't come to us on their own.
Our CRM runs on Odoo Community. Pipeline management works well there. But for outbound sales, the tools were missing.
The Problems We Had
No Campaign System
We had no way to assign leads to a campaign. "Which lead belongs to the Q4 DACH campaign?" – this question could only be answered through Excel or notes.
Follow-ups Were Forgotten
Without a reminder system, follow-ups slipped through. A lead was contacted once, then forgotten. Statistics show: 80% of positive responses come after the second or third contact.
Manual Tracking in Excel
We maintained parallel Excel sheets: Who was contacted? Which step? When is the follow-up? This worked for 20 leads. At 200, it was unsustainable.
No Overview of Sales Status
The Odoo pipeline shows opportunity stages. But "Where does this lead stand in which outreach campaign?" was not visible. Pipeline and outreach are two different things.
Sending Emails One by One
Each email had to be composed individually. With 50 leads per campaign, that meant: open template 50 times, manually replace placeholders, send.
The Solution: Our Own Module, Built from Our Own Need
Instead of switching to an external tool, we built the module ourselves. The reason: we wanted to keep data in Odoo and adapt the workflow exactly to our process.
What We Built
CRM Outreach Campaigns – an Odoo module with:
- Campaigns with name, code, language
- Multi-step email sequences with configurable wait times
- 6 campaign-specific lead statuses (New, Contacted, Replied, Positive, Not Now, Dead)
- Multi-sender with custom SMTP servers and signatures
- 20+ placeholders (
{{ first_name }},{{ company_name }},{{ sender_name }}, etc.) - GDPR-compliant Do-Not-Contact function at 3 levels
- Placeholder check wizard before sending
- Automatic mail queue cleanup
The dashboard shows at a glance where every lead stands in every campaign.
Concrete Improvements
Campaign Structure Instead of Ad-hoc Contacts
Every outreach now has a name, a code, and a clear sequence. "Q1-DACH-SaaS" is a campaign with 3 templates, 200 leads, and measurable results. No more Excel tracking.
6-Status System for Clarity
Every lead has a clear campaign-specific status. In the morning, we open the dashboard and see: 15 due follow-ups, 8 new replies, 3 positive signals. No questions needed.
Follow-up Discipline
With configurable wait times (initial_delay_days, followup_days), we no longer forget follow-ups. The system shows which leads are due.
Multi-Sender for Deliverability
Each team member sends from their own address with their own signature. Recipients see a real person, not a generic company address. This measurably improves open rates.
GDPR Under Control
When someone says "please stop contacting us," one click on Do-Not-Contact – and the block cascades automatically across lead, contact, or company. With reason and timestamp.
The daily workspace: status, due emails, and next steps.
The Result
What concretely changed:
- Better overview: Dashboard instead of Excel. Always visible where every lead stands.
- Fewer forgotten leads: Follow-ups are triggered by the system, not by memory.
- Structured process: Campaigns instead of individual actions. Measurable, repeatable, scalable.
- Compliance without effort: GDPR-compliant blocking in one click.
- Data stays in CRM: No synchronization, no external tools, no fragmented history.
Why We Published It
The module solves a problem every B2B team on Odoo has. That's why we published it in the Odoo App Store:
Built on Odoo 18 – versions for Odoo 17 and 19 coming soon.
Conclusion
Switching from "Excel + manual emails" to a campaign system in Odoo didn't revolutionize our sales – but it made them significantly more structured. Less falls through the cracks, more gets followed up on, and the overview is always there.
If you use Odoo CRM for B2B sales and have similar problems: this module was born from exactly this situation.
👉 More details about the module 👉 Keep your sales overview in Odoo CRM


