CopyClipboardURL
Share links, webhook endpoints, portal URLs: CopyClipboardURL renders a char field as a clickable link with a one-click copy button, and its name is one of the few in Odoo where capitalization matters.
| Technical name | CopyClipboardURL |
|---|---|
| Field types | char |
| Views | form, list |
| Also registered as | Siblings in the same file: CopyClipboardChar and CopyClipboardButton |
| Module | web, present in every Odoo database |
| Used in core | 6 occurrences across base_automation, web_tour, calendar, website_sale_loyalty, hr_attendance, website_event_track_live |
| Versions | Odoo 20.0, Odoo 19.0, Odoo 18.0, Odoo 17.0, Odoo 16.0 |
| No-code setup | Partial: Studio's Text field offers a Copy to Clipboard widget; the URL-flavored variant is XML-only |
| Alternatives | CopyClipboardChar, CopyClipboardButton, url |
What the Copy URL field does
What this means for your team
Supported options in Odoo 19
| Option | Type | What it does |
|---|---|---|
string (attribute) | string | Label of the copy button. Set it on the field element; the success feedback remains Copied.(default: Copy) |
disabled (attribute) | Python expression | Parsed into a prop for every variant in the file, but only the CopyClipboardButton template consumes it. On CopyClipboardURL it has no effect, verified in the 19.0 template. |
The disabled attribute is a dead knob here. The shared extractProps parses disabled (a Python expression) into a prop for all three widgets, but only the CopyClipboardButton template passes it to the copy button. The Char and URL templates ignore it, so a disabled expression on this widget parses, evaluates and changes nothing. The btn_class option in the same file belongs to the Button variant only.
Working examples
Raw values, secure contexts and the lost sibling
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | Partial / changed | Not released. Buttons restyle to inline links and the link icon becomes a shared symbol. See below. |
| Odoo 19.0 | Verified | Verified against the shipped source; Char sibling's icon changed while URL kept fa-link. |
| Odoo 18.0 | Verified | Same behavior; the CopyClipboardText sibling disappears in this version. |
| Odoo 17.0 | Verified | Widget present, alongside the now-removed CopyClipboardText. |
| Odoo 16.0 | Verified | Widget present with the same CamelCase registration. |
Upgrade note. Views using CopyClipboardText break at 18.0; switch them to CopyClipboardChar. Everything else carries over: the URL variant's name, attributes and behavior are stable from 16.0 through 19.0.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| widget="copyclipboardurl" renders a plain field | The registry name is case-sensitive CamelCase. Write widget="CopyClipboardURL" exactly. |
| The copy button does nothing on an internal server | The browser Clipboard API requires a secure context; plain http disables it. Serve Odoo over HTTPS (or test via localhost); the widget cannot work around this. |
| Pasted value lacks the http:// the link had | The clipboard receives the raw stored value; the display prefix is cosmetic. Store fully qualified URLs, or accept the raw copy. |
| disabled expression on the field is ignored | Only the CopyClipboardButton variant's template honors the disabled prop. Use CopyClipboardButton if conditional disabling of the copy action matters. |
| CopyClipboardText unknown after upgrading | That sibling widget was removed in 18.0. Switch those views to CopyClipboardChar. |
| Copy works but no confirmation appears | The success state swaps the button briefly; custom CSS or very fast interactions can mask it. Check for CSS overrides on the button classes before suspecting the copy itself. |
Copy URL field vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
CopyClipboardURL | URLs users both open and copy | Link rendering plus a raw-value copy button |
| CopyClipboardChar | Tokens, references and other plain text to copy | Renders as text, clipboard icon, same copy mechanics |
CopyClipboardButton | Copying without displaying the value | Button only, honors the disabled attribute and a btn_class option |
| url | Links that only need to be clicked | Clickable display without any copy affordance |
Frequently asked questions
How do I add a copy button to a URL field in Odoo?+
Why is the copy button not working on our Odoo?+
Does the button copy the displayed link or the stored value?+
What is the difference between CopyClipboardChar, CopyClipboardURL and CopyClipboardButton?+
Can I disable the copy button conditionally?+
Is the widget name really case-sensitive?+
What changes for this widget in Odoo 20?+
Sharing links out of Odoo more than clicking them?
Portal URLs, kiosk links, webhook endpoints: the moments Odoo hands values to other systems deserve deliberate UX and clean data. We polish these integration touchpoints and build the automations behind them, from webhooks to portal flows.
Book a free consultation