All documentation
Guides

Bringing a client onto a job

QR joining, what the client sees, what they never see, and how to set the expectations that stop the Saturday phone call.

Updated 2 September 2026

Homeowners are not difficult. They are in the dark. Giving them their own view of their own job removes most of the friction on its own — but only if you decide up front what they see, and tell them what to expect.

Sending the invite

Project → Team → Invite client. BuildFlow issues a secure, expiring invite link and renders it as a QR code. The QR code is the same link — print it for the site board, or send it in a text.

  1. 1

    They scan or click

    The join screen carries your logo and colour, so it reads as your system rather than a third party's.

  2. 2

    They make an account

    Name, email, password. The link is what ties them to the project, so there is nothing for them to get wrong.

  3. 3

    They land in their job

    Straight into the project, with nothing else on the account visible to them.

One account per person, not per household

If both partners want access, send two invites. Shared logins mean you cannot tell who approved what, which defeats the point of the audit trail.

What the client sees

A client's view of their project on a phone: progress, stages and what happens next
  • Overall progress, the stages, and the milestones you have chosen to share
  • Progress photos of their job
  • Documents you have marked visible, with an approval step where you need one
  • The project thread — questions, decisions, variations
  • Snags they have raised, and how they are going
  • What is waiting on them: decisions and approvals holding work up

What the client never sees

  • Costs, margins or anything financial
  • The site diary — hours, workers, issues, deliveries, visitors
  • Internal notes and messages between your team
  • Documents you have not marked visible
  • Any other project, client or company

This is enforced by the database, not by hiding buttons. A client going looking for something they are not entitled to is refused where it cannot be worked around — including outside the interface.

Set the expectation in the first message

The single most useful thing you can do is post one message on day one telling them how this works. Something like:

A first message worth stealing
Hello both — you're now on our project system.

You'll see progress, photos and any documents that need your
eye. I'll post an update every Friday, and photos most days.

If you need something, put it here rather than texting me —
it means it doesn't get lost and everyone on the job can see
the answer. Anything urgent, ring me as normal.

Two things to look out for: decisions we need from you show
up on your dashboard, and once we're near the end you'll be
able to raise snags with a photo straight from your phone.

It takes a minute and it converts the system from a thing you use into a thing you both use.

Decisions and approvals

Where a document needs the client's agreement — a variation, a revised drawing, a spec change — mark it for approval rather than asking in a message. They get a clear yes/no, and the answer is recorded against a named person and a moment in time.

For choices rather than documents, post a message in the decision category. It stays findable, which matters when "we agreed the grey" comes up in month four.

Snagging with the client

Near the end, tell them to raise snags in the app with a photo. It is faster for them than a list in an email and it gives you a room, a photo and a timestamp rather than "the paintwork upstairs".

When the job is over

Clients keep access to their project after completion. The handover pack, the photo record and the certificates stay there. It costs you nothing — completed projects free up a slot on the paid plans — and it is the thing that gets you the recommendation two years later.

Try it on a real job

The free plan runs one project end to end — the fastest way to find out whether any of this fits how you work.

Bringing a client onto a job — BuildFlow documentation · BuildFlow