| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/19.0/mass_mailing_sms |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Marketing/Email Marketing |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo S.A. |
| MAINTAINERS | |
| MAINTAINERS | Odoo S.A. |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Thibault Delavallée, Julien Castiaux, Adrien Dieudonné, Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, William Braeckman, Florian Charlier, Renaud Thiry, Louis Wicket (wil), Maximilien (malb), Victor Piryns (pivi), Pierre-Yves Dufays, Dylan Kiss (dyki), nihp-odoo, aath-odoo, guce, yagp-odoo, Pierre Pulinckx, Bastien PIERRE, Anton Romanova (roan), Krzysztof Magusiak (krma), Jérôme Belpaire, Séna Nshimiyimana, ELCO, chpa-odoo |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/app/sms-marketing |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:51:41 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - portal - web - base - html_editor - bus - http_routing - base_setup - web_tour - auth_signup - mass_mailing - contacts - html_builder - utm - link_tracker - social_media - digest - resource - sms - iap_mail - iap - phone_validation |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
blacklist_main |
Unsubscribed | ir.ui.view | qweb | New |
blacklist_number |
Unsubscribed | ir.ui.view | qweb | New |
mailing_contact_view_form |
mailing.contact.view.form.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_form |
mailing_contact_view_kanban |
mailing.contact.view.kanban.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_kanban |
mailing_contact_view_search |
mailing.contact.view.search.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_search |
mailing_contact_view_tree |
mailing.contact.view.list.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_tree |
mailing_list_view_form |
mailing.list.view.form.inherit.sms | mailing.list | xpath | Inherits mass_mailing.mailing_list_view_form |
mailing_list_view_kanban |
mailing.list.view.kanban.inherit.mass.mailing.sms | mailing.list | xpath | Inherits mass_mailing.mailing_list_view_kanban |
mailing_mailing_view_form_mixed |
mailing.mailing.view.form.mixed | mailing.mailing | xpath | Inherits mass_mailing_sms.mailing_mailing_view_form_sms |
mailing_mailing_view_form_sms |
mailing.mailing.view.form.inherit.sms | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_form |
mailing_mailing_view_kanban_sms |
mailing.mailing.view.kanban.inherit.sms | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_kanban |
mailing_mailing_view_search_sms |
mailing.mailing.search | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_search |
mailing_mailing_view_tree_sms |
mailing.mailing.view.list.sms | mailing.mailing | list | New |
mailing_sms_test_view_form |
mailing.sms.test.view.form | mailing.sms.test | form | New |
mailing_trace_report_sms_view_graph |
mailing.sms.trace.report.view.graph | mailing.trace.report | xpath | Inherits mass_mailing.mailing_trace_report_view_graph |
mailing_trace_report_sms_view_pivot |
mailing.sms.trace.report.view.pivot | mailing.trace.report | xpath | Inherits mass_mailing.mailing_trace_report_view_pivot |
mailing_trace_report_sms_view_tree |
mailing.sms.trace.report.view.list | mailing.trace.report | xpath | Inherits mass_mailing.mailing_trace_report_view_tree |
mailing_trace_view_form |
mailing.trace.view.form.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_form |
mailing_trace_view_form_sms |
mailing.trace.view.form.sms | mailing.trace | form | New |
mailing_trace_view_search |
mailing.trace.view.search.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_search |
mailing_trace_view_tree |
mailing.trace.view.list.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_tree |
mailing_trace_view_tree_sms |
mailing.trace.view.list.sms | mailing.trace | list | New |
sms_composer_view_form |
sms.composer.views.inherit.sms | sms.composer | xpath | Inherits sms.sms_composer_view_form |
utm_campaign_view_form |
utm.campaign.view.form | utm.campaign | xpath | Inherits utm.utm_campaign_view_form |
utm_campaign_view_kanban |
utm.campaign.view.kanban | utm.campaign | xpath | Inherits utm.utm_campaign_view_kanban |
mobile
Char
string='Mobile'
No public methods.
contact_count_sms
Integer
compute='_compute_mailing_list_statistics'
string='SMS Contacts'
action_send_mailing_sms(self)
action_view_contacts_sms(self)
action_view_mailings(self)
ab_testing_mailings_sms_count
Integer
related='campaign_id.ab_testing_mailings_sms_count'
ab_testing_sms_winner_selection
Selection
copy=True
default='clicks_ratio'
readonly=False
related='campaign_id.ab_testing_sms_winner_selection'
body_plaintext
Text
compute='_compute_body_plaintext'
readonly=False
store=True
args: 'SMS Body'
mailing_type
Selection
ondelete={'sms': 'set default'}
selection_add=[('sms', 'SMS')]
sms_allow_unsubscribe
Boolean
default=False
args: 'Include opt-out link'
sms_force_send
Boolean
help='Immediately send the SMS Mailing instead of queuing up. Use at your own risk.'
args: 'Send Directly'
sms_has_insufficient_credit
Boolean
compute='_compute_sms_has_iap_failure'
args: 'Insufficient IAP credits'
sms_has_unregistered_account
Boolean
compute='_compute_sms_has_iap_failure'
args: 'Unregistered IAP account'
sms_subject
Char
help='For an email, the subject your recipients will see in their inbox.\nFor an SMS, the internal title of the message.'
readonly=False
related='subject'
translate=False
args: 'Title'
sms_template_id
Many2one → sms.template
ondelete='set null'
string='SMS Template'
args: 'sms.template'
action_buy_sms_credits(self)
action_retry_failed(self)
action_retry_failed_sms(self)
action_send_sms(self, res_ids=None)
action_test(self)
convert_links(self)
create(self, vals_list)
default_get(self, fields)
get_sms_link_replacements_placeholders(self)
mailing_id
Many2one → mailing.mailing
ondelete='cascade'
required=True
string='Mailing'
args: 'mailing.mailing'
numbers
Text
default=_default_numbers
help='Carriage-return-separated list of phone numbers'
required=True
string='Number(s)'
action_send_sms(self)
failure_type
Selection
selection_add=[('sms_number_missing', 'Missing Number'), ('sms_number_format', 'Wrong Number Format'), ('sms_credit', 'Insufficient Credit'), ('sms_country_not_supported', 'Country Not Supported'), ('sms_registration_needed', 'Country-specific Registration Required'), ('sms_server', 'Server Error'), ('sms_acc', 'Unregistered Account'), ('sms_blacklist', 'Blacklisted'), ('sms_duplicate', 'Duplicate'), ('sms_optout', 'Opted Out'), ('sms_expired', 'Expired'), ('sms_invalid_destination', 'Invalid Destination'), ('sms_not_allowed', 'Not Allowed'), ('sms_not_delivered', 'Not Delivered'), ('sms_rejected', 'Rejected'), ('twilio_authentication', 'Authentication Error"'), ('twilio_callback', 'Incorrect callback URL'), ('twilio_from_missing', 'Missing From Number'), ('twilio_from_to', 'From / To identic')]
sms_code
Char
sms_id
Many2one → sms.sms
compute='_compute_sms_id'
store=False
string='SMS'
args: 'sms.sms'
sms_id_int
Integer
index='btree_not_null'
string='SMS ID'
sms_number
Char
sms_tracker_ids
One2many → sms.tracker
string='SMS Trackers'
args: 'sms.tracker', 'mailing_trace_id'
trace_type
Selection
ondelete={'sms': 'set default'}
selection_add=[('sms', 'SMS')]
create(self, vals_list)
fields_get(self, allfields=None, attributes=None)
No new fields.
Public methods (0)No public methods.
mailing_id
Many2one → mailing.mailing
string='Mailing'
args: 'mailing.mailing'
mass_sms_allow_unsubscribe
Boolean
default=True
args: 'Include opt-out link'
utm_campaign_id
Many2one → utm.campaign
ondelete='set null'
string='Campaign'
args: 'utm.campaign'
No public methods.
mailing_id
Many2one → mailing.mailing
string='Mass Mailing'
args: 'mailing.mailing'
mailing_trace_ids
One2many → mailing.trace
string='Statistics'
args: 'mailing.trace', 'sms_id_int'
No public methods.
mailing_trace_id
Many2one → mailing.trace
index='btree_not_null'
ondelete='cascade'
args: 'mailing.trace'
No public methods.
ab_testing_mailings_sms_count
Integer
compute='_compute_mailing_sms_count'
args: 'A/B Test Mailings SMS #'
ab_testing_sms_winner_selection
Selection
default='clicks_ratio'
string='SMS Winner Selection'
args: [('manual', 'Manual'), ('clicks_ratio', 'Highest Click Rate')]
mailing_sms_count
Integer
compute='_compute_mailing_sms_count'
groups='mass_mailing.group_mass_mailing_user'
args: 'Number of Mass SMS'
mailing_sms_ids
One2many → mailing.mailing
domain=[('mailing_type', '=', 'sms')]
groups='mass_mailing.group_mass_mailing_user'
string='Mass SMS'
args: 'mailing.mailing', 'campaign_id'
action_create_mass_sms(self)
action_redirect_to_mailing_sms(self)
No new fields.
Public methods (1)SELF_REQUIRED_UTM_MEDIUMS_REF(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/18.0/mass_mailing_sms |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Marketing/Email Marketing |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Xavier Morel, Odoo Online, Jorge Pinna Puissant, Aurélien Warnon, Sébastien Theys, std-odoo, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Florian Charlier, Renaud Thiry, Vincent Larcin, bve-odoo, Louis Wicket (wil), Maximilien (malb), amdi-odoo, Dylan Kiss (dyki), Vivek Pathak, Nguyễn Đại Dương, omra-odoo, dane@odoo.com, nihp-odoo, Louis (wil), Clément Cardot, guce, yagp-odoo, Pierre Pulinckx (PIPU), Pierre Pulinckx (pipu), Bastien PIERRE, kusi-odoo, Thomas Josse (THJO), Earth Patel, saurabh, Séna Nshimiyimana |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/app/sms-marketing |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:25:54 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - portal - web - base - web_editor - bus - html_editor - http_routing - base_setup - web_tour - auth_signup - mass_mailing - contacts - utm - link_tracker - social_media - digest - resource - sms - iap_mail - iap - phone_validation |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
blacklist_main |
Unsubscribed | ir.ui.view | qweb | New |
blacklist_number |
Unsubscribed | ir.ui.view | qweb | New |
mailing_contact_view_form |
mailing.contact.view.form.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_form |
mailing_contact_view_kanban |
mailing.contact.view.kanban.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_kanban |
mailing_contact_view_search |
mailing.contact.view.search.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_search |
mailing_contact_view_tree |
mailing.contact.view.list.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_tree |
mailing_list_view_form |
mailing.list.view.form.inherit.sms | mailing.list | xpath | Inherits mass_mailing.mailing_list_view_form |
mailing_list_view_kanban |
mailing.list.view.kanban.inherit.mass.mailing.sms | mailing.list | xpath | Inherits mass_mailing.mailing_list_view_kanban |
mailing_mailing_view_form_mixed |
mailing.mailing.view.form.mixed | mailing.mailing | xpath | Inherits mass_mailing_sms.mailing_mailing_view_form_sms |
mailing_mailing_view_form_sms |
mailing.mailing.view.form.inherit.sms | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_form |
mailing_mailing_view_kanban_sms |
mailing.mailing.view.kanban.inherit.sms | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_kanban |
mailing_mailing_view_search_sms |
mailing.mailing.search | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_search |
mailing_mailing_view_tree_sms |
mailing.mailing.view.list.sms | mailing.mailing | list | New |
mailing_sms_test_view_form |
mailing.sms.test.view.form | mailing.sms.test | form | New |
mailing_trace_report_sms_view_graph |
mailing.sms.trace.report.view.graph | mailing.trace.report | xpath | Inherits mass_mailing.mailing_trace_report_view_graph |
mailing_trace_report_sms_view_pivot |
mailing.sms.trace.report.view.pivot | mailing.trace.report | xpath | Inherits mass_mailing.mailing_trace_report_view_pivot |
mailing_trace_report_sms_view_tree |
mailing.sms.trace.report.view.list | mailing.trace.report | xpath | Inherits mass_mailing.mailing_trace_report_view_tree |
mailing_trace_view_form |
mailing.trace.view.form.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_form |
mailing_trace_view_form_sms |
mailing.trace.view.form.sms | mailing.trace | form | New |
mailing_trace_view_search |
mailing.trace.view.search.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_search |
mailing_trace_view_tree |
mailing.trace.view.list.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_tree |
mailing_trace_view_tree_sms |
mailing.trace.view.list.sms | mailing.trace | list | New |
sms_composer_view_form |
sms.composer.views.inherit.sms | sms.composer | xpath | Inherits sms.sms_composer_view_form |
utm_campaign_view_form |
utm.campaign.view.form | utm.campaign | xpath | Inherits utm.utm_campaign_view_form |
utm_campaign_view_kanban |
utm.campaign.view.kanban | utm.campaign | xpath | Inherits utm.utm_campaign_view_kanban |
mobile
Char
string='Mobile'
No public methods.
contact_count_sms
Integer
compute='_compute_mailing_list_statistics'
string='SMS Contacts'
action_send_mailing_sms(self)
action_view_contacts_sms(self)
action_view_mailings(self)
ab_testing_mailings_sms_count
Integer
related='campaign_id.ab_testing_mailings_sms_count'
ab_testing_sms_winner_selection
Selection
copy=True
default='clicks_ratio'
readonly=False
related='campaign_id.ab_testing_sms_winner_selection'
body_plaintext
Text
compute='_compute_body_plaintext'
readonly=False
store=True
args: 'SMS Body'
mailing_type
Selection
ondelete={'sms': 'set default'}
selection_add=[('sms', 'SMS')]
sms_allow_unsubscribe
Boolean
default=False
args: 'Include opt-out link'
sms_force_send
Boolean
help='Immediately send the SMS Mailing instead of queuing up. Use at your own risk.'
args: 'Send Directly'
sms_has_insufficient_credit
Boolean
compute='_compute_sms_has_iap_failure'
args: 'Insufficient IAP credits'
sms_has_unregistered_account
Boolean
compute='_compute_sms_has_iap_failure'
args: 'Unregistered IAP account'
sms_subject
Char
help='For an email, the subject your recipients will see in their inbox.\nFor an SMS, the internal title of the message.'
readonly=False
related='subject'
translate=False
args: 'Title'
sms_template_id
Many2one → sms.template
ondelete='set null'
string='SMS Template'
args: 'sms.template'
action_buy_sms_credits(self)
action_retry_failed(self)
action_retry_failed_sms(self)
action_send_sms(self, res_ids=None)
action_test(self)
convert_links(self)
create(self, vals_list)
default_get(self, fields)
get_sms_link_replacements_placeholders(self)
mailing_id
Many2one → mailing.mailing
ondelete='cascade'
required=True
string='Mailing'
args: 'mailing.mailing'
numbers
Text
default=_default_numbers
help='Carriage-return-separated list of phone numbers'
required=True
string='Number(s)'
action_send_sms(self)
failure_type
Selection
selection_add=[('sms_number_missing', 'Missing Number'), ('sms_number_format', 'Wrong Number Format'), ('sms_credit', 'Insufficient Credit'), ('sms_country_not_supported', 'Country Not Supported'), ('sms_registration_needed', 'Country-specific Registration Required'), ('sms_server', 'Server Error'), ('sms_acc', 'Unregistered Account'), ('sms_blacklist', 'Blacklisted'), ('sms_duplicate', 'Duplicate'), ('sms_optout', 'Opted Out'), ('sms_expired', 'Expired'), ('sms_invalid_destination', 'Invalid Destination'), ('sms_not_allowed', 'Not Allowed'), ('sms_not_delivered', 'Not Delivered'), ('sms_rejected', 'Rejected'), ('twilio_authentication', 'Authentication Error"'), ('twilio_callback', 'Incorrect callback URL'), ('twilio_from_missing', 'Missing From Number'), ('twilio_from_to', 'From / To identic')]
sms_code
Char
sms_id
Many2one → sms.sms
compute='_compute_sms_id'
store=False
string='SMS'
args: 'sms.sms'
sms_id_int
Integer
index='btree_not_null'
string='SMS ID'
sms_number
Char
sms_tracker_ids
One2many → sms.tracker
string='SMS Trackers'
args: 'sms.tracker', 'mailing_trace_id'
trace_type
Selection
ondelete={'sms': 'set default'}
selection_add=[('sms', 'SMS')]
create(self, values_list)
fields_get(self, allfields=None, attributes=None)
No new fields.
Public methods (0)No public methods.
mailing_id
Many2one → mailing.mailing
string='Mailing'
args: 'mailing.mailing'
mass_sms_allow_unsubscribe
Boolean
default=True
args: 'Include opt-out link'
utm_campaign_id
Many2one → utm.campaign
ondelete='set null'
string='Campaign'
args: 'utm.campaign'
No public methods.
mailing_id
Many2one → mailing.mailing
string='Mass Mailing'
args: 'mailing.mailing'
mailing_trace_ids
One2many → mailing.trace
string='Statistics'
args: 'mailing.trace', 'sms_id_int'
No public methods.
mailing_trace_id
Many2one → mailing.trace
ondelete='cascade'
args: 'mailing.trace'
No public methods.
ab_testing_mailings_sms_count
Integer
compute='_compute_mailing_sms_count'
args: 'A/B Test Mailings SMS #'
ab_testing_sms_winner_selection
Selection
default='clicks_ratio'
string='SMS Winner Selection'
args: [('manual', 'Manual'), ('clicks_ratio', 'Highest Click Rate')]
mailing_sms_count
Integer
compute='_compute_mailing_sms_count'
groups='mass_mailing.group_mass_mailing_user'
args: 'Number of Mass SMS'
mailing_sms_ids
One2many → mailing.mailing
domain=[('mailing_type', '=', 'sms')]
groups='mass_mailing.group_mass_mailing_user'
string='Mass SMS'
args: 'mailing.mailing', 'campaign_id'
action_create_mass_sms(self)
action_redirect_to_mailing_sms(self)
No new fields.
Public methods (1)SELF_REQUIRED_UTM_MEDIUMS_REF(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/17.0/mass_mailing_sms |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Marketing/Email Marketing |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Xavier Morel, Odoo Online, Julien Castiaux, Aurélien Warnon, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Pierre Paridans, Antoine Guenet, Florian Charlier, Achraf, Renaud Thiry, niyasraphy, bve-odoo, Louis Wicket (wil), tsm-odoo, amdi-odoo, Pierre-Yves Dufays, Dylan Kiss (dyki), Vivek Pathak, Hugo Carlier (Huca), Brieuc-brd, Nguyễn Đại Dương, Astik Singh, Julien Carion (juca), Louis (wil), Pratik Raval (PRRA), guce, yagp-odoo, Earth Patel |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:02:05 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - portal - web - base - web_editor - bus - http_routing - base_setup - web_tour - auth_signup - mass_mailing - contacts - utm - link_tracker - social_media - digest - resource - sms - iap_mail - iap - phone_validation |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
blacklist_main |
Unsubscribed | ir.ui.view | qweb | New |
blacklist_number |
Unsubscribed | ir.ui.view | qweb | New |
mailing_contact_view_form |
mailing.contact.view.form.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_form |
mailing_contact_view_kanban |
mailing.contact.view.kanban.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_kanban |
mailing_contact_view_search |
mailing.contact.view.search.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_search |
mailing_contact_view_tree |
mailing.contact.view.tree.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_tree |
mailing_list_view_form |
mailing.list.view.form.inherit.sms | mailing.list | xpath | Inherits mass_mailing.mailing_list_view_form |
mailing_list_view_kanban |
mailing.list.view.kanban.inherit.mass.mailing.sms | mailing.list | xpath | Inherits mass_mailing.mailing_list_view_kanban |
mailing_mailing_view_form_mixed |
mailing.mailing.view.form.mixed | mailing.mailing | xpath | Inherits mass_mailing_sms.mailing_mailing_view_form_sms |
mailing_mailing_view_form_sms |
mailing.mailing.view.form.inherit.sms | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_form |
mailing_mailing_view_kanban_sms |
mailing.mailing.view.kanban.inherit.sms | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_kanban |
mailing_mailing_view_search_sms |
mailing.mailing.search | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_search |
mailing_mailing_view_tree_sms |
mailing.mailing.view.tree.sms | mailing.mailing | tree | New |
mailing_sms_test_view_form |
mailing.sms.test.view.form | mailing.sms.test | form | New |
mailing_trace_report_sms_view_graph |
mailing.sms.trace.report.view.graph | mailing.trace.report | xpath | Inherits mass_mailing.mailing_trace_report_view_graph |
mailing_trace_report_sms_view_pivot |
mailing.sms.trace.report.view.pivot | mailing.trace.report | xpath | Inherits mass_mailing.mailing_trace_report_view_pivot |
mailing_trace_report_sms_view_tree |
mailing.sms.trace.report.view.tree | mailing.trace.report | xpath | Inherits mass_mailing.mailing_trace_report_view_tree |
mailing_trace_view_form |
mailing.trace.view.form.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_form |
mailing_trace_view_form_sms |
mailing.trace.view.form.sms | mailing.trace | form | New |
mailing_trace_view_search |
mailing.trace.view.search.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_search |
mailing_trace_view_tree |
mailing.trace.view.tree.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_tree |
mailing_trace_view_tree_sms |
mailing.trace.view.tree.sms | mailing.trace | tree | New |
sms_composer_view_form |
sms.composer.views.inherit.sms | sms.composer | xpath | Inherits sms.sms_composer_view_form |
utm_campaign_view_form |
utm.campaign.view.form | utm.campaign | xpath | Inherits utm.utm_campaign_view_form |
utm_campaign_view_kanban |
utm.campaign.view.kanban | utm.campaign | xpath | Inherits utm.utm_campaign_view_kanban |
mobile
Char
string='Mobile'
No public methods.
contact_count_sms
Integer
compute='_compute_mailing_list_statistics'
string='SMS Contacts'
action_send_mailing_sms(self)
action_view_contacts_sms(self)
action_view_mailings(self)
ab_testing_mailings_sms_count
Integer
related='campaign_id.ab_testing_mailings_sms_count'
ab_testing_sms_winner_selection
Selection
copy=True
default='clicks_ratio'
readonly=False
related='campaign_id.ab_testing_sms_winner_selection'
body_plaintext
Text
compute='_compute_body_plaintext'
readonly=False
store=True
args: 'SMS Body'
mailing_type
Selection
ondelete={'sms': 'set default'}
selection_add=[('sms', 'SMS')]
sms_allow_unsubscribe
Boolean
default=False
args: 'Include opt-out link'
sms_force_send
Boolean
help='Immediately send the SMS Mailing instead of queuing up. Use at your own risk.'
args: 'Send Directly'
sms_has_insufficient_credit
Boolean
compute='_compute_sms_has_iap_failure'
args: 'Insufficient IAP credits'
sms_has_unregistered_account
Boolean
compute='_compute_sms_has_iap_failure'
args: 'Unregistered IAP account'
sms_subject
Char
help='For an email, the subject your recipients will see in their inbox.\nFor an SMS, the internal title of the message.'
readonly=False
related='subject'
translate=False
args: 'Title'
sms_template_id
Many2one → sms.template
ondelete='set null'
string='SMS Template'
args: 'sms.template'
action_buy_sms_credits(self)
action_retry_failed(self)
action_retry_failed_sms(self)
action_send_mail(self, res_ids=None)
action_send_sms(self, res_ids=None)
action_test(self)
convert_links(self)
create(self, vals_list)
default_get(self, fields)
get_sms_link_replacements_placeholders(self)
mailing_id
Many2one → mailing.mailing
ondelete='cascade'
required=True
string='Mailing'
args: 'mailing.mailing'
numbers
Text
default=_default_numbers
help='Carriage-return-separated list of phone numbers'
required=True
string='Number(s)'
action_send_sms(self)
failure_type
Selection
selection_add=[('sms_number_missing', 'Missing Number'), ('sms_number_format', 'Wrong Number Format'), ('sms_credit', 'Insufficient Credit'), ('sms_country_not_supported', 'Country Not Supported'), ('sms_registration_needed', 'Country-specific Registration Required'), ('sms_server', 'Server Error'), ('sms_acc', 'Unregistered Account'), ('sms_blacklist', 'Blacklisted'), ('sms_duplicate', 'Duplicate'), ('sms_optout', 'Opted Out'), ('sms_expired', 'Expired'), ('sms_invalid_destination', 'Invalid Destination'), ('sms_not_allowed', 'Not Allowed'), ('sms_not_delivered', 'Not Delivered'), ('sms_rejected', 'Rejected'), ('twilio_authentication', 'Authentication Error"'), ('twilio_callback', 'Incorrect callback URL'), ('twilio_from_missing', 'Missing From Number'), ('twilio_from_to', 'From / To identic')]
sms_code
Char
sms_id
Many2one → sms.sms
compute='_compute_sms_id'
store=False
string='SMS'
args: 'sms.sms'
sms_id_int
Integer
index='btree_not_null'
string='SMS ID'
sms_number
Char
sms_tracker_ids
One2many → sms.tracker
string='SMS Trackers'
args: 'sms.tracker', 'mailing_trace_id'
trace_type
Selection
ondelete={'sms': 'set default'}
selection_add=[('sms', 'SMS')]
create(self, values_list)
fields_get(self, allfields=None, attributes=None)
No new fields.
Public methods (1)systray_get_activities(self)
mailing_id
Many2one → mailing.mailing
string='Mailing'
args: 'mailing.mailing'
mass_sms_allow_unsubscribe
Boolean
default=True
args: 'Include opt-out link'
utm_campaign_id
Many2one → utm.campaign
ondelete='set null'
string='Campaign'
args: 'utm.campaign'
No public methods.
mailing_id
Many2one → mailing.mailing
string='Mass Mailing'
args: 'mailing.mailing'
mailing_trace_ids
One2many → mailing.trace
string='Statistics'
args: 'mailing.trace', 'sms_id_int'
No public methods.
mailing_trace_id
Many2one → mailing.trace
ondelete='cascade'
args: 'mailing.trace'
No public methods.
ab_testing_mailings_sms_count
Integer
compute='_compute_mailing_sms_count'
args: 'A/B Test Mailings SMS #'
ab_testing_sms_winner_selection
Selection
default='clicks_ratio'
string='SMS Winner Selection'
args: [('manual', 'Manual'), ('clicks_ratio', 'Highest Click Rate')]
mailing_sms_count
Integer
compute='_compute_mailing_sms_count'
groups='mass_mailing.group_mass_mailing_user'
args: 'Number of Mass SMS'
mailing_sms_ids
One2many → mailing.mailing
domain=[('mailing_type', '=', 'sms')]
groups='mass_mailing.group_mass_mailing_user'
string='Mass SMS'
args: 'mailing.mailing', 'campaign_id'
action_create_mass_sms(self)
action_redirect_to_mailing_sms(self)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/16.0/mass_mailing_sms |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Marketing/Email Marketing |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Thibault Delavallée, Denis Ledoux, Yannick Tivisse, Dharmraj Jhala, Julien Castiaux, Aurélien Warnon, Romeo Fragomeli, Victor Feyens, Sébastien Theys, std-odoo, Tiffany Chang (tic), Romain Estievenart, Antoine Guenet, Florian Charlier, Patrick Hoste, Achraf, Renaud Thiry, bve-odoo, Louis Wicket (wil), Sébastien Geelen (sge), Mitul Shah, Vivek Pathak, Pratik Raval, guce |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:47 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - portal - web - base - web_editor - bus - http_routing - base_setup - web_tour - auth_signup - mass_mailing - contacts - utm - link_tracker - web_kanban_gauge - social_media - digest - resource - sms - iap_mail - iap - phone_validation |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
blacklist_main |
Unsubscribed | ir.ui.view | qweb | New |
blacklist_number |
Unsubscribed | ir.ui.view | qweb | New |
mailing_contact_view_form |
mailing.contact.view.form.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_form |
mailing_contact_view_kanban |
mailing.contact.view.kanban.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_kanban |
mailing_contact_view_search |
mailing.contact.view.search.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_search |
mailing_contact_view_tree |
mailing.contact.view.tree.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_tree |
mailing_list_view_kanban |
mailing.list.view.kanban.inherit.mass.mailing.sms | mailing.list | xpath | Inherits mass_mailing.mailing_list_view_kanban |
mailing_mailing_view_form_mixed |
mailing.mailing.view.form.mixed | mailing.mailing | xpath | Inherits mass_mailing_sms.mailing_mailing_view_form_sms |
mailing_mailing_view_form_sms |
mailing.mailing.view.form.inherit.sms | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_form |
mailing_mailing_view_kanban_sms |
mailing.mailing.view.kanban.inherit.sms | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_kanban |
mailing_mailing_view_search_sms |
mailing.mailing.search | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_search |
mailing_mailing_view_tree_sms |
mailing.mailing.view.tree.sms | mailing.mailing | tree | New |
mailing_sms_test_view_form |
mailing.sms.test.view.form | mailing.sms.test | form | New |
mailing_trace_report_sms_view_graph |
mailing.sms.trace.report.view.graph | mailing.trace.report | xpath | Inherits mass_mailing.mailing_trace_report_view_graph |
mailing_trace_report_sms_view_pivot |
mailing.sms.trace.report.view.pivot | mailing.trace.report | xpath | Inherits mass_mailing.mailing_trace_report_view_pivot |
mailing_trace_report_sms_view_tree |
mailing.sms.trace.report.view.tree | mailing.trace.report | xpath | Inherits mass_mailing.mailing_trace_report_view_tree |
mailing_trace_view_form |
mailing.trace.view.form.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_form |
mailing_trace_view_form_sms |
mailing.trace.view.form.sms | mailing.trace | form | New |
mailing_trace_view_search |
mailing.trace.view.search.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_search |
mailing_trace_view_tree |
mailing.trace.view.tree.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_tree |
mailing_trace_view_tree_sms |
mailing.trace.view.tree.sms | mailing.trace | tree | New |
sms_composer_view_form |
sms.composer.views.inherit.sms | sms.composer | xpath | Inherits sms.sms_composer_view_form |
utm_campaign_view_form |
utm.campaign.view.form | utm.campaign | xpath | Inherits utm.utm_campaign_view_form |
utm_campaign_view_kanban |
utm.campaign.view.kanban | utm.campaign | xpath | Inherits utm.utm_campaign_view_kanban |
mobile
Char
string='Mobile'
No public methods.
contact_count_sms
Integer
compute='_compute_mailing_list_statistics'
string='SMS Contacts'
action_view_contacts_sms(self)
action_view_mailings(self)
ab_testing_sms_winner_selection
Selection
copy=True
default='clicks_ratio'
readonly=False
related='campaign_id.ab_testing_sms_winner_selection'
body_plaintext
Text
compute='_compute_body_plaintext'
readonly=False
store=True
args: 'SMS Body'
mailing_type
Selection
ondelete={'sms': 'set default'}
selection_add=[('sms', 'SMS')]
sms_allow_unsubscribe
Boolean
default=False
args: 'Include opt-out link'
sms_force_send
Boolean
help='Immediately send the SMS Mailing instead of queuing up. Use at your own risk.'
args: 'Send Directly'
sms_has_insufficient_credit
Boolean
compute='_compute_sms_has_iap_failure'
args: 'Insufficient IAP credits'
sms_has_unregistered_account
Boolean
compute='_compute_sms_has_iap_failure'
args: 'Unregistered IAP account'
sms_subject
Char
help='For an email, the subject your recipients will see in their inbox.\nFor an SMS, the internal title of the message.'
readonly=False
related='subject'
translate=False
args: 'Title'
sms_template_id
Many2one → sms.template
ondelete='set null'
string='SMS Template'
args: 'sms.template'
action_buy_sms_credits(self)
action_retry_failed(self)
action_retry_failed_sms(self)
action_send_mail(self, res_ids=None)
action_send_sms(self, res_ids=None)
action_test(self)
convert_links(self)
create(self, vals_list)
default_get(self, fields)
get_sms_link_replacements_placeholders(self)
mailing_id
Many2one → mailing.mailing
ondelete='cascade'
required=True
string='Mailing'
args: 'mailing.mailing'
numbers
Text
default=_default_numbers
help='Carriage-return-separated list of phone numbers'
required=True
string='Number(s)'
action_send_sms(self)
failure_type
Selection
selection_add=[('sms_number_missing', 'Missing Number'), ('sms_number_format', 'Wrong Number Format'), ('sms_credit', 'Insufficient Credit'), ('sms_server', 'Server Error'), ('sms_acc', 'Unregistered Account'), ('sms_blacklist', 'Blacklisted'), ('sms_duplicate', 'Duplicate'), ('sms_optout', 'Opted Out')]
sms_code
Char
sms_number
Char
sms_sms_id
Many2one → sms.sms
index='btree_not_null'
ondelete='set null'
string='SMS'
args: 'sms.sms'
sms_sms_id_int
Integer
index='btree_not_null'
string='SMS ID (tech)'
trace_type
Selection
ondelete={'sms': 'set default'}
selection_add=[('sms', 'SMS')]
create(self, values_list)
No new fields.
Public methods (1)systray_get_activities(self)
mailing_id
Many2one → mailing.mailing
string='Mailing'
args: 'mailing.mailing'
mass_sms_allow_unsubscribe
Boolean
default=True
args: 'Include opt-out link'
utm_campaign_id
Many2one → utm.campaign
ondelete='set null'
string='Campaign'
args: 'utm.campaign'
No public methods.
mailing_id
Many2one → mailing.mailing
string='Mass Mailing'
args: 'mailing.mailing'
mailing_trace_ids
One2many → mailing.trace
string='Statistics'
args: 'mailing.trace', 'sms_sms_id'
No public methods.
ab_testing_mailings_sms_count
Integer
compute='_compute_mailing_sms_count'
args: 'A/B Test Mailings SMS #'
ab_testing_sms_winner_selection
Selection
default='clicks_ratio'
string='SMS Winner Selection'
args: [('manual', 'Manual'), ('clicks_ratio', 'Highest Click Rate')]
mailing_sms_count
Integer
compute='_compute_mailing_sms_count'
groups='mass_mailing.group_mass_mailing_user'
args: 'Number of Mass SMS'
mailing_sms_ids
One2many → mailing.mailing
domain=[('mailing_type', '=', 'sms')]
groups='mass_mailing.group_mass_mailing_user'
string='Mass SMS'
args: 'mailing.mailing', 'campaign_id'
action_create_mass_sms(self)
action_redirect_to_mailing_sms(self)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/15.0/mass_mailing_sms |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Marketing/Email Marketing |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Xavier Morel, Jeremy Kersten, Dharmraj Jhala, Romain Derie, Adrien Dieudonne, Aurélien Warnon, Xavier-Do, Achraf (abz), Jérémy Hennecart, Tiffany Chang (tic), nounoubensebia, Kevin Baptiste, Florian Charlier, Nicolas Bayet, dht-odoo, bve-odoo, Mariska Archielli (ram), Mitul Shah, Noe Antoine, Damien (abd), MAHAMADASIF ANSARI, Pratik Raval |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:25:27 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - portal - web - base - web_editor - http_routing - base_setup - bus - web_tour - auth_signup - mass_mailing - contacts - utm - link_tracker - web_kanban_gauge - social_media - digest - resource - sms - iap_mail - iap - phone_validation |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
blacklist_main |
Unsubscribed | ir.ui.view | qweb | New |
blacklist_number |
Unsubscribed | ir.ui.view | qweb | New |
mailing_contact_view_form |
mailing.contact.view.form.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_form |
mailing_contact_view_kanban |
mailing.contact.view.kanban.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_kanban |
mailing_contact_view_search |
mailing.contact.view.search.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_search |
mailing_contact_view_tree |
mailing.contact.view.tree.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_tree |
mailing_list_view_kanban |
mailing.list.view.kanban.inherit.mass.mailing.sms | mailing.list | xpath | Inherits mass_mailing.mailing_list_view_kanban |
mailing_mailing_view_form_mixed |
mailing.mailing.view.form.mixed | mailing.mailing | xpath | Inherits mass_mailing_sms.mailing_mailing_view_form_sms |
mailing_mailing_view_form_sms |
mailing.mailing.view.form.inherit.sms | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_form |
mailing_mailing_view_kanban_sms |
mailing.mailing.view.kanban.inherit.sms | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_kanban |
mailing_mailing_view_search_sms |
mailing.mailing.search | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_search |
mailing_mailing_view_tree_sms |
mailing.mailing.view.tree.sms | mailing.mailing | tree | New |
mailing_sms_test_view_form |
mailing.sms.test.view.form | mailing.sms.test | form | New |
mailing_trace_report_sms_view_graph |
mailing.sms.trace.report.view.graph | mailing.trace.report | xpath | Inherits mass_mailing.mailing_trace_report_view_graph |
mailing_trace_report_sms_view_pivot |
mailing.sms.trace.report.view.pivot | mailing.trace.report | xpath | Inherits mass_mailing.mailing_trace_report_view_pivot |
mailing_trace_report_sms_view_tree |
mailing.sms.trace.report.view.tree | mailing.trace.report | xpath | Inherits mass_mailing.mailing_trace_report_view_tree |
mailing_trace_view_form |
mailing.trace.view.form.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_form |
mailing_trace_view_form_sms |
mailing.trace.view.form.sms | mailing.trace | form | New |
mailing_trace_view_search |
mailing.trace.view.search.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_search |
mailing_trace_view_tree |
mailing.trace.view.tree.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_tree |
mailing_trace_view_tree_sms |
mailing.trace.view.tree.sms | mailing.trace | tree | New |
sms_composer_view_form |
sms.composer.views.inherit.sms | sms.composer | xpath | Inherits sms.sms_composer_view_form |
utm_campaign_view_form |
utm.campaign.view.form | utm.campaign | xpath | Inherits utm.utm_campaign_view_form |
utm_campaign_view_kanban |
utm.campaign.view.kanban | utm.campaign | xpath | Inherits utm.utm_campaign_view_kanban |
mobile
Char
string='Mobile'
No public methods.
contact_count_sms
Integer
compute='_compute_mailing_list_statistics'
string='SMS Contacts'
action_view_contacts_sms(self)
action_view_mailings(self)
ab_testing_sms_winner_selection
Selection
copy=True
default='clicks_ratio'
readonly=False
related='campaign_id.ab_testing_sms_winner_selection'
body_plaintext
Text
compute='_compute_body_plaintext'
readonly=False
store=True
args: 'SMS Body'
mailing_type
Selection
ondelete={'sms': 'set default'}
selection_add=[('sms', 'SMS')]
sms_allow_unsubscribe
Boolean
default=False
args: 'Include opt-out link'
sms_force_send
Boolean
help='Immediately send the SMS Mailing instead of queuing up. Use at your own risk.'
args: 'Send Directly'
sms_has_insufficient_credit
Boolean
compute='_compute_sms_has_iap_failure'
help='UX Field to propose to buy IAP credits'
args: 'Insufficient IAP credits'
sms_has_unregistered_account
Boolean
compute='_compute_sms_has_iap_failure'
help='UX Field to propose to Register the SMS IAP account'
args: 'Unregistered IAP account'
sms_subject
Char
help='For an email, the subject your recipients will see in their inbox.\nFor an SMS, the internal title of the message.'
readonly=False
related='subject'
translate=False
args: 'Title'
sms_template_id
Many2one → sms.template
ondelete='set null'
string='SMS Template'
args: 'sms.template'
action_buy_sms_credits(self)
action_retry_failed(self)
action_retry_failed_sms(self)
action_send_mail(self, res_ids=None)
action_send_sms(self, res_ids=None)
action_test(self)
convert_links(self)
create(self, values)
default_get(self, fields)
get_sms_link_replacements_placeholders(self)
mailing_id
Many2one → mailing.mailing
ondelete='cascade'
required=True
string='Mailing'
args: 'mailing.mailing'
numbers
Text
default=_default_numbers
help='Carriage-return-separated list of phone numbers'
required=True
string='Number(s)'
action_send_sms(self)
failure_type
Selection
selection_add=[('sms_number_missing', 'Missing Number'), ('sms_number_format', 'Wrong Number Format'), ('sms_credit', 'Insufficient Credit'), ('sms_server', 'Server Error'), ('sms_acc', 'Unregistered Account'), ('sms_blacklist', 'Blacklisted'), ('sms_duplicate', 'Duplicate'), ('sms_optout', 'Opted Out')]
sms_code
Char
sms_number
Char
sms_sms_id
Many2one → sms.sms
index=True
ondelete='set null'
string='SMS'
args: 'sms.sms'
sms_sms_id_int
Integer
help='ID of the related sms.sms. This field is an integer field because the related sms.sms can be deleted separately from its statistics. However the ID is needed for several action and controllers.'
index=True
string='SMS ID (tech)'
trace_type
Selection
ondelete={'sms': 'set default'}
selection_add=[('sms', 'SMS')]
create(self, values_list)
No new fields.
Public methods (1)systray_get_activities(self)
mailing_id
Many2one → mailing.mailing
string='Mailing'
args: 'mailing.mailing'
mass_sms_allow_unsubscribe
Boolean
default=True
args: 'Include opt-out link'
utm_campaign_id
Many2one → utm.campaign
string='Campaign'
args: 'utm.campaign'
No public methods.
mailing_id
Many2one → mailing.mailing
string='Mass Mailing'
args: 'mailing.mailing'
mailing_trace_ids
One2many → mailing.trace
string='Statistics'
args: 'mailing.trace', 'sms_sms_id'
No public methods.
ab_testing_sms_winner_selection
Selection
default='clicks_ratio'
string='SMS Winner Selection'
args: [('manual', 'Manual'), ('clicks_ratio', 'Highest Click Rate')]
mailing_sms_count
Integer
compute='_compute_mailing_sms_count'
args: 'Number of Mass SMS'
mailing_sms_ids
One2many → mailing.mailing
domain=[('mailing_type', '=', 'sms')]
string='Mass SMS'
args: 'mailing.mailing', 'campaign_id'
action_create_mass_sms(self)
action_redirect_to_mailing_sms(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/14.0/mass_mailing_sms |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Marketing/Email Marketing |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Christophe Simonis, Nicolas Lempereur, Aaron Bohy, GitHub, Barad Mahendra, Yannick Tivisse, Dharmraj Jhala, Adrien Dieudonne, Rémi Rahir, Xavier-Do, Nasreddin (bon), fw-bot, Debauche Stéphane, Tiffany Chang (tic), Kevin Baptiste, bve-odoo, Krupal Oza, Mariska Archielli (ram) |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:14:28 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - portal - web - base - web_editor - http_routing - base_setup - bus - web_tour - auth_signup - mass_mailing - contacts - utm - link_tracker - web_kanban_gauge - social_media - digest - resource - sms - iap_mail - iap - phone_validation |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
blacklist_main |
Unsubscribed | ir.ui.view | qweb | New |
blacklist_number |
Unsubscribed | ir.ui.view | qweb | New |
mailing_contact_view_form |
mailing.contact.view.form.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_form |
mailing_contact_view_kanban |
mailing.contact.view.kanban.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_kanban |
mailing_contact_view_search |
mailing.contact.view.search.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_search |
mailing_contact_view_tree |
mailing.contact.view.tree.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.mailing_contact_view_tree |
mailing_mailing_view_form_mixed |
mailing.mailing.view.form.mixed | mailing.mailing | xpath | Inherits mass_mailing_sms.mailing_mailing_view_form_sms |
mailing_mailing_view_form_sms |
mailing.mailing.view.form.inherit.sms | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_form |
mailing_mailing_view_kanban_sms |
mailing.mailing.view.kanban.inherit.sms | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_kanban |
mailing_mailing_view_search_sms |
mailing.mailing.search | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_search |
mailing_mailing_view_tree_sms |
mailing.mailing.view.tree.sms | mailing.mailing | tree | New |
mailing_sms_test_view_form |
mailing.sms.test.view.form | mailing.sms.test | form | New |
mailing_trace_report_sms_view_graph |
mailing.sms.trace.report.view.graph | mailing.trace.report | xpath | Inherits mass_mailing.mailing_trace_report_view_graph |
mailing_trace_report_sms_view_pivot |
mailing.sms.trace.report.view.pivot | mailing.trace.report | xpath | Inherits mass_mailing.mailing_trace_report_view_pivot |
mailing_trace_view_form |
mailing.trace.view.form.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_form |
mailing_trace_view_form_sms |
mailing.trace.view.form.sms | mailing.trace | form | New |
mailing_trace_view_search |
mailing.trace.view.search.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_search |
mailing_trace_view_tree |
mailing.trace.view.tree.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_tree |
mailing_trace_view_tree_sms |
mailing.trace.view.tree.sms | mailing.trace | tree | New |
sms_composer_view_form |
sms.composer.views.inherit.sms | sms.composer | xpath | Inherits sms.sms_composer_view_form |
utm_campaign_view_form |
utm.campaign.view.form | utm.campaign | xpath | Inherits utm.utm_campaign_view_form |
utm_campaign_view_kanban |
utm.campaign.view.kanban | utm.campaign | xpath | Inherits utm.utm_campaign_view_kanban |
mobile
Char
string='Mobile'
No public methods.
No new fields.
Public methods (1)action_view_contacts(self)
body_plaintext
Text
compute='_compute_body_plaintext'
readonly=False
store=True
args: 'SMS Body'
mailing_type
Selection
ondelete={'sms': 'set default'}
selection_add=[('sms', 'SMS')]
sms_allow_unsubscribe
Boolean
default=False
args: 'Include opt-out link'
sms_force_send
Boolean
help='Use at your own risks.'
args: 'Send Directly'
sms_has_insufficient_credit
Boolean
compute='_compute_sms_has_iap_failure'
help='UX Field to propose to buy IAP credits'
args: 'Insufficient IAP credits'
sms_has_unregistered_account
Boolean
compute='_compute_sms_has_iap_failure'
help='UX Field to propose to Register the SMS IAP account'
args: 'Unregistered IAP account'
sms_subject
Char
help='For an email, the subject your recipients will see in their inbox.\nFor an SMS, the internal title of the message.'
readonly=False
related='subject'
translate=True
args: 'Title'
sms_template_id
Many2one → sms.template
ondelete='set null'
string='SMS Template'
args: 'sms.template'
action_buy_sms_credits(self)
action_put_in_queue_sms(self)
action_retry_failed(self)
action_retry_failed_sms(self)
action_send_mail(self, res_ids=None)
action_send_now_sms(self)
action_send_sms(self, res_ids=None)
action_test(self)
create(self, values)
default_get(self, fields)
mailing_id
Many2one → mailing.mailing
ondelete='cascade'
required=True
string='Mailing'
args: 'mailing.mailing'
numbers
Char
default=_default_numbers
help='Comma-separated list of phone numbers'
required=True
string='Number(s)'
action_send_sms(self)
failure_type
Selection
selection_add=[('sms_number_missing', 'Missing Number'), ('sms_number_format', 'Wrong Number Format'), ('sms_credit', 'Insufficient Credit'), ('sms_server', 'Server Error'), ('sms_acc', 'Unregistered Account'), ('sms_blacklist', 'Blacklisted'), ('sms_duplicate', 'Duplicate')]
sms_code
Char
sms_number
Char
sms_sms_id
Many2one → sms.sms
index=True
ondelete='set null'
string='SMS'
args: 'sms.sms'
sms_sms_id_int
Integer
help='ID of the related sms.sms. This field is an integer field because the related sms.sms can be deleted separately from its statistics. However the ID is needed for several action and controllers.'
index=True
string='SMS ID (tech)'
trace_type
Selection
ondelete={'sms': 'set default'}
selection_add=[('sms', 'SMS')]
create(self, values_list)
set_failed(self, failure_type)
set_sms_clicked(self, sms_sms_ids=None)
set_sms_exception(self, sms_sms_ids=None)
set_sms_ignored(self, sms_sms_ids=None)
set_sms_sent(self, sms_sms_ids=None)
No new fields.
Public methods (1)systray_get_activities(self)
mailing_id
Many2one → mailing.mailing
string='Mailing'
args: 'mailing.mailing'
mass_sms_allow_unsubscribe
Boolean
default=True
args: 'Include opt-out link'
utm_campaign_id
Many2one → utm.campaign
string='Campaign'
args: 'utm.campaign'
No public methods.
mailing_id
Many2one → mailing.mailing
string='Mass Mailing'
args: 'mailing.mailing'
mailing_trace_ids
One2many → mailing.trace
string='Statistics'
args: 'mailing.trace', 'sms_sms_id'
No public methods.
mailing_sms_count
Integer
compute='_compute_mailing_sms_count'
args: 'Number of Mass SMS'
mailing_sms_ids
One2many → mailing.mailing
domain=[('mailing_type', '=', 'sms')]
string='Mass SMS'
args: 'mailing.mailing', 'campaign_id'
action_create_mass_sms(self)
action_redirect_to_mailing_sms(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/13.0/mass_mailing_sms |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Marketing/Email Marketing |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Nicolas Lempereur, GitHub, Aurélien Warnon, Xavier-Do, Paul Morelle, Nasreddin (bon), sri-odoo, ryv-odoo |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:06:41 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - portal - web - base - web_editor - http_routing - base_setup - bus - web_tour - auth_signup - mass_mailing - contacts - utm - link_tracker - web_kanban_gauge - social_media - sms - iap - phone_validation |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
blacklist_main |
Unsubscribed | ir.ui.view | qweb | New |
blacklist_number |
Unsubscribed | ir.ui.view | qweb | New |
mailing_contact_view_form |
mailing.contact.view.form.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.view_mail_mass_mailing_contact_form |
mailing_contact_view_kanban |
mailing.contact.view.kanban.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.view_mail_mass_mailing_contact_kanban |
mailing_contact_view_search |
mailing.contact.view.search.inherit.sms | mailing.contact | xpath | Inherits mass_mailing.view_mail_mass_mailing_contact_search |
mailing_contact_view_tree_sms |
mailing.contact.view.tree.sms | mailing.contact | tree | New |
mailing_mailing_view_form_mixed |
mailing.mailing.view.form.mixed | mailing.mailing | xpath | Inherits mass_mailing_sms.mailing_mailing_view_form_sms |
mailing_mailing_view_form_sms |
mailing.mailing.view.form.inherit.sms | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_form |
mailing_mailing_view_kanban_sms |
mailing.mailing.view.kanban.inherit.sms | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_kanban |
mailing_mailing_view_search_sms |
mailing.mailing.search | mailing.mailing | xpath | Inherits mass_mailing.view_mail_mass_mailing_search |
mailing_mailing_view_tree_sms |
mailing.mailing.view.tree.sms | mailing.mailing | tree | New |
mailing_sms_test_view_form |
mailing.sms.test.view.form | mailing.sms.test | form | New |
mailing_trace_report_view_graph |
mailing.trace.report.view.graph | mailing.trace.report | graph | New |
mailing_trace_report_view_pivot |
mailing.trace.report.view.pivot | mailing.trace.report | pivot | New |
mailing_trace_report_view_search |
mailing.trace.report.view.search | mailing.trace.report | search | New |
mailing_trace_view_form |
mailing.trace.view.form.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_form |
mailing_trace_view_form_sms |
mailing.trace.view.form.sms | mailing.trace | form | New |
mailing_trace_view_search |
mailing.trace.view.search.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_search |
mailing_trace_view_tree |
mailing.trace.view.tree.inherit.sms | mailing.trace | xpath | Inherits mass_mailing.mailing_trace_view_tree |
mailing_trace_view_tree_sms |
mailing.trace.view.tree.sms | mailing.trace | tree | New |
sms_composer_view_form |
sms.composer.views.inherit.sms | sms.composer | xpath | Inherits sms.sms_composer_view_form |
utm_campaign_view_form |
utm.campaign.view.form | utm.campaign | xpath | Inherits utm.utm_campaign_view_form |
utm_campaign_view_kanban |
utm.campaign.view.kanban | utm.campaign | xpath | Inherits utm.utm_campaign_view_kanban |
mobile
Char
string='Mobile'
No public methods.
No new fields.
Public methods (1)action_view_contacts(self)
body_plaintext
Text
mailing_type
Selection
selection_add=[('sms', 'SMS')]
sms_allow_unsubscribe
Boolean
default=False
args: 'Include opt-out link'
sms_force_send
Boolean
help='Use at your own risks.'
args: 'Send Directly'
sms_has_insufficient_credit
Boolean
compute='_compute_sms_has_insufficient_credit'
help='UX Field to propose to buy IAP credits'
args: 'Insufficient IAP credits'
sms_template_id
Many2one → sms.template
ondelete='set null'
string='SMS Template'
args: 'sms.template'
action_buy_sms_credits(self)
action_put_in_queue_sms(self)
action_retry_failed(self)
action_retry_failed_sms(self)
action_send_mail(self, res_ids=None)
action_send_now_sms(self)
action_send_sms(self, res_ids=None)
action_test(self)
create(self, values)
default_get(self, fields)
mailing_id
Many2one → mailing.mailing
ondelete='cascade'
required=True
string='Mailing'
args: 'mailing.mailing'
numbers
Char
default=_default_numbers
help='Comma-separated list of phone numbers'
required=True
string='Number(s)'
action_send_sms(self)
failure_type
Selection
selection_add=[('sms_number_missing', 'Missing Number'), ('sms_number_format', 'Wrong Number Format'), ('sms_credit', 'Insufficient Credit'), ('sms_server', 'Server Error'), ('sms_blacklist', 'Blacklisted'), ('sms_duplicate', 'Duplicate')]
sms_code
Char
sms_number
Char
sms_sms_id
Many2one → sms.sms
index=True
ondelete='set null'
string='SMS'
args: 'sms.sms'
sms_sms_id_int
Integer
help='ID of the related sms.sms. This field is an integer field because the related sms.sms can be deleted separately from its statistics. However the ID is needed for several action and controllers.'
index=True
string='SMS ID (tech)'
trace_type
Selection
selection_add=[('sms', 'SMS')]
create(self, values_list)
set_failed(self, failure_type)
set_sms_clicked(self, sms_sms_ids=None)
set_sms_exception(self, sms_sms_ids=None)
set_sms_ignored(self, sms_sms_ids=None)
set_sms_sent(self, sms_sms_ids=None)
mailing_id
Many2one → mailing.mailing
string='Mailing'
args: 'mailing.mailing'
mass_sms_allow_unsubscribe
Boolean
default=True
args: 'Include opt-out link'
utm_campaign_id
Many2one → utm.campaign
string='Campaign'
args: 'utm.campaign'
No public methods.
mailing_id
Many2one → mailing.mailing
string='Mass Mailing'
args: 'mailing.mailing'
mailing_trace_ids
One2many → mailing.trace
string='Statistics'
args: 'mailing.trace', 'sms_sms_id'
No public methods.
mailing_sms_count
Integer
compute='_compute_mailing_sms_count'
args: 'Number of Mass SMS'
mailing_sms_ids
One2many → mailing.mailing
domain=[('mailing_type', '=', 'sms')]
string='Mass SMS'
args: 'mailing.mailing', 'campaign_id'
action_create_mass_sms(self)
action_redirect_to_mailing_sms(self)