Customer Visit Tracking ETA Links | FieldCamp
Send customers a public, login-free FieldCamp visit tracking link that updates technician status and ETA every 30 seconds while a visit is en route.
FieldCamp's customer visit tracking link is a short, tokenized public page you can send to a client to show the assigned technician, the visit status, and — while the technician is en route — a live ETA. The page polls FieldCamp every 30 seconds, so customers always know roughly when to expect your service crew without calls, texts, or logins.
This guide walks dispatchers and field service business owners through how the link is generated, what the customer sees, the link's security model, and the most common questions.
What is a customer visit tracking link?
A customer visit tracking link is a short URL of the form /t/v/{code}, where {code} is a randomly generated short code. When a customer opens the link, they see a lightweight, mobile-friendly page that updates as your technician progresses through the visit lifecycle — for example Scheduled, On the Way (in transit), Arrived, In Progress, Completed, Cancelled, or Paused.
Because the URL relies on an unguessable short code, the page is safe to share over SMS, WhatsApp, or email and does not require the customer to create an account. To understand how visits fit into the larger workflow, see Job and Visit Statuses in FieldCamp and the FieldCamp Workflow from Lead to Payment.
The tracking page polls FieldCamp every 30 seconds while the visit is in transit, and stops polling once the visit has arrived, completed, or been cancelled — so customers don't need to refresh manually.
How the tracking link is generated
Visit tracking links are minted automatically by FieldCamp's workflow engine when a visit's status flips to in transit (i.e. the technician taps On My Way). At that point, the workflow runtime:
- Issues a fresh short-code token that points to the visit.
- Builds a public URL using that code (
/t/v/{code}). - Exposes the URL as the
visit.trackingUrltemplate variable in the workflow context.
To actually deliver the link to a customer, a workflow author drops the {visit.trackingUrl} variable into the message body of an automation — for example a "Tech is on the way" SMS, WhatsApp, or email template. The channel and message timing are defined by the workflow itself, not by a dedicated visit-tracking setting.
If you don't yet have a workflow that fires on the in-transit status, see how customer-facing automations are built in the rest of the FieldCamp docs (for example the FieldCamp Call and Messaging Setup Guide) and add {visit.trackingUrl} to your "on the way" message template.
What the customer sees
The public tracking page is intentionally minimal so it loads quickly on any device. Depending on the current visit status, the customer sees a combination of:
- A status badge — for example On the way, Arrived, In progress, Completed, Cancelled, Paused, or Scheduled.
- The technician's first name and photo — pulled from the team member profile in Adding and Managing Team Members. Full names, last names, and personal phone numbers are deliberately filtered out.
- The technician's listed skills — for example "Licensed Electrician" — so the customer can recognize the trade at the doorstep.
- A live ETA while the visit is in transit — shown as approximate minutes and kilometers away. The estimate is derived from the technician's latest known location relative to the service address, assuming a 30 km/h average travel speed. ETA only appears while the technician's location feed is fresh (within the last 10 minutes); otherwise the page falls back to showing just the scheduled window.
- The scheduled visit window — the start and end times of the appointment, formatted in the business's local timezone.
- The service address and a short service label — pulled from the underlying job.
- A tap-to-call link to the business phone number — from your company profile.
The page deliberately does not expose customer record details beyond the customer's first name, the technician's full name, exact GPS coordinates, internal notes, pricing, or any other visit on the schedule.
Security and link expiration
Each tracking link uses a 10-character short code (about 60 bits of entropy) backed by a stateful token row in FieldCamp's database. The short URL keeps the entire message well under SMS and WhatsApp body limits — the trade-off versus a long signed JWT in the URL.
The token carries no personal information itself; it is just a key the server uses to look up the visit and decide what to render. The customer-facing page is the only endpoint that uses it.
Tokens expire automatically. The expiry is set when the link is minted: it is at least 4 hours from the moment the link is created, and it always pads past the visit's scheduled end (or scheduled start + 8 hours when the end time is unknown). Once expired, opening the link returns an "invalid token" response and the public page no longer renders visit details.
Because the link is scoped to a single visit, sharing it does not expose any other appointment, client, or job in your account. For a broader overview of how access is governed inside FieldCamp, see Team Permissions Explained.
Troubleshooting
The link returns "invalid token"
The token has expired (it's past the scheduled end + 4 hours window) or the short code is incorrect. The next time the visit moves to in transit, a new tracking URL will be minted and become available as {visit.trackingUrl} to your automation.
The countdown isn't updating
The page polls every 30 seconds, so brief pauses are normal. If no ETA is shown at all, the technician's location feed is likely not fresh enough — confirm Live Pulse is configured and that the technician's mobile device is sharing location. The page intentionally hides the ETA rather than showing a stale number.
No ETA is shown, only the scheduled window
The ETA only appears while the visit is in transit AND the technician's last known position is less than 10 minutes old AND a service address with coordinates is available on the job. If any of those conditions are missing, the page degrades gracefully to showing the scheduled visit window without a countdown.
The page shows the wrong technician
The page reads the visit's currently assigned team. After a reassignment, the next poll (within 30 seconds) will pick up the new technician on the live page.
FAQs
Does the customer need to log in?
No. The link uses a tokenized short URL so customers can open it from any browser without an account.
How long does the link stay active?
The link is active until its expiration time, which is the later of (a) the visit's scheduled end + 4 hours, or (b) the moment the link was minted + 4 hours. After that, the public page returns an invalid-token response.
Will customers see other jobs on the route?
No. Each link is scoped to a single visit and never exposes other clients, jobs, or internal data.
How is the live ETA calculated?
While the visit is in transit and the technician's last position is fresh, FieldCamp computes the straight-line distance between the technician's latest known location and the service address, then divides by a 30 km/h average travel speed to estimate minutes away.