Event CRM

event_crm
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/event_crm
VERSION
VERSION 1.0
CATEGORY
CATEGORYMarketing/Events
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOdoo S.A.
MAINTAINERS
MAINTAINERSOdoo S.A.
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Thibault Delavallée, Xavier Morel, Julien Castiaux, Tiffany Chang (tic), Gorash, Renaud Thiry, Julien Banken, Victor Piryns (pivi), Dylan Kiss (dyki), Andrzej(pian), Jérémy Hennecart (jeh), guce, yagp-odoo, Krzysztof Magusiak (krma), alan-odoo, Zachary (zavan)
WEBSITE
WEBSITEhttps://www.odoo.com/app/events
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:42
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - event
    - barcodes
    - web
    - base
    - base_setup
    - mail
    - bus
    - web_tour
    - html_editor
    - phone_validation
    - portal
    - http_routing
    - auth_signup
    - utm
    - crm
    - sales_team
    - calendar
    - resource
    - contacts
    - digest
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Create leads from event registrations.

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
crm_lead_merge_summary_inherit_event_crm crm_lead_merge_summary_inherit_event_crm ir.ui.view qweb Inherits crm.crm_lead_merge_summary
crm_lead_view_form crm.lead.view.form.inherit.event.crm crm.lead xpath Inherits crm.crm_lead_view_form
event_lead_rule_view_form event.lead.rule.view.form event.lead.rule form New
event_lead_rule_view_search event.lead.rule.view.search event.lead.rule search New
event_lead_rule_view_tree event.lead.rule.view.list event.lead.rule list New
event_question_view_form event.question.view.form event.question xpath Inherits event.event_question_view_form
event_registration_view_form event.registration.form.inherit.event.crm event.registration xpath Inherits event.view_event_registration_form
event_view_form event.event.form.inherit.event.crm event.event xpath Inherits event.view_event_form
event_view_tree event.event.list.inherit.event.crm event.event xpath Inherits event.view_event_tree
Models touched (6)

New fields (4)
  • event_id Many2one → event.event
    help='Event triggering the rule that created this lead' index='btree_not_null' string='Source Event' args: 'event.event'
  • event_lead_rule_id Many2one → event.lead.rule
    help='Rule that created this lead' index='btree_not_null' string='Registration Rule' args: 'event.lead.rule'
  • registration_count Integer
    compute='_compute_registration_count' groups='event.group_event_registration_desk' help='Counter for the registrations linked to this lead' string='# Registrations'
  • registration_ids Many2many → event.registration
    groups='event.group_event_registration_desk' help='Registrations triggering the rule that created this lead' string='Source Registrations' args: 'event.registration'
Public methods (0)

No public methods.

New fields (2)
  • lead_count Integer
    compute='_compute_lead_count' groups='sales_team.group_sale_salesman' string='# Leads'
  • lead_ids One2many → crm.lead
    groups='sales_team.group_sale_salesman' help='Leads generated from this event' string='Leads' args: 'crm.lead', 'event_id'
Public methods (1)
  • action_generate_leads(self, event_lead_rules=False)
    Re-generate leads based on event.lead.rules. The method is ran synchronously if there is a low amount of registrations, otherwise it goes through a CRON job that runs in batches.

New fields (3)
  • event_id Many2one → event.event
    ondelete='cascade' required=True string='Event' args: 'event.event'
  • event_lead_rule_ids Many2many → event.lead.rule
    string='Lead Rules' args: 'event.lead.rule'
  • processed_registration_id Integer
    help='The ID of the last processed event.registration, used to know where to resume.' args: 'Processed Registration'
Public methods (0)

No public methods.

