Skip to content
faceela

You ran four hundred government transactions last month. Which of them made money?

A services firm has no stock to count. What it has is hours, files and government fees moving through it, and almost every one of them is recorded in a place that cannot be added up — a shared drive of scanned receipts, a spreadsheet of expiry dates, a WhatsApp thread with a freelancer, and an accounting system that learns about all of it three weeks later. ServX is nine modules on Odoo 19 Enterprise that put the transaction, the hour and the fee onto one record from the moment they exist.

ServXPRO services and project delivery on Odoo · 9 modules on Odoo 19 Enterprise

The distinction that matters

What a task list and a folder of expiry dates has to do with this

Most services firms are already organised. There is a tracker, it is colour-coded, somebody maintains it, and it works — until you ask it a question it was not built to answer. What did that client cost us to serve last year? Which service line is actually profitable once the PRO's time is in it? How much of the money sitting with the channels belongs to jobs we have already invoiced? A tracker answers none of those, because a tracker records that something happened and not what it consumed.

The second thing is that in this country the paperwork has a shape, and the shape has dates in it. A trade licence and an establishment card have validity windows. A MOHRE quota has a number in it. A work permit, a residency file, a medical, an Emirates ID and an orientation happen in an order, and the order is not advisory. A system that treats all of that as free-text tasks will let a clerk start a renewal that was doomed before it began — and the fee is paid before the rejection arrives.

The third is that the money and the work live in different systems, and the gap between them is where a services firm's margin goes. The fee is paid by one person, the receipt is downloaded by another, the invoice is raised at month end by a third, and the hours are remembered by nobody. By the time the numbers meet in the accounts the job is closed and the story is unrecoverable. The point of putting this on Odoo rather than beside it is that the transaction, the timesheet and the ledger entry become the same record seen from three angles.

And the fourth is the people who are not employees. Services firms run on freelancers, subcontracted consultants and part-time specialists, and their cost is usually reconstructed from invoices at the end of a quarter rather than carried on the job while it runs. A project that looked profitable at delivery frequently was not — you simply found out too late for the finding out to be worth anything.

How it runs

The chain, from an enquiry to a reconciled invoice

One record carries the work from the first conversation to the money, because every hand-off that leaves the record is a place where cost stops being attributable to anything.

  1. 1The client as an establishment, not just a name: trade licence, establishment card, immigration file and labour file, each with its own validity window held as a date rather than as a note.
  2. 2The service catalogue, with the government fee and your service fee as separate components from the outset — they are different things, and combining them on one line is a decision you cannot reverse at invoicing time.
  3. 3The quotation or engagement, priced as fixed fee, time and materials, or retainer, with the basis recorded rather than assumed.
  4. 4The transaction file opened against a service and a client, carrying the channel it will go through and the documents it needs before anyone starts collecting them.
  5. 5Document collection, with the checklist derived from the service rather than from memory — the passport copy, the photograph, the attested certificate, the tenancy contract, each either present or visibly not.
  6. 6Assignment to a PRO or a coordinator whose own card is valid, with the workload visible so the fifth urgent file of the day is a decision rather than a surprise.
  7. 7The government fee paid, and the receipt attached to the transaction that caused it — the single habit that separates a firm which can prove its costs from one which merely believes them.
  8. 8Status through the government cycle, held as states with dates: submitted, under process, approved, rejected, collected. A rejection is a state with a reason on it, not a message somebody relays.
  9. 9For visa work, the steps in the order the law puts them in — entry permit, status change, medical, Emirates ID, contract, residency stamping — with the file unable to close while any of them is outstanding.
  10. 10For project work, the plan: phases, milestones and deliverables, each with an owner and an acceptance condition written before anyone starts.
  11. 11Timesheets on the task, by employees and by freelancers alike, so a consultant on a day rate lands on the same job-cost line as a salaried designer.
  12. 12Freelancer and subcontractor engagement as an agreement with a rate and a scope, their cost accruing onto the project while it runs rather than arriving as a surprise invoice after it closes.
  13. 13Client acceptance of the milestone, signed and dated, held against the milestone it accepted.
  14. 14Invoicing from what was accepted and what was consumed — the fee, the recharged costs and the time, each traceable back to the record that produced it.
  15. 15Job costing that closes the loop: revenue, direct cost, government fees, internal hours and external hours on one statement per project and per client, available while there is still time to act on it.

The refusals

The ten things it refuses to do

