See it in action
From a sent quotation to an automatic chain of reminders and salesperson tasks — until the customer replies.
Sent quotes that go quiet are lost revenue
Reps get busy and quotations get forgotten. This app chases them for you — escalating reminder emails and follow-up tasks that fire automatically after the delays you set, so no opportunity slips through the cracks.
Every quote that needs chasing, in one place
Last step, next step and when it's due — with one-click Follow Up and Stop.
Everything you need to never drop a quote
Escalating levels
Define as many follow-up steps as you like, each with its own delay, firing in order until the customer responds.
Reminder emails
A templated, on-brand nudge to the customer at each level — fully editable wording.
Salesperson activities
Schedule a call or to-do on the quotation for the responsible rep, so a human steps in when it matters.
Automatic timing
A daily scheduled action applies the next due step on every sent quotation — no manual upkeep.
Worklist
A live list of quotations being chased, with last and next step and the next follow-up date.
One-click control
Follow Up Now to act early, or Stop to take a quotation out of the chase — from the list or the quote.
Full audit trail
Every reminder and activity is logged on the quotation's chatter, so the whole chase is visible.
Stops itself
The chase ends automatically when the quote is confirmed, the last level fires, or you opt out.
Multi-company
The chase runs on each company's sent quotations, with shared follow-up levels.
Up and running in three steps
Set your levels
Delays, emails and activities.
Send quotations
The follow-up clock starts on its own.
Let it chase
Reminders and tasks fire automatically.
Close more
Work the due list and win the reply.
Real screens, real data
Every screenshot below is the actual app running on Odoo 19 — no mockups.
The chase, on the quote
The Follow-up tab shows the last and next step; the chatter logs every reminder email and scheduled task automatically.
Configure the ladder
Set each level's delay, its reminder email and its activity — drag to reorder, add as many as you need.
Turn forgotten quotes into closed deals
Install in seconds. No Enterprise, no external libraries, no lock-in. Works on Odoo 19 Community and Enterprise.
Full manual included. The app ships with a complete in-app documentation page (Apps > this module > Documentation) covering setup, levels, the automation, the worklist and FAQs. Questions? bambooforge.labs@gmail.com
BambooForge Quotation Follow-up
Never let a sent quotation go cold. This app chases your quotations for you: define escalating follow-up levels — reminder emails and salesperson activities — that fire automatically after the delays you set, until the customer responds. A ready-to-work list shows every quotation due for follow-up.
This page is the complete manual. Follow it top to bottom and you can install, configure your follow-up steps, work the list and fix the common issues without contacting support.
Overview
When a quotation is sent, a follow-up clock starts. As each level's delay passes, the app applies the next step automatically:
- Reminder emails — a templated nudge to the customer.
- Salesperson activities — a call or to-do scheduled on the quotation for the responsible salesperson.
- Escalation — levels fire in order, each after its own delay, until the last one or until the customer replies (the quotation becomes an order) or you stop the chase.
Everything is logged on the quotation's chatter, and a Quotations to Follow Up list shows what is due, the last and next step, and one-click actions.
Requirements
- Odoo 17.0.
- The Sales app (sale). Installing this app pulls it in automatically.
No Enterprise modules and no external Python libraries are required.
Installation
- Copy bambooforge_quote_followup into your addons path.
- Update the apps list (Apps > Update Apps List).
- Search for Quotation Follow-up and click Install.
A starter set of three follow-up levels is created. Find them under Sales > Configuration > Follow-up Levels, and the worklist under Sales > Orders > Quotation Follow-ups.
Configuring follow-up levels
Go to Sales > Configuration > Follow-up Levels. Each level has:
- a Delay (days) — how long to wait after the quotation was sent (first level) or after the previous step before this one fires,
- Send Reminder Email with an Email Template,
- Schedule Activity with an Activity Type and summary,
or any combination. Drag to reorder; levels fire from top to bottom. The shipped levels are a first email at 3 days, a second email plus a call task at 7 days, and a final to-do at 14 days — edit them to suit your sales motion.
How the automation works
When a quotation moves to Quotation Sent, its follow-up clock starts. A daily scheduled action checks every sent quotation and, when the next level's delay has elapsed, applies that level — sending its email and/or scheduling its activity — then advances to the next level. One step is applied per run, so the escalation spreads out exactly as configured.
The chase stops when the quotation is confirmed (becomes an order), when the last level has fired, or when you mark it No Follow-up.
The scheduled action ships disabled — enable Quotation Follow-up: Process Due under Settings > Technical > Scheduled Actions to run it automatically.
Working the list
Sales > Orders > Quotation Follow-ups lists every sent quotation being chased, with its last and next step and the next follow-up date. Quotations due now are highlighted. From the list (or the quotation's Follow-up tab) you can:
- Follow Up Now — apply the next step immediately, without waiting.
- Stop Follow-up — take a quotation out of the chase.
Frequently asked questions
- A reminder went to the wrong address.
- Emails use the quotation's customer email and the follow-up template. Adjust the template under Settings > Technical > Email > Templates.
- Follow-ups aren't firing automatically.
- Enable the Quotation Follow-up: Process Due scheduled action. Until then, use Follow Up Now to apply steps manually.
- I don't want to chase a particular quotation.
- Open it and tick No Follow-up, or use Stop in the list.
- Can I add more levels?
- Yes — add as many follow-up levels as you like, each with its own delay, email and activity.
- Does it work with multiple companies?
- Follow-up levels are global; the chase runs on each company's sent quotations.
Support
Questions or ideas: bambooforge.labs@gmail.com.
Usage
The follow-up engine runs entirely on standard quotations, so you work from the same menus you already use for sales. There is nothing to launch by hand once the scheduled action is enabled.
Define your follow-up levels
Go to Sales > Configuration > Follow-up Levels (visible to Sales Managers). Each level defines one escalation step:
- Delay (days) — days to wait after the quotation was sent, for the first level, or after the previous step for later levels. Must be zero or positive.
- Send Reminder Email with an Email Template (restricted to sale.order templates). If the box is ticked, a template is required.
- Schedule Activity with an Activity Type and an Activity Summary — a to-do or call scheduled on the quotation for its salesperson.
Levels fire from top to bottom; drag the handle to reorder them. Three levels ship ready to use: First reminder (email at 3 days), Second reminder (email plus a "Call the customer" activity at 7 days), and Final call (a "decide whether to close" to-do at 14 days). Edit, add or archive them to match your sales motion.
How the follow-up clock runs
When a quotation moves to the Quotation Sent state, its Follow-up Start date is stamped and the clock begins. The daily scheduled action Quotation Follow-up: Process Due scans every sent, non-blocked quotation and, when the next level's delay has elapsed, applies that level: it sends the reminder email (queued, not force-sent) and/or schedules the activity on the responsible salesperson, then records the level in Last Follow-up, updates Last Follow-up Date, and posts a note in the chatter. The next level's due date is then computed from that last date plus its own delay, so the escalation spaces itself out exactly as configured.
The chase stops automatically when the quotation is confirmed (becomes a sales order), when the final level has already fired, or when you tick No Follow-up.
Note
The scheduled action ships disabled. Enable Quotation Follow-up: Process Due under Settings > Technical > Scheduled Actions for follow-ups to fire automatically. Until then, use Follow Up Now to apply steps by hand.
Work the follow-up list
Open Sales > Orders > Quotation Follow-ups for a ready-to-work list of every sent quotation being chased. It shows the customer, salesperson, total, the last and next step and the Next Follow-up Date; rows that are Follow-up Due are shown in bold orange and sorted first. Use the Due Now and Being Chased filters, or group by last follow-up level or salesperson. Per row you can:
- Follow Up (paper-plane icon) — apply the next step immediately.
- Stop (ban icon) — exclude the quotation from further follow-ups.
The same Follow Up Now and Stop Follow-up buttons appear in the header of the quotation form, and a Follow-up tab shows the status and next-step fields.
Example
You send quotation S00042 to a customer on 1 July. The Follow-up Start is set to 1 July. With the shipped levels and the cron enabled:
- 4 July (start + 3 days): the First reminder email is sent and logged.
- 11 July (last + 7 days): the Second reminder email is sent and a "Call the customer about the quotation" activity is scheduled for the salesperson.
- 25 July (last + 14 days): a "Last attempt — decide whether to close the quotation" to-do is scheduled.
If the customer accepts and you confirm the quotation on 8 July, it leaves the sent state and no further follow-ups fire. If you would rather not chase it at all, open it and tick No Follow-up (or click Stop in the list) at any time.
Upgrading & version compatibility
This build targets Odoo 19.0. Each Odoo major series (17.0, 18.0, 19.0) has its own dedicated build of this module — always install the build that matches your Odoo version. Mixing a build with a different Odoo series is not supported.
Patch upgrades (same series, e.g. 19.0.1.0.0 → later)
Back up your database and filestore first.
Replace the module folder with the newer build.
Restart Odoo with the module updated:
./odoo-bin -c your.conf -u bambooforge_quote_followup -d your_db
Odoo applies any schema/data changes automatically. Your existing records and configuration are preserved.
Cross-version migration (e.g. Odoo 17 → 18)
Upgrading Odoo itself is a database migration handled by Odoo's standard upgrade tooling. When you migrate the database to the next Odoo series, install the matching build of this module for that series. Data created by this module carries over with the database migration.
After any upgrade the module's scheduled actions resume on their normal cadence — no manual re-activation is required.
Uninstallation
You can remove this module at any time from Apps → (this module) → Uninstall, or from the command line. Uninstalling is clean and reversible by reinstalling — but note what is and is not deleted.
What is removed
- The module's own tables and every record in them (1 model, prefixed quote.*) — this is the data this module created.
- The menus, actions, views and reports this module installed.
- Its scheduled actions (cron jobs) — they stop immediately on uninstall.
What is preserved
- Your standard Odoo data (partners, products, sales, invoices, inventory moves) is not deleted — this module only reads and annotates it; the underlying records stay.
- Attachments and chatter messages on standard records are kept.
As always, take a database backup before uninstalling in production.
Changelog
19.0.1.0.0
Current release for Odoo 19.0. This build includes:
- Never let a sent quotation go cold. Define follow-up levels (reminder emails and salesperson activities) that fire automatically after configurable delays, with a ready-to-work list of quotations due for follow-up.
Feature additions and fixes ship as new builds on the Odoo Apps store; this page and the module's version reflect the current published release. Always keep the build matched to your Odoo series (see Upgrading & version compatibility).
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