UTM Trackers

utm
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/utm
VERSION
VERSION 1.1
CATEGORY
CATEGORYMarketing
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo S.A.
MAINTAINERS
MAINTAINERSOdoo S.A.
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Xavier Morel, 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)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:43
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Enable management of UTM trackers: campaign, medium, source.

Code Analysis

Views touched (14)
XML IDNameModelTypeStatus
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
Models touched (8)

New fields (0)

No new fields.

Public methods (1)
  • get_utm_domain_cookies(cls)
    @classmethod

New fields (8)
  • active Boolean
    default=True args: 'Active'
  • color Integer
    string='Color Index'
  • is_auto_campaign Boolean
    default=False help='Allows us to filter relevant Campaigns' string='Automatically Generated Campaign'
  • name Char
    compute='_compute_name' precompute=True readonly=False required=True store=True string='Campaign Identifier' translate=False
  • stage_id Many2one → utm.stage
    copy=False default=<expr> group_expand='_group_expand_stage_ids' ondelete='restrict' required=True string='Stage' args: 'utm.stage'
  • tag_ids Many2many → utm.tag
    string='Tags' args: 'utm.tag', 'utm_tag_rel', 'tag_id', 'campaign_id'
  • title Char
    required=True string='Campaign Name' translate=True
  • user_id Many2one → res.users
    default=<expr> required=True string='Responsible' args: 'res.users'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (2)
  • active Boolean
    default=True
  • name Char
    required=True string='Medium Name' translate=False
Public methods (2)
  • SELF_REQUIRED_UTM_MEDIUMS_REF(self)
    @property
  • create(self, vals_list)
    @api.model_create_multi

New fields (3)
  • campaign_id Many2one → utm.campaign
    help='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_id Many2one → utm.medium
    help='This is the method of delivery, e.g. Postcard, Email, or Banner Ad' index='btree_not_null' args: 'utm.medium', 'Medium'
  • source_id Many2one → utm.source
    help='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'
Public methods (3)
  • default_get(self, fields)
    @api.model
  • find_or_create_record(self, model_name, name)
    @api.model
    Version 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)
  • name Char
    required=True string='Source Name'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (2)
  • name Char
    readonly=False related='source_id.name' args: 'Name'
  • source_id Many2one → utm.source
    copy=False ondelete='restrict' required=True string='Source' args: 'utm.source'
Public methods (4)
  • copy_data(self, default=None)
    Increment the counter when duplicating the source.
  • create(self, vals_list)
    @api.model_create_multi
    Create 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)
  • name Char
    required=True translate=True
  • sequence Integer
    default=1
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    default=<expr> help='Tag color. No color means no display in kanban to distinguish internal tags from public categorization tags.' string='Color Index'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/18.0/utm
VERSION
VERSION 1.1
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Thibault Delavallée, Yannick Tivisse, qsm-odoo, Odoo Online, Jorge Pinna Puissant, Tiffany Chang (tic), Gorash, Louis Wicket (wil), Dylan Kiss (dyki), Mayurrajsinh Rathod, omra-odoo, dane@odoo.com, Martin Trigaux (mat), Louis (wil), asno-odoo, Xavier Luyckx (xlu), Thomas Josse (THJO)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:25:56
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Enable management of UTM trackers: campaign, medium, source.

Code Analysis

Views touched (14)
XML IDNameModelTypeStatus
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
Models touched (8)

New fields (0)

No new fields.

Public methods (1)
  • get_utm_domain_cookies(cls)
    @classmethod

