Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Sales
  3. Sale Quotation Follow-up v 18.0
  4. Sales Conditions FAQ

Sale Quotation Follow-up

by Oddons https://www.oddons.com
Odoo

$ 57.25

v 18.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Sales (sale_management)
• Discuss (mail)
• Invoicing (account)
Lines of code 589
Technical Name sale_quotation_followup
LicenseOPL-1
Websitehttps://www.oddons.com
Versions 17.0 18.0 19.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Sales (sale_management)
• Discuss (mail)
• Invoicing (account)
Lines of code 589
Technical Name sale_quotation_followup
LicenseOPL-1
Websitehttps://www.oddons.com
Versions 17.0 18.0 19.0
  • Description
  • License
Sales Module

Sale Quotation Follow-up

Automatically remind your customers about pending quotations — at the right time, every time — and convert more deals.

Unlimited Follow-up levels
2 Execution modes
€49 One-time license

The problem

Quotations sent — then forgotten

In a standard Odoo setup, once you send a quotation to a customer, there is no built-in mechanism to automatically remind them if they haven't responded. Your salespeople must manually track each open quotation and decide when and how to follow up — a time-consuming, error-prone process that leads to missed opportunities.

Odoo already provides a powerful invoice follow-up system for payment reminders. Sale Quotation Follow-up brings the exact same logic to your sales quotations, based on the date the quotation was sent.

Result: Companies that implement structured follow-up processes on quotations report a significant increase in conversion rates. A simple, well-timed reminder can be the difference between a closed deal and a lost opportunity.
Quotation list view with follow-up status badges

Features

Everything you need to follow up on quotations

📋

Configurable Follow-up Levels

Define as many follow-up levels as you need. Each level specifies a delay (in days) after the quotation was sent, the action to trigger (email, activity, or both), and whether it runs automatically or manually.

📧

Automatic Email Sending

Emails are sent directly via the quotation's chatter, exactly like a standard Odoo message. The customer receives a professional follow-up and the salesperson has full traceability.

🤖

Daily Cron Job

A scheduled job runs once a day and processes all quotations that are due for a follow-up. The execution frequency and time can be adjusted in the scheduled actions settings. Fully automatic — no manual action required for levels configured in "Automatic" mode.

✋

Manual Execution Button

Salespeople can trigger a follow-up at any time via the "Execute Follow-up Now" button on the quotation form. Useful for manual follow-up levels or urgent situations.

📊

Visual Status Pipeline

A statusbar widget on the quotation form shows the progression through all configured follow-up levels, with the last executed level highlighted.

✅

Activity Scheduling

Each follow-up level can create an Odoo activity (To-Do, Phone Call, etc.) assigned to the salesperson or the sales team leader — whether the level runs automatically or manually. The salesperson is always kept in the loop.

📅

Next Follow-up Date Control

The Next Follow-up Date field gives full control over scheduling. Clear it to stop all reminders on a quotation. Set a future date to postpone. Set today or a past date to trigger on the next cron run.

🌍

Bilingual Emails (EN / FR)

The default email template is fully translated. Emails are sent in the customer's language — French if the partner's language is set to French, English otherwise — regardless of the user's UI language.

📝

Full Audit Trail

All follow-up actions are logged in the quotation's chatter. Changes to key fields (Next Follow-up Date, Reminder mode) are tracked automatically via Odoo's native field tracking.

🏢

Multi-Company Ready

Follow-up levels are scoped per company. Each company can define its own follow-up strategy independently. Fully compatible with Odoo's multi-company setup.

🔒

Access Rights

Sales Managers can create and configure follow-up levels. Salespeople have read-only access to the levels, while still being able to execute follow-ups manually on their quotations.

🎯

Dedicated "To Follow Up" View

A dedicated menu entry under Sales > Orders lists all quotations currently requiring a follow-up action, with a pre-applied filter. Perfect for the salesperson's daily review.

How it works

The follow-up lifecycle

1

Quotation sent to customer

