ARCHITECTURE & TECHNICAL OVERVIEW

One conversation.
A connected system behind it.

A seamless front end, a flexible intelligence layer. The traveler experiences one governed conversation, while Salesforce remains the Customer 360 and system of record.

Built for digital, customer-experience, loyalty, operations and technology teams. Here’s how shared traveler context, current information and approved actions connect behind the experience.

Explore the six experiences
THE SYSTEM AT A GLANCE

From conversation to connected action

Current implementation
EXPERIENCE

Traveler browser

React + Next.js

Six journeys · shared text + voice
VOICE

OpenAI Realtime

Live audio + transcription

Short-lived credential from the application
Browser requests through the AWS entry point
Amazon CloudFrontApplication Load Balancer + AWS WAF
APPLICATION & ORCHESTRATION · AMAZON ECS FARGATE

Connected Journey application

Next.js APIs coordinate traveler context, conversation and journey state.

Retrieve contextCheck the planReview + approveWrite + verify
Server-side requests and results
REASONING

OpenAI Responses

Context-aware answers and structured journey proposals

Optional web-search synthesis for live intelligence
SYSTEM OF RECORD

Salesforce sandbox

Customer 360 reads + approved record creation and updates

OAuth REST · verified receipts · record links
LIVE INFORMATION · READ ONLY

Travel sources

Duffel · FlightAware · FAA · NOAA · official airports

Fares, flight status, delays, weather and security waits
APPLICATION SUPPORT

Aurora PostgreSQLConversation, journey state and action receipts

AWS Secrets ManagerServer credentials injected when tasks start

Amazon CloudWatchApplication logs, metrics and alarms

RELEASE & RECOVERY

Private GitHub temporary OIDC access CodeBuild + ECR CDK deployment to AWS

Automated checks and a credential-free recovery archive accompany releases.
Voice audio connects directly from the browser to OpenAI Realtime. The application issues its temporary credential and governs scenario actions. Travel sources are read-only; Salesforce changes affect synthetic sandbox records, not real travel bookings.
HOW IT WORKS

A conversation can explore. An approval can act.

  1. 01

    Understand

    Carry the traveler’s preferences and conversation forward.

  2. 02

    Retrieve

    Read the relevant Salesforce context and available travel information.

  3. 03

    Build + check

    Prepare options and recalculate the connected journey timeline.

  4. 04

    Review + approve

    Show the exact proposed record changes before the traveler approves.

  5. 05

    Write + verify

    Apply allowed actions and record each outcome, including failures.

  6. 06

    Open + continue

    Open the Salesforce record and keep the conversation going.

Scenario approvals are tied to the exact proposal revision. Only known, allowed actions can run, and durable receipts protect completed actions from duplicate retries. Saving traveler preferences has its own explicit consent step; spoken agreement alone does not approve scenario writes.

CLEAR DEMO BOUNDARIES

What is live. What is simulated.

CONNECTED SYSTEMS

Real integrations, bounded actions

  • Salesforce reads and approved record changes in the demo sandbox.
  • OpenAI text reasoning and live voice when the service is available.
  • Read-only travel information from configured providers. Coverage and freshness vary; a missing offer is not proof that a flight does not exist.
  • Sources remain available when requested, with honest unavailable or partial results.
SYNTHETIC JOURNEYS

Realistic experiences, no real purchases

  • Seeded travelers, brands, trip plans and proactive journey events.
  • Simulated airline, hotel, rideshare, baggage delivery and service-recovery fulfillment.
  • No real ticketing, payments, ride dispatch or courier booking.
  • If AI is unavailable, the governed scenario engine can continue with a clearly identified synthetic fallback.
FOR THE TECHNICAL CONVERSATION

Under the hood

Application & AWS hosting

React and Next.js provide the browser experience and API routes. Amazon CloudFront fronts an Application Load Balancer protected by AWS WAF, with the application running on Amazon ECS Fargate. Aurora PostgreSQL Serverless v2 stores session context, journey state, proposal revisions and action receipts. CloudWatch provides logs, metrics and alarms.

Scenario sessions are time-limited and isolated. Session expiry is not a claim that all stored records have been deleted.

AI, live sources & Salesforce

OpenAI Responses supports context-aware reasoning and structured proposals. Realtime supports direct browser audio, while scenario actions still pass through backend controls. Live intelligence uses direct provider integrations first, with web-search synthesis where appropriate.

Duffel supplies available fare offers; FlightAware supports specific-flight status; FAA, NOAA and official airport sources support travel conditions. Availability depends on each source’s coverage and current response.

Salesforce connects through a custom OAuth REST integration—not Salesforce MCP or Agentforce. The mapped model includes seven core traveler and trip objects, plus Case for supported service and baggage recovery actions. Permissions, field validation and action allowlists limit writes.

Credentials, releases & recovery

Server credentials stay in AWS Secrets Manager and are injected into application tasks. The browser receives only a short-lived credential for its voice connection, not provider secrets.

The private GitHub release workflow uses temporary AWS access through OIDC. Automated checks, container builds and deployment acceptance gates accompany releases. A credential-free recovery archive preserves the application, documentation and release history.