Skip to Content
Services

ERP engineering for systems a business already runs on

Everything below is something we've shipped into a production Odoo system, and each practice links to the case studies that show it.

Self-service portals

A no-login attendance kiosk where employees identify with their Iqama and employee ID, check in or out and request corrections — and a portal to request, return or report a fault on company assets.

Kiosk check-in Geolocation Employee self-service
Stack

What we ship with

The tools behind the case studies on this site.

Odoo 17 & 18 Python PostgreSQL OWL QWeb reports XlsxWriter ZKTeco · PyZK WhatsApp Graph API Twilio Groq · OpenAI-compatible APIs ZATCA UBL 2.1 Central Bank of the UAE rates PDF.js Gridstack Passlib Azure DevOps
Questions

The things people ask us first

Do you work on Odoo 17 or Odoo 18?

Both, in production. MAFA Group runs on Odoo 17 and the aviation and charter platform runs on Odoo 18. The conventions differ between the two versions, and we keep them apart.

Can you take over a system that is already live?

That's most of what we do. MAFA Group's four company instances have been maintained continuously since April 2025 — fixes, new modules and compliance changes shipped into a system the business runs on every day.

Can one codebase serve several companies?

Yes, in two different shapes. MAFA is one Odoo 17 codebase deployed as four separate instances. The aviation group is one Odoo 18 instance running three companies, and a new operating company gets its own document numbering without any setup.

Do you put AI into the ERP?

Where a person can check the output. On the customer-onboarding pipeline a vision model fills a form and an admin approves it — the model never writes to the database directly. The CRM assistant runs only when a user asks, against any OpenAI-compatible provider.

Where do integration credentials live?

In configuration, never in code. Recovery secrets for security features go a step further and live in the server config file, so database access alone can't reset them.

Where is the team?

We're a remote team across Pakistan and Saudi Arabia, working on systems for companies in Saudi Arabia, Germany, Pakistan, the UAE and Bahrain.

Not sure which of these you need?

Describe the symptom. We'll tell you which of these it is — and whether we've fixed a version of it before.