
Accounting & Bookkeeping · Professional Services · Regulatory Compliance
Client Onboarding Portal with Dataverse for a UK Accountancy Firm
- Client
- Chartered accountancy firm · London · serving high-net-worth clients
- Industry
- Accounting & Bookkeeping
- Department
- Risk, Compliance & Audit
- Region
- United Kingdom · UK & Ireland
For a firm that has to verify every new client, onboarding by email is slow, insecure and hard to evidence: passports as attachments, questions lost in threads, staff retyping everything before checks could start. Now clients sign in to a secure portal, submit their details and ID documents once and chat with the staff on their case, and everything lands as structured data in the firm's Dataverse app, where driving licence and public-record checks run.
A working model of the approach on sample data. It plays on its own and pauses when scrolled away; nothing here touches a live system.
The results
- 1
- secure portal: details, ID and case chat
- Clients sign in through Microsoft Entra (Azure AD B2C). Scope, not a measured saving.
- 0
- client details retyped by staff
- Submissions land as structured data in Dataverse through its API.
- 2
- kinds of check inside the staff app
- Driving licence and public-record verification through custom connectors.
The challenge
Our client is a London chartered accountancy firm serving high-net-worth individuals, entrepreneurs and international groups. Like every UK accountancy firm, it has to identify and verify new clients before acting for them, under the Money Laundering Regulations. Staff ran that verification in an internal Power Apps model-driven app on Dataverse. The client side of the process had no proper channel.
What it was costing them
- Sensitive data by email. Passports, addresses and personal details arrived as attachments, outside any controlled system.
- Retyping before checking. Staff copied client information into the internal app by hand before verification could start.
- Questions lost. Clients raised problems by email or phone, with no thread tied to their case.
- Slow checks. Driving licences and public information were checked manually, outside the app.
- A poor first impression. For high-net-worth clients, a clumsy onboarding is their first experience of the firm.
- Email attachments, retyped by staff
- One portal details and ID submitted once
- Data lands in the staff app already structured
The approach
We built a secure, client-facing onboarding application and connected it to the firm's internal Dataverse app, so clients submit everything once, in one place, and staff work from structured data.
What we built
- Client onboarding portal. A custom Node.js application where new clients sign in through Microsoft Entra (Azure AD B2C) and follow a defined onboarding process.
- Personal details and ID documents. Clients submit their information and upload their ID documents through the portal instead of by email.
- Chat with their case team. An in-app chat connects each client with the staff assigned to their case, so problems are raised and answered in context.
- Straight into Dataverse. Submitted data is sent to Dataverse through its Web API and fills the firm's model-driven app, already structured for the staff who verify onboarding.
- Model-driven app upgraded. We extended the internal app with additional information and custom connectors that verify driving licences and other public information.
- Sign-in with Entra B2C
- Node.js onboarding portal
- Dataverse Web API
- Model-driven app
- Licence & public-record checks
Technology
| Layer | What we used |
|---|---|
| Client application | Node.js |
| Client sign-in | Microsoft Entra (Azure AD B2C) |
| Data platform | Microsoft Dataverse, Web API |
| Staff application | Power Apps model-driven app |
| Verification | Power Platform custom connectors for driving licence and public-information checks |
| Communication | In-app chat between clients and their case team, document upload |
The outcome
New clients onboard through one secure process, and staff open their model-driven app to find the client's data already there, structured and ready to verify.
| Before | After | |
|---|---|---|
| Personal details and ID documents | Email attachments | Submitted through a secure portal |
| Getting data into the staff app | Retyped by hand | Sent to Dataverse through its API |
| Client questions | Email and phone, not tied to the case | Chat with the assigned staff, inside the portal |
| Driving licence and public-record checks | Manual, outside the app | Custom connectors inside the app |
- Clients onboard through a proper, secure process instead of email.
- Clients raise problems with the staff assigned to their case, inside the portal.
- Staff work from structured data already in their model-driven app, without retyping.
- Driving licence and public-record checks run from inside the app.
No time-saving or volume figures were recorded for this engagement; the figures above describe its scope.
The risk most teams miss
A client portal that collects passports is a security project first and a user-experience project second. Identity for external users has to be separate from staff identity, personal data has to land in a system that controls who sees it, and nothing sensitive should sit in the portal longer than it takes to hand it over. Using Entra B2C for client sign-in and moving the data straight into Dataverse, where the firm's access controls already apply, keeps the portal thin and the sensitive data in one governed place.
Built with
The tools this ran on, by the layer each one carried.
- Apps & integration
- Data & cloud
Next step
Start the same conversation
Tell us the process that keeps breaking. We will come back with what it would take to fix it, what it would cost, and what we would measure.
Or write to us directly: •••••@•••••••.•••
- A reply from a partner within one business day
- Fixed scope and fixed fee, agreed before we start
- The maps and the backlog are yours either way