New fields (13)
  • active Boolean
    default=True args: 'Active'
  • company_id Many2one → res.company
    help='Restrict the trigger of this rule to events belonging to a specific company.\nIf not set, no company restriction will be applied.' string='Company' args: 'res.company'
  • event_id Many2one → event.event
    domain="[('company_id', 'in', [company_id or current_company_id, False])]" help='Filter the attendees to include those of this specific event. If not set, no event restriction will be applied.' string='Event' args: 'event.event'
  • event_registration_filter Text
    help='Filter the attendees that will or not generate leads.' string='Registrations Domain'
  • event_type_ids Many2many → event.type
    help='Filter the attendees to include those of this specific event category. If not set, no event category restriction will be applied.' string='Event Templates' args: 'event.type'
  • lead_creation_basis Selection
    default='attendee' help='Per Attendee: A Lead is created for each Attendee (B2C).\nPer Order: A single Lead is created per Ticket Batch/Sale Order (B2B)' required=True string='Create' args: [('attendee', 'Per Attendee'), ('order', 'Per Order')]
  • lead_creation_trigger Selection
    default='create' help='Creation: at attendee creation;\nRegistered: at attendee registration, manually or automatically;\nAttended: when attendance is confirmed and registration set to done;' required=True string='When' args: [('create', 'Attendees are created'), ('confirm', 'Attendees are registered'), ('done', 'Attendees attended')]
  • lead_ids One2many → crm.lead
    groups='sales_team.group_sale_salesman' string='Created Leads' args: 'crm.lead', 'event_lead_rule_id'
  • lead_sales_team_id Many2one → crm.team
    help='Automatically assign the created leads to this Sales Team.' ondelete='set null' string='Sales Team' args: 'crm.team'
  • lead_tag_ids Many2many → crm.tag
    help='Automatically add these tags to the created leads.' string='Tags' args: 'crm.tag'
  • lead_type Selection
    default=<expr> help='Default lead type when this rule is applied.' required=True string='Lead Type' args: [('lead', 'Lead'), ('opportunity', 'Opportunity')]
  • lead_user_id Many2one → res.users
    help='Automatically assign the created leads to this Salesperson.' string='Salesperson' args: 'res.users'
  • name Char
    required=True translate=True args: 'Rule Name'
Public methods (1)
  • action_execute_rule(self)

New fields (0)

No new fields.

Public methods (1)
  • action_add_rule_button(self)

New fields (2)
  • lead_count Integer
    compute='_compute_lead_count' compute_sudo=True args: '# Leads'
  • lead_ids Many2many → crm.lead
    copy=False groups='sales_team.group_sale_salesman' readonly=True string='Leads' args: 'crm.lead'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
    Trigger rules based on registration creation, and check state for rules based on confirmed / done attendees.
  • write(self, vals)
    Update the lead values depending on fields updated in registrations. There are 2 main use cases * first is when we update the partner_id of multiple registrations. It happens when a public user fill its information when they register to an event; * second is when we update specific values of one registration like updating question answers or a contact information (email, phone); Also trigger rules based on confirmed and done attendees (state written to open and done).
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/18.0/event_crm
VERSION
VERSION 1.0
CATEGORY
CATEGORYMarketing/Events
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Thibault Delavallée, Christophe Simonis, Odoo Online, Aurélien Warnon, Adrien Dieudonné, Nasreddin Boulif (bon), Tiffany Chang (tic), Gorash, Renaud Thiry, Victor Piryns (pivi), Dylan Kiss (dyki), Noe Antoine, Andrzej(pian), Louis (wil)
WEBSITE
WEBSITEhttps://www.odoo.com/app/events
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:25:55
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - event
    - barcodes
    - web
    - base
    - base_setup
    - mail
    - bus
    - web_tour
    - html_editor
    - phone_validation
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - utm
    - crm
    - sales_team
    - calendar
    - resource
    - contacts
    - digest
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Create leads from event registrations.

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
crm_lead_merge_summary_inherit_event_crm crm_lead_merge_summary_inherit_event_crm ir.ui.view qweb Inherits crm.crm_lead_merge_summary
crm_lead_view_form crm.lead.view.form.inherit.event.crm crm.lead xpath Inherits crm.crm_lead_view_form
event_lead_rule_view_form event.lead.rule.view.form event.lead.rule form New
event_lead_rule_view_search event.lead.rule.view.search event.lead.rule search New
event_lead_rule_view_tree event.lead.rule.view.list event.lead.rule list New
event_registration_view_form event.registration.form.inherit.event.crm event.registration xpath Inherits event.view_event_registration_form
event_view_form event.event.form.inherit.event.crm event.event xpath Inherits event.view_event_form
event_view_tree event.event.list.inherit.event.crm event.event xpath Inherits event.view_event_tree
Models touched (5)

