FieldCamp

Customer Portal for Self-Service Scheduling | FieldCamp

Set up FieldCamp's customer portal so clients can view appointments, approve estimates, download invoices, and reschedule visits 24/7 with passwordless login.

The FieldCamp Customer Portal gives your customers 24/7 access to their appointments, documents, and scheduling options. By enabling self-service rescheduling, estimate approvals, and document downloads, you reduce phone calls, speed up approvals, and present a more professional brand experience. Setup takes just a few minutes.

The Customer Portal works alongside online booking. When booking is enabled, customers can book on your website and then manage every appointment through the portal — past, present, and future.

What Is the Customer Portal?

The Customer Portal is a secure, branded digital hub where your clients can:

  • View upcoming appointments and request reschedules
  • Review and approve estimates without email back-and-forth
  • See invoices, payment status, and download a complete document history
  • Check real-time slot availability for jobs that have online booking enabled

The portal uses passwordless authentication — customers receive a magic login link by email that automatically signs them in. The login-link token expires after 24 hours, so there are no long-lived credentials sitting in a client's inbox.

The portal is built for service-based businesses across trades, home services, landscaping, HVAC, plumbing, electrical, construction, and beyond. It eliminates repetitive communication about scheduling, document approvals, and payment status.

Key Benefits for Your Business

Reduce Admin Overhead and Phone Calls

Every phone call your team takes is time not spent on billable work. The Customer Portal handles the most common client requests automatically — appointment confirmations, rescheduling requests, and estimate approvals — without your dispatcher having to pick up.

24/7 Customer Self-Service

Your customers can access the portal anytime, from any device. They can request a reschedule at 11 PM on a Saturday, view their invoice on a Sunday morning, or check upcoming job dates while traveling.

Faster Estimate Approvals

When customers receive direct portal access to estimates, they can approve or reject them with a single click. Approval (actionStatus = 1) stamps an approvedDate on the document and triggers an email to your business; rejection (actionStatus = 2) captures an optional reason so your team can follow up quickly.

Real-Time Scheduling Intelligence

For jobs with online booking enabled, the portal can read team schedules in real time and surface only the slots that don't conflict with existing visits. Customers self-select times that actually work for your team — no calling back to renegotiate.

Professional Brand Experience

A branded customer portal presents a polished, modern image. Your customers interact with a dedicated experience under your business name, not a generic vendor URL.

Passwordless Security

Magic-link authentication removes the password problem entirely. Customers don't have to create accounts or remember credentials, yet their data stays protected by industry-standard JWT tokens with short expiry windows.

Real-World Scenario: A plumbing company with 15 technicians was spending 8 to 10 hours per week on scheduling phone calls. After turning on the Customer Portal, adding the link to invoices, and including it in welcome emails, they reduced inbound scheduling calls by roughly two-thirds.

Setting Up Your Customer Portal: Step-by-Step

Open Customer Portal settings

Open Settings and select Customer Portal under Customer Experience. The page opens on the Portal Access view by default.

Copy your portal URL

On the Portal Access view, your unique portal URL is shown. By default the access key is masked — toggle the eye icon to reveal it, then click the copy button. The URL format is https://client-portal.fieldcamp.ai/login?customerAccessKey=<your-key>.

Customize portal branding

Switch to the Portal Branding section and fill in three fields: Title (your company name), Description (a short explanation of what customers can do), and Footer Text (legal info, support number, or copyright). Save when done.

Add the portal to your customer touchpoints

Paste your portal URL into welcome emails, invoice templates, estimate templates, your website, and any printed materials. Distribution drives adoption — see the Sharing section below.

Send your first login link

From any client record in your CRM, choose Send login email or Copy link to portal from the row actions menu. This generates a 24-hour magic link bound to that client's email.

Your access key acts like a master key for your customer portal URL. Don't share the unmasked URL publicly — share the bare client-portal.fieldcamp.ai login page, then use the Send login email action to deliver per-client magic links.

There are three ways a customer reaches the portal, all backed by the same /api/customer/send-login-link endpoint:

  1. Send login email — From a client record, your dispatcher triggers an email containing a one-time portal link. The token in the link is valid for 24 hours.
  2. Copy link to portal — Same generation flow, but the URL is copied to your clipboard instead of emailed. Useful when you're already on a call with the customer and want to text or paste the link.
  3. Customer self-request — From the portal login page, a customer enters their email and FieldCamp emails them a fresh link if exactly one client record matches that email.

If two or more clients share the same email address, the self-request flow returns a conflict error. Either merge the duplicate client records, or have your dispatcher send the login link from the correct client record.

Emails are delivered through your connected outgoing mail account. If you have Gmail connected, portal login emails are sent through Gmail OAuth so they come from your real address; otherwise FieldCamp falls back to your connected SMTP integration or its default sender.

What Your Customers See in the Portal

Upcoming and Past Visits

