Skip to content
← All use cases

Use case

A trip bot users can trust by the third answer

Chat in, live itineraries out, with the price context that turns a reply into a recommendation.

A travel bot gets exactly one chance: the first time it quotes a fare that doesn't exist, or says “no flights” when there were plenty, the user stops asking. Behind the chat window the hard parts are all data problems: round-trip quotes that need two searches awkwardly combined, prices with nothing to justify a “that's a good deal”, and empty responses that could mean anything. The bot's tone can be casual; its data can't be.

How FlightPowers helps

Chat-ready responses from a live source

Round-trips arrive paired

One call to /roundtrip returns complete itineraries (total_price, both legs, layovers), so “JFK to Rome, out Friday back Sunday” is one request and one message, not a stitching job.

The verdict writes the recommendation

Google's low | typical | high call plus the price band gives the bot a defensible sentence: “$517 is typical for this route: the usual range is $460–$610.” No invented judgment.

X-Search-Status scripts the hard replies

The header tells the bot which of its three honest answers applies: here are your flights, there are genuinely none, or the search failed and I'm retrying. Users forgive a retry; they don't forgive a lie.

Key workflows

From chat message to booked-ready reply

  • Parse intent to parameters. Route, dates, and constraints (“nonstop”, “under $400”, “morning flight”) map to real request fields: max_stops, max_price, departure-time windows.
  • Search live at ask time. Every query is scanned at request time, so the quoted fare is current. The bot never apologises for a stale cache.
  • Compose from plain-text fields. departure_description and arrival_description are already human-readable: the reply template is mostly field insertion.
  • Recommend with the band. Lead with the cheapest fare, attach the verdict, and let the user decide with real context.
  • Close with buy_link. The bot's last message is a working link to that exact itinerary on Google Flights.

Questions, answered plainly

What does the bot actually send and receive?
One POST per search: route, dates, and optional filters in; a flat JSON array of itineraries out, each with price as a string and a number, airline, duration, stops with layover details, local times in plain text, Google’s price band and verdict, and a buy_link. The plain-text time fields (like “10:15 AM on Mon, Jun 15”) drop straight into a chat message.
Can a no-code bot use this?
Yes: there is a first-party n8n community node (n8n-nodes-flightpowers on npm), so an n8n workflow can take a chat trigger, run a flight or hotel search, and post the reply without custom HTTP code. Agent frameworks connect through the hosted MCP servers instead.
What should the bot say when the search comes back empty?
Whatever the X-Search-Status header justifies. “empty” means Google genuinely has no itineraries: the bot can say “no flights that day” with confidence. “degraded” means the search didn’t complete; the honest reply is “let me retry,” and opt-in strict mode can turn that case into a hard error your bot code catches.

Give your bot answers worth repeating

Live itineraries, paired round-trips, and a verdict on every fare, one POST away from your chat handler.

Free tier: 10 requests/month. No card to try.