New fields (4)
  • event_id Many2one → event.event
    help='Event triggering the rule that created this lead' index='btree_not_null' string='Source Event' args: 'event.event'
  • event_lead_rule_id Many2one → event.lead.rule
    help='Rule that created this lead' string='Registration Rule' args: 'event.lead.rule'
  • registration_count Integer
    compute='_compute_registration_count' groups='event.group_event_registration_desk' help='Counter for the registrations linked to this lead' string='# Registrations'
  • registration_ids Many2many → event.registration
    groups='event.group_event_registration_desk' help='Registrations triggering the rule that created this lead' string='Source Registrations' args: 'event.registration'
Public methods (0)

No public methods.

New fields (3)
  • has_lead_request Boolean
    compute='_compute_has_lead_request' compute_sudo=True help='Set to True when a Lead Generation Request is currently running.' args: 'Ongoing Generation Request'
  • lead_count Integer
    compute='_compute_lead_count' groups='sales_team.group_sale_salesman' string='# Leads'
  • lead_ids One2many → crm.lead
    groups='sales_team.group_sale_salesman' help='Leads generated from this event' string='Leads' args: 'crm.lead', 'event_id'
Public methods (1)
  • action_generate_leads(self)
    Re-generate leads based on event.lead.rules. The method is ran synchronously if there is a low amount of registrations, otherwise it goes through a CRON job that runs in batches.

New fields (2)
  • event_id Many2one → event.event
    ondelete='cascade' required=True string='Event' args: 'event.event'
  • processed_registration_id Integer
    help='The ID of the last processed event.registration, used to know where to resume.' args: 'Processed Registration'
Public methods (0)

No public methods.

New fields (13)
  • active Boolean
    default=True args: 'Active'
  • company_id Many2one → res.company
    help='Restrict the trigger of this rule to events belonging to a specific company.\nIf not set, no company restriction will be applied.' string='Company' args: 'res.company'
  • event_id Many2one → event.event
    domain="[('company_id', 'in', [company_id or current_company_id, False])]" help='Filter the attendees to include those of this specific event. If not set, no event restriction will be applied.' string='Event' args: 'event.event'
  • event_registration_filter Text
    help='Filter the attendees that will or not generate leads.' string='Registrations Domain'
  • event_type_ids Many2many → event.type
    help='Filter the attendees to include those of this specific event category. If not set, no event category restriction will be applied.' string='Event Templates' args: 'event.type'
  • lead_creation_basis Selection
    default='attendee' help='Per Attendee: A Lead is created for each Attendee (B2C).\nPer Order: A single Lead is created per Ticket Batch/Sale Order (B2B)' required=True string='Create' args: [('attendee', 'Per Attendee'), ('order', 'Per Order')]
  • lead_creation_trigger Selection
    default='create' help='Creation: at attendee creation;\nRegistered: at attendee registration, manually or automatically;\nAttended: when attendance is confirmed and registration set to done;' required=True string='When' args: [('create', 'Attendees are created'), ('confirm', 'Attendees are registered'), ('done', 'Attendees attended')]
  • lead_ids One2many → crm.lead
    groups='sales_team.group_sale_salesman' string='Created Leads' args: 'crm.lead', 'event_lead_rule_id'
  • lead_sales_team_id Many2one → crm.team
    help='Automatically assign the created leads to this Sales Team.' ondelete='set null' string='Sales Team' args: 'crm.team'
  • lead_tag_ids Many2many → crm.tag
    help='Automatically add these tags to the created leads.' string='Tags' args: 'crm.tag'
  • lead_type Selection
    default=<expr> help='Default lead type when this rule is applied.' required=True string='Lead Type' args: [('lead', 'Lead'), ('opportunity', 'Opportunity')]
  • lead_user_id Many2one → res.users
    help='Automatically assign the created leads to this Salesperson.' string='Salesperson' args: 'res.users'
  • name Char
    required=True translate=True args: 'Rule Name'
Public methods (0)

No public methods.

