Case study · Business systems

Travel membership CRM, tour manifest and payments platform

A Laravel admin system for a travel membership business: household CRM, tour manifest with check-in, payment links, dues reporting and campaigns.

Sector
Travel membership sales
Category
Business systems
Maturity
Working system; screens from the live admin account

At a glance

Who it's for
Sales agents, managers, marketing staff and administrators at a travel membership business.
Core stack
Laravel, Blade, Vue 3, Tailwind CSS
What sets it apart
Booking, payments, dues tracking, commissions and calls handled in one admin application.

The live system

Screens captured from the running admin account in October 2026, with names, contact details, amounts and counts replaced by placeholders.

Daily performance dashboard Today and week-to-date sales and tour figures, cancellations, Zoom tour performance, and a widget showing who is calling.
Tour manifest and booking Tours by city and day, with a per-slot maximum, bookable empty slots, wave customisation and a check-in screen.
Household CRM list Searchable member records with portal-access and dues-status filters, inactive toggling and CSV export.
Membership dues report Dues status per household with filters, export and SMS actions. Coverage counts shown are illustrative placeholders.
Hosted payment links SurePay checkouts with pending, cancelled and successful statuses, plus resend and history actions.
Users and roles Staff with multiple roles, active state, a linked Dialpad identity and a Login As action for administrators.

The challenge

A travel membership business sells through scheduled tours and presentations, in person and over Zoom. Staff in sales, marketing and the office all work from the same member and prospect records.

Booking tours, taking payments, checking whether dues are current, paying commissions and contacting members tend to live in separate tools. Each handoff is a chance for records to disagree.

The solution

A server-rendered admin application built around the household record. Prospects are booked into tour slots on a manifest, payments are taken through hosted links, and dues status is reported per household from Stripe data with room for staff overrides.

Commissions, campaigns, call tickets and customer portal access sit in the same application, with role-based users so each team sees the screens it needs.

Key features

What the system does, as seen in the running application.

  • 01

    Household CRM

    Member records with search, portal-access and dues filters, an inactive flag and CSV export.

  • 02

    Tour manifest

    Tours booked by city and day with a maximum per time slot, wave customisation and a check-in screen. Zoom and in-person tours are both supported.

  • 03

    Daily KPI dashboard

    Today and week-to-date sales, tours and sales per guest, cancellations and Zoom tour performance.

  • 04

    Hosted payment links

    SurePay hosted checkouts with status filter, resend and history, alongside direct payments.

  • 05

    Membership dues report

    Dues status per household using Stripe historical data snapshots and staff overrides, with export and SMS actions.

  • 06

    Commissions and payroll

    Contracts and commission calculations by role and manager.

  • 07

    SMS and email campaigns

    Campaign list with progress and sending from a CSV.

  • 08

    Inbound calls and tickets

    A Dialpad-powered incoming-call widget and tickets for inbound calls, colour-coded by age.

  • 09

    Customer travel portal access

    Staff grant and control which households can log in to the customer-facing travel portal.

  • 10

    Roles and Login As

    Administrator, sales, marketing and office roles, several per user, with impersonation for administrators.

  • 11

    Daily closing report

    A daily report that staff can receive by email or SMS.

Implementation notes

Decisions worth knowing about.

  1. Server-rendered pages

    Pages are rendered by Laravel with Blade templates, with Vue used for some components rather than a separate front-end application.

  2. Hosted payments

    Card payments go through hosted checkout links, so the application sends and tracks links rather than handling card entry itself.

  3. Role-based access

    Users can hold several roles, and administrators can use Login As to see what a staff member sees.

  4. Connected tools

    Stripe, SurePay, Dialpad and Zoom are integrated rather than replaced, so staff keep the tools they already use.

Technology stack

Taken from the running application.

Backend
  • Laravel
  • Blade
Frontend
  • Vite
  • Vue 3
  • Tailwind CSS
  • jQuery
  • Select2
  • flatpickr
  • SweetAlert2
Integrations
  • Stripe
  • SurePay
  • Dialpad
  • Zoom

Business value

What the system enables. No numbers are claimed.

  • Tour capacity and check-in are managed in one place instead of by message.
  • Payment status and resend are available from a single list.
  • Dues status can be checked per household and exported.
  • Sales, tours and cancellations are visible daily without compiling reports.
  • Staff access follows role, with customer portal access granted deliberately.

Need a system like this built?

Tell us what it needs to do and we will scope it with you on a call.

Discuss a build