| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/social |
| GIT | |
| GIT | https://github.com/OCA/social.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/social/tree/18.0/mail_gateway_whatsapp |
| VERSION | |
| VERSION | 2.1.5 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Creu Blanca, Dixmit |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Creu Blanca, Dixmit |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Carlos Lopez, Weblate, OCA-git-bot, oca-ci, CarlosRoca13, CristianoMafraJunior, Julio Santa Cruz |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/social |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:16 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/social: - mail_gateway odoo/odoo: - base - base_setup - web - bus - web_tour - html_editor - phone_validation |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests_toolbelt |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module allows to respond whatsapp chats. This way, a group of users can respond customers or any other set of partners in an integrated way. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
ir_actions_server_view_form |
ir.actions.server.view.form.inherit.mail_gateway_whatsapp | ir.actions.server | xpath | Inherits base.view_server_action_form |
mail_compose_gateway_message_form_view |
mail.compose.gateway.message | xpath | Inherits mail_gateway.mail_compose_gateway_message_form_view | |
mail_gateway_form_view |
mail.gateway.form (in mail_gateway_telegram) | mail.gateway | xpath | Inherits mail_gateway.mail_gateway_form_view |
view_mail_whatsapp_template_form |
view.mail.whatsapp.template.form | mail.whatsapp.template | form | New |
view_mail_whatsapp_template_search |
view.mail.whatsapp.template.search | mail.whatsapp.template | search | New |
view_mail_whatsapp_template_tree |
view.mail.whatsapp.template.tree | mail.whatsapp.template | list | New |
whatsapp_composer_form_view |
whatsapp.composer.form (in mail_gateway_whatsapp) | whatsapp.composer | form | New |
No new fields.
Public methods (0)No public methods.
state
Selection
ondelete={'whatsapp': 'cascade'}
selection_add=[('whatsapp', 'WhatsApp message')]
whatsapp_gateway_id
Many2one → mail.gateway
comodel_name='mail.gateway'
domain=[('gateway_type', '=', 'whatsapp')]
whatsapp_partner
Char
whatsapp_template_id
Many2one → mail.whatsapp.template
comodel_name='mail.whatsapp.template'
domain="[('gateway_id', '=', whatsapp_gateway_id),('model_id', '=', model_id)]"
No public methods.
whatsapp_template_id
Many2one → mail.whatsapp.template
domain="[\n ('state', '=', 'approved'),\n ('is_supported', '=', True),\n ('model', '=', model)\n ]"
args: 'mail.whatsapp.template'
onchange_whatsapp_template_id(self)
gateway_type
Selection
ondelete={'whatsapp': 'cascade'}
selection_add=[('whatsapp', 'WhatsApp')]
whatsapp_account_id
Char
whatsapp_from_phone
Char
whatsapp_security_key
Char
whatsapp_template_count
Integer
compute='_compute_whatsapp_template_count'
whatsapp_template_ids
One2many → mail.whatsapp.template
whatsapp_version
Char
default='23.0'
button_import_whatsapp_template(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
body
Text
required=True
button_ids
One2many → mail.whatsapp.template.button
string='Buttons'
args: 'mail.whatsapp.template.button', 'template_id'
category
Selection
required=True
args: [('authentication', 'Authentication'), ('marketing', 'Marketing'), ('utility', 'Utility')]
company_id
Many2one → res.company
related='gateway_id.company_id'
store=True
args: 'res.company'
footer
Char
gateway_id
Many2one → mail.gateway
domain=[('gateway_type', '=', 'whatsapp')]
ondelete='cascade'
required=True
args: 'mail.gateway'
header
Char
is_supported
Boolean
copy=False
language
Selection
required=True
args: supported_languages
model
Char
related='model_id.model'
store=True
string='Related model'
model_id
Many2one → ir.model
comodel_name='ir.model'
default=<expr>
ondelete='cascade'
required=True
string='Applies to'
name
Char
required=True
state
Selection
default='draft'
required=True
args: [('draft', 'Draft'), ('pending', 'Pending'), ('approved', 'Approved'), ('in_appeal', 'In Appeal'), ('rejected', 'Rejected'), ('pending_deletion', 'Pending Deletion'), ('deleted', 'Deleted'), ('disabled', 'Disabled'), ('paused', 'Paused'), ('limit_exceeded', 'Limit Exceeded'), ('archived', 'Archived')]
template_name
Char
compute='_compute_template_name'
copy=False
store=True
template_uid
Char
copy=False
readonly=True
variable_ids
One2many → mail.whatsapp.template.variable
compute='_compute_variable_ids'
precompute=True
readonly=False
store=True
string='Variables'
args: 'mail.whatsapp.template.variable', 'template_id'
button_back2draft(self)
button_export_template(self)
button_sync_template(self)
prepare_value_to_send(self)
render_body_message(self)
button_type
Selection
default='quick_reply'
required=True
string='Type'
args: [('quick_reply', 'Quick Reply'), ('url', 'Visit Website'), ('phone_number', 'Call Number')]
call_number
Char
name
Char
size=25
string='Button Text'
sequence
Integer
template_id
Many2one → mail.whatsapp.template
comodel_name='mail.whatsapp.template'
ondelete='cascade'
required=True
url_type
Selection
default='static'
args: [('static', 'Static'), ('dynamic', 'Dynamic')]
variable_ids
One2many → mail.whatsapp.template.variable
compute='_compute_variable_ids'
copy=True
precompute=True
store=True
args: 'mail.whatsapp.template.variable', 'button_id'
website_url
Char
check_variable_ids(self)
button_id
Many2one → mail.whatsapp.template.button
ondelete='cascade'
args: 'mail.whatsapp.template.button'
field_name
Char
string='Field'
line_type
Selection
required=True
args: [('header', 'Header'), ('body', 'Body'), ('button', 'Button')]
model
Char
related='template_id.model'
string='Model Name'
name
Char
required=True
string='Placeholder'
sample_value
Char
default='Sample Value'
required=True
template_id
Many2one → mail.whatsapp.template
comodel_name='mail.whatsapp.template'
ondelete='cascade'
required=True
No public methods.
No new fields.
Public methods (0)No public methods.
body
Text
find_gateway
Boolean
gateway_id
Many2one → mail.gateway
domain=[('gateway_type', '=', 'whatsapp')]
required=True
args: 'mail.gateway'
is_required_template
Boolean
compute='_compute_is_required_template'
number_field_name
Char
res_id
Integer
res_model
Char
template_id
Many2one → mail.whatsapp.template
domain="[\n ('gateway_id', '=', gateway_id),\n ('state', '=', 'approved'),\n ('is_supported', '=', True),\n ('model', '=', res_model)\n ]"
args: 'mail.whatsapp.template'
action_send_whatsapp(self)
action_view_whatsapp(self)
default_get(self, fields)
onchange_gateway_id(self)
onchange_template_id(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/social |
| GIT | |
| GIT | https://github.com/OCA/social.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/social/tree/17.0/mail_gateway_whatsapp |
| VERSION | |
| VERSION | 1.1.4 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Creu Blanca, Dixmit |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Creu Blanca, Dixmit |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Carlos Lopez, Weblate, OCA-git-bot, oca-ci, CarlosRoca13, CristianoMafraJunior, Julio Santa Cruz |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/social |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:09 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/social: - mail_gateway odoo/odoo: - base - base_setup - web - bus - web_tour - phone_validation |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests_toolbelt |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module allows to respond whatsapp chats. This way, a group of users can respond customers or any other set of partners in an integrated way. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
mail_compose_gateway_message_form_view |
mail.compose.gateway.message | xpath | Inherits mail_gateway.mail_compose_gateway_message_form_view | |
mail_gateway_form_view |
mail.gateway.form (in mail_gateway_telegram) | mail.gateway | xpath | Inherits mail_gateway.mail_gateway_form_view |
view_mail_whatsapp_template_form |
view.mail.whatsapp.template.form | mail.whatsapp.template | form | New |
view_mail_whatsapp_template_search |
view.mail.whatsapp.template.search | mail.whatsapp.template | search | New |
view_mail_whatsapp_template_tree |
view.mail.whatsapp.template.tree | mail.whatsapp.template | tree | New |
whatsapp_composer_form_view |
whatsapp.composer.form (in mail_gateway_whatsapp) | whatsapp.composer | form | New |
No new fields.
Public methods (0)No public methods.
whatsapp_template_id
Many2one → mail.whatsapp.template
domain="[\n ('state', '=', 'approved'),\n ('is_supported', '=', True),\n ('model', '=', model)\n ]"
args: 'mail.whatsapp.template'
onchange_whatsapp_template_id(self)
gateway_type
Selection
ondelete={'whatsapp': 'cascade'}
selection_add=[('whatsapp', 'WhatsApp')]
whatsapp_account_id
Char
whatsapp_from_phone
Char
whatsapp_security_key
Char
whatsapp_template_count
Integer
compute='_compute_whatsapp_template_count'
whatsapp_template_ids
One2many → mail.whatsapp.template
whatsapp_version
Char
default='15.0'
button_import_whatsapp_template(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
body
Text
required=True
button_ids
One2many → mail.whatsapp.template.button
string='Buttons'
args: 'mail.whatsapp.template.button', 'template_id'
category
Selection
required=True
args: [('authentication', 'Authentication'), ('marketing', 'Marketing'), ('utility', 'Utility')]
company_id
Many2one → res.company
related='gateway_id.company_id'
store=True
args: 'res.company'
footer
Char
gateway_id
Many2one → mail.gateway
domain=[('gateway_type', '=', 'whatsapp')]
ondelete='cascade'
required=True
args: 'mail.gateway'
header
Char
is_supported
Boolean
copy=False
language
Selection
required=True
args: supported_languages
model
Char
related='model_id.model'
store=True
string='Related model'
model_id
Many2one → ir.model
comodel_name='ir.model'
default=<expr>
ondelete='cascade'
required=True
string='Applies to'
name
Char
required=True
state
Selection
default='draft'
required=True
args: [('draft', 'Draft'), ('pending', 'Pending'), ('approved', 'Approved'), ('in_appeal', 'In Appeal'), ('rejected', 'Rejected'), ('pending_deletion', 'Pending Deletion'), ('deleted', 'Deleted'), ('disabled', 'Disabled'), ('paused', 'Paused'), ('limit_exceeded', 'Limit Exceeded'), ('archived', 'Archived')]
template_name
Char
compute='_compute_template_name'
copy=False
store=True
template_uid
Char
copy=False
readonly=True
variable_ids
One2many → mail.whatsapp.template.variable
compute='_compute_variable_ids'
precompute=True
readonly=False
store=True
string='Variables'
args: 'mail.whatsapp.template.variable', 'template_id'
button_back2draft(self)
button_export_template(self)
button_sync_template(self)
prepare_value_to_send(self)
render_body_message(self)
button_type
Selection
default='quick_reply'
required=True
string='Type'
args: [('quick_reply', 'Quick Reply'), ('url', 'Visit Website'), ('phone_number', 'Call Number')]
call_number
Char
name
Char
size=25
string='Button Text'
sequence
Integer
template_id
Many2one → mail.whatsapp.template
comodel_name='mail.whatsapp.template'
ondelete='cascade'
required=True
url_type
Selection
default='static'
args: [('static', 'Static'), ('dynamic', 'Dynamic')]
variable_ids
One2many → mail.whatsapp.template.variable
compute='_compute_variable_ids'
copy=True
precompute=True
store=True
args: 'mail.whatsapp.template.variable', 'button_id'
website_url
Char
check_variable_ids(self)
button_id
Many2one → mail.whatsapp.template.button
ondelete='cascade'
args: 'mail.whatsapp.template.button'
field_name
Char
string='Field'
line_type
Selection
required=True
args: [('header', 'Header'), ('body', 'Body'), ('button', 'Button')]
model
Char
related='template_id.model'
string='Model Name'
name
Char
required=True
string='Placeholder'
sample_value
Char
default='Sample Value'
required=True
template_id
Many2one → mail.whatsapp.template
comodel_name='mail.whatsapp.template'
ondelete='cascade'
required=True
No public methods.
No new fields.
Public methods (0)No public methods.
body
Text
find_gateway
Boolean
gateway_id
Many2one → mail.gateway
domain=[('gateway_type', '=', 'whatsapp')]
required=True
args: 'mail.gateway'
is_required_template
Boolean
compute='_compute_is_required_template'
number_field_name
Char
res_id
Integer
res_model
Char
template_id
Many2one → mail.whatsapp.template
domain="[\n ('gateway_id', '=', gateway_id),\n ('state', '=', 'approved'),\n ('is_supported', '=', True),\n ('model', '=', res_model)\n ]"
args: 'mail.whatsapp.template'
action_send_whatsapp(self)
action_view_whatsapp(self)
default_get(self, fields)
onchange_gateway_id(self)
onchange_template_id(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/social |
| GIT | |
| GIT | https://github.com/OCA/social.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/social/tree/16.0/mail_gateway_whatsapp |
| VERSION | |
| VERSION | 1.1.3 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Creu Blanca, Dixmit |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Creu Blanca, Dixmit |
| COMMITTERS | |
| COMMITTERS | Enric Tobella, Carlos Lopez, Weblate, OCA-git-bot, oca-ci, Marcel Savegnago |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/social |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:55 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/social: - mail_gateway odoo/odoo: - base - base_setup - web - bus - web_tour - phone_validation |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests_toolbelt |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
mail_compose_gateway_message_form_view |
mail.compose.gateway.message | xpath | Inherits mail_gateway.mail_compose_gateway_message_form_view | |
mail_gateway_form_view |
mail.gateway.form (in mail_gateway_telegram) | mail.gateway | xpath | Inherits mail_gateway.mail_gateway_form_view |
view_mail_whatsapp_template_form |
view.mail.whatsapp.template.form | mail.whatsapp.template | form | New |
view_mail_whatsapp_template_search |
view.mail.whatsapp.template.search | mail.whatsapp.template | search | New |
view_mail_whatsapp_template_tree |
view.mail.whatsapp.template.tree | mail.whatsapp.template | tree | New |
whatsapp_composer_form_view |
whatsapp.composer.form (in mail_gateway_whatsapp) | whatsapp.composer | form | New |
No new fields.
Public methods (0)No public methods.
whatsapp_template_id
Many2one → mail.whatsapp.template
domain="[\n ('state', '=', 'approved'),\n ('is_supported', '=', True)\n ]"
args: 'mail.whatsapp.template'
onchange_whatsapp_template_id(self)
gateway_type
Selection
ondelete={'whatsapp': 'cascade'}
selection_add=[('whatsapp', 'WhatsApp')]
whatsapp_account_id
Char
whatsapp_from_phone
Char
whatsapp_security_key
Char
whatsapp_template_count
Integer
compute='_compute_whatsapp_template_count'
whatsapp_template_ids
One2many → mail.whatsapp.template
whatsapp_version
Char
default='15.0'
button_import_whatsapp_template(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
body
Text
required=True
category
Selection
required=True
args: [('authentication', 'Authentication'), ('marketing', 'Marketing'), ('utility', 'Utility')]
company_id
Many2one → res.company
related='gateway_id.company_id'
store=True
args: 'res.company'
footer
Char
gateway_id
Many2one → mail.gateway
domain=[('gateway_type', '=', 'whatsapp')]
ondelete='cascade'
required=True
args: 'mail.gateway'
header
Char
is_supported
Boolean
copy=False
language
Selection
required=True
args: supported_languages
name
Char
required=True
state
Selection
default='draft'
required=True
args: [('draft', 'Draft'), ('pending', 'Pending'), ('approved', 'Approved'), ('in_appeal', 'In Appeal'), ('rejected', 'Rejected'), ('pending_deletion', 'Pending Deletion'), ('deleted', 'Deleted'), ('disabled', 'Disabled'), ('paused', 'Paused'), ('limit_exceeded', 'Limit Exceeded'), ('archived', 'Archived')]
template_name
Char
compute='_compute_template_name'
copy=False
store=True
template_uid
Char
copy=False
readonly=True
button_back2draft(self)
button_export_template(self)
button_sync_template(self)
No new fields.
Public methods (0)No public methods.
body
Text
find_gateway
Boolean
gateway_id
Many2one → mail.gateway
domain=[('gateway_type', '=', 'whatsapp')]
required=True
args: 'mail.gateway'
is_required_template
Boolean
compute='_compute_is_required_template'
number_field_name
Char
res_id
Integer
res_model
Char
template_id
Many2one → mail.whatsapp.template
domain="[\n ('gateway_id', '=', gateway_id),\n ('state', '=', 'approved'),\n ('is_supported', '=', True)\n ]"
args: 'mail.whatsapp.template'
action_send_whatsapp(self)
action_view_whatsapp(self)
default_get(self, fields)
onchange_gateway_id(self)
onchange_template_id(self)
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/mail |
| PULL REQUEST | |
| PULL REQUEST | [MIG] mail_gateway_whatsapp: Migration to 19.0 (#203) |