ClawdCall

Give an AI travel agent a safe flight-change decision handoff

When a verified disruption creates a choice outside saved rules, call with current options. Capture a preference, then recheck the itinerary, price, and terms before booking.

Illustrative workflow; ClawdCall is not an airline, booking provider, or prebuilt travel agent. Test with your own number first. Calls may use minutes.

01Flight changes
02Verify options
03Call traveller
04Recheck or hold

The event

Verify a material itinerary change

A cancellation or material schedule change leaves at least two current alternatives and a decision deadline.

The checks

Confirm consent and an unresolved choice

The traveller opted into calls, the trip and recipient match, saved rules do not decide the tradeoff, and this decision has not already been handled.

After the call

Recheck before any travel action

Record the preference, refresh availability, price, and terms, then obtain any separate purchase approval or authentication the provider requires.

How should an AI travel agent handle a flight change by phone?

Verify the disruption and current alternatives first. Call only when the traveller opted in, the choice is time-sensitive, and existing instructions do not settle it. Treat the spoken answer as a preference—not a ticket purchase—then recheck availability, price, and conditions in the authorized booking flow. If the answer is unclear or the call is missed, keep the decision unresolved.

Decision guide

Choose the right handoff for a travel change

Use the least disruptive channel that can safely move the trip forward. Status, preference, and transaction approval are separate jobs.

Best for

Travel app or message

Routine updates that do not need an immediate choice. Send delays, gate changes, and non-urgent alternatives through the traveller's normal channel.

Best for

ClawdCall decision handoff

A time-sensitive tradeoff outside saved rules. Present a short list, collect one constrained preference, and return it to the workflow.

Best for

Authorized booking flow

Confirming price, terms, identity, and payment. Complete consequential travel actions only after the provider's required approval and authentication.

Call rules

Call only when

  • The disruption and alternatives were refreshed from an authorized source
  • The traveller opted into calls and the recipient matches the trip
  • The choice is material, time-sensitive, and not covered by saved rules
  • The decision is unresolved and its ID has not triggered another call

Example message

What they hear

Your flight was cancelled. One option arrives tonight with a connection; another arrives tomorrow direct. Say tonight, tomorrow, or hold. This call does not book.

Setup

Connect the pieces

  1. 01

    Define which itinerary changes warrant a call, the contact window, and the no-answer fallback.

  2. 02

    Resolve the traveller and phone number from trusted trip data, then create a durable decision ID.

  3. 03

    Refresh the disruption and alternatives before building the call brief.

  4. 04

    Run the synthetic event in dry-run mode, then place one supervised call to your own number.

Code

Travel decision call rules

export function shouldCallTraveller(event, wasProcessed) {
  const materialChange = ["cancelled", "material_schedule_change"].includes(
    event.disruption_type
  );
  const deadline = Number(event.expires_in_minutes);

  return Boolean(
    event.status_verified === true &&
    event.options_current === true &&
    materialChange &&
    event.call_opt_in === true &&
    event.traveller_matches === true &&
    event.decision_required === true &&
    event.decision_resolved === false &&
    deadline > 0 && deadline <= 30 &&
    !wasProcessed(event.decision_id)
  );
}

// Resolve the phone number from trusted trip data, not this event.
// A returned answer is a preference; recheck before any booking action.

First run

Try it without a live event

  1. Use the synthetic trip and your own opted-in number; do not connect the test to a booking system.
  2. Choose one listed answer and confirm it is stored as a preference, not a purchase approval.
  3. Reply ambiguously, replay the decision ID, and simulate no answer; all three paths must remain unresolved or suppress a repeat call.
Test with your own number

Before it goes live

Keep the call focused

  • No answer or an unclear answer creates no new permission.
  • Keep payment details, passwords, one-time codes, and sensitive assistance needs out of the call.
  • Do not promise a seat, fare, hold, or booking unless the provider has confirmed it.

Handling the result

Match the answer to the trip without treating it as a booking

Join the result to the stored decision ID, accept only a listed preference, and refresh the travel state before continuing.

  1. 01

    Save the decision ID, trip reference, and returned call ID together.

  2. 02

    Authenticate the result and reject mismatched, duplicate, late, or ambiguous answers.

  3. 03

    Refresh the itinerary and options; keep the workflow on hold if anything material changed.

Travel agent workflow FAQ

Common setup and handoff questions

Is ClawdCall an AI travel agent or airline integration?

No. This is an independent illustrative recipe. The connected agent or workflow remains responsible for authorized itinerary access, current flight information, and travel actions.

Does choosing a flight option on the call authorize a purchase?

Not by itself. Record the answer as a preference, refresh availability, price, and conditions, and obtain the explicit approval and authentication the booking flow requires.

What happens when the traveller does not answer?

The decision stays unresolved. Use the agreed non-sensitive fallback channel and recheck whether the question is still current before considering another call.

What information should stay out of the call?

Do not include card details, passwords, one-time codes, passport data, or sensitive assistance information. Keep those in the appropriate authorized and secure provider flow.

Sources

Documentation used for this recipe