The operations manager of a Queensland construction company reached out. The business does concrete, concrete pumping, and earthmoving. Five trucks, a growing crew, and a calendar that filled up faster than the systems could keep up with.
The setup looked like a lot of small businesses that grew faster than their tools. Google Forms for pre-starts and inspections. Google Sheets to hold whatever the forms spat out. Connect Team for the roster. Zapier duct-taping it together in the middle. And Notion quietly sitting on the side, waiting to be useful.
What Was Broken
Every morning, a driver would fill out a truck pre-start on a Google Form. The response landed in a spreadsheet. Nobody really opened that spreadsheet unless something went wrong.
New job bookings came in through another form. Someone had to manually read that response, add the job to the roster, message the crew, and note it somewhere for the admin side. If a truck was due for a service, the only way anyone knew was if someone remembered to check.
Onboarding a new staff member meant four separate form links, a follow-up text chasing license uploads, and a mental note to hand them a SWMS document. Nothing connected. Nothing triggered anything else.
The brief was clear: bring all of this into Notion.
The Build
I built one unified Notion workspace. The entire design sits on a principle I’ve learned across 400+ projects. If the databases aren’t connected, you don’t have a system. You have a stack of spreadsheets with a nicer font.
Here’s what I built and why.
One Master Task Tracker feeding every dashboard. Instead of building separate to-do lists for admin, crew, and maintenance, I built one task database and let views do the work. Today’s tasks, overdue tasks, by-job, by-assignee, this-week. All the same data, sliced differently depending on who’s looking. When a pre-start reports an issue, it creates a task here. When an equipment service comes due, it creates a task here. One source of truth.
Role-based dashboards, not role-based databases. The brief mentioned giving crew limited access. The temptation is to build them a separate workspace. That’s a trap. It splits your data and doubles your maintenance. Instead, I built three dashboards: Admin, Staff, and Content. Each one pulls from the same underlying databases but shows only what that role needs. The admin sees every job, every task, the full schedule, and analytics. Staff see their own schedule and their forms. Same data, different doors.
Staff Profiles with embedded forms. Onboarding was five separate forms before. I built a Staff Profile database where each person has a page, and the five forms (New Staff Details, SWMS Acknowledgement, Pre-Start Issue Log, License Upload, Vehicle Induction) are tabs on that page. Fill them in once at onboarding, and they’re permanently linked to the person, not floating in a spreadsheet somewhere. The role dropdown is pre-populated with every role the business uses, so submissions stay clean and filterable.
Equipment Logs that trigger their own reminders. Each truck, pump, and machine gets its own record. Rego, last service date, next service due, hour meter. A formula watches the next-service date, and when it hits one day out (or goes overdue), a task auto-generates in the Master Task Tracker with the equipment linked. The admin never has to remember a service again. The client asked specifically for notifications one day before and when overdue, via Notion notifications, so that’s exactly how the reminders are wired.
Native Notion forms instead of Google Forms + Zapier. This was the big unlock. The original setup used Zapier to push Google Form responses into Notion. That’s fine, but it adds a layer, costs money, and occasionally breaks. Notion’s native forms now do 95% of what was needed. Pre-starts, inspections, job bookings, and onboarding all submit straight into the correct database. Phone-friendly, no middle layer.
A Content Dashboard for social media. The brief also asked for a social media calendar, so I built a separate Content Dashboard running alongside the operations side. Monthly calendar, kanban by status, platform breakdown charts. It’s the same pattern as the admin dashboard (one database, multiple views), just applied to content instead of jobs.
The Result
Four tools became one. The handoff between booking a job, rostering the crew, assigning equipment, and creating the task list used to touch three separate apps. It now happens inside a single form submission.
Truck pre-starts and inspection photos attach directly to the equipment they relate to, so a year from now when someone asks “when did we last service the red pump?”, the answer is one click, not an archaeological dig through Google Sheets.
Onboarding dropped from “send four links and chase uploads” to “fill in the Staff Profile tabs.” And maintenance reminders stopped depending on memory.
What I Learned
The hardest part of a build like this isn’t Notion. It’s resisting the urge to keep the old structure inside the new tool. The original setup had a separate form for every situation. The fix wasn’t to rebuild five forms in Notion. It was to ask which of those forms actually belonged to the same workflow and could live on a single page. Most “Notion is complicated” problems are really “we copied our old mess into a new tool” problems. A good build strips the workflow down to its real shape first, then builds from there.

