Signing you in…
Loading your workspace.
Job Loop
Client portal
Your jobs, your artefacts, your proof.
Every photo your crews capture, stamped and checked, against the job it belongs to.
Clear to work
Permits and prerequisites handled before work begins.
Right first time
Crews are guided through exactly what needs to happen.
Proof as you go
Every required artefact captured automatically against the work.
Isolated workspace per company · every view logged
Sign in
Use the email and password provided to your company.
Forgot?
By signing in you agree to the Terms & Conditions.
No account yet? Click to email admin
?
Workspace
Dashboard
Every photo is pinned by the GPS location it was captured at — click a pin to see the photo, job and time.
Job / SAM-ADANameAddressScheduleStartFinishArtefactsStatusForms
CSV import accepts a header row with job_code, sam_ada, name, address — extra columns are ignored.
Crew logins can sign into the field app and be assigned jobs. Each person only sees the jobs assigned to them.
Crews are named teams. Assign a whole crew to a job in one tap.
Add job
Add person
Add site induction
Add crew login
They sign into the field app with this email and password. Ask them to change it after first login.
Add user
They get an email to set their own password, then sign in at portal.civilsnap.ai. Office gives manager access; crew and supervisor sign into the field app. Re-adding someone who already has an account sends them a password reset instead.
Send back to crew
This note shows on the crew's job in the field app, and the job goes back to In progress.
Import or update jobs from a spreadsheet

Takes .xlsx or .csv, and reads two shapes. A Service Stream allocation is recognised by its asset_code column — the sheet is found by that header, whatever it is named and whatever else the export carries. A job sheet is keyed on job_code.
Job-sheet columns: job_code, sam_ada, da_dfn, name, address, client, design_qty (or meters), job_type, drill_rig, byda_ref, byda_date, schedule_date, start_date, finish_date, project, supervisor, rate_code, notes. Either way a code that already exists updates that job and keeps its status, a new one is added, and blank cells are skipped rather than blanked. Dates read d/m/yyyy or yyyy-mm-dd.

Details