Background: A 300-Person B2B SaaS Firm in Dubai
This case study is a composite built from patterns Forfis has observed across multiple engagements. We do not name real customers. The company described here is a 300-person B2B SaaS firm based in Dubai, selling a project-management platform to mid-market clients across the Gulf. Its finance and accounting team of 18 handles contract review, invoice processing, and month-end close. The firm runs on a standard stack: Salesforce for CRM, NetSuite for ERP, Confluence for internal documentation, and Zendesk for customer support. It holds ISO 27001 certification and operates under UAE data residency expectations for client contract data. The team had been using a manual review process where a senior accountant reads every clause in a new contract against a playbook stored in Confluence, flags deviations, and routes the contract to legal for approval. The average cycle time for a standard contract was 4.2 days, and the error rate on clause flags was around 12%.
Challenge: Contract Review Backlog and ISO 27001 Constraints
The finance director set a clear goal: reduce the cost per contract review ticket and free the senior team from routine clause checks. The operational pressure was threefold. First, the firm was closing 40-60 new contracts per month, and the review backlog was growing. Second, ISO 27001 required documented controls over how contract data was handled, which limited the options for sending data to external APIs without a clear data processing agreement. Third, the team had a 3-month window before the next quarter’s planning cycle, and the director needed a measurable baseline to justify a larger automation budget. The specific need was not to replace the senior reviewers but to shift them from reading every clause to reviewing only the exceptions the system flagged. The director also wanted the solution to plug into the existing Confluence playbook and Salesforce approval chain, not to replace either tool.
Approach: RAG Assistant Over Confluence with OpenAI API
Forfis ran a 2-week process audit that mapped the contract review workflow end to end. The audit confirmed that 70% of the clauses in standard contracts were repetitive checks against the playbook, and that the Confluence space held 200+ pages of precedent and redline history. The pilot scope was fixed: build a retrieval-augmented assistant that ingests the Confluence playbook, retrieves the most relevant precedent for each clause in a new contract, and drafts a flag or approval recommendation. The model layer used the OpenAI API for inference, with a vector store running on the firm’s own AWS account in the UAE region to satisfy data residency. The integration layer connected to Confluence via its REST API and to Salesforce via the standard approval workflow API. The human-in-the-loop design meant the assistant drafted the flag, and a senior reviewer approved or edited it before it went to legal. Every pilot shipped with a measured before/after baseline on cycle time and error rate.
Outcome: 50% Faster Cycle Time and 4% Error Rate
The 3-month pilot ran from week 3 to week 13. In month 1, the team ingested the Confluence playbook into the vector store and tuned the retrieval parameters. In month 2, the assistant went into internal testing with 30 real contracts, and the senior reviewers calibrated the flag thresholds. In month 3, the assistant handled live contracts in parallel with the manual process, and the team tracked cycle time and error rate against the pre-pilot baseline. The results: average cycle time for a standard contract dropped from 4.2 days to 2.1 days, a 50% reduction. The error rate on clause flags fell from 12% to 4%, because the assistant caught deviations the manual process had missed. The senior team spent 60% less time on routine clause checks and redirected that time to complex negotiations and month-end close. The cost per contract review ticket dropped by roughly 45% when measured in senior hours. The ISO 27001 audit trail was maintained through the approval log, which recorded every flag, approval, and edit.
Lessons for Similar Teams
- Start with the playbook, not the model. The quality of a RAG assistant depends on the quality of the source documents. If the Confluence playbook is stale or inconsistent, the assistant will retrieve the wrong precedent. Spend the first two weeks cleaning and structuring the playbook before building the pipeline.
- Fix the scope before you build. A 3-month pilot works only if the scope is fixed to one workflow. Trying to automate contract review, invoice processing, and data entry in the same window will stretch the team thin and dilute the baseline measurement.
- Data residency is a design constraint, not an afterthought. For a firm in the UAE with ISO 27001 certification, the vector store and inference layer must run in a region that satisfies the data residency policy. Planning this in week 1 avoids a rework in week 8.
- The human-in-the-loop approval log is your audit trail. Every flag, approval, and edit should be logged with a timestamp and reviewer ID. This satisfies ISO 27001 control A.12.4 (logging and monitoring) and gives the team a feedback loop to improve retrieval quality over time.
- Measure cycle time and error rate from day one. The before/after baseline is the only way to justify the pilot to the board. Without it, the outcome is anecdotal, and the next budget cycle will be harder to win.
Leave a Reply