New fields (8)
  • active Boolean
    default=True args: 'Active'
  • color Integer
    string='Color Index'
  • is_auto_campaign Boolean
    default=False help='Allows us to filter relevant Campaigns' string='Automatically Generated Campaign'
  • name Char
    compute='_compute_name' precompute=True readonly=False required=True store=True string='Campaign Identifier' translate=False
  • stage_id Many2one → utm.stage
    copy=False default=<expr> group_expand='_group_expand_stage_ids' ondelete='restrict' required=True string='Stage' args: 'utm.stage'
  • tag_ids Many2many → utm.tag
    string='Tags' args: 'utm.tag', 'utm_tag_rel', 'tag_id', 'campaign_id'
  • title Char
    required=True string='Campaign Name' translate=True
  • user_id Many2one → res.users
    default=<expr> required=True string='Responsible' args: 'res.users'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (2)
  • active Boolean
    default=True
  • name Char
    required=True string='Medium Name' translate=False
Public methods (2)
  • SELF_REQUIRED_UTM_MEDIUMS_REF(self)
    @property
  • create(self, vals_list)
    @api.model_create_multi

New fields (3)
  • campaign_id Many2one → utm.campaign
    help='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_id Many2one → utm.medium
    help='This is the method of delivery, e.g. Postcard, Email, or Banner Ad' index='btree_not_null' args: 'utm.medium', 'Medium'
  • source_id Many2one → utm.source
    help='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'
Public methods (3)
  • default_get(self, fields)
    @api.model
  • find_or_create_record(self, model_name, name)
    @api.model
    Version 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)
  • name Char
    required=True string='Source Name'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (2)
  • name Char
    readonly=False related='source_id.name' args: 'Name'
  • source_id Many2one → utm.source
    copy=False ondelete='restrict' required=True string='Source' args: 'utm.source'
Public methods (4)
  • copy_data(self, default=None)
    Increment the counter when duplicating the source.
  • create(self, vals_list)
    @api.model_create_multi
    Create the UTM sources if necessary, generate the name based on the content in batch.
  • default_get(self, fields_list)
    @api.model
  • write(self, values)

New fields (2)
  • name Char
    required=True translate=True
  • sequence Integer
    default=1
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    default=<expr> help='Tag color. No color means no display in kanban to distinguish internal tags from public categorization tags.' string='Color Index'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/17.0/utm
VERSION
VERSION 1.1
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, Aaron Bohy, Jeremy Kersten, Yannick Tivisse, Odoo Online, Jorge Pinna Puissant, Victor Feyens, Tiffany Chang (tic), Gorash, Pierre Paridans, Benoit Socias, Louis Wicket (wil), amdi-odoo, Dylan Kiss (dyki), Bruno Boi, Mayurrajsinh Rathod, Adrien Schoffeniels, Brieuc-brd, Noe Antoine, dane@odoo.com, Louis (wil), asno-odoo, Pratik Raval (PRRA), Pierre Pulinckx (pipu)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:02:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Enable management of UTM trackers: campaign, medium, source.

Code Analysis

Views touched (14)
XML IDNameModelTypeStatus
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.tree utm.campaign tree 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.tree utm.medium tree New
utm_source_view_form utm.source.view.form utm.source form New
utm_source_view_tree utm.source.view.tree utm.source tree 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.tree utm.stage tree New
utm_tag_view_tree utm.tag.view.tree utm.tag tree New
view_utm_campaign_view_search utm.campaign.view.search utm.campaign search New
Models touched (8)

New fields (0)

No new fields.

Public methods (1)
  • get_utm_domain_cookies(cls)
    @classmethod

New fields (8)
  • active Boolean
    default=True args: 'Active'
  • color Integer
    string='Color Index'
  • is_auto_campaign Boolean
    default=False help='Allows us to filter relevant Campaigns' string='Automatically Generated Campaign'
  • name Char
    compute='_compute_name' precompute=True readonly=False required=True store=True string='Campaign Identifier' translate=False
  • stage_id Many2one → utm.stage
    copy=False default=<expr> group_expand='_group_expand_stage_ids' ondelete='restrict' required=True string='Stage' args: 'utm.stage'
  • tag_ids Many2many → utm.tag
    string='Tags' args: 'utm.tag', 'utm_tag_rel', 'tag_id', 'campaign_id'
  • title Char
    required=True string='Campaign Name' translate=True
  • user_id Many2one → res.users
    default=<expr> required=True string='Responsible' args: 'res.users'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (2)
  • active Boolean
    default=True
  • name Char
    required=True string='Medium Name' translate=False
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (3)
  • campaign_id Many2one → utm.campaign
    help='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_id Many2one → utm.medium
    help='This is the method of delivery, e.g. Postcard, Email, or Banner Ad' index='btree_not_null' args: 'utm.medium', 'Medium'
  • source_id Many2one → utm.source
    help='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'
