The problem
Traditional travel sites push people through a filter, scan, compare tabs, decide loop. The system exposes inventory without truly understanding the traveller's intent. Atlas asks a different question:
Can a travel agency use AI and the Dynamics 365 CX ecosystem to make every interaction, from first visit to post-trip service, feel personal and effortless?
The result is a production-grade “art of the possible” demonstration where every workflow except real payment processing behaves like a live product.
Describe instead of search
The journey does not begin with filters. A traveller writes what they want in natural language:
“Seven days on the Lycian coast in early September, boutique hotel, no more than 25,000 TRY.”
Navigator extracts destination, dates, duration, accommodation style, and budget; queries live Dataverse inventory; and produces three complete options:
- Economic: budget-led accommodation and essential travel components.
- Recommended: the strongest balance of comfort, price, and activities.
- Premium: higher-end accommodation and additional experiences.

If the traveller likes the Recommended option but wants flexible dates, the system does more than answer: it proactively explains that leaving two days earlier may reduce the flight cost. The outcome is not an abstract recommendation but a liveable itinerary with daily activities and map points.
One customer lifecycle
Registration
→ taste-profile onboarding
→ conversational discovery
→ three package tiers
→ itinerary and map
→ checkout and booking
→ loyalty earn
→ My Trips lifecycle
→ D365 support case and notifications
Checkout is not a cosmetic success state. The plan becomes booked in Dataverse, a booking reference is generated, an Atlas Rewards membership is opened, and the loyalty transaction is recorded. A traveller can later create a genuine Dynamics 365 Service case from the same experience.
Navigator and grounded AI
The assistant appears to customers as Navigator. It never invents inventory from model knowledge; sixteen function-calling tools retrieve destinations, hotels, activities, flights, visa requirements, transfers, and package components from Dataverse.
Traveller intent
→ Next.js API / SSE stream
→ Azure OpenAI
→ function call
→ Dataverse Web API
→ verified inventory
→ live package rendering
The system prompt receives the active customer context, including name, loyalty tier, travel themes, and budget range. Navigator warns clearly when a plan exceeds budget and can hand complex Gold or Platinum requests to a concierge path.
Dynamics 365 as part of the experience
| Platform | Product role |
|---|---|
| Dataverse | 98 destinations, roughly 1,200 hotels, 995 activities, and dynamic plan data |
| D365 Sales | Contact, opportunity, sales order, and order-line lifecycle |
| D365 Service | Real support case creation from the traveller experience |
| Loyalty | Bronze-to-Platinum tiers, earn/burn transactions, and rewards |
| Engagement | Notification inbox, web push, and journey communication |
Production discipline
The Next.js 16 and React 19 application runs on Azure Container Apps. Bicep defines the Container App, Managed Identity, and Key Vault boundaries; azd remote build deploys without requiring local Docker. Dataverse access in production is passwordless through Managed Identity.
Passwords are stored with bcrypt cost 12, JWT sessions expire after seven days, and all OData paths apply GUID validation, string escaping, and an orderby allowlist. The quality gate includes strict TypeScript, production build, 75 unit tests, and Playwright E2E coverage.
What it proves
Atlas is not a chatbot skin. It is an end-to-end CX demonstration that unifies planning, sales, service, loyalty, and engagement while grounding the language model in enterprise data and operations.
Real payment processing, production SLA, and multi-tenant white-label operations are explicitly outside scope.
My role
I designed and built the product experience, full-stack application, AI tool architecture, Dataverse data model, Dynamics 365 workflows, Azure infrastructure, security boundaries, and live delivery end to end.