When a salesperson clicks Send by Email on a quotation, Odoo records the Sent Quotation Date (date_sent) automatically. This date is the reference point for all follow-up delay calculations. The system also pre-fills the Next Follow-up Date based on the first configured follow-up level.

Quotation form after sending — Sent Quotation Date and Next Reminder Date pre-filled
2

Follow-up level becomes due

Each day, the scheduled job checks all sent quotations. A follow-up level is considered due when:

  • The number of days elapsed since date_sent ≥ the level's delay, AND
  • The level has not been executed yet (based on Last Follow-up Level), AND
  • The Next Follow-up Date is set and is today or in the past.

When all three conditions are met, the quotation's status becomes "In need of action".

3

Follow-up is executed

Depending on the level's configuration, Odoo will:

  • Send the follow-up email to the customer (via the chatter, with full traceability)
  • Create an internal activity assigned to the salesperson or team leader
  • Log the action in the chatter
  • Update the Last Follow-up Level field
  • Set the Next Follow-up Date for the next level (or clear it if no further levels exist)
Quotation chatter showing follow-up email sent and log message
4

Cycle continues until resolved

The process repeats for each configured level. Follow-ups stop automatically when:

  • The quotation is confirmed (state = Sale Order) or cancelled
  • The Next Follow-up Date is cleared manually by the salesperson
  • The Next Reminder Mode is switched to Manual and no activity is configured on the next level
  • All configured levels have been executed

Execution modes

Automatic vs Manual — how they work together

The module uses two settings that work together: the level's Automatic checkbox and the quotation's Next Reminder Mode field. The latter is updated automatically after each execution to reflect what the next level will do.

🤖 Automatic mode

  • The daily cron sends the email without any human action
  • Only applies when the level's Automatic checkbox is ticked
  • Activity creation is also available — the salesperson receives an activity automatically alongside the email
  • Best for standardised, high-volume follow-up pipelines

✋ Manual mode

  • The cron never sends an email for this quotation
  • If the next level has Schedule Activity enabled, the cron still creates the activity automatically
  • The salesperson clicks "Execute Follow-up Now" to send the email when ready
  • Best for high-value deals requiring a personal touch
How the Next Reminder Mode is set: when a quotation is first sent, the mode is set automatically based on the first follow-up level. After each execution, it is updated to reflect the next level — so it always tells you at a glance what will happen next for that quotation. You can also override it manually at any time.
Quotation Follow-up section in the Other Info tab

Configuration

Setting up follow-up levels

Go to Sales > Configuration > Quotation Follow-up Levels (visible to Sales Managers only).

Follow-up Levels list view

Fields reference — Follow-up Level

Field Description Notes
Description Internal name of the level (e.g. "First Reminder", "Final Notice") Must be unique per company
Delay Number of days after the quotation was sent to trigger this level Must be unique per company. Levels are ordered by delay ascending.
Send Email If enabled, an email is sent to the customer using the selected template Requires an Email Template to be selected
Email Template The mail template used for this reminder (filtered to Sale Order model) A bilingual EN/FR template is installed by default
Schedule Activity Creates an Odoo activity assigned to the responsible person Works for both automatic and manual levels
Activity Type Type of activity to create (To-Do, Phone Call, Email, etc.) Required if Schedule Activity is enabled
Summary Short title displayed on the activity card Required if Schedule Activity is enabled
Note Additional instructions shown in the activity body Optional
Responsible Who receives the activity: Salesperson or Sales Team Leader Falls back to current user if neither is set
Automatic If checked, the cron sends the email without human action. If unchecked, the cron will never send the email but can still create an activity automatically if Schedule Activity is enabled. Compatible with activity scheduling
Follow-up Level form — Notification tab Follow-up Level form — Activity tab

Example configuration

