Northwind runs onboarding for around two hundred new contractors a month. Until this spring, that meant six PDF templates, a shared inbox and a spreadsheet someone updated by hand on Friday afternoons. Each new starter took about three working days to get from "signed" to "set up".

The problem was the branching, not the forms

The six PDFs existed because different contractor types needed different information: a driver needs a licence check, a warehouse hire needs a safety induction date, a remote analyst needs neither. The ops team's job was mostly figuring out which PDF to send, then chasing the fields people left blank.

"We were not collecting complicated data," their operations lead told us. "We were collecting simple data in a complicated way."

One form, six paths

They rebuilt the whole flow as a single OnlyForm. The first question asks for the role, and everything after it is conditional on the answer. Drivers see the licence upload; warehouse hires see the induction scheduler; analysts skip straight to equipment.

  • Required fields are enforced per path, so a driver cannot submit without the licence.
  • The signature block replaced the printed-and-scanned page.
  • A Slack notification tells the right team lead the moment someone finishes.

What changed

The median time from signature to a completed profile is now 40 minutes, most of which is the contractor filling the form in. The Friday spreadsheet is gone: responses land in a filtered view per team, and the monthly summary is a scheduled export.

The best part is what we stopped doing. Nobody chases a missing field any more, because the form will not let you leave one.

If you are doing something similar

Start with the branching, not the fields. Write down the roles, then the two or three things that differ between them. That list is your form.