Skip to main content
iVentureTeam

documentation_link

Every Documentation arrow link in Odoo's Settings pages is one view widget: documentation_link. Its best trick is picking the right docs version for your server automatically.

Siddharth JambukiyaSiddharth JambukiyaOdoo Techno-Functional Consultant
August 11, 2026Updated August 11, 20265 min read
Odoo 19 Settings page showing a Documentation link rendered by the documentation_link view widget next to a configuration section.
Technical namedocumentation_link
Viewsform (settings pages, element)
Moduleweb, present in every Odoo database
Used in core26 occurrences, including account, auth_oauth, base_setup, calendar, digest, google_gmail
VersionsOdoo 20.0, Odoo 19.0, Odoo 18.0, Odoo 17.0, Odoo 16.0
No-code setupNo. The element is added in view XML (Studio has no documentation link element)
Alternativesweb_ribbon, popover_widget, iap_buy_more_credits

What the documentation link widget does

Configuration screens generate questions, and Odoo's answer is the small arrow link labeled Documentation you find next to settings sections: OAuth setup, digest emails, payment providers. Every one of them is this widget. Because it is a view widget, it appears in XML as a <widget> element rather than a <field>: it has no value, saves nothing, and exists purely to render a link.

What earns it a page is the URL logic. Give it a relative path like /applications/finance/accounting.html and the component builds the full docs URL with a version segment computed from your server: an Odoo 19 database links to the 19.0 documentation, an Odoo 18 database to 18.0, with no view change. Give it a full http(s) URL and it uses it verbatim.

What this means for your team

For most companies this widget matters on the day you build your own settings pages. Custom modules with a res.config.settings section look native when they follow core conventions, and the documentation link is part of that convention. Pointing it at your own runbook, wiki page or SOP turns a bare settings toggle into something a new admin can self-serve.

The version-aware behavior is the quiet win for links into official docs: after an upgrade, every core Documentation link on every settings page points at the right version of the manual without anyone touching a view. If you hardcode absolute odoo.com URLs in your own modules instead of relative paths, you silently lose exactly that.

Supported options in Odoo 19

A view widget takes attributes on the element, not an options dictionary. All four verified in documentation_link.js, Odoo 19.0 web module, via its props and extractProps.

OptionTypeWhat it does
pathstring (attribute)Required. Either a docs path starting with / that gets the version-aware odoo.com prefix, or a full http(s) URL used verbatim.
labelstring (attribute)Link text. Without it the widget renders its standard Documentation presentation.
iconstring (attribute)Icon class displayed with the link, for example a Font Awesome name.
alert_linkboolean (attribute)Adds Bootstrap's alert-link class so the link matches the surrounding alert's colors. Removed on the Odoo 20 development branch in favor of a class attribute.

The version segment logic is worth knowing exactly. On a stable build, the server version info ends in final and the widget uses major.minor, for example 19.0, with a tilde in version names replaced by a dash. On any non-final build, alpha, beta or development, it links to master. So the same XML shows master docs on a staging build of the next version and stable docs in production.

Working examples

Core pattern: a settings section link

<widget name="documentation_link"
        path="/applications/general/auth/google.html"/>

Renders the standard Documentation link, expanded to the full odoo.com URL for the running server version.

Custom label and icon

<widget name="documentation_link"
        path="/applications/finance/accounting/taxes.html"
        label="How taxes work"
        icon="fa-book"/>

Linking your own documentation from a custom module

<widget name="documentation_link"
        path="https://wiki.yourcompany.com/odoo/expense-policy"
        label="Expense policy"/>

Anything starting with http:// or https:// bypasses the version logic and is used as-is.

Inside an alert box

<div class="alert alert-warning" role="alert">
  Configure your sender domain before going live.
  <widget name="documentation_link"
          path="/applications/general/email_communication.html"
          alert_link="1"/>
</div>

alert_link adds Bootstrap's alert-link class so the link inherits the alert's color scheme. This attribute is Odoo 19 and earlier; see the Odoo 20 section.

Reading extractProps: the URL test and the inline design

Reading extractProps settles a few details the docs never state.

The regex is minimal. The absolute-URL test is simply "starts with http:// or https://". A protocol-relative URL or a bare domain is treated as a docs path and glued after the version segment, producing a broken link. Always write the scheme.

The element is inline by design. The descriptor adds a d-inline class, so the link sits naturally inside a sentence, a label row, or an alert without wrapping div gymnastics. The base classes are o_doc_link me-2 in 19.

No record needed. The component declares the record prop optional and never reads it, so the widget works in any form context, including settings views that are not real records. That is also why nothing you do with it can dirty the form.

Version compatibility

