Settings & Configuration
This course covers all configuration areas in Quickenerp. Learn how to manage system-wide settings, configure email servers, set up security rules, manage translations, and use technical tools like automated actions and scheduled tasks. This is the most important course for administrators – everything here applies across all modules.
| Responsible | System |
|---|---|
| Last Update | 07/21/2026 |
| Completion Time | 6 days 18 hours |
| Members | 1 |
General Settings Overview
View allSystem Parameters
System parameters store key-value configuration pairs. They are used to customise Quickenerp's behaviour without writing code.
Navigation
Go to Settings > Technical > System Parameters (developer mode required).
Commonly Used System Parameters
| Key | Default Value | Purpose |
|---|---|---|
web.base.url | Auto-detected | The public URL of your Quickenerp instance. Used in email links and redirects. Set this manually if auto-detection gives the wrong URL. |
database.expire_date | – | For trial databases: the expiry date. Users see a warning as the date approaches. |
mail.catchall.domain | – | The catchall email domain. Emails sent to unknown aliases @catchall.domain are bounced. |
mail.bounce.alias | bounce | Prefix for the bounce email address. Bounce processing removes invalid email addresses from mailing lists. |
report.url | Auto-detected | URL used to generate PDF reports. Override if you use a separate reporting server. |
google_analytics.key | – | Google Analytics 4 Measurement ID. When set, tracking code is added to all website pages. |
snailmail.cooperator_threshold | – | Maximum number of recipients for bulk snail mail sending. |
Creating a System Parameter
- Click Create.
- Key – Use dot notation (e.g.
mycompany.some_setting). Follow existing conventions for consistency. - Value – The string value. Quickenerp automatically parses booleans, integers, and floats.
- Click Save. The parameter takes effect immediately (some may require a page reload).
Sequences
Sequences control auto-numbering of documents – invoice numbers, quotation numbers, order references, etc.
Navigation
Go to Settings > Technical > Sequences > Sequences (developer mode).
Sequence Structure
Each sequence has:
- Name – e.g. "Sales Order Sequence".
- Code – Internal code (e.g.
sale.orderfor sales orders). - Prefix – Text before the number:
SO/{{year}}/producesSO/2026/0001. - Suffix – Text after the number.
- Padding – Number of digits (4 = 0001, 5 = 00001).
- Next Number – The next number in the sequence. You can manually change this.
- Reset Period – Reset the counter: No Reset, Daily, Monthly, Yearly.
Customising Numbering
Example: Change invoice numbering from INV/2026/0001 to INV-2026-00001:
- Find the "Customer Invoice Sequence" in the sequence list.
- Change Prefix from
INV/{{year}}/toINV-{{year}}-. - Change Padding from 4 to 5.
- Save. The next invoice will be numbered
INV-2026-00001. - Already-issued invoices are not affected.
Note: Some localisation packages set numbering according to legal requirements. In the EU, invoices must be numbered sequentially without gaps. Adjust with care.
Automated Actions
Automated actions are server-side rules that trigger automatically when records are created, updated, or deleted. They are a powerful no-code automation tool.
Navigation
Go to Settings > Technical > Automated Actions (developer mode required).
Anatomy of an Automated Action
- Name – A descriptive name (e.g. "Notify Manager on Large Order").
- Model – The model to watch (e.g. Sale Order, Invoice, Lead).
- Trigger – When to fire:
- On Creation – When a new record is created.
- On Update – When an existing record is modified.
- On Creation & Update – Both.
- On Deletion – When a record is deleted.
[('amount_total', '>', 10000)] – only for orders over $10,000.- Send an email (select an email template).
- Create a new record (e.g. create a task in Projects).
- Update a field on the current record (e.g. set a flag).
- Execute a server action (Python code or multi-step process).
- Add a follower to the record.
- Create an activity (e.g. schedule a follow-up call).
Practical Examples
Example 1: Notify Manager on High-Value Orders
- Model: Sales Order
- Trigger: On Creation & Update
- Condition:
[('amount_total', '>', 50000)] - Action: Send Email – use a template that emails the sales manager with order details.
Example 2: Flag Expired Credit Cards on Contacts
- Model: Contact (res.partner)
- Trigger: On Update (when credit card expiry changes)
- Condition:
[('credit_card_expiry', '<', current_date)] - Action: Update field – set "Credit Card Valid" to False, create an activity to call customer.
Example 3: Auto-Assign Salesperson on New Lead
- Model: CRM Lead
- Trigger: On Creation
- Condition:
[('user_id', '=', False)](not assigned yet) - Action: Execute Python code – find the least-loaded salesperson in the lead's country team and assign them.
Testing Automated Actions
- Create a test record that meets the condition.
- Check that the action executed (email received, record created, field updated).
- Check the server logs if the action didn't fire.
- Remember that automated actions run synchronously – they execute immediately as part of the create/write operation. A slow action can make the UI feel sluggish.
Scheduled Actions
Scheduled actions (also called cron jobs) run automated tasks on a repeating schedule. They handle periodic maintenance, data processing, and automated communications.
Navigation
Go to Settings > Technical > Scheduled Actions (developer mode required).
Important System Scheduled Actions
| Name | Schedule | Purpose |
|---|---|---|
| Mail: Email Queue Manager | Every 1 minute | Processes the outgoing email queue. If this cron is inactive, no emails are sent. |
| Mail: Fetchmail Servers | Every 5 minutes | Checks incoming mail servers for new emails. If inactive, incoming email processing stops. |
| Accounting: Generate Valuation Layers | Every 1 hour | Creates inventory valuation layers for stock moves. |
| Sales: Subscription Auto-Invoice | Daily at 2:00 AM | Generates invoices for subscriptions due on the current date. |
| CRM: Lead Scoring Batch | Every 12 hours | Recalculates lead scores based on scoring rules. |
| Website: Sitemap Generation | Daily at 3:00 AM | Generates SEO sitemap.xml for the website. |
| Base: Update Currency Rates | Daily at 9:00 AM | Fetches latest exchange rates from configured API. |
Creating a Custom Scheduled Action
- Click Create.
- Name – e.g. "Daily Sales Summary Email".
- Model – The model the action works on (most system actions use
ir.actions.server). - Execution Frequency:
- Number of Calls – Run a fixed number of times, then stop.
- Do Not Repeat – Run once.
- Repeat Every – Run on a recurring schedule. Specify interval (Minutes, Hours, Days, Weeks, Months).
Cron Monitoring
The list view of scheduled actions shows:
- Status – "Done", "Running", or "Failed". Red background indicates a failure.
- Last Execution – Timestamp of the last run.
- Next Execution – When the next run is scheduled.
- Progress – For long-running crons, shows progress information.
If a cron fails, click the failed status to see the error details in the server logs. Common causes: Python errors in the action, unavailable network resources, or database locks.
Best Practices
- Schedule heavy operations during off-peak hours (e.g. 2:00 AM).
- Avoid running crons too frequently – a "Repeat Every 1 Minute" cron that takes 30 seconds may overlap with itself if it starts a second instance before the first finishes. Quickenerp prevents this by checking that the previous instance has completed before starting a new one.
- Test new crons by setting "Number of Calls" to 1 and a "Next Execution" of 2 minutes from now, then verify it runs correctly before making it recurring.