New fields (2)
  • lead_count Integer
    compute='_compute_lead_count' compute_sudo=True args: '# Leads'
  • lead_ids Many2many → crm.lead
    copy=False groups='sales_team.group_sale_salesman' readonly=True string='Leads' args: 'crm.lead'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
    Trigger rules based on registration creation, and check state for rules based on confirmed / done attendees.
  • write(self, vals)
    Update the lead values depending on fields updated in registrations. There are 2 main use cases * first is when we update the partner_id of multiple registrations. It happens when a public user fill its information when they register to an event; * second is when we update specific values of one registration like updating question answers or a contact information (email, phone); Also trigger rules based on confirmed and done attendees (state written to open and done).
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/17.0/event_crm
VERSION
VERSION 1.0
CATEGORY
CATEGORYMarketing/Events
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, Christophe Simonis, qdp-odoo, Odoo Online, Victor Feyens, Nasreddin Boulif (bon), Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Pierre Paridans, Florian Charlier, Renaud Thiry, Louis Wicket (wil), miad-odoo, amdi-odoo, Dylan Kiss (dyki), Andrzej(pian), Jérémy Hennecart (jeh), Louis (wil)
WEBSITE
WEBSITEhttps://www.odoo.com/app/events
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:02:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - event
    - barcodes
    - web
    - base
    - base_setup
    - mail
    - bus
    - web_tour
    - phone_validation
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - utm
    - crm
    - sales_team
    - calendar
    - onboarding
    - resource
    - contacts
    - digest
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Create leads from event registrations.

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
crm_lead_merge_summary_inherit_event_crm crm_lead_merge_summary_inherit_event_crm ir.ui.view qweb Inherits crm.crm_lead_merge_summary
crm_lead_view_form crm.lead.view.form.inherit.event.crm crm.lead xpath Inherits crm.crm_lead_view_form
event_lead_rule_view_form event.lead.rule.view.form event.lead.rule form New
event_lead_rule_view_search event.lead.rule.view.search event.lead.rule search New
event_lead_rule_view_tree event.lead.rule.view.tree event.lead.rule tree New
event_registration_view_form event.registration.form.inherit.event.crm event.registration xpath Inherits event.view_event_registration_form
event_view_form event.event.form.inherit.event.crm event.event xpath Inherits event.view_event_form
event_view_tree event.event.tree.inherit.event.crm event.event xpath Inherits event.view_event_tree
Models touched (4)

New fields (4)
  • event_id Many2one → event.event
    help='Event triggering the rule that created this lead' string='Source Event' args: 'event.event'
  • event_lead_rule_id Many2one → event.lead.rule
    help='Rule that created this lead' string='Registration Rule' args: 'event.lead.rule'
  • registration_count Integer
    compute='_compute_registration_count' groups='event.group_event_registration_desk' help='Counter for the registrations linked to this lead' string='# Registrations'
  • registration_ids Many2many → event.registration
    groups='event.group_event_registration_desk' help='Registrations triggering the rule that created this lead' string='Source Registrations' args: 'event.registration'
Public methods (0)

No public methods.

New fields (2)
  • lead_count Integer
    compute='_compute_lead_count' groups='sales_team.group_sale_salesman' string='# Leads'
  • lead_ids One2many → crm.lead
    groups='sales_team.group_sale_salesman' help='Leads generated from this event' string='Leads' args: 'crm.lead', 'event_id'
Public methods (0)

No public methods.

New fields (13)
  • active Boolean
    default=True args: 'Active'
  • company_id Many2one → res.company
    help='Restrict the trigger of this rule to events belonging to a specific company.\nIf not set, no company restriction will be applied.' string='Company' args: 'res.company'
  • event_id Many2one → event.event
    domain="[('company_id', 'in', [company_id or current_company_id, False])]" help='Filter the attendees to include those of this specific event. If not set, no event restriction will be applied.' string='Event' args: 'event.event'
  • event_registration_filter Text
    help='Filter the attendees that will or not generate leads.' string='Registrations Domain'
  • event_type_ids Many2many → event.type
    help='Filter the attendees to include those of this specific event category. If not set, no event category restriction will be applied.' string='Event Categories' args: 'event.type'
  • lead_creation_basis Selection
    default='attendee' help='Per Attendee: A Lead is created for each Attendee (B2C).\nPer Order: A single Lead is created per Ticket Batch/Sale Order (B2B)' required=True string='Create' args: [('attendee', 'Per Attendee'), ('order', 'Per Order')]
  • lead_creation_trigger Selection
    default='create' help='Creation: at attendee creation;\nRegistered: at attendee registration, manually or automatically;\nAttended: when attendance is confirmed and registration set to done;' required=True string='When' args: [('create', 'Attendees are created'), ('confirm', 'Attendees are registered'), ('done', 'Attendees attended')]
  • lead_ids One2many → crm.lead
    groups='sales_team.group_sale_salesman' string='Created Leads' args: 'crm.lead', 'event_lead_rule_id'
  • lead_sales_team_id Many2one → crm.team
    help='Automatically assign the created leads to this Sales Team.' ondelete='set null' string='Sales Team' args: 'crm.team'
  • lead_tag_ids Many2many → crm.tag
    help='Automatically add these tags to the created leads.' string='Tags' args: 'crm.tag'
  • lead_type Selection
    default=<expr> help='Default lead type when this rule is applied.' required=True string='Lead Type' args: [('lead', 'Lead'), ('opportunity', 'Opportunity')]
  • lead_user_id Many2one → res.users
    help='Automatically assign the created leads to this Salesperson.' string='Salesperson' args: 'res.users'
  • name Char
    required=True translate=True args: 'Rule Name'