VersionStatusNotes
Odoo 20.0In developmentNot released. The development branch replaces alert_link with a class attribute and centralizes the URL logic; see below.
Odoo 19.0VerifiedAll four attributes verified against the shipped source.
Odoo 18.0VerifiedSame attributes and registration, verified in the 18.0 source.
Odoo 17.0VerifiedWidget present with the same registry name. Not re-verified line by line for this page.
Odoo 16.0VerifiedWidget present with the same registry name. Not re-verified line by line for this page.

Upgrade note. Views using path, label and icon carry from 16 through 19 unchanged. Flag any alert_link usage in your custom modules now: the attribute disappears on the Odoo 20 development branch, replaced by a generic class attribute, so those views will need a one-line edit during a migration.

What is changing in Odoo 20

Odoo 20 is expected at Odoo Experience in Brussels, 24 to 26 September 2026. The following is read from the widget's file on the public development branch, which is unstable until feature freeze; we re-verify after release.

Three changes are visible. First, alert_link is removed. In its place the widget accepts a generic class attribute, string or object, so the old behavior becomes class="alert-link", and any custom class can ride along. Second, the default spacing changes subtly: the hardcoded me-2 margin moves into the default of the new class attribute. Third, the version-segment logic moves out of the component into a shared documentationUrl helper in @web/core/utils/urls, centralizing the rule other parts of the client already need. Behavior of relative and absolute paths is otherwise unchanged.

Common problems and fixes

SymptomCause and fix
Link points at the master documentationThe server is a non-final build, alpha, beta or development, so the version segment falls back to master. Expected on staging builds; production stable releases link to their own version.
Link URL comes out mangled, docs prefix glued to my domainThe path did not start with http:// or https://, so it was treated as a docs path. Write the full scheme for external links.
Widget ignored or view fails to loadIt was written as a field instead of a widget element. Use <widget name="documentation_link" .../>, not <field>.
Link renders but looks off inside an alertalert_link not set, so the link keeps its default styling. Add alert_link="1" on 19, or class="alert-link" once on Odoo 20.
Docs link still shows the old version after upgradeSomeone hardcoded an absolute versioned URL instead of a relative path. Switch to a relative path so the widget versions it automatically.

Documentation link widget vs the alternatives

WidgetBest forKey difference
documentation_linkLearn-more links on settings pages, core-stylePure view element with version-aware odoo.com URL building; stores nothing
web_ribbonUnmissable record state on a formA state banner driven by record data, not a navigation link
popover_widgetInline explanations that should not navigate awayShows help in a popover on the page instead of linking out
iap_buy_more_creditsLinking users to IAP credit purchaseA purpose-built commercial link, not general documentation

The test: a passive "learn more" pointer belongs to this widget. Anything that must react to record state, a warning that appears conditionally, a state banner, belongs to alerts or ribbons instead.

Frequently asked questions

What is the documentation_link widget in Odoo?+
It is the view widget behind the small Documentation links on Odoo's Settings pages. Written as <widget name="documentation_link" path="..."/>, it renders a link and stores nothing. Core uses it 26 times in Odoo 19.
How does it pick the documentation version?+
Read from the source: if the path is relative, the widget builds https://www.odoo.com/documentation/<version><path>, where the version is the server's major.minor on stable builds and master on any non-final build. Absolute http(s) URLs skip this logic entirely.
Can I use documentation_link for my own company documentation?+
Yes. Give path a full URL starting with http:// or https:// and it is used verbatim, so settings sections in custom modules can link to your wiki, runbook or SOP while looking exactly like core.
Why does my link point at the master docs on staging?+
Your staging server runs a non-final build, and the widget maps every non-final version to the master documentation. The same view links to the correct stable version in production. This is the designed behavior, not a bug.
What happens to alert_link in Odoo 20?+
On the public development branch the attribute is removed and replaced by a generic class attribute, so alert_link="1" becomes class="alert-link". Odoo 20 ships around late September 2026; re-check this page after release, since development branch details can still move.
Is there a Studio way to add a documentation link?+
No. Studio's component palette has no documentation link element, so it is added in view XML. It is a one-line change in a settings view, typical of the small view work in custom module development.

Building settings pages users can self-serve?

Native-feeling configuration screens, with the right links, warnings and defaults, are what separate a polished custom module from a bare one. We build Odoo modules to core conventions on 16 through 19, documentation links included.

Book a free consultation

How this page was produced

The attribute table, the URL construction rule and the inline styling were read from documentation_link.js in the Odoo 19.0 web module. The Odoo 18 source of the same file was compared for the version table, and the Odoo 20 section comes from diffing against the public development branch, where the alert_link removal and the documentationUrl helper are visible. Spotted an error? Tell us and we will correct the page.