Project universes

AI-POWERED TRAVEL EXPERIENCE

Atlas Travel

A platform that turns one sentence of travel intent into three bookable packages and a complete customer lifecycle.

Atlas Travel combines conversational planning, live Dataverse inventory, Dynamics 365 sales-service-loyalty processes, and an Azure OpenAI function-calling architecture in one production-grade demonstration.

Open live project
Year
2026
Status
Live demo
Role
Full-stack · AI · Azure and Dynamics 365 architecture
Atlas Travel planning workspace comparing complete Economic, Recommended, and Premium packages
The aha moment · three live packages

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.

Atlas Travel three-package comparison

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

PlatformProduct role
Dataverse98 destinations, roughly 1,200 hotels, 995 activities, and dynamic plan data
D365 SalesContact, opportunity, sales order, and order-line lifecycle
D365 ServiceReal support case creation from the traveller experience
LoyaltyBronze-to-Platinum tiers, earn/burn transactions, and rewards
EngagementNotification 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.

Open the live demo

Next universeCowork