Public methods (0)

No public methods.

New fields (2)
  • lead_count Integer
    compute='_compute_lead_count' compute_sudo=True args: '# Leads'
  • lead_ids Many2many → crm.lead
    copy=False groups='sales_team.group_sale_salesman' readonly=True string='Leads' args: 'crm.lead'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
    Trigger rules based on registration creation, and check state for rules based on confirmed / done attendees.
  • write(self, vals)
    Update the lead values depending on fields updated in registrations. There are 2 main use cases * first is when we update the partner_id of multiple registrations. It happens when a public user fill its information when they register to an event; * second is when we update specific values of one registration like updating question answers or a contact information (email, phone); Also trigger rules based on confirmed and done attendees (state written to open and done).
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/16.0/event_crm
VERSION
VERSION 1.0
CATEGORY
CATEGORYMarketing/Events
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Romeo Fragomeli, std-odoo, Tiffany Chang (tic), Florian Charlier, Fabio Barbero, Renaud Thiry, Andrzej(pian)
WEBSITE
WEBSITEhttps://www.odoo.com/app/events
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:49
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - event
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - utm
    - crm
    - sales_team
    - calendar
    - resource
    - web_kanban_gauge
    - contacts
    - digest
    - phone_validation
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Create leads from event registrations.

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
crm_lead_merge_summary_inherit_event_crm crm_lead_merge_summary_inherit_event_crm ir.ui.view qweb Inherits crm.crm_lead_merge_summary
crm_lead_view_form crm.lead.view.form.inherit.event.crm crm.lead xpath Inherits crm.crm_lead_view_form
event_lead_rule_view_form event.lead.rule.view.form event.lead.rule form New
event_lead_rule_view_search event.lead.rule.view.search event.lead.rule search New
event_lead_rule_view_tree event.lead.rule.view.tree event.lead.rule tree New
event_registration_view_form event.registration.form.inherit.event.crm event.registration xpath Inherits event.view_event_registration_form
event_view_form event.event.form.inherit.event.crm event.event xpath Inherits event.view_event_form
event_view_tree event.event.tree.inherit.event.crm event.event xpath Inherits event.view_event_tree
Models touched (4)

New fields (4)
  • event_id Many2one → event.event
    help='Event triggering the rule that created this lead' string='Source Event' args: 'event.event'
  • event_lead_rule_id Many2one → event.lead.rule
    help='Rule that created this lead' string='Registration Rule' args: 'event.lead.rule'
  • registration_count Integer
    compute='_compute_registration_count' groups='event.group_event_registration_desk' help='Counter for the registrations linked to this lead' string='# Registrations'
  • registration_ids Many2many → event.registration
    groups='event.group_event_registration_desk' help='Registrations triggering the rule that created this lead' string='Source Registrations' args: 'event.registration'
Public methods (0)

No public methods.

New fields (2)
  • lead_count Integer
    compute='_compute_lead_count' groups='sales_team.group_sale_salesman' string='# Leads'
  • lead_ids One2many → crm.lead
    groups='sales_team.group_sale_salesman' help='Leads generated from this event' string='Leads' args: 'crm.lead', 'event_id'
Public methods (0)

No public methods.

