TIP: You can type at any time to perform a new search.
UTM Trackers
utm · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.1
- Category
- Marketing
- Folder size
- 1.38 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- None
- Last tracking update
- 2026-08-15 22:44:17
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Xavier Morel, Raphael Collet, Odoo Translation Bot, Julien Castiaux, Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, William Braeckman, Dylan Kiss (dyki), Mayurrajsinh Rathod, omra-odoo, Julien Carion (juca), nihp-odoo, asno-odoo, Krzysztof Magusiak (krma), dhka-odoo, saurabh, ELCO, chpa-odoo, Romain ROSANO (rros)
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- crm, event, hr_recruitment, im_livechat, link_tracker, mass_mailing, partner_utm_source, sale, website
- Description
Enable management of UTM trackers: campaign, medium, source.
Code Analysis ⓘ
Views touched (14)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
utm_campaign_view_form |
utm.campaign.view.form | utm.campaign | form | New |
utm_campaign_view_form_quick_create |
utm.campaign.view.form.quick.create | utm.campaign | form | New |
utm_campaign_view_kanban |
utm.campaign.view.kanban | utm.campaign | kanban | New |
utm_campaign_view_tree |
utm.campaign.view.list | utm.campaign | list | New |
utm_medium_view_form |
utm.medium.view.form | utm.medium | form | New |
utm_medium_view_search |
utm.medium.view.search | utm.medium | search | New |
utm_medium_view_tree |
utm.medium.view.list | utm.medium | list | New |
utm_source_view_form |
utm.source.view.form | utm.source | form | New |
utm_source_view_tree |
utm.source.view.list | utm.source | list | New |
utm_stage_view_form |
utm.stage.view.form | utm.stage | form | New |
utm_stage_view_search |
utm.stage.view.search | utm.stage | search | New |
utm_stage_view_tree |
utm.stage.view.list | utm.stage | list | New |
utm_tag_view_tree |
utm.tag.view.list | utm.tag | list | New |
view_utm_campaign_view_search |
utm.campaign.view.search | utm.campaign | search | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (8)
New fields (0)
No new fields.
Public methods (1)-
get_utm_domain_cookies(cls)@classmethod
New fields (8)
-
activeBooleandefault=True args: 'Active' -
colorIntegerstring='Color Index' -
is_auto_campaignBooleandefault=Falsehelp='Allows us to filter relevant Campaigns'string='Automatically Generated Campaign' -
nameCharcompute='_compute_name'precompute=Truereadonly=Falserequired=Truestore=Truestring='Campaign Identifier'translate=False -
stage_idMany2one → utm.stagecopy=Falsedefault=<expr>group_expand='_group_expand_stage_ids'ondelete='restrict'required=Truestring='Stage' args: 'utm.stage' -
tag_idsMany2many → utm.tagstring='Tags' args: 'utm.tag', 'utm_tag_rel', 'tag_id', 'campaign_id' -
titleCharrequired=Truestring='Campaign Name'translate=True -
user_idMany2one → res.usersdefault=<expr>required=Truestring='Responsible' args: 'res.users'
-
create(self, vals_list)@api.model_create_multi
New fields (2)
-
activeBooleandefault=True -
nameCharrequired=Truestring='Medium Name'translate=False
-
SELF_REQUIRED_UTM_MEDIUMS_REF(self)@property -
create(self, vals_list)@api.model_create_multi
New fields (3)
-
campaign_idMany2one → utm.campaignhelp='This is a name that helps you keep track of your different campaign efforts, e.g. Fall_Drive, Christmas_Special'index='btree_not_null' args: 'utm.campaign', 'Campaign' -
medium_idMany2one → utm.mediumhelp='This is the method of delivery, e.g. Postcard, Email, or Banner Ad'index='btree_not_null' args: 'utm.medium', 'Medium' -
source_idMany2one → utm.sourcehelp='This is the source of the link, e.g. Search Engine, another domain, or name of email list'index='btree_not_null' args: 'utm.source', 'Source'
-
default_get(self, fields)@api.model -
find_or_create_record(self, model_name, name)@api.modelVersion of ``_find_or_create_record`` used in frontend notably in website_links. For UTM models it calls _find_or_create_record. For other models (as through inheritance custom models could be used notably in website links) it simply calls a create. In the end it relies on standard ACLs, and is mainly a wrapper for UTM models. :return: id of newly created or found record. As the magic of call_kw for create is not called anymore we have to manually return an id instead of a recordset. -
tracking_fields(self)
New fields (1)
-
nameCharrequired=Truestring='Source Name'
-
create(self, vals_list)@api.model_create_multi
New fields (2)
-
nameCharreadonly=Falserelated='source_id.name' args: 'Name' -
source_idMany2one → utm.sourcecopy=Falseondelete='restrict'required=Truestring='Source' args: 'utm.source'
-
copy_data(self, default=None)Increment the counter when duplicating the source. -
create(self, vals_list)@api.model_create_multiCreate the UTM sources if necessary, generate the name based on the content in batch. -
default_get(self, fields)@api.model -
write(self, vals)
New fields (2)
-
nameCharrequired=Truetranslate=True -
sequenceIntegerdefault=1
No public methods.
New fields (2)
-
colorIntegerdefault=<expr>help='Tag color. No color means no display in kanban to distinguish internal tags from public categorization tags.'string='Color Index' -
nameCharrequired=Truetranslate=True
No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…