Public methods (2)
  • default_get(self, fields)
    @api.model
  • tracking_fields(self)

New fields (1)
  • name Char
    required=True string='Source Name'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (2)
  • name Char
    readonly=False related='source_id.name' args: 'Name'
  • source_id Many2one → utm.source
    copy=False ondelete='restrict' required=True string='Source' args: 'utm.source'
Public methods (4)
  • copy(self, default=None)
    Increment the counter when duplicating the source.
  • create(self, vals_list)
    @api.model_create_multi
    Create the UTM sources if necessary, generate the name based on the content in batch.
  • default_get(self, fields_list)
    @api.model
  • write(self, values)

New fields (2)
  • name Char
    required=True translate=True
  • sequence Integer
    default=1
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    default=<expr> help='Tag color. No color means no display in kanban to distinguish internal tags from public categorization tags.' string='Color Index'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/16.0/utm
VERSION
VERSION 1.1
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Thibault Delavallée, Xavier Morel, Aaron Bohy, Yannick Tivisse, Romain Derie, Julien Castiaux, Aurélien Warnon, Romeo Fragomeli, Victor Feyens, std-odoo, Tiffany Chang (tic), Pierre Paridans, Benoit Socias, Bruno Boi, Mayurrajsinh Rathod, Adrien Schoffeniels, Brieuc-brd, Martin Trigaux (mat), asno-odoo
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:49
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Enable management of UTM trackers: campaign, medium, source.

Code Analysis

Views touched (13)
XML IDNameModelTypeStatus
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.tree utm.campaign tree 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.tree utm.medium tree New
utm_source_view_form utm.source.view.form utm.source form New
utm_source_view_tree utm.source.view.tree utm.source tree New
utm_stage_view_search utm.stage.view.search utm.stage search New
utm_stage_view_tree utm.stage.view.tree utm.stage tree New
utm_tag_view_tree utm.tag.view.tree utm.tag tree New
view_utm_campaign_view_search utm.campaign.view.search utm.campaign search New
Models touched (8)

New fields (0)

No new fields.

Public methods (1)
  • get_utm_domain_cookies(cls)
    @classmethod

New fields (7)
  • color Integer
    string='Color Index'
  • is_auto_campaign Boolean
    default=False help='Allows us to filter relevant Campaigns' string='Automatically Generated Campaign'
  • name Char
    compute='_compute_name' precompute=True readonly=False required=True store=True string='Campaign Identifier' translate=False
  • stage_id Many2one → utm.stage
    default=<expr> group_expand='_group_expand_stage_ids' ondelete='restrict' required=True string='Stage' args: 'utm.stage'
  • tag_ids Many2many → utm.tag
    string='Tags' args: 'utm.tag', 'utm_tag_rel', 'tag_id', 'campaign_id'
  • title Char
    required=True string='Campaign Name' translate=True
  • user_id Many2one → res.users
    default=<expr> required=True string='Responsible' args: 'res.users'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (2)
  • active Boolean
    default=True
  • name Char
    required=True string='Medium Name' translate=False
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (3)
  • campaign_id Many2one → utm.campaign
    help='This is a name that helps you keep track of your different campaign efforts, e.g. Fall_Drive, Christmas_Special' args: 'utm.campaign', 'Campaign'
  • medium_id Many2one → utm.medium
    help='This is the method of delivery, e.g. Postcard, Email, or Banner Ad' args: 'utm.medium', 'Medium'
  • source_id Many2one → utm.source
    help='This is the source of the link, e.g. Search Engine, another domain, or name of email list' args: 'utm.source', 'Source'
