TIP: You can type at any time to perform a new search.
Mail Gateway
mail_gateway · OCA/social
- Repository
- OCA/social · module folder · Try on Runboat
- Module version
- Category
- Uncategorized
- Folder size
- 0.26 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/social
- Last tracking update
- 2026-08-11 17:15:19
- Authors
- Odoo Community Association (OCA), Creu Blanca, Dixmit
- Maintainers
- Odoo Community Association (OCA), Creu Blanca, Dixmit
- Committers
- Carlos Lopez, Carlos Roca, CarlosRoca13, Weblate, OCA-git-bot, oca-ci, Luis Rodriguez, eduezerouali-tecnativa, Maksim Shurupov, adridot
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- mail_gateway_telegram, mail_gateway_whatsapp
- Description
This module will allow you to integrate an external chat system in your Odoo system. It requires extra modules with the specific configuration of each chat system, like mail_gateway_telegram or mail_gateway_whatsapp. This way, a group of users can respond customers or any other set of partners within Odoo, but the messages will be sent through the external chat system.
Code Analysis ⓘ
Views touched (14)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
mail_compose_gateway_message_form_view |
mail.compose.gateway.message | form | Inherits mail.email_compose_message_wizard_form | |
mail_gateway_form_view |
mail.gateway.form | mail.gateway | form | New |
mail_gateway_search_view |
mail.gateway.search | mail.gateway | search | New |
mail_gateway_tree_view |
mail.gateway.tree | mail.gateway | list | New |
mail_guest_manage_form_view |
mail.guest.manage | form | New | |
mail_guest_view_form |
mail.guest | form | Inherits mail.mail_guest_view_form | |
mail_message_gateway_link_form_view |
mail.message.gateway.link | form | New | |
mail_message_gateway_send_form_view |
mail.message.gateway.send | form | New | |
mail_notification_view_tree |
view.mail.notification.tree | mail.notification | tree | Inherits mail.mail_notification_view_tree |
mail_resend_message_view_form |
view.mail.resend.message.form | mail.resend.message | form | Inherits mail.mail_resend_message_view_form |
res_users_settings_view_form |
res.users.settings | form | Inherits mail.res_users_settings_view_form | |
view_res_partner_gateway_channel_form |
Partner Gateway Channel Form | res.partner.gateway.channel | form | New |
view_res_partner_gateway_channel_search |
Partner Gateway Channel Tree | res.partner.gateway.channel | search | New |
view_res_partner_gateway_channel_tree |
Partner Gateway Channel Tree | res.partner.gateway.channel | list | New |
HTTP endpoints (1)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/gateway/<string:usage>/<string:token>/update |
GatewayController.post_update |
public | http | GET, POST | csrf off |
Models touched (17)
New fields (7)
-
anonymous_nameChar -
channel_typeSelectionondelete={'gateway': 'set default'}selection_add=[('gateway', 'Gateway')] -
company_idMany2one → res.companydefault=False args: 'res.company' -
gateway_channel_tokenChar -
gateway_idMany2one → mail.gatewayargs: 'mail.gateway' -
gateway_message_idsOne2many → mail.notificationinverse_name='gateway_channel_id' args: 'mail.notification' -
gateway_tokenCharrelated='gateway_id.token'required=Falsestring='Gateway related Token'
-
message_post(self, *, message_type='notification', gateway_type=False, **kwargs)@api.returns('mail.message', <expr>)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (7)
-
attachment_idsMany2many → ir.attachmentargs: 'ir.attachment', 'mail_compose_gateway_message_ir_attachments_rel', 'wizard_id', 'attachment_id', 'Attachments' -
object_attachment_idsMany2many → ir.attachmentcolumn1='wizard_id'column2='attachment_id'comodel_name='ir.attachment'relation='mail_compose_gateway_message_ir_attachments_object_rel'string='Object Attachments' -
partner_bcc_idsMany2many → res.partnercolumn1='wizard_id'column2='partner_id'comodel_name='res.partner'relation='mail_compose_gateway_message_res_partner_bcc_rel'string='Bcc' -
partner_cc_idsMany2many → res.partnercolumn1='wizard_id'column2='partner_id'comodel_name='res.partner'relation='mail_compose_gateway_message_res_partner_cc_rel'string='Cc' -
partner_idsMany2many → res.partnerdomain=<expr> args: 'res.partner', 'mail_compose_gateway_message_res_partner_rel', 'wizard_id', 'partner_id', 'Additional Contacts' -
wizard_channel_idsMany2many → res.partner.gateway.channelargs: 'res.partner.gateway.channel', 'mail_compose_gateway_message_gateway_channel_rel', 'wizard_id', 'channel_id' -
wizard_partner_idsMany2many → res.partnerargs: 'res.partner', 'mail_compose_gateway_message_res_partner_rel', 'wizard_id', 'partner_id'
No public methods.
New fields (12)
-
can_set_webhookBooleancompute='_compute_webhook_checks' -
company_idMany2one → res.companydefault=<expr> args: 'res.company' -
gateway_typeSelectionrequired=True args: [] -
has_new_channel_securityBooleanhelp='When checked, channels are not created automatically. Usable on Telegram' -
integrated_webhook_stateSelectionreadonly=True args: [('pending', 'Pending'), ('integrated', 'Integrated')] -
member_idsMany2many → res.usersargs: 'res.users' -
nameCharrequired=True -
tokenCharhelp='Key used for integration purposes'required=True -
webhook_keyCharhelp='Key used on the connection URL' -
webhook_secretCharhelp='Key used to ensure that the connection is secure and\n comes from the desired source' -
webhook_urlCharcompute='_compute_webhook_url' -
webhook_user_idMany2one → res.usersdefault=<expr>help='User that will create the messages' args: 'res.users'
-
create(self, mvals)@api.model_create_multi -
gateway_info(self) -
remove_webhook(self) -
set_webhook(self) -
update_webhook(self) -
write(self, vals)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (2)
-
gateway_idMany2one → mail.gatewayargs: 'mail.gateway' -
gateway_tokenChar
No public methods.
New fields (2)
-
guest_idMany2one → mail.guestrequired=True args: 'mail.guest' -
partner_idMany2one → res.partnerargs: 'res.partner'
-
create_partner(self) -
merge_partner(self)
New fields (7)
-
gateway_channel_dataJsoncompute='_compute_gateway_channel_ids' -
gateway_channel_idsMany2many → res.partner.gateway.channelcompute='_compute_gateway_channel_ids' args: 'res.partner.gateway.channel' -
gateway_message_idMany2one → mail.messagestring='Original gateway message' args: 'mail.message' -
gateway_message_idsOne2many → mail.messageinverse_name='gateway_message_id'string='Child gateway messages' args: 'mail.message' -
gateway_notification_idsOne2many → mail.notificationdomain=[('notification_type', '=', 'gateway')]inverse_name='mail_message_id' args: 'mail.notification' -
gateway_thread_dataJsoncompute='_compute_gateway_thread_data' -
gateway_typeSelectionselection=<expr>
No public methods.
New fields (2)
-
message_idMany2one → mail.messageargs: 'mail.message' -
resource_refReferenceselection='_selection_target_model'string='Record reference'
-
link_message(self)
New fields (3)
-
gateway_channel_idMany2one → res.partner.gateway.channelrequired=True args: 'res.partner.gateway.channel' -
message_idMany2one → mail.messagerequired=True args: 'mail.message' -
partner_idMany2one → res.partnerrequired=True args: 'res.partner'
-
send(self)
New fields (5)
-
gateway_channel_idMany2one → discuss.channelargs: 'discuss.channel' -
gateway_failure_reasonTexthelp='Failure reason. This is usually the exception thrown by the email server, stored to ease the debugging of mailing issues.'readonly=True -
gateway_message_idCharreadonly=True -
gateway_typeSelectionselection=<expr> -
notification_typeSelectionondelete={'gateway': 'cascade'}selection_add=[('gateway', 'Gateway')]
-
send_gateway(self, auto_commit=False, raise_exception=False, parse_mode='HTML')
New fields (1)
-
gateway_notification_idsMany2many → mail.notificationreadonly=Truerelation='mail_resend_message_gateway_notification_rel'string='Gateway Notifications' args: 'mail.notification'
-
default_get(self, fields)@api.model
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (1)
-
gateway_channel_idsOne2many → res.partner.gateway.channelinverse_name='partner_id' args: 'res.partner.gateway.channel'
No public methods.
New fields (5)
-
company_idMany2one → res.companyrelated='gateway_id.company_id'store=True args: 'res.company' -
gateway_idMany2one → mail.gatewayondelete='cascade'readonly=Truerequired=True args: 'mail.gateway' -
gateway_tokenCharreadonly=True -
nameCharrelated='gateway_id.name' -
partner_idMany2one → res.partnerondelete='cascade'readonly=Truerequired=True args: 'res.partner'
-
mail_format(self)
New fields (1)
-
gateway_idsMany2many → mail.gatewayargs: 'mail.gateway'
No public methods.
New fields (1)
-
is_discuss_sidebar_category_gateway_openBooleandefault=Truehelp='The gateway category in the sidebar will be open'string='Gateway Category Open'
No public methods.
Loading…
Loading…
- Status
- Open migration PR — not merged yet for this version
- CI status
- green — ready to merge
- Open since
- 80 days ago
- Last activity
- 9 days ago
- Repository
- OCA/mail
- Pull request
- [19.0][MIG] mail_gateway: Migration to 19.0 (#202)