SMS Campaign Scheduler - automatic SMS campaigns with SMS Gateway
by Michal Varys https://michalvarys.eu$ 226.83
In-App Purchases| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Point of Sale (point_of_sale)
• SMS Marketing (mass_mailing_sms) • Discuss (mail) • Inventory (stock) • Invoicing (account) • Email Marketing (mass_mailing) • Contacts (contacts) |
| Community Apps Dependencies | Show |
| Lines of code | 4054 |
| Technical Name |
vs_sms_campaign_scheduler |
| License | OPL-1 |
| Website | https://michalvarys.eu |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Point of Sale (point_of_sale)
• SMS Marketing (mass_mailing_sms) • Discuss (mail) • Inventory (stock) • Invoicing (account) • Email Marketing (mass_mailing) • Contacts (contacts) |
| Community Apps Dependencies | Show |
| Lines of code | 4054 |
| Technical Name |
vs_sms_campaign_scheduler |
| License | OPL-1 |
| Website | https://michalvarys.eu |
SMS Campaign Scheduler
Automate recurring SMS campaigns — daily, weekly, or monthly — with timezone-aware scheduling and full delivery tracking.
The Problem
You want to send SMS campaigns on a regular schedule, but Odoo has no built-in way to automate recurring mailings.
Every week you create the same campaign manually: pick a segment, write the message, set the recipients, click send. It is repetitive work that is easy to forget and hard to keep consistent.
This module lets you define a schedule once and it creates the campaign automatically — every day, every week, or every month, at the exact time you choose.
How It Works
Step 1: Create a Schedule
Pick a template, a segment, and a frequency. Set the day and time in your local timezone. Activate the schedule.
Step 2: It Runs Automatically
A cron job checks schedules every 15 minutes. When the time comes, it creates a real Odoo mass mailing campaign with fresh recipient data.
Step 3: Review the Log
Every execution is logged with recipient count, status, and a direct link to the created campaign. See exactly what was sent and when.
Scheduler Configuration
Scheduler Dashboard
Key Features
| Feature | Description |
|---|---|
| Three Frequencies | Daily, weekly (pick day of week), or monthly (pick day of month). Covers most business scheduling needs. |
| Timezone-Aware | Set the send time in your local timezone (e.g. Europe/Prague 09:00). The cron converts to UTC automatically — no manual calculation needed. |
| Live Recipient Resolution | Segment domains are resolved at execution time, not when the schedule was created. New customers matching the segment are included automatically. |
| Duplicate Prevention | Partners who already have unsent SMS from a previous run of the same schedule are excluded. No double messages on rapid re-triggers. |
| Contact-Frequency Control | Exclude partners who received an SMS in the last N days. Prevent over-contacting even with aggressive schedules. |
| Recipient Limit | Cap the number of recipients per execution. Useful for gradual rollouts or SIM card daily limits. |
| Extra Domain Filter | Add a custom Odoo domain on top of the segment filter. Example: send only to VIP customers from a broader segment. |
| Forced Gateway Phone | Assign a specific phone to all SMS from this schedule. Or leave empty for automatic load balancing. |
| Create Paused | Create campaigns in paused state — review recipients before sending. Manual resume required. |
| UTM Campaign Tracking | Assign a UTM campaign to track revenue from orders generated by the scheduled SMS. |
| Manual Trigger | "Run Now" button to execute a schedule immediately, regardless of the next scheduled time. Great for testing. |
| Execution Log | Every run is logged: timestamp, recipient count, success/error status, and a link to the created mailing campaign. |
Schedule Lifecycle
| Status | What happens |
|---|---|
| Draft | Schedule exists but does not execute. Configure everything first, then activate. |
| Active | The cron checks this schedule at every tick. When next_run is due, the campaign is created automatically. |
| Paused | Temporarily suspended. No campaigns are created. Resume anytime without reconfiguring. |
Use Cases
- Weekly promotion — send a marketing SMS every Monday at 10:00 to customers who have not ordered in 3 months
- Monthly reminder — remind loyal customers about new products on the 1st of each month
- Daily follow-up — send a daily SMS to new customers who signed up yesterday
- Gradual rollout — limit to 50 recipients per day from a segment of 1,000, ensuring consistent outreach over weeks
- Multi-region campaigns — separate schedules with different phones for Czech and Slovak customers
Real-world Screenshots
Scheduler Setup — choose template, segment, schedule, and domain filter
Execution Preview — schedule, domain filter, and execution log with results
Requirements
Odoo 18.0 Community or Enterprise
Depends on: SMS Gateway module (sold separately)
Support
Need help? Contact us at info@michalvarys.eu
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module