Public methods (2)
  • default_get(self, fields)
    @api.model
  • tracking_fields(self)

New fields (1)
  • name Char
    required=True string='Source Name'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (2)
  • name Char
    readonly=False related='source_id.name' args: 'Name'
  • source_id Many2one → utm.source
    copy=False ondelete='restrict' required=True string='Source' args: 'utm.source'
Public methods (4)
  • copy(self, default=None)
    Increment the counter when duplicating the source.
  • create(self, vals_list)
    @api.model_create_multi
    Create the UTM sources if necessary, generate the name based on the content in batch.
  • default_get(self, fields_list)
    @api.model
  • write(self, values)

New fields (2)
  • name Char
    required=True translate=True
  • sequence Integer
    default=1
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    default=<expr> help='Tag color. No color means no display in kanban to distinguish internal tags from public categorization tags.' string='Color Index'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/15.0/utm
VERSION
VERSION 1.1
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, Denis Ledoux, Yannick Tivisse, Xavier-Do, Julien Mougenot, qmo-odoo, dht-odoo, MAHAMADASIF ANSARI
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:25:27
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Enable management of UTM trackers: campaign, medium, source.

Code Analysis

Views touched (13)
XML IDNameModelTypeStatus
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.tree utm.campaign tree 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.tree utm.medium tree New
utm_source_view_form utm.source.view.form utm.source form New
utm_source_view_tree utm.source.view.tree utm.source tree New
utm_stage_view_search utm.stage.view.search utm.stage search New
utm_stage_view_tree utm.stage.view.tree utm.stage tree New
utm_tag_view_tree utm.tag.view.tree utm.tag tree New
view_utm_campaign_view_search utm.campaign.view.search utm.campaign search New
Models touched (7)

New fields (0)

No new fields.

Public methods (1)
  • get_utm_domain_cookies(cls)
    @classmethod

New fields (6)
  • color Integer
    string='Color Index'
  • is_auto_campaign Boolean
    default=False help='Allows us to filter relevant Campaigns' string='Automatically Generated Campaign'
  • name Char
    required=True string='Campaign Name' translate=True
  • stage_id Many2one → utm.stage
    default=<expr> group_expand='_group_expand_stage_ids' ondelete='restrict' required=True string='Stage' args: 'utm.stage'
  • tag_ids Many2many → utm.tag
    string='Tags' args: 'utm.tag', 'utm_tag_rel', 'tag_id', 'campaign_id'
  • user_id Many2one → res.users
    default=<expr> required=True string='Responsible' args: 'res.users'
Public methods (0)

No public methods.

New fields (2)
  • active Boolean
    default=True
  • name Char
    required=True string='Medium Name'
Public methods (0)

No public methods.

New fields (3)
  • campaign_id Many2one → utm.campaign
    help='This is a name that helps you keep track of your different campaign efforts, e.g. Fall_Drive, Christmas_Special' args: 'utm.campaign', 'Campaign'
  • medium_id Many2one → utm.medium
    help='This is the method of delivery, e.g. Postcard, Email, or Banner Ad' args: 'utm.medium', 'Medium'
  • source_id Many2one → utm.source
    help='This is the source of the link, e.g. Search Engine, another domain, or name of email list' args: 'utm.source', 'Source'
Public methods (2)
  • default_get(self, fields)
    @api.model
  • tracking_fields(self)