Level Delay Email Activity Automatic Notes
First Reminder 4 days ✔ ✘ ✔ Sent automatically
Second Reminder 10 days ✔ ✘ ✔ Sent automatically
Personal Follow-up 18 days ✘ ✔ (Phone Call) ✘ Manual — no email sent. The activity is still created automatically by the cron so the salesperson knows to call the customer.
Final Notice 30 days ✔ ✔ (Call) ✔ Last automatic email. The activity is created at the same time as the email so the salesperson is notified. After execution, the Next Reminder Date is cleared — no further follow-up is scheduled. The quotation remains open until confirmed or cancelled manually.

Quotation fields

Fields added to the quotation

The module adds the following fields to sale.order. They are visible in the Other Information tab of the quotation form, inside the Quotation Follow-up group (only shown when the quotation is in Quotation Sent state).

Field Type Description
Sent Quotation Date Datetime (read-only) Set automatically when the salesperson clicks the standard Send button on the quotation. All follow-up delays are calculated from this date.

If the quotation was sent outside of Odoo (by email, phone, etc.), use the gear icon (⚙) on the quotation form and click Mark as Sent — this will set the date and activate the follow-up pipeline.
Last Follow-up Level Many2one → sale.followup.line The last follow-up level that was executed for this quotation. Displayed as a statusbar widget showing the full pipeline with the current level highlighted.
Follow-up Status Selection (computed) In need of action — a level is due and waiting to be executed.
No action needed — quotation is up to date, confirmed, cancelled, or follow-ups have been stopped. Displayed as a coloured badge (red / green).
Next Reminder Mode Selection Reflects how the next follow-up level will be triggered. Set automatically when the quotation is first sent (based on the first level) and updated after each execution (based on the next level).
Automatic: the cron will send the email automatically.
Manual: the cron will not send an email — the salesperson must click "Execute Follow-up Now". Activities are still created automatically by the cron if configured on the level. Changes are tracked in the chatter.
Next Follow-up Date Date The date on or after which the next follow-up will be triggered. Clearing this field stops all further follow-ups on this quotation. Setting it to a past date triggers the follow-up on the next cron run. Changes are tracked in the chatter.
Important: Follow-ups are only active for quotations in the Quotation Sent state (state = 'sent'). Confirmed orders and cancelled quotations are automatically excluded.

Email template

Default bilingual template

A default email template named "Quotation Follow-up - Reminder" is installed with the module. It is designed to be professional, personalised, and available in both English and French.

How the bilingual mechanism works

The template uses Odoo's native language field (lang = {{ object.partner_id.lang }}). When Odoo renders the template to send an email, it checks the partner's language:

  • If the partner's language is fr_FR, fr_BE, or any other fr_* variant → the email is sent in French
  • Otherwise → the email is sent in English

This is entirely independent of the salesperson's UI language. A salesperson working in English will still send French emails to French-speaking customers automatically.

Customisation: The template is created with noupdate="1", meaning module upgrades will never overwrite your customisations. You can freely edit the template body, subject, or sender in Settings > Technical > Email > Templates.
Follow-up email in the chatter with mail icon and next follow-up date tracking

Security

Access rights

The module adds access rules only for the new model sale.followup.line. The follow-up fields on sale.order inherit the existing access rules of the sales order model.

Group Read Create Edit Delete Notes
Sales Manager
(sales_team.group_sale_manager)
✔ ✔ ✔ ✔ Full access — can configure follow-up levels and the menu entry is visible
Salesperson
(sales_team.group_sale_salesman)
✔ ✘ ✘ ✘ Read-only — can see levels in the statusbar pipeline but cannot edit them. Can execute follow-ups manually via the button and receive activities automatically.
Note: The "Execute Follow-up Now" button calls a Python method (action_execute_followup), not a direct write on sale.followup.line. It therefore works within the standard sale.order write permissions.

Key logic

How the Next Follow-up Date controls everything

The Next Follow-up Date field is the single control point for the follow-up lifecycle. Understanding its behaviour is key to using the module effectively.

