Skip to content

Hand-off to Atlantes

The Hand-off flow transfers a search result from the Advisor Console to Atlantes for booking. The console creates a Quote__c or Booking__c in Salesforce via the Atlantes REST API.

Flow

  1. Advisor selects a search result in the AI Chat
  2. Advisor clicks "Hand off to Atlantes"
  3. Console sends POST /api/v1/handoff with the search result and context
  4. Integration Layer authenticates to Salesforce via JWT Bearer OAuth 2.0
  5. Integration Layer creates a Quote__c or Booking__c record
  6. Console displays confirmation to the advisor

API Contract

POST /api/v1/handoff
Content-Type: application/json
x-api-key: <consumer_key>
x-api-secret: <consumer_secret>

{
  "type": "quote" | "booking",
  "trip_id": "uuid",
  "member_id": "uuid",
  "result": {
    "name": "string",
    "source": "string",
    "details": { ... }
  }
}

Response

json
{
  "id": "sf_record_id",
  "type": "quote",
  "status": "created",
  "external_id": "uuid"
}

What the Console Does Not Handle

The console hands off to Atlantes. It does not handle:

  • Payment processing
  • Booking confirmation
  • Itinerary generation
  • Cancellation or modification

These responsibilities stay with Atlantes. The console's role ends at hand-off.

Authentication

The Integration Layer uses JWT Bearer OAuth 2.0 to authenticate to Salesforce:

  1. Console sends the hand-off request with API key credentials
  2. Integration Layer validates the consumer identity
  3. Integration Layer builds a signed JWT with its Salesforce identity
  4. Integration Layer exchanges the JWT for an access token
  5. Integration Layer makes the Salesforce API call

The console never sees Salesforce credentials. The Integration Layer is the security boundary.

Marchay Platform Documentation