Have a password?

Unlocks the client-named version of every project.

Three Tools-to-One Platform

Environmental consultancy · Dubai · 14 staff

Replaced three per-seat SaaS subscriptions with one internal platform the team owns.

Re-enacted: the month's payroll run with its WPS export, on the same records as the CRM and projects

Context

Three products, three seat licences, and no shared record between them. Sales lived in one, delivery in another, and anything to do with people in a third — so cross-checking a project against who was on it, or what it had cost, meant opening all three and trusting whoever did the arithmetic.

  • Deal, project, and timesheet data had no shared identity across the three tools
  • Per-seat pricing scaled with headcount for software the team had outgrown
  • Reporting across the pipeline and delivery meant manual reconciliation
  • Nothing could be customised beyond what the vendors exposed

Outcome

  • Three per-seat subscriptions retired, and the manual reconciliation between them with it
  • Weekly per-person-per-project reporting became a query rather than an assembly job
  • PLACEHOLDER — add a measured figure here (e.g. monthly licence cost removed, or hours saved on reporting)
Re-enacted: a deal dragged to Won becomes a project with milestones and a programme, and the same records run the month's payroll and its WPS file

What we built

One Postgres schema behind all three functions — 36 tables covering deals and stages, projects and milestones, tasks, documents, time entries, leave, appraisals, payroll, expenses, approvals and renewals. 68 row-level security policies enforce who sees what, in the database rather than in application code.

CRM with a nine-stage pipeline usable as either a board or a list, version-controlled documents on both incoming and outgoing sides, and a next-step task that notifies whoever it lands on. Deals convert straight into projects from a template — the commercial record and the delivery record are the same record — with milestones, a Gantt chart and a PDF timeline.

HR that people actually use: check in and out against a project, statutory leave types with an approval path, announcements, holidays, and employee documents with expiry dates. Time entries roll into a weekly per-person-per-project report, which is the view that had been impossible before. Payroll produces the bank's WPS salary file and the end-of-service gratuity calculation from the same records.

Realtime notifications, an approval matrix, a renewals-and-compliance dashboard for every document that expires, an audit log, exports to Excel and PDF — and a deliberate integration seam left where Zoho Books stays, the one product worth keeping.

What stuck

  • One record per deal, project, and person, instead of three that had to be reconciled
  • Access rules live in the database, so a new surface inherits them automatically
  • The schema is theirs — changes no longer wait on a vendor roadmap

Snapshot

Client profile
Environmental consultancy, 14 staff, Dubai
Engagement
Catalyst — internal platform build, July to September 2026, then a second phase
Timeline
~8 weeks to first use; second phase in progress
Replaced
Zoho CRM, Zoho Projects, Zoho People — Books retained
Scale
36 tables, 22 migrations, 68 row-level security policies, 26 pages
Scope
CRM, projects, time, HR, payroll, expenses, approvals, renewals, audit trail
← All work