New fields (1)
  • name Char
    required=True string='Source Name' translate=True
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True translate=True
  • sequence Integer
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    default=<expr> help='Tag color. No color means no display in kanban to distinguish internal tags from public categorization tags.' string='Color Index'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/14.0/utm
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Nicolas Martinelli, Aaron Bohy, Barad Mahendra, Yannick Tivisse, Dharmraj Jhala, Xavier-Do, Sébastien Theys, Nasreddin (bon), Julien Mougenot, Debauche Stéphane, Jérémy Hennecart, Louis Wicket (wil), Nisha patel
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:14:29
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Enable management of UTM trackers: campaign, medium, source.

Code Analysis

Views touched (14)
XML IDNameModelTypeStatus
assets_backend utm assets ir.ui.view qweb Inherits web.assets_backend
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.tree utm.campaign tree 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.tree utm.medium tree New
utm_source_view_form utm.source.view.form utm.source form New
utm_source_view_tree utm.source.view.tree utm.source tree New
utm_stage_view_search utm.stage.view.search utm.stage search New
utm_stage_view_tree utm.stage.view.tree utm.stage tree New
utm_tag_view_tree utm.tag.view.tree utm.tag tree New
view_utm_campaign_view_search utm.campaign.view.search utm.campaign search New
Models touched (7)

New fields (0)

No new fields.

Public methods (1)
  • get_utm_domain_cookies(cls)
    @classmethod

New fields (6)
  • color Integer
    string='Color Index'
  • is_website Boolean
    default=False help='Allows us to filter relevant Campaign'
  • name Char
    required=True string='Campaign Name' translate=True
  • stage_id Many2one → utm.stage
    default=<expr> group_expand='_group_expand_stage_ids' ondelete='restrict' required=True string='Stage' args: 'utm.stage'
  • tag_ids Many2many → utm.tag
    string='Tags' args: 'utm.tag', 'utm_tag_rel', 'tag_id', 'campaign_id'
  • user_id Many2one → res.users
    default=<expr> required=True string='Responsible' args: 'res.users'
Public methods (0)

No public methods.

New fields (2)
  • active Boolean
    default=True
  • name Char
    required=True string='Medium Name'
Public methods (0)

No public methods.

New fields (3)
  • campaign_id Many2one → utm.campaign
    help='This is a name that helps you keep track of your different campaign efforts, e.g. Fall_Drive, Christmas_Special' args: 'utm.campaign', 'Campaign'
  • medium_id Many2one → utm.medium
    help='This is the method of delivery, e.g. Postcard, Email, or Banner Ad' args: 'utm.medium', 'Medium'
  • source_id Many2one → utm.source
    help='This is the source of the link, e.g. Search Engine, another domain, or name of email list' args: 'utm.source', 'Source'
Public methods (2)
  • default_get(self, fields)
    @api.model
  • tracking_fields(self)

New fields (1)
  • name Char
    required=True string='Source Name' translate=True
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True translate=True
  • sequence Integer
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    default=<expr> help='Tag color. No color means no display in kanban to distinguish internal tags from public categorization tags.' string='Color Index'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/13.0/utm
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Xavier Morel, Nicolas Martinelli, Yannick Tivisse, Adrian Torres, Aurélien Warnon, Xavier-Do, Sébastien Theys, Shreya Modi, Pierre Paridans, jbm-odoo, laa
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:06:42
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Enable management of UTM trackers: campaign, medium, source.

Code Analysis

Views touched (13)
XML IDNameModelTypeStatus
assets_backend utm assets ir.ui.view qweb Inherits web.assets_backend
utm_campaign_view_form utm.campaign.view.form utm.campaign form New
utm_campaign_view_kanban utm.campaign.view.kanban utm.campaign kanban New
utm_campaign_view_tree utm.campaign.view.tree utm.campaign tree 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.tree utm.medium tree New
utm_source_view_form utm.source.view.form utm.source form New
utm_source_view_tree utm.source.view.tree utm.source tree New
utm_stage_view_search utm.stage.view.search utm.stage search New
utm_stage_view_tree utm.stage.view.tree utm.stage tree New
utm_tag_view_tree utm.tag.view.tree utm.tag tree New
view_utm_campaign_view_search utm.campaign.view.search utm.campaign search New
Models touched (7)

