Skip to main content

Guests & CRM

A guest is a customer profile in Avero's CRM. The database lives at /admin/crm — the page is titled Customers ("Manage your guest records and customer profiles.") — and every person opens into a 360 profile at /admin/crm/guests/:guestId: spend, club, orders, reservations, communications, and eligibility in one place. (You'll see "customer" in titles and buttons and "guest" nearly everywhere else — they mean the same record.)

Who can use it​

  • Browse and search — guests.read / guests.search: every role, including Viewer.
  • Create — guests.create: every role except Viewer.
  • Edit profiles (notes, preferences, addresses, ID scan) — guests.update: every role except Viewer; without it the profile shows a Read Only badge.
  • Delete — guests.delete: Managers and Admins. Export PII Data — privacy.pii.export: Admins only.
  • Card on file — guest.add_card to save or manage cards: every role except Viewer.

The customer database​

/admin/crm lists everyone. Search by "Search by name, email, or phone..."; switch between list and card views.

Above the list is a band of five figures — Customers, Club members, Avg lifetime, Revenue, 90d and Movement. The second figure changes with the view: it reads Not currently in club in the Club members view and Lifetime at risk in the Lapsed 12m view. The band is scoped to the view you are looking at, and says so: "Figures describe Everyone — 140 of 140 customers. Change the view below to re-read the band." Pick a different view and every number re-reads against that group, which is the point — it is how you compare one slice of the book against another rather than against the whole.

The views sit directly under the band: Everyone, Club members, Advocates, Lapsed 12m, and New this month.

The Customers database — the view-aware figure band, the views, and the list.

The Customers database — the figure band re-reads against the selected view.

List columns are Customer, Relationship, Club, Lifetime, 90 days, Last visit, Location, Signals, and Actions. Relationship is a short meter plus a word (New and up), Club shows a Member chip where one applies, and Signals carries the badges — spend tier (Silver, Gold, Platinum), allergies, and a red Underage where it applies. A VIP flag sits beside the customer's name. Each row's Actions menu jumps straight into work: New Reservation, New Order, New Club Membership, Contact (you see the entries your role allows).

Avg lifetime can describe fewer guests than the view holds

The tile states its own coverage — "across 40 of 140 — the rest are not yet computed" — because lifetime value is computed per guest rather than read live. Treat it as an average over the guests that have a figure, not over everyone in the view.

There are no tag or segment filters yet

The views above are fixed; you cannot save your own. Guest tags show on the profile when present, but there is no screen for managing tags yet. There is also no VIP toggle in the Add Customer wizard or on an existing profile. The only VIP control is the VIP Guest switch on the single-page Add Customer form at /admin/crm/guests/new, and no button in the app links to that page.

Finding your way around a long list​

Three things make a large customer database workable, and none of them is obvious until you need it:

  • Sort the list. The Customers table sorts by Customer, Relationship, Club, Lifetime, 90 days and Last visit, so you can order by spend or recency rather than scrolling for the name you half remember.
  • Step between records. Once a customer is open, the Previous and Next arrows walk the list in the order you were reading it — your sort and your filters, not some underlying database order. Reviewing twenty club members becomes twenty clicks, not twenty round trips to the list.
  • Where you were. The last five customers you opened are kept in a strip of that name above the list, which is usually enough to get back to the one you were on before the phone rang.

Export is available on three of the record's tabs — Orders & checks, Reservations and Wine club — so a single guest's orders, reservations or memberships can leave as a file without exporting the whole database. Communications has no export.

Create a guest​

Add Customer opens the New Customer Intake wizard ("Create a new customer profile with identity, date of birth, address, and optional card on file."). Its steps:

  1. ID Scan — only if ID scanning is enabled for your company (see below); otherwise the wizard starts at Identity.
  2. Identity — first and last name, plus at least one contact method (email or phone). When you enter an email, Avero soft-checks for duplicates on the spot.
  3. DOB & Eligibility — date of birth (mm/dd/yyyy). Age is computed immediately and badged Eligible (21+) or Underage. If your company requires DOB for alcohol, the step says so: "Date of birth is required for alcohol purchases at this venue."
  4. Address — optional. Create Customer on this step saves the record.
  5. Card on File — once the customer exists, capture a card or skip it.

The New Customer Intake wizard — identity, eligibility, address, and card on file.

The New Customer Intake wizard — identity, eligibility, address, and card on file.

If the email matches an existing record, the wizard shows "Possible duplicates found" with each candidate: pick Use Existing to open that guest instead, or Create New Anyway to override deliberately.

Quick registration at the host stand is a separate two-step page at /reception/new-guest (New Guest Check-In) — see Walk-ins & waitlist. Both flows land in the same CRM records.

The 360 profile​

The profile header shows the name with its badges — VIP, Discreet, an eligibility badge that reads ID Verified, 21+ on file, or Underage, and the name of the guest's active club — with email, phone, home city and "Customer since" underneath. A row of chips adds the spend tier, the card on file (brand, last four and expiry, amber when expiring soon), and a paused or cancelled membership with its status.

Below the header a strip gives the short read of the relationship: Relationship (the stage), Direction, Last seen, and Worth doing next.

A guest's 360 profile — momentum, metrics, and the tab bar.

A guest's 360 profile — momentum, metrics, and the tab bar.

Picture being updated

This picture shows an earlier version of this screen. The steps on this page are current.