Once logged in, the customer sees two lists: upcoming visits (start time today or later) and past visits, both sorted by date. Each entry shows the job number, job type, address, assigned team members, and any visit attachments. The portal also surfaces the linked estimate or invoice number so customers can jump from a visit to the related document.

Document History

When you send estimates or invoices, they appear in the portal under filters for upcoming (estimates awaiting action), past (estimates already approved or rejected), and invoices filtered by paid, unpaid, or partial. Documents where the client is the bill-to party (even if they're not the primary client) also surface, so multi-contact accounts work cleanly.

For estimates, customers approve or reject directly in the portal. An approval automatically notifies you and lets you move straight to scheduling the job. For invoices, customers see payment status pulled from your records and from Stripe if connected.

Self-Service Rescheduling

For visits that belong to jobs with online booking enabled, customers can request a new date and time. FieldCamp checks for conflicts against the assigned team members' existing visits before accepting the change. When a reschedule is committed, the visit's start and end times are updated and every assigned team member receives a "Your visit has been rescheduled" email.

If the customer cancels a visit through the portal, the visit status changes to cancelled, a history record is written with the previous and new status, and the same team-member email goes out — this time noting the cancellation.

Self-service rescheduling only works when the originating job was created with online booking enabled. For jobs created manually by your office staff, reschedule requests still come through, but the customer-facing booking calendar with live slot availability isn't shown — they'll see a simpler "request a change" flow instead.

Mobile-Optimized Experience

The portal is fully responsive. Customers can view appointments, approve estimates, request reschedules, and view document history from a phone with a touch-friendly interface.

In addition to the all-access magic link, you can generate per-visit portal links from inside FieldCamp. These open the portal scoped to a single upcoming visit, which is useful for confirmation emails and SMS reminders where you only want the customer to focus on one appointment.

  • Per-visit links are valid for 14 days, longer than the 24-hour login link.
  • They land directly on the appointment view for that visit.
  • Links cannot be generated for visits that are already cancelled or completed.

Customizing Portal Branding

In the Portal Branding view you set three pieces of text:

  • Title — the headline shown on the portal. Use your company name plus a short label such as "Customer Portal" or "Client Access."
  • Description — a one or two sentence summary of what the portal does. Aim for the customer's perspective: what they get, not what FieldCamp is.
  • Footer Text — legal disclaimers, your support phone number, or a link to your privacy policy.

All three fields are required. Once saved, the values render on the portal's login page and inside the authenticated views.

Interaction with Arrival Windows and Online Booking

The portal pulls scheduling data from the same configuration you use for the public booking widget. If you've configured arrival windows with provider-based capacity or manual capacity arrival windows, customers requesting a reschedule see slots that honor those windows. If you use fixed-time scheduling, the portal offers the exact same slot lengths.

This means there's a single source of truth: change your service area or arrival window configuration once, and both the public widget and the portal reflect it.

Sharing Your Portal with Customers

The portal only saves time if customers know about it. Add the URL or send-login flow to as many touchpoints as possible:

  • Welcome emails — When you create a client, include the portal link in their first email from your team.
  • Estimates and invoices — Add the link to your estimate and invoice templates. This is one of the highest-traffic distribution channels.
  • SMS reminders — Text the per-visit link in confirmation messages.
  • Website — Add a "Client Login" button alongside your booking widget.
  • Service agreements and business cards — Print it where customers will look it up later.

Troubleshooting and FAQs

Login-link tokens expire after 24 hours. If the customer waits too long, the link is rejected as expired. Send a fresh link from the client record using Send login email — the new link replaces the old one and is valid for another 24 hours.

Why does a customer get "more than one account linked to this email"?

The portal looks up clients by exact email match. If two client records share the same email — for example, a homeowner and their spouse listed separately — the self-request flow returns a 409 conflict. Resolve it by merging duplicate clients, or have a dispatcher send the link from the specific client record you want logged in.

Why can't a customer reschedule a particular visit?

Two reasons usually apply:

  1. The job was created without online booking enabled, so live slot availability isn't exposed on that visit. The customer can still request changes, but won't see a self-service calendar.
  2. The team members assigned to the visit have conflicting visits in the same window. The portal blocks the new time and returns the conflicting visits so your dispatcher can help find an alternative.

Can I limit which documents are visible?

Only documents with status = Active appear. Soft-deleted documents are hidden from the portal automatically. You can also use the invoice and estimate filters (paid / unpaid / partial for invoices, upcoming / past for estimates) to focus the customer's view.

Does the portal expose internal notes?

The portal returns visit data with its public job notes, attachments, and assigned team members. Internal-note attachments come through with presigned download URLs, so anything you don't want shared should not be stored on the visit or job notes.

Per-visit links last 14 days from the moment they're generated. Standard customer login links (sent from the Send login email action or self-request flow) last 24 hours.

Integration with Other FieldCamp Features

The Customer Portal connects with and enhances other parts of FieldCamp:

On this page