New fields (0)

No new fields.

Public methods (1)
  • get_utm_domain_cookies(cls)
    @classmethod

New fields (6)
  • color Integer
    string='Color Index'
  • is_website Boolean
    default=False help='Allows us to filter relevant Campaign'
  • name Char
    required=True string='Campaign Name' translate=True
  • stage_id Many2one → utm.stage
    default=<expr> group_expand='_group_expand_stage_ids' ondelete='restrict' required=True string='Stage' args: 'utm.stage'
  • tag_ids Many2many → utm.tag
    string='Tags' args: 'utm.tag', 'utm_tag_rel', 'tag_id', 'campaign_id'
  • user_id Many2one → res.users
    default=<expr> required=True string='Responsible' args: 'res.users'
Public methods (0)

No public methods.

New fields (2)
  • active Boolean
    default=True
  • name Char
    required=True string='Medium Name'
Public methods (0)

No public methods.

New fields (3)
  • campaign_id Many2one → utm.campaign
    help='This is a name that helps you keep track of your different campaign efforts, e.g. Fall_Drive, Christmas_Special' args: 'utm.campaign', 'Campaign'
  • medium_id Many2one → utm.medium
    help='This is the method of delivery, e.g. Postcard, Email, or Banner Ad' args: 'utm.medium', 'Medium'
  • source_id Many2one → utm.source
    help='This is the source of the link, e.g. Search Engine, another domain, or name of email list' args: 'utm.source', 'Source'
Public methods (2)
  • default_get(self, fields)
    @api.model
  • tracking_fields(self)

New fields (1)
  • name Char
    required=True string='Source Name' translate=True
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True translate=True
  • sequence Integer
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    string='Color Index'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/12.0/utm
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Christophe Simonis, Yannick Tivisse, Alexandre Kühn, qsm-odoo, Xavier-Do
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:57:01
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Enable UTM trackers in shared links.
=====================================================
        

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
utm_campaign_form utm.campaign.form utm.campaign form New
utm_campaign_tree utm.campaign.tree utm.campaign tree New
utm_medium_view_form utm.medium.form utm.medium form New
utm_medium_view_tree utm.medium.tree utm.medium tree New
utm_source_view_form utm.source.form utm.source form New
utm_source_view_tree utm.source.tree utm.source tree New
Models touched (5)

New fields (0)

No new fields.

Public methods (1)
  • get_utm_domain_cookies(cls)
    @classmethod

New fields (1)
  • name Char
    required=True string='Campaign Name' translate=True
Public methods (0)

No public methods.

New fields (2)
  • active Boolean
    default=True
  • name Char
    required=True string='Channel Name'
Public methods (0)

No public methods.

New fields (3)
  • campaign_id Many2one → utm.campaign
    help='This is a name that helps you keep track of your different campaign efforts, e.g. Fall_Drive, Christmas_Special' args: 'utm.campaign', 'Campaign'
  • medium_id Many2one → utm.medium
    help='This is the method of delivery, e.g. Postcard, Email, or Banner Ad' oldname='channel_id' args: 'utm.medium', 'Medium'
  • source_id Many2one → utm.source
    help='This is the source of the link, e.g. Search Engine, another domain, or name of email list' args: 'utm.source', 'Source'
Public methods (2)
  • default_get(self, fields)
    @api.model
  • tracking_fields(self)

New fields (1)
  • name Char
    required=True string='Source Name' translate=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/11.0/utm
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Olivier Dony, Christophe Simonis, Jeremy Kersten, GitHub, Yannick Tivisse, Odoo Online
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:53:43
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Enable UTM trackers in shared links.
=====================================================
        

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
utm_campaign_form utm.campaign.form utm.campaign form New
utm_campaign_tree utm.campaign.tree utm.campaign tree New
utm_medium_view_form utm.medium.form utm.medium form New
utm_medium_view_tree utm.medium.tree utm.medium tree New
utm_source_view_form utm.source.form utm.source form New
utm_source_view_tree utm.source.tree utm.source tree New
Models touched (5)

