All case studies & publications

Accounting & Bookkeeping · Professional Services · Regulatory Compliance

Client Onboarding Portal with Dataverse for a UK Accountancy Firm

Anonymised engagement
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.
Client onboarding, before and after
  • 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

  1. 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.
  2. Personal details and ID documents. Clients submit their information and upload their ID documents through the portal instead of by email.
  3. 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.
  4. 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.
  5. Model-driven app upgraded. We extended the internal app with additional information and custom connectors that verify driving licences and other public information.
From client sign-in to verified record
  • Sign-in with Entra B2C
  • Node.js onboarding portal
  • Dataverse Web API
  • Model-driven app
  • Licence & public-record checks

Technology

LayerWhat we used
Client applicationNode.js
Client sign-inMicrosoft Entra (Azure AD B2C)
Data platformMicrosoft Dataverse, Web API
Staff applicationPower Apps model-driven app
VerificationPower Platform custom connectors for driving licence and public-information checks
CommunicationIn-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.

BeforeAfter
Personal details and ID documentsEmail attachmentsSubmitted through a secure portal
Getting data into the staff appRetyped by handSent to Dataverse through its API
Client questionsEmail and phone, not tied to the caseChat with the assigned staff, inside the portal
Driving licence and public-record checksManual, outside the appCustom 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.

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