Automated Cron Jobs
Two cron jobs automate the CVGo workflow.
| Cron Job | Interval | Action |
|---|---|---|
| CVGo Validate | Every 1 minute | Finds the oldest Draft record and validates it |
| CVGo Post | Every 1 minute | Finds the oldest Validated record and posts it (skips records with unconfigured MOPs) |
Flow
Upload ZIP → [Draft] → (Validate cron) → [Validated] → (Post cron) → [Posted]
:::note One record at a time Cron jobs process one record per run. If you upload 10 files, they will be validated and posted sequentially (oldest first). :::
Disabling cron jobs
If you prefer fully manual processing:
- Go to Settings > Technical > Automation > Scheduled Actions
- Find "CVGo POS Data Validate Cron" and/or "CVGo POS Data Posting Cron"
- Set to inactive
Posting cron behavior with unconfigured MOPs
The posting cron filters out any Validated record that has at least one MOP marked Configured = False. The record stays in the queue but won't be processed until you review and Mark Configured the new MOP — see MOP Accounts.
This is a safety guard: a freshly auto-created MOP defaults to wrong journals (the user's active branch journals at create time), so posting before configuration would land journal entries in the wrong branch.
Multi-branch interaction
The crons run as the cron user's company context. Since record rules filter by company_id IN company_ids, the cron user needs company_ids covering all six branches to process records uploaded to any branch. By default the admin user has this — verify with:
SELECT u.login, ARRAY_AGG(c.name ORDER BY c.name) AS allowed_companies
FROM res_users u
JOIN res_company_users_rel r ON r.user_id = u.id
JOIN res_company c ON r.cid = c.id
WHERE u.login IN ('__system__', 'admin')
GROUP BY u.login;