New fields (13)
  • active Boolean
    default=True args: 'Active'
  • company_id Many2one → res.company
    help='Restrict the trigger of this rule to events belonging to a specific company.\nIf not set, no company restriction will be applied.' string='Company' args: 'res.company'
  • event_id Many2one → event.event
    domain="[('company_id', 'in', [company_id or current_company_id, False])]" help='Filter the attendees to include those of this specific event. If not set, no event restriction will be applied.' string='Event' args: 'event.event'
  • event_registration_filter Text
    help='Filter the attendees that will or not generate leads.' string='Registrations Domain'
  • event_type_ids Many2many → event.type
    help='Filter the attendees to include those of this specific event category. If not set, no event category restriction will be applied.' string='Event Categories' args: 'event.type'
  • lead_creation_basis Selection
    default='attendee' help='Per Attendee : A Lead is created for each Attendee (B2C).\nPer Order : A single Lead is created per Ticket Batch/Sale Order (B2B)' required=True string='Create' args: [('attendee', 'Per Attendee'), ('order', 'Per Order')]
  • lead_creation_trigger Selection
    default='create' help='Creation: at attendee creation;\nConfirmation: when attendee is confirmed, manually or automatically;\nAttended: when attendance is confirmed and registration set to done;' required=True string='When' args: [('create', 'Attendees are created'), ('confirm', 'Attendees are confirmed'), ('done', 'Attendees attended')]
  • lead_ids One2many → crm.lead
    groups='sales_team.group_sale_salesman' string='Created Leads' args: 'crm.lead', 'event_lead_rule_id'
  • lead_sales_team_id Many2one → crm.team
    help='Automatically assign the created leads to this Sales Team.' ondelete='set null' string='Sales Team' args: 'crm.team'
  • lead_tag_ids Many2many → crm.tag
    help='Automatically add these tags to the created leads.' string='Tags' args: 'crm.tag'
  • lead_type Selection
    default=<expr> help='Default lead type when this rule is applied.' required=True string='Lead Type' args: [('lead', 'Lead'), ('opportunity', 'Opportunity')]
  • lead_user_id Many2one → res.users
    help='Automatically assign the created leads to this Salesperson.' string='Salesperson' args: 'res.users'
  • name Char
    required=True translate=True args: 'Rule Name'
Public methods (0)

No public methods.

New fields (2)
  • lead_count Integer
    compute='_compute_lead_count' compute_sudo=True args: '# Leads'
  • lead_ids Many2many → crm.lead
    copy=False groups='sales_team.group_sale_salesman' readonly=True string='Leads' args: 'crm.lead'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
    Trigger rules based on registration creation, and check state for rules based on confirmed / done attendees.
  • write(self, vals)
    Update the lead values depending on fields updated in registrations. There are 2 main use cases * first is when we update the partner_id of multiple registrations. It happens when a public user fill its information when they register to an event; * second is when we update specific values of one registration like updating question answers or a contact information (email, phone); Also trigger rules based on confirmed and done attendees (state written to open and done).
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/15.0/event_crm
VERSION
VERSION 1.0
CATEGORY
CATEGORYMarketing/Events
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, Christophe Simonis, Xavier-Do, std-odoo, nie, Michael Mattiello (mcm), Mitul Shah
WEBSITE
WEBSITEhttps://www.odoo.com/app/events
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:25:27
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - event
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - utm
    - crm
    - sales_team
    - calendar
    - resource
    - fetchmail
    - web_kanban_gauge
    - contacts
    - digest
    - phone_validation
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Create leads from event registrations.

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
crm_lead_view_form crm.lead.view.form.inherit.event.crm crm.lead xpath Inherits crm.crm_lead_view_form
event_lead_rule_view_form event.lead.rule.view.form event.lead.rule form New
event_lead_rule_view_search event.lead.rule.view.search event.lead.rule search New
event_lead_rule_view_tree event.lead.rule.view.tree event.lead.rule tree New
event_registration_view_form event.registration.form.inherit.event.crm event.registration xpath Inherits event.view_event_registration_form
event_view_form event.event.form.inherit.event.crm event.event xpath Inherits event.view_event_form
event_view_tree event.event.tree.inherit.event.crm event.event xpath Inherits event.view_event_tree
Models touched (4)

New fields (4)
  • event_id Many2one → event.event
    help='Event triggering the rule that created this lead' string='Source Event' args: 'event.event'
  • event_lead_rule_id Many2one → event.lead.rule
    help='Rule that created this lead' string='Registration Rule' args: 'event.lead.rule'
  • registration_count Integer
    compute='_compute_registration_count' groups='event.group_event_registration_desk' help='Counter for the registrations linked to this lead' string='# Registrations'
  • registration_ids Many2many → event.registration
    groups='event.group_event_registration_desk' help='Registrations triggering the rule that created this lead' string='Source Registrations' args: 'event.registration'
Public methods (0)

No public methods.