New fields (0)

No new fields.

Public methods (1)
  • get_utm_domain_cookies(cls)
    @classmethod

New fields (1)
  • name Char
    required=True string='Campaign Name' translate=True
Public methods (0)

No public methods.

New fields (2)
  • active Boolean
    default=True
  • name Char
    required=True string='Channel Name'
Public methods (0)

No public methods.

New fields (3)
  • campaign_id Many2one → utm.campaign
    help='This is a name that helps you keep track of your different campaign efforts, e.g. Fall_Drive, Christmas_Special' args: 'utm.campaign', 'Campaign'
  • medium_id Many2one → utm.medium
    help='This is the method of delivery, e.g. Postcard, Email, or Banner Ad' oldname='channel_id' args: 'utm.medium', 'Medium'
  • source_id Many2one → utm.source
    help='This is the source of the link, e.g. Search Engine, another domain, or name of email list' args: 'utm.source', 'Source'
Public methods (2)
  • default_get(self, fields)
    @api.model
  • tracking_fields(self)

New fields (1)
  • name Char
    required=True string='Source Name' translate=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/10.0/utm
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Simon Lejeune, Julien Legros, Richard Mathot, qdp-odoo, Jeremy Kersten, Yannick Tivisse
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:50:48
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Enable UTM trackers in shared links.
=====================================================
        

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
utm_campaign_form utm.campaign.form utm.campaign form New
utm_campaign_tree utm.campaign.tree utm.campaign tree New
utm_medium_view_form utm.medium.form utm.medium form New
utm_medium_view_tree utm.medium.tree utm.medium tree New
utm_source_view_form utm.source.form utm.source form New
utm_source_view_tree utm.source.tree utm.source tree New
Models touched (5)

New fields (0)

No new fields.

Public methods (1)
  • get_utm_domain_cookies(cls)
    @classmethod

New fields (1)
  • name Char
    required=True string='Campaign Name' translate=True
Public methods (0)

No public methods.

New fields (2)
  • active Boolean
    default=True
  • name Char
    required=True string='Channel Name'
Public methods (0)

No public methods.

New fields (3)
  • campaign_id Many2one → utm.campaign
    help='This is a name that helps you keep track of your different campaign efforts Ex: Fall_Drive, Christmas_Special' args: 'utm.campaign', 'Campaign'
  • medium_id Many2one → utm.medium
    help='This is the method of delivery.Ex: Postcard, Email, or Banner Ad' oldname='channel_id' args: 'utm.medium', 'Medium'
  • source_id Many2one → utm.source
    help='This is the source of the link Ex:Search Engine, another domain,or name of email list' args: 'utm.source', 'Source'
Public methods (2)
  • default_get(self, fields)
    @api.model
  • tracking_fields(self)

New fields (1)
  • name Char
    required=True string='Source Name' translate=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/9.0/utm
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Christophe Simonis, Jeremy Kersten, Julien De Coster
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:48:30
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - marketing
    - base
    - base_setup
    - web_kanban
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Enable UTM trackers in shared links.
=====================================================
        

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
utm_campaign_form utm.campaign.form utm.campaign form New
utm_campaign_tree utm.campaign.tree utm.campaign tree New
utm_medium_view_form utm.medium.form utm.medium form New
utm_medium_view_tree utm.medium.tree utm.medium tree New
utm_source_view_form utm.source.form utm.source form New
utm_source_view_tree utm.source.tree utm.source tree New
Models touched (5)

New fields (0)

No new fields.

Public methods (1)
  • get_utm_domain_cookies(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • tracking_fields(self)
  • tracking_get_values(self, cr, uid, vals, context=None)

New fields (0)

No new fields.

Public methods (0)

No public methods.