Skip to main content

Bulk SMS Marketing

Purpose​

Bulk SMS Marketing extends Odoo SMS Marketing with Corvus gateway and sender selection, reusable SMS templates, delivery pacing, campaign reply handling and CRM lead conversion. It works inside the existing marketing application rather than providing a separate provider account or sending service.

Before you start​

Install corvus_sms_blaster with mass_mailing_sms, mass_mailing_crm, crm, phone_validation and corvus_sms_suite for the same Odoo major version. Suite supplies the Corvus messaging chain. No Enterprise-only addon is declared. Configure an approved gateway, sender number and recipient list before preparing a campaign.

This guide reviews 19.0 source. Its dependency stack has unresolved interface-template issues, and campaign conversation actions need administrator permission review. Obtain a validated package and access configuration before operational use. No runtime test, campaign queue action, provider send or CRM mutation was performed during this review.

Access and setup​

The SMS Marketing → Configuration → SMS Templates menu is restricted to the native Email Marketing User group (mass_mailing.group_mass_mailing_user). The addon grants Internal Users full model permissions on its template and template-tag records, and Settings administrators full access to its campaign history model. Native marketing permissions still govern the marketing screens; this is not evidence of per-campaign conversation isolation.

Create a reusable template and select it as SMS Template on the campaign's Corvus SMS Delivery tab. Set SMS Gateway and Sender Number: both are mandatory for an SMS campaign. Selecting a sender with an associated gateway updates the gateway selection.

Supported convenience placeholders are {name}, {address}, {price} and {phone}. {price} maps to the contact's Expected Revenue field, not a quotation total or currency-formatted price promise. Check recipient fields before relying on the rendered text. Mailing contacts also gain Address and Linked Lead.

A contact list can enable Check Duplicate Phone On Import. Its create/import check looks for a matching CRM lead or a partner linked to a lead. This is not a general deduplication guarantee for all existing mailing contacts.

Prepare a draft and identify campaign controls​

  1. Create the SMS campaign with exactly one contact list. Choose the gateway, sender and template, then review the final message and recipient data. Queue validation rejects zero or multiple lists.
  2. Check whether that list already belongs to another SMS campaign in in_queue or sending state. Finish or cancel the conflicting campaign before queueing another for the same list.
  3. If pacing is required, enable Enable Advanced Anti-Spam Delivery. This is the source label for pacing and text-variation controls; it does not guarantee provider acceptance or compliant recipient consent.
  4. Configure Enable Drip Sending, SMS Per Minute, Limit Send Window, start/end hours and Window Timezone. Defaults are 10 messages per minute and a 09:00–20:00 window when those controls are enabled. The rate and Variant Attempts must be positive; the end must be later than the start within the same day. An overnight window is not accepted by this configuration.
  5. Review Enable Deep Spintax Rotation and Prefer Unique Variants if using alternatives such as {Hello|Hi}. The default attempt limit is 24. Attempts are bounded, so uniqueness is not guaranteed. Check generated meaning and recipient substitutions before authorising a send.
  6. Queueing is outside this draft-preparation guide until the installed package and campaign access are independently validated. The queue control would assign eligible send times and let the normal SMS job process due messages. Scheduler timing and provider behavior mean a rate is not a guarantee of exact handset arrival times.
  7. The campaign's Inbox smart button exposes All, Replied, Blocked and Archived filters. Reply, Block, archive and conversion actions remain unavailable under this guide pending validated campaign access. The reply method rejects blocked numbers.

The inbox's Block action uses the shared phone blacklist. It is broader than simply hiding the entry. Delete (archive) archives matching campaign traces for that phone number; it is not a claim of permanent message deletion. Apply performs the selected action; it is described here for identification, not execution.

Convert to Lead can reuse an existing matching lead or create one from a mailing contact, link the contact, transfer relevant message history, add the Converted tag and archive the related campaign traces. It can report warnings for missing numbers, unsupported targets or conflicting lead matches. These effects explain the control; this reference does not instruct conversion on the unvalidated package.

Practice scenario​

Prepare a fictional campaign for three Cedar Workshop test contacts on one list. Use Hello {name}, your sample reference is {phone}. Set the draft's sender and review a 10-per-minute daytime plan without queueing it. Identify how a duplicate lead or blocked number would affect the workflow. This source-derived exercise was not executed and sends nothing.

Limits and troubleshooting​

Missing gateway/sender, an invalid list count, an active campaign on the same list, invalid rate, or an invalid window blocks the relevant preparation or queue step. Incorrect or missing contact data can still produce an unsuitable message; templates do not validate business meaning.

Campaign deletion can remove associated SMS records. The history extension preserves information for campaign processing, but it is not an immutable archive or a substitute for a retention policy. The reviewed 17 source uses older list-view and bus integration; 20 changes SMS garbage collection/send APIs and access declarations. These differences need the matching package.

See SMS & MMS Messaging Suite, Two-Way SMS & CRM Inbox, and SMS Gateway & API Routing for the underlying dependencies.

The catalogue lists Odoo 17.0–20.0. This guide reviews 19.0 source and selected differences in the other versions; it is not a runtime qualification. Choose the exact installed major version in the Corvus app catalogue for purchase and available live-test options. No individual marketplace or running demo was verified for this guide.