New fields (2)
  • lead_count Integer
    compute='_compute_lead_count' groups='sales_team.group_sale_salesman' help='Counter for the leads linked to this event' string='# Leads'
  • lead_ids One2many → crm.lead
    groups='sales_team.group_sale_salesman' help='Leads generated from this event' string='Leads' args: 'crm.lead', 'event_id'
Public methods (0)

No public methods.

New fields (13)
  • active Boolean
    default=True args: 'Active'
  • company_id Many2one → res.company
    help='Restrict the trigger of this rule to events belonging to a specific company.\nIf not set, no company restriction will be applied.' string='Company' args: 'res.company'
  • event_id Many2one → event.event
    domain="[('company_id', 'in', [company_id or current_company_id, False])]" help='Filter the attendees to include those of this specific event. If not set, no event restriction will be applied.' string='Event' args: 'event.event'
  • event_registration_filter Text
    help='Filter the attendees that will or not generate leads.' string='Registrations Domain'
  • event_type_ids Many2many → event.type
    help='Filter the attendees to include those of this specific event category. If not set, no event category restriction will be applied.' string='Event Categories' args: 'event.type'
  • lead_creation_basis Selection
    default='attendee' help='Per Attendee : A Lead is created for each Attendee (B2C).\nPer Order : A single Lead is created per Ticket Batch/Sale Order (B2B)' required=True string='Create' args: [('attendee', 'Per Attendee'), ('order', 'Per Order')]
  • lead_creation_trigger Selection
    default='create' help='Creation: at attendee creation;\nConfirmation: when attendee is confirmed, manually or automatically;\nAttended: when attendance is confirmed and registration set to done;' required=True string='When' args: [('create', 'Attendees are created'), ('confirm', 'Attendees are confirmed'), ('done', 'Attendees attended')]
  • lead_ids One2many → crm.lead
    groups='sales_team.group_sale_salesman' string='Created Leads' args: 'crm.lead', 'event_lead_rule_id'
  • lead_sales_team_id Many2one → crm.team
    help='Automatically assign the created leads to this Sales Team.' ondelete='set null' string='Sales Team' args: 'crm.team'
  • lead_tag_ids Many2many → crm.tag
    help='Automatically add these tags to the created leads.' string='Tags' args: 'crm.tag'
  • lead_type Selection
    default=<expr> help='Default lead type when this rule is applied.' required=True string='Lead Type' args: [('lead', 'Lead'), ('opportunity', 'Opportunity')]
  • lead_user_id Many2one → res.users
    help='Automatically assign the created leads to this Salesperson.' string='Salesperson' args: 'res.users'
  • name Char
    required=True translate=True args: 'Rule Name'
Public methods (0)

No public methods.

New fields (2)
  • lead_count Integer
    compute='_compute_lead_count' compute_sudo=True help='Counter for the leads linked to this registration' args: '# Leads'
  • lead_ids Many2many → crm.lead
    copy=False groups='sales_team.group_sale_salesman' help='Leads generated from the registration.' readonly=True string='Leads' args: 'crm.lead'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
    Trigger rules based on registration creation, and check state for rules based on confirmed / done attendees.
  • write(self, vals)
    Update the lead values depending on fields updated in registrations. There are 2 main use cases * first is when we update the partner_id of multiple registrations. It happens when a public user fill its information when he register to an event; * second is when we update specific values of one registration like updating question answers or a contact information (email, phone); Also trigger rules based on confirmed and done attendees (state written to open and done).
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/14.0/event_crm
VERSION
VERSION 1.0
CATEGORY
CATEGORYMarketing/Events
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Christophe Simonis, Thibault Francois, Xavier-Do, nie
WEBSITE
WEBSITEhttps://www.odoo.com/page/events
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:14:29
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - event
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - utm
    - crm
    - sales_team
    - calendar
    - resource
    - fetchmail
    - contacts
    - digest
    - phone_validation
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Create leads from event registrations.

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
crm_lead_view_form crm.lead.view.form.inherit.event.crm crm.lead xpath Inherits crm.crm_lead_view_form
event_lead_rule_view_form event.lead.rule.view.form event.lead.rule form New
event_lead_rule_view_search event.lead.rule.view.search event.lead.rule search New
event_lead_rule_view_tree event.lead.rule.view.tree event.lead.rule tree New
event_registration_view_form event.registration.form.inherit.event.crm event.registration xpath Inherits event.view_event_registration_form
event_view_form event.event.form.inherit.event.crm event.event xpath Inherits event.view_event_form
event_view_tree event.event.tree.inherit.event.crm event.event xpath Inherits event.view_event_tree
Models touched (4)

