Case study2025

Sabre-integrated flight search engine

A dedicated backend for a travel agency

We took flight search out of Sabre's cryptic terminal and put it inside the agency's CRM — public and negotiated fares in the same list, the real commission visible on every offer, and results in seconds for any agent, not just the veterans.

StackNode.jsTypeScriptFastifyRedisDockerSabre GDS
SABREOTPJFK1 STOP · 11H 40MPUBLIC FARE€842NEGOTIATED FAREOwn contract · POS 07COMMISSION 9%€71310 POS · ATPCO · NDC · LOW-COST
Client
Travel agency / travel management
Project type
Custom backend + GDS integration
Our role
Architecture, development, testing
Status
Delivered and live in production
The context

All the power of Sabre, locked inside a terminal.

The client worked with Sabre — one of the largest global distribution systems (GDS) used by travel agencies worldwide. The problem was never a lack of data; it was getting to it. Every flight search had to be run by hand, in Sabre's cryptic terminal, with commands only an experienced agent knows.

The cost showed up in every working day: time burned on every single quote request, total dependence on a handful of key people, and an invisible ceiling on how many requests could be handled per day.

  • Manual, command-by-command search for every quote request
  • Complete dependence on the few agents who know the terminal syntax
  • No way to scale the daily volume of requests
  • The real commission had to be worked out by hand, offer by offer
They asked us for one thing: bring the full power of Sabre into their CRM, behind an interface any agent can use — no terminal training required.
What we built

An intelligent translator between the CRM and Sabre.

We built a dedicated backend service from scratch, sitting between the client's CRM and Sabre. The CRM asks in plain terms — “flight Bucharest–New York, business, 2 adults” — and our service assembles the complex Sabre request, sends it, interprets the raw response, and hands it back clean, ordered and ready to display.

Agency CRM
InnoSoft service
Sabre GDS

A simple request goes in, a complex one goes out. The raw response comes back normalized, sorted and ready to display.

Delivered capabilities

Full flight search

One-way, round-trip, multi-city (up to 6 planned stops) and open-jaw — leave from one city, come back to another.

Flexible dates, ±3 days

Search around the target date so the agent lands on the best price without re-running the search by hand.

Public AND private fares in one search

The single most valuable piece for the client. The system returns public prices and negotiated fares — the agency's own contracts — side by side, so the agent sees at a glance where the better margin sits.

The real commission, shown up front

For every offer, the system automatically extracts the commission the agency actually earns under its airline contracts. The agent knows what each option is worth on the spot — no manual math.

10 points of sale queried in parallel

The same request goes out through 10 of the agency's commercial identities at once, and the results are aggregated and sorted cheapest-first. In practice: access to a set of fares a single search would never have seen.

Every content source

Classic fares (ATPCO), low-cost and NDC — the airlines' new direct distribution standard — in a single query.

Price revalidation

A real-time check that an offer is still valid before it ever reaches the end customer.

Engineering challenges

The hard part isn't in the docs.

01

The official docs don't tell the whole story

A good part of Sabre's real behaviour isn't publicly documented — from the correct request structure for private fares to the actual limits on returned results.

Engineering challenges

We built our own testing toolkit to probe the live system and validate every assumption empirically. Every capability was confirmed against the real environment, not inferred from documentation.

02

Sabre's raw data is hard to use

The response arrives in a compressed, cross-referenced format that has to be reassembled piece by piece before it means anything to a human.

Engineering challenges

We wrote a normalization module that turns that raw format into clear itineraries — segments, stops, durations, prices — plus fixes for subtle issues: flight and layover durations miscalculated across time zones or over midnight.

03

Stability under load

A temporary Sabre error must never surface as a failed search for the agent, and an expired offer must never reach the end customer.

Engineering challenges

Smart automatic retries, rate limiting, result caching and proper offer-expiry handling — so the system stays predictable even when the source behind it isn't.

The outcome

A search engine of their own, in every agent's hands.

The agency now has its own search engine inside the CRM. Any agent — regardless of Sabre experience — can generate a complete list of flight options in seconds, with public and private fares, the commission in plain sight, and itineraries ready to send to the customer.

The service runs containerized, is covered by more than 80 automated tests, and is built modularly — so adding new search types or new fare sources never means rewriting the system.

10
Points of sale queried in parallel
80+
Automated tests covering the service
3
Fare sources: ATPCO, low-cost, NDC
6
Planned stops in multi-city search

Got a legacy system nobody can actually use?

We build the layer that makes it usable — without rewriting everything that already works.