Back to Hub

Customer Portal

How the unified customer portal works — tickets, estimates, and monitoring, behind a magic link and PIN.

Overview

The Customer Portal at /portal is the customer's unified home: a Tickets tab (view and reply to support tickets), an Estimates tab (review, accept, and pay deposits on quotes), and a Monitoring tab (their alarm systems, contracts, contacts, and payments). Sign-in uses magic link tokens sent by email — no username or password. Monitoring data is additionally protected by a customer PIN (and, where configured, a per-system account-number unlock), so alarm details never open on the email link alone.

Customers reach the portal from the website, or from ticket/estimate emails (creation confirmation, resolution notification, quote links). The sections below cover the ticket features in detail; the shipped manual's Customer Portal chapter covers the full portal.

How It Works

  1. The customer visits /portal and enters their email address.
  2. The system sends them an email with a secure portal link.
  3. The customer clicks the link to access their portal — the link is valid for 7 days.
  4. Once authenticated, the customer can view all their tickets and send replies.

Portal links are also included in ticket-related emails (creation confirmation, resolution notification), so customers can access the portal directly from those emails.

Portal Login

The portal login page shows a simple email form. The customer enters their email and clicks "Send Me a Link."

Login Fields

FieldRequiredDescription
EmailYesThe customer's email address. Must match an email in the customer database. The system sends a portal access link to this address.

After submitting, the customer sees a confirmation message instructing them to check their email. If the email doesn't match any customer, the system still shows the same message for security reasons.

Ticket List

Once authenticated, the portal shows a list of all the customer's support tickets. Each ticket card displays:

  • Reference Number — The unique ticket ID (e.g., TKT-A1B2C3).
  • Subject — The ticket subject line.
  • Status — Current status (Open, In Progress, Resolved, Closed).
  • Assigned To — The technician assigned to the ticket (if any).
  • Last Updated — When the ticket was last modified.
  • Created — When the ticket was created.
  • Note Count — Number of notes/replies on the ticket.

Click any ticket to view its detail page.

Ticket Detail

The ticket detail page in the portal provides a read-only view of the ticket information plus a timeline of all activity and the ability to reply.

Ticket Information

The detail page shows:

  • Reference Number — The ticket ID.
  • Subject — The ticket subject.
  • Description — The original issue description.
  • Status — Current status with a colored badge.
  • Priority — The priority level.
  • Assigned To — The assigned technician.
  • Created — Creation date.
  • Resolution — If the ticket is resolved, the resolution text is displayed.

Timeline

The timeline shows all activity on the ticket in chronological order:

  • Created — When the ticket was created.
  • Status changes — When the status was updated (e.g., "Status changed to In Progress").
  • Notes — Public notes added by admins or technicians (internal notes are not shown).
  • Customer replies — Replies sent by the customer.
  • Resolution — The resolution text when the ticket was resolved.

Sending a Reply

If the ticket is not closed, a reply form appears at the bottom of the ticket detail page. Customers can type a reply and send it. Replies are visible to admins and technicians on the ticket detail page.

Reply Fields

FieldRequiredDescription
ReplyYesThe reply message text. Maximum 2000 characters. Example: "Thanks for the update. The alarm is still beeping intermittently. Can someone come by this week?"

Click Send Reply to submit. The reply is added to the ticket timeline and visible to the support team.

Token Expiry

Portal access tokens expire after 7 days. If a customer's token has expired, they'll see an "expired link" message with an option to request a new portal link by entering their email again. The token is stored in the browser's session storage, so it persists as long as the browser tab is open.