Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.servicebooked.ca/llms.txt

Use this file to discover all available pages before exploring further.

Every person who ever calls, texts, chats with the widget, or fills out a form lands in Contacts automatically. Deduplicated, with addresses and source tracked, conversation history attached, and tags + statuses you can use to organize.

What’s in the list

Each contact has:
  • Name + business name — captured from forms, AI conversations, or manual entry
  • Phone + email — primary contact methods, deduplication keys
  • Address — street, city, state, postal code (when collected)
  • Status — Lead, Booked, Customer, etc. — your pipeline position
  • Tags — free-form labels for any organization scheme you like
  • Source — how they reached you (widget, form, voice, manual import, reactivation)
  • Last interaction — when you last heard from them
  • Appointment count — how many bookings they’ve had

Searching and filtering

The list view (/dashboard/contacts) supports:
  • Free-text search across name, email, phone, and business name
  • Status filter — drop to one stage at a time
  • Tag filter — show only contacts with specific tags
  • Source filter — show only contacts from a specific channel
  • Sort by any column — name, phone, address, status, last interaction, appointment count

Detail view

Clicking a contact opens their detail page with five sections:
  1. Header — name, phone, email, address, status (editable), tags, last contact, appointment count.
  2. Appointments — past + upcoming.
  3. Deals — active pipeline cards for this contact.
  4. Conversations & interactions timeline — every call, text, chat, email, and meeting note in chronological order.
  5. Notes — free-form text you can type in.
The contact detail is your single source of truth for “what’s the story with this person?”

Bulk actions

Select multiple contacts (checkboxes) to:
  • Apply a tag to all selected
  • Change status in bulk
  • Delete in bulk (with a typed-DELETE confirm because this is destructive)
  • Export to CSV

Auto-deduplication

Two contacts that land with the same phone number (or same email) are automatically merged into one row — appointments, conversations, and notes from both are preserved. We dedupe on:
  • Email (case-insensitive, normalized)
  • Phone (normalized to E.164 — +16135551234)
If a person calls in (creating a contact with phone only), then later fills out a form with both phone and email, those are merged on phone match. The email gets added to the existing record. If you have actual duplicates that didn’t auto-merge (different phones, different emails, same person), you can manually merge from the detail page.

What about anonymous web visitors?

Visitors who chat the widget without sharing a phone or email are tracked as “visitor:abcd1234” — anonymous identifiers based on a localStorage token. If they later share a phone or book an appointment, the visitor record promotes to a real contact and the conversation history follows them.

Next

Add a contact manually

For walk-ins, referrals, or anyone who didn’t reach you through the system.

Import from CSV

Bring in your existing customer list when you start.