Eight tabs: Overview, History, Profile, Reservations, Orders & checks, Wine club, Communications, and Consent. Most carry a count beside the name.

  • Overview — standing notices (allergies, cautions), then a stack of cards: How to look after them (Allergies, Pours, Pace, with Edit jumping to the Profile tab), Where this relationship stands, Value (Lifetime, Spend, 90d, Visits, Reservations, Club, Gross profit, Stage), Relationship Momentum (90-Day Spend, Prior 90d, 365-Day Spend, marked Spend growing / Spend declining / Spend steady), and Tasks, where you add and tick off follow-ups for this customer.

    What Lifetime counts

    Money the guest has actually given you, net of refunds. An order only counts once it has been paid, and a refund brings the figure back down by what you returned.

    Two consequences worth knowing, because both surprise people:

    • A declined card adds nothing. A failed charge leaves an unpaid order behind so you have something to chase — but it does not raise the guest's lifetime value by the amount it failed to take.
    • A refund lowers it. If you refund a member, their lifetime value falls accordingly. This matters beyond this card: club release eligibility and the member list's spending tiers read the same number, so it decides who is treated as a top-tier member.

    Below: Recent Orders, Upcoming Reservations, Active Memberships, Recent Communications.

  • History — one timeline of everything on the record, newest first: visits, orders, reservations, club activity, messages, notes and changes to the record. Filter it by kind.

  • Profile — Identity, Household & referrals (Link someone ties this guest to another record), Addresses (primary shipping/billing plus extras), Payment & credit (cards, gift cards and loyalty in one read-only table), card-on-file management, Alcohol Eligibility (below), Tags (display-only today), Preferences (Seating, Pace & Service, Wine Style, Accessibility, Occasion, each showing how you know it, how strongly it is held and when it was confirmed), Allergies, and Standing Notes — a Standing Note and a Service Note.

  • Reservations and Orders & checks — the guest's bookings and their orders and checks, each with a status filter.

  • Wine club — the guest's memberships, with Club Shipments and club orders underneath; club orders carry a Club Order badge.

  • Communications — the interaction log. Filter by channel (Phone, SMS, Email, In Person, Social, Other), direction and status, or search it. Log interaction records a touch, SMS thread opens the text conversation (shown when the guest has a phone number), and New message sends an SMS. A guest who unsubscribed shows SMS opted out.

  • Consent — a Consent card with the current state (Email marketing, SMS marketing, Data export, Deletion), then the Consent Audit Log of consent given and withdrawn.

The header's actions menu mirrors the list (New Reservation, New Order, New Club Membership, Contact) and adds Export PII Data and Delete Customer.

Tax-exempt buyers​

Trade, wholesale and reseller buyers are routine at a winery, and they are commonly exempt from sales tax with a certificate on file.

The guest record has no screen for recording a tax exemption today. None of its tabs carries exemption fields, so you cannot enter a certificate or mark a guest as exempt from the web app. Keep the certificate wherever you already keep it.

Verify ID (ID scan)​

When Enable ID Scanning is on (Company Settings at /admin/company, under ID Verification & Alcohol Compliance), staff can populate and verify a profile from a driver's license. On the profile: Profile tab → Alcohol Eligibility → Update from ID ("Scan the guest's ID to update their profile information and verification status."). In the intake wizard it's the first step. It needs a device camera and guests.update.

The wizard starts with an ID Scan Data Notice — "Please inform the guest before scanning" — and a consent checkbox before Proceed to Scan unlocks (or Skip ID Scan). Then three steps:

  1. Back Barcode — "Hold the back of the ID 6-8 inches from the camera…" reads the PDF417 barcode.
  2. Front OCR — photograph the front for text extraction.
  3. Results — the extracted fields with a Mismatches section where barcode and OCR disagree. Finish with Apply to Guest (existing profile) or Use Scanned Data (new intake), or Rescan.

The result drives the eligibility badge (ID Verified / 21+ on file / Underage) and the Alcohol Eligibility card's ID verification status.

Deleting a guest​

Delete Customer is a privacy-grade action: the dialog warns "This will permanently delete [the guest]'s profile and all personal data. This action cannot be undone.", lists records that will be orphaned, and requires a DSAR Request ID — "A DSAR request must be filed before deleting a guest. Enter the request ID to confirm." — plus typing the guest's name before Delete Permanently activates.

Reference​

ControlWhereWhat it does
Add CustomerCustomers headerOpens the New Customer Intake wizard.
Figure bandCustomers headerCustomers / Club members / Avg lifetime / Revenue 90d / Movement, scoped to the selected view.
Use ExistingDuplicate panelOpens the matched guest instead of creating a copy.
Create New AnywayDuplicate panelDeliberately creates a second record.
Update from IDProfile → Alcohol EligibilityRuns the ID scan wizard against this profile.
Log interactionCommunications tabRecords a phone/SMS/email/in-person touch.
Export PII DataProfile actions menuExports the guest's personal data (needs privacy.pii.export).
Delete CustomerProfile actions menuDSAR-gated permanent deletion (needs guests.delete).

Troubleshooting​

  • "You do not have permission to view guest records." — the CRM needs guests.read; ask an admin to check your role.
  • "A customer with this email already exists." — you hit a hard duplicate; search for the guest and use their existing profile.
  • The profile shows a "Read Only" badge — you hold guests.read but not guests.update; notes and edits are disabled.
  • "Camera access denied. Please allow camera access and try again." — the ID scan needs browser camera permission; allow it and rescan.
  • "No customers yet" / "Add your first customer to get started." — the database is empty; Add Customer or intake at the host stand fills it.
  • Can't set VIP on an existing guest — expected today; the profile has no VIP toggle, and tag editing isn't built yet.