BFBambooForge Labs

Marketing Automation Suite: Lead Score Journeys

Marketing automation driven by lead score: crossing a threshold enrols a lead, removes it, or moves it to another branch, with a reason logged.

Buy on the Odoo Apps StoreOpen the live demoMarketing€661Community & Enterprise

Available for Odoo 16.0, Odoo 17.0, Odoo 18.0, Odoo 19.0. Technical name bambooforge_ma_scoring.

Odoo 16.0Odoo 17.0Odoo 18.0Odoo 19.0
Full walkthrough on a live Odoo 19.0 database, with subtitles. It ends with what this app deliberately does not do.

Marketing Automation Suite: Lead Score Journeys

An add-on for BambooForge Lead Scoring and BambooForge Marketing Automation (17.0). A lead score that crosses a line moves the lead: into a journey, out of one, or onto another branch - with a log that says why.

Triggers

On a journey whose audience is Leads/Opportunities, a Score triggers tab. Each trigger is one line and one action:

  • Score reaches N - fires when the score goes from below N to N or above.

  • Score drops below N - fires when the score goes from N or above to below N.

  • Grade becomes X - fires when the grade changes to X.

and does one of:

  • Enrol in this journey - the lead joins at the first step.

  • Remove from this journey - the running participant is exited.

  • Move to step - the running participant is put on the chosen step (due after that step's delay). A lead not yet in the journey is enrolled first. This is how a lead that goes Hot jumps to the fast-track branch of the same journey.

Two switches per trigger:

  • Once per lead (default on) - fire once per lead, ever. Off: every time the line is crossed.

  • Enrol again - enrol a lead who already finished or left this journey. Off: only leads never in the journey are enrolled (unless the journey itself allows rejoin and the lead is still running).

Crossings, not levels

Every lead remembers the score and grade the triggers last saw. A trigger fires on the crossing between last seen and now - a lead sitting at 80 does not re-enter reaches 50 every ten minutes. A lead seen for the first time can reach a line and can become a grade, but can never drop below one: a brand-new lead at 0 does not "drop below 10" on its first day.

When it runs

  • A cron every 10 minutes, on the leads whose score or grade moved since last seen - found with one SQL pass, not a scan of the table.

  • Evaluate now on the journey's triggers tab.

  • Evaluate score triggers on a lead (for the rep who does not want to wait).

The log

Marketing Automation ▸ Score events: one row per firing - lead, journey, trigger, score before and after, grade before and after, the action, the participant, and a note (enrolled, moved to 'Fast track', not enrolled: already finished or left, …). The lead shows Journeys and Score events buttons; the journey shows Score events; each trigger shows how often it fired.

A failing trigger never stops the others: the error is logged, the event is not written, and the lead stays a candidate for the next run.

Technical notes

  • Uses Marketing Automation 1.9.0's _enroll_records(records, rejoin=) and the participant's _schedule(step); Lead Scoring's stored lead_score / lead_grade_id. Nothing is copied.

  • Three fields on crm.lead: score seen, grade seen, evaluated.

  • Community only. No Enterprise module, no external service.

Screens

Events - bambooforge_ma_scoring
Events
Lead - bambooforge_ma_scoring
Lead
Triggers - bambooforge_ma_scoring
Triggers