New fields (4)
  • event_id Many2one → event.event
    help='Event triggering the rule that created this lead' string='Source Event' args: 'event.event'
  • event_lead_rule_id Many2one → event.lead.rule
    help='Rule that created this lead' string='Registration Rule' args: 'event.lead.rule'
  • registration_count Integer
    compute='_compute_registration_count' groups='event.group_event_user' help='Counter for the registrations linked to this lead' string='# Registrations'
  • registration_ids Many2many → event.registration
    groups='event.group_event_user' help='Registrations triggering the rule that created this lead' string='Source Registrations' args: 'event.registration'
Public methods (0)

No public methods.

New fields (2)
  • lead_count Integer
    compute='_compute_lead_count' groups='sales_team.group_sale_salesman' help='Counter for the leads linked to this event' string='# Leads'
  • lead_ids One2many → crm.lead
    groups='sales_team.group_sale_salesman' help='Leads generated from this event' string='Leads' args: 'crm.lead', 'event_id'
Public methods (0)

No public methods.

New fields (13)
  • active Boolean
    default=True args: 'Active'
  • company_id Many2one → res.company
    help='Restrict the trigger of this rule to events belonging to a specific company.\nIf not set, no company restriction will be applied.' string='Company' args: 'res.company'
  • event_id Many2one → event.event
    domain="[('company_id', 'in', [company_id or current_company_id, False])]" help='Filter the attendees to include those of this specific event. If not set, no event restriction will be applied.' string='Event' args: 'event.event'
  • event_registration_filter Text
    help='Filter the attendees that will or not generate leads.' string='Registrations Domain'
  • event_type_ids Many2many → event.type
    help='Filter the attendees to include those of this specific event category. If not set, no event category restriction will be applied.' string='Event Categories' args: 'event.type'
  • lead_creation_basis Selection
    default='attendee' help='Per Attendee : A Lead is created for each Attendee (B2C).\nPer Order : A single Lead is created per Ticket Batch/Sale Order (B2B)' required=True string='Create' args: [('attendee', 'Per Attendee'), ('order', 'Per Order')]
  • lead_creation_trigger Selection
    default='create' help='Creation: at attendee creation;\nConfirmation: when attendee is confirmed, manually or automatically;\nAttended: when attendance is confirmed and registration set to done;' required=True string='When' args: [('create', 'Attendees are created'), ('confirm', 'Attendees are confirmed'), ('done', 'Attendees attended')]
  • lead_ids One2many → crm.lead
    groups='sales_team.group_sale_salesman' string='Created Leads' args: 'crm.lead', 'event_lead_rule_id'
  • lead_sales_team_id Many2one → crm.team
    help='Automatically assign the created leads to this Sales Team.' string='Sales Team' args: 'crm.team'
  • lead_tag_ids Many2many → crm.tag
    help='Automatically add these tags to the created leads.' string='Tags' args: 'crm.tag'
  • lead_type Selection
    default=<expr> help='Default lead type when this rule is applied.' required=True string='Lead Type' args: [('lead', 'Lead'), ('opportunity', 'Opportunity')]
  • lead_user_id Many2one → res.users
    help='Automatically assign the created leads to this Salesperson.' string='Salesperson' args: 'res.users'
  • name Char
    required=True translate=True args: 'Rule Name'
Public methods (0)

No public methods.

New fields (2)
  • lead_count Integer
    compute='_compute_lead_count' groups='sales_team.group_sale_salesman' help='Counter for the leads linked to this registration' args: '# Leads'
  • lead_ids Many2many → crm.lead
    copy=False groups='sales_team.group_sale_salesman' help='Leads generated from the registration.' readonly=True string='Leads' args: 'crm.lead'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
    Trigger rules based on registration creation, and check state for rules based on confirmed / done attendees.
  • write(self, vals)
    Update the lead values depending on fields updated in registrations. There are 2 main use cases * first is when we update the partner_id of multiple registrations. It happens when a public user fill its information when he register to an event; * second is when we update specific values of one registration like updating question answers or a contact information (email, phone); Also trigger rules based on confirmed and done attendees (state written to open and done).