Concorbit HelpAll guides →

Customer Tracking

Customer tracking page

When you dispatch a job, concorbit mints a unique customer tracking link. Send that link to the customer (or let the automated emails do it) and they can follow their appointment live: no login, no app, just a URL that works on any phone.

What the customer sees

  • Tenant branding: your logo and accent colour at the top.

  • Status line: "Engineer assigned", "On the way", "Arrived on site", "Work in progress", "Complete".

  • Progress bar: a 4-step bar showing where the appointment is in its lifecycle.

  • Engineer card: the assigned engineer's name and avatar. (Phone/email intentionally not shown; see "Security" below.)

  • Live map: while the engineer is travelling, a Leaflet map with a pin on the job address and a live pin on the engineer's van, updating every 30 seconds.

  • ETA: estimated arrival in minutes based on the most recent GPS ping and the distance to the job. Rough: uses a flat 40 km/h average (future upgrade to OSRM routing).

  • Post-completion feedback: once the job is marked complete, the page swaps the map for a 5-star rating form + optional comment. One submission per job.

Automatic notifications

Four status transitions trigger emails to the contact on the job:

TransitionEmail template
Job dispatchedYour engineer has been assigned — job {number}
Engineer sets off{Engineer} is on the way
Engineer arrives on site{Engineer} has arrived
Job completedYour job is complete — {number}

Each email carries the tracking link. You can customise the subject and body per template under Email → Templates.

Tenant settings

All four settings live on the Jobs module. Set them in Settings → Jobs (or tenant.settings.jobs.* if editing by API):

SettingDefaultDescription
customer_tracking_enabledtrueMaster switch. Turn off to stop minting tokens and silently fall through all notifications.
customer_tracking_ttl_days7Days after completion before the link stops resolving. Clamped 1–90.
notification_channels['email']['email'], ['sms'], or ['email', 'sms'].
sms_enabledfalseGates SMS sends. Currently a logged stub; an SMS provider integration lands in a future session.

Security notes

  • The tracking link IS the credential. Treat it like a magic link: don't post it publicly, don't forward the email body to anyone you wouldn't invite to see the engineer's live position.

  • Live GPS only flows while the engineer is en-route. Once the status reaches "Arrived", the live pin freezes. The engineer's movements after arrival (lunch, next job, home) are NEVER exposed.

  • Tokens are nulled on cancellation: if a booking is cancelled, any link texted beforehand immediately stops working.

  • Low ratings flag internally: a rating below 4 sends a notification to the job's creator, so unhappy customers get a human follow-up.

  • One feedback per job. Once a rating is submitted via the link, it's locked. The unique DB index means a second submission gets a 409.

After customer_tracking_ttl_days past completion the link returns the "Tracking link expired" page. If the customer needs a copy of their completion confirmation, resend the "Job completed" email manually from the job detail page, which re-mints a fresh TTL window.