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.