Skip to Content

Odoo Automations: Scheduled Actions and Server Actions

Let the system do the work

Odoo has two main automation mechanisms: scheduled actions (cron jobs) that run on time intervals, and server actions triggered by events. Both can be configured without code in simpler cases.

Scheduled Actions

Under Settings → Technical → Automation → Scheduled Actions. Define a Python method that runs regularly. Frequency: every minute, hour, day, week, or month. Typical use cases: send reminders for overdue invoices, archive old leads, generate weekly reports.

In a custom module: declare an ir.cron record in XML with model, method, interval, and number of runs. The method in the Python model performs the logic.

Server Actions

Triggered by user actions or automation rules. Types: run Python code, send email, create new record, update field, send SMS. Automation rules connect server actions to triggers: "when a lead changes stage to Won, send email to the manager and update the won_date field".

Automation Rules

Under Settings → Technical → Automation → Automation Rules. Trigger: on creation, on update of specific fields, based on time condition. Action: one or more server actions. Requires no code for simple cases (send email, change field, create activity).

Practical example

Every Friday at 08:00: scheduled action that searches all sales orders with status "To Invoice" older than 7 days, creates an activity for the responsible salesperson. The salesperson gets a reminder to send the invoice. No manual work, no forgotten invoices.

Limitations

Complex automations with conditional logic and external API calls require Python code in a custom module. Codeless automation rules work for simple if-then scenarios but not for advanced business logic.

Odoo Security: Groups, ACLs, and Record Rules
Who gets to see what, and why it matters