Every refusal below is a state transition the code declines rather than a warning it displays. Six hundred and fifty-four automated tests hold them in place.

  • RefusesRenewing an employee's residency while the establishment's licence or card is expired

    Everything downstream of an expired trade licence or establishment card stops at the counter. A renewal started against one is a fee paid, a queue joined and a day lost before anybody learns why — and the employee's own visa is running down while it happens.

  • RefusesA work permit request beyond the establishment's MOHRE quota

    The quota is a number the ministry holds, and a request past it is refused after payment rather than before it. Checking it at the point of request costs one comparison; discovering it at the ministry costs the fee and the cycle.

  • RefusesClosing a visa file with the medical, the Emirates ID or the orientation outstanding

    This is the most common finished file that is not finished. It surfaces months later, usually when the employee needs something urgently, and by then the person who handled it has moved on and nobody can say what was actually done.

  • RefusesAn offer letter whose terms differ from the contract signed after it

    The offer and the labour contract are meant to agree, and a mismatch between them is a compliance exposure rather than a clerical slip. The system will not produce the second document from different figures than the first.

  • RefusesAssigning a transaction to a PRO whose card has expired

    A PRO card is itself a dated document. Sending someone to a government counter without a valid one wastes the trip, and doing it repeatedly is the kind of pattern that gets noticed at the counter rather than in your office.

  • RefusesMarking a service delivered with no government receipt behind it

    The receipt is what makes the fee a recoverable cost rather than an unexplained payment. Without it the money is still gone, but it has stopped being attributable to a client, a service or a tax position.

  • RefusesClosing a client file with an open fine or an overstay running

    Overstay accrues daily and does not stop because your file says closed. A firm that closes files over the top of running penalties is a firm that hears about them from its client.

  • RefusesLogging time against a closed project

    Once a project is closed its cost is a fact other decisions have been made against — a final invoice, a margin reported, a bonus calculated. Time arriving afterwards silently rewrites all three.

  • RefusesInvoicing a milestone with no signed client acceptance against it

    An invoice raised against work the client has not accepted is a dispute with a due date on it. The acceptance is not paperwork for its own sake; it is the thing that makes the invoice collectable.

  • RefusesEditing a government transaction that has already been submitted

    What was submitted is what the authority received, and your record has to agree with theirs. A correction is a new record referencing the original with a reason on it, which is also the only version of events that survives an audit.

Honest limits

What it deliberately does not do

It does not submit to the government for you where no interface exists. Tasheel, Amer, the immigration channels and the free-zone portals are, for the most part, screens a human being logs into — and a vendor promising automatic submission across all of them is describing screen automation, which breaks the week a portal changes its layout. ServX manages the file, the deadline, the fee and the receipt around that human step. It does not pretend the step is not there.

It is not legal advice, and it is not a substitute for a PRO who knows what he is doing. The rules it enforces are the structural ones — validity windows, quotas, sequence, acceptance — because those are the ones a system can hold correctly. The judgement calls stay with your people, and any vendor telling you their software removes the need for that expertise is selling you a liability.

It requires Odoo Enterprise. All twelve companies running it are on it, and it is the only configuration we quote. This is worth being blunt about because it changes your licence cost per user, and that number belongs in the arithmetic before you like the demo rather than after.

It does not rebuild what Odoo already does well. Nine modules is a deliberately small number. Sales, projects, timesheets, accounting and HR are Odoo's, unmodified; what we added is the part Odoo has no opinion about — the government transaction, the establishment's dated documents, the external workforce on the job cost, and the refusals above. A suite that reimplements the base is a suite you cannot upgrade.

It is not a business-setup marketplace and it is not a document courier. It will not find you a free zone, quote you a package or move your attestations. It runs the firm that does those things.

Questions

What buyers ask us first

Who is running it?

Twelve companies, live. One of them is Ugoconcept, the interior and exterior design studio in Business Bay, Dubai, who have agreed to be named — and they are a project-delivery firm rather than a PRO firm, which is rather the point. The suite was built for both halves of the services business and it is in production on both.

Does it need Odoo Enterprise?

Yes. All twelve live companies are on Enterprise and it is the only configuration we quote, so it drives your licence cost per user before it drives anything else — put it in the budget at the start rather than discovering it in week three. Worth knowing alongside that: those twelve are split across Odoo 18 and 19. A new implementation goes onto 19, and the older installations were carried across the major version rather than left behind on it.

Will it submit our transactions to Tasheel and Amer automatically?

No — and be careful with anyone who says otherwise. Most of these channels expose no interface to a private vendor, so automatic submission means a robot driving a browser, which works until the portal changes and then fails quietly. What ServX automates is everything around the submission: the eligibility check before it, the fee and receipt attached to it, the deadline that governs it, and the state it lands in afterwards.

We do project work, not PRO work. Is half of this irrelevant?

The government side is configuration, not weight — if you run no transactions, you see no transactions. What you would buy it for is the other half: freelancers and subcontractors costed onto the job while it runs, milestones that cannot be invoiced without signed acceptance, and a job-cost statement per project and per client that arrives while you can still act on it.

How do we know it works?

Six hundred and fifty-four automated tests, and twelve companies running it in production. The tests are the part that matters here: every refusal on this page is one of them, so the guarantee is not that the system warns you — it is that the transition does not happen.

What should we make any vendor prove on their own demo?

Four things, live. Start a renewal against an establishment whose card expired yesterday and show me what happens. Show me a milestone invoice attempted with no signed acceptance behind it. Show me one project's cost with a freelancer's day rate already in it, before the freelancer has invoiced. And show me a submitted government transaction being corrected — I want to see whether the original is still there. Most demos pass the first and fail the fourth.

ServX

See it on your own numbers

A walkthrough on a database seeded with a portfolio, not a slideshow. Bring one tenancy, one owner and one argument you have had with a spreadsheet, and we will show you where each of them lands.

Monday to Friday, 9:00 AM – 6:00 PM (GST)

Prefer we call you?

Leave your WhatsApp number and we will reach out.

We reply on WhatsApp first. Include your country code.

No newsletter, no reselling your number. We use it to reply to you — see our privacy policy.

WhatsApp us