Enterprise Application
Tour Receptive CRM
Replacing a 20+ year legacy system with zero business interruption
A custom CRM for a Maine tour receptive company that coordinates large group tours. It replaced a 20-year-old Access application while the business kept running. The app is built around a season calendar, a workspace for every tour, and a day-by-day activity planner.
- Type
- Web
- Category
- Enterprise Application
- Platforms
- Web
- Status
- Case study

01
The Challenge
A Maine-based tour receptive company that coordinates large group tours faced significant operational challenges with their existing system: a VBA/Access application built over 20 years ago.
Technical Debt
A bloated VBA codebase with poor architecture and no separation of concerns.
Data Integrity Issues
A poorly designed database schema leading to data inconsistencies.
User Experience
Clunky interface with workarounds that created bad habits and inefficiencies.
Business Risk
Heavy reliance on a single legacy technology with limited expertise available.
The business could not stop operating during the transition. Tours needed to be booked, proposals sent, and reservations managed without interruption.
02
The Solution
Designed and implemented a modern three-tier architecture to replace the legacy system while enabling progressive migration.
Blazor Web App
One app for tours, customers, vendors, guides, and schedules, with a separate sign-in for everyone in the office.
API Layer
Clean interface enabling future mobile apps and third-party integrations.
Redesigned Database
A new schema built from the ground up to address legacy data issues, with proper relationships and change tracking.
03
The Design
The office plans the season on one calendar, opens each tour in its own workspace, and lays out every day of an itinerary on a timeline. Every screen works in a light or a dark theme.
Season Calendar
Multi-day tours run as unbroken bars, colored by tour type, and each day shows its tour and guest counts. An agenda view and a search box find any customer, group, or tour number.
Tour Workspace
One screen per tour holds the customer, dates, counts, rooms, hotel rates, notes, follow-ups, and a history of every change.
Activity Planner
Each day of the itinerary gets its own tab and timeline. Every booking shows the vendor, the menu or rate, and whether the vendor has been contacted, is holding the space, or has confirmed.
04
Daily Operations
Group travel runs on deadlines. Rooming lists, final counts, deposits, and the last day a vendor accepts changes all come due before the group arrives. The app tracks each one so nobody has to keep them in their head.
Guide Schedules
Every step-on guide assignment sits on one grid, with a double-booking check and a tab for activities that still need a guide.
Needs Attention Reports
Nine reports cover unassigned guides, missing confirmations and invoices, counts and deposits due, change-notice deadlines, follow-ups, rooming lists, and itineraries not yet started. Most print straight to PDF.
Deadline Alerts
A notification bell warns each person before a vendor's change or cancellation deadline passes. Dismissing an alert hides it for that person only.
05
Key Innovation
Rather than a risky 'big bang' migration to the new system, a side-by-side deployment model was architected that allows both applications to run simultaneously.
Bidirectional Sync Service
A custom-built Windows service that synchronizes data between the legacy and new databases in real-time, handling structural divergence through entity-level and property-level sync handlers with conflict resolution.
Field Locking System
A VBA module that progressively makes fields read-only in the legacy application, gently guiding users to the new system while maintaining full data visibility.
This approach delivers immediate value. The client can use new features as they're built without waiting for full feature parity.
06
Document Generation
One of the highest-value features is the automated document generation system that replaces hours of manual work.
- Tour Proposals
- Contracts
- Vendor Reservations
- Customer Itineraries
- Pricing Spreadsheets
- Tour Worksheets
- Meal Selections
- Cancellation Notices
All built with open-source tools. Zero licensing costs.
07
Business Impact
Hours → Seconds
Document Generation
Zero Downtime
Progressive Migration
Improved
Data Quality
$0
Licensing Fees
Time Savings
Document generation reduced from hours to seconds per tour.
Zero Downtime
Progressive migration with no business interruption.
Data Quality
Improved validation and schema design eliminates inconsistencies.
User Adoption
Modern UX with guided transition from legacy system.
Scalability
Architecture supports growth without additional admin overhead.
Future-Ready
API-first design enables future mobile or integration capabilities.
Get in touch
Let's build something.
Ready to modernize your application or start a new project? Let's talk.
Always Onward & Upward

