tour_start_widget
The Onboarding and Testing buttons on Odoo's Tours screen are one widget: tour_start_widget, a char field that never shows its value and instead launches the tour in manual or automated mode.
| Technical name | tour_start_widget |
|---|---|
| Field types | char, text |
| Views | form, list |
| Module | web_tour, present in every Odoo database |
| Used in core | 2 occurrences in 1 module: the tour form header and the Tours list, both on the name field |
| Versions | Odoo 20.0, Odoo 19.0, Odoo 18.0 |
| No-code setup | No. It ships wired into the Tours screens; Studio does not expose it |
| Alternatives | CopyClipboardURL, documentation_link, XML header buttons |
What the tour start widget does
What this means for your team
Supported options in Odoo 19
| Option | Type | What it does |
|---|---|---|
link | boolean | Undocumented: read in extractProps, never declared. Renders both buttons as quiet btn-link text instead of solid btn-primary. Core sets it only in the Tours list. Removed on the Odoo 20 branch, where list views get the styling automatically.(default: false)(since Odoo 18.0) |
placeholder_field | field name | Inherited declaration from the char field, but dead here: the replaced extractProps never reads it and the value is never rendered. Listed because tooling that reads declarations will still offer it. |
Inherited but dead. Because the custom extractProps returns only link, the char field's placeholder, password, autocomplete and dynamic-placeholder handling never reach the component, and the value itself is never rendered anyway. Yet placeholder_field still shows up as a supported option in tooling that reads declarations, a textbook case of Odoo's declared-versus-extracted option gap.
Working examples
Manual versus auto, and where the styling comes from
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | Partial / changed | Not released. The link option is removed; styling derives from the view type. Everything else unchanged. Re-verified after launch. |
| Odoo 19.0 | Verified | Verified against the shipped source. Testing runs faster than 18: the 500 ms step delay was removed. |
| Odoo 18.0 | Verified | Introduced with database tours and the Tours screen. Same buttons; automated runs insert a 500 ms delay between steps. |
| Odoo 17.0 | Not available | The widget does not exist; tours are code-defined and launched from the developer tools menu. |
| Odoo 16.0 | Not available | The widget does not exist. |
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| Tour starts on the wrong page | startTour uses the record's url field, defaulting to /odoo. Set the tour's Starting URL to the screen the first step expects. |
| Custom recorded tour does nothing when started | fromDB comes from the custom flag; if the record is miscategorized the engine looks in the wrong place for steps. Check the Custom checkbox state and that the tour has step records. |
| No rainbow man at the end | rainbow_man_message is empty, or the view running the tour did not load it, since the widget declares no field dependencies. Fill the message on the tour form; keep the invisible column if you customized the list. |
| Buttons look like plain text in my custom view | The link option is set, or on Odoo 20 the view is a list, where link styling is automatic. Drop the option on 19; inherit the template if you must restyle on 20. |
| Automated test tour modifies real data | Testing mode performs every step against the live database. Run it on staging, or design the tour to clean up what it creates. |
| The Tours menu is missing entirely | The screen is a developer-mode Technical menu. Enable developer mode, then Settings, Technical, Tours. |
Tour start widget vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
tour_start_widget | Launching a stored tour in onboarding or testing mode | Char widget that hides its value and renders two startTour buttons wired to the record's fields |
| CopyClipboardURL | The tour's Sharing URL column on the same screen | Also a char widget with custom chrome, but copies the value instead of acting on the record |
| documentation_link | Pointing users at help content | A view element linking to documentation rather than an interactive walkthrough |
XML header buttons | Ordinary record actions | Declared per view with their own strings and methods; no access to the tour service |
Frequently asked questions
What is the difference between the Onboarding and Testing buttons?+
Which fields does tour_start_widget read from the record?+
Why is the widget on the name field if it never shows the name?+
What does the link option do, and should I use it?+
Do inherited char options like placeholder work here?+
Can I use automated tours as regression tests after upgrades?+
Onboarding tours for your own Odoo processes?
Recorded walkthroughs cut new-hire questions and double as upgrade smoke tests, but only when the tours mirror your real flows. We script and record guided tours for custom Odoo processes on 18 and 19, cleanup steps included.
Get guided tours built