Value Behaviour
Empty (cleared) All follow-ups are stopped on this quotation. The status becomes No action needed and the cron will not process it. Use this when you want to manually close a follow-up pipeline (e.g. the customer said they'll get back to you in a month).
Future date The follow-up is postponed. The cron will not trigger until that date is reached. Useful to snooze a reminder.
Today or past date The follow-up is due. On the next cron run, if a level is also due (based on elapsed days), it will be executed.
Important: The follow-up date is set automatically when a quotation is sent for the first time. It should not need manual adjustment in most cases. Only clear it or change it if you want to override the automatic schedule.

What happens when you send the quotation again?

The Sent Quotation Date is captured only once — the first time the quotation is sent. Re-sending the quotation (e.g. after a price revision) does not reset the date. This ensures the follow-up timeline remains stable and consistent throughout the negotiation.

Does the email re-send every day?

No. Each follow-up level is executed exactly once. After a level is executed, the Last Follow-up Level is updated and that level will not trigger again. The Next Follow-up Date is then set for the next level (or cleared if there are no further levels).

FAQ

Frequently asked questions

Why doesn't Odoo already have this feature for quotations?

Odoo provides an invoice follow-up system for payment reminders, but has never extended this logic to sales quotations natively. The sales module focuses on order management rather than proactive follow-up. This module fills that gap with a dedicated, distinct model and configuration.

What is the difference between the level's "Automatic" checkbox and the quotation's "Next Reminder Mode"?

These two settings work together but serve different purposes:

  • The level's Automatic checkbox: controls whether that specific level sends an email via the cron. If unchecked, the cron will never send an email for that level — but it will still create an activity automatically if Schedule Activity is enabled.
  • The quotation's Next Reminder Mode: reflects the mode of the next level to be executed. It is set automatically when the quotation is sent and updated after each execution. It can also be overridden manually at any time.

The key difference from a classic "master switch": even in Manual mode, the cron still runs for the quotation — it just skips sending emails. Activities are always created automatically if configured, regardless of the mode.

Can I stop follow-ups for a specific quotation?

Yes. Clear the Next Reminder Date field — the cron will skip this quotation entirely as long as the field is empty. You can also set a future date to postpone the next reminder. Both changes are tracked in the chatter.

What happens when the quotation is confirmed or cancelled?

Follow-ups stop automatically. The Follow-up Status is computed only for quotations in the Quotation Sent state. A confirmed order or a cancelled quotation will always show No action needed and will be ignored by the cron.

Will the customer receive emails in their own language even if I'm working in English?

Yes. The email template uses the partner's language (partner_id.lang) to determine which version to send. If the customer is configured with French as their language, they will receive the email in French — regardless of the salesperson's UI language.

Can I use the module for multiple companies?

Yes. Follow-up levels are company-scoped. Each company manages its own set of levels independently. The cron job processes quotations per-company context as well.

Can I duplicate a follow-up level?

Yes. When duplicating a level, the delay is automatically increased by 5 days and the name gets a "(copy)" suffix to avoid the uniqueness constraint errors. You can then adjust both values freely.

Does the module create a new menu entry?

Yes, two new menu entries are created:

  • Sales > Orders > Quotations to Follow Up — a dedicated list of all quotations currently requiring action (visible to all salespeople)
  • Sales > Configuration > Quotation Follow-up Levels — the configuration screen (visible to Sales Managers only)

Installation

Getting started

1

Download and deploy the module

Download the module from Oddons. Then deploy it by either pushing it to your Odoo.sh repository or adding it to your custom addons repository. In Odoo, go to Apps > Update Apps List, search for Sale Quotation Follow-up and click Install.

2

Configure your follow-up levels

Go to Sales > Configuration > Quotation Follow-up Levels. A default "First Reminder" level (4 days, manual, with email) is already created. Edit it or add new levels to match your sales process.

3

Send a quotation and watch the magic

Send any quotation to a customer as usual. The Sent Quotation Date and Next Follow-up Date will be set automatically. Check the Other Information tab to see the follow-up pipeline.

The cron job runs automatically once a day. The execution time and frequency can be adjusted in Settings > Technical > Automation > Scheduled Actions → Sale Quotations: Execute follow-up reminders. You can also trigger it manually from the same screen.
Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with