GoRules Version 2 is here - redesigned, now with managed cloud.GoRules Version 2 is here!
Watch the launch videoWatchOnline Check-in Eligibility System
Automated passenger validation system that determines online check-in eligibility based on travel documents, flight timing, and special assistance requirements.
Solution
This decision system streamlines the passenger check-in process by evaluating multiple eligibility factors before allowing online check-in. The system verifies that passengers have all required travel documentation, including valid passports and visas when needed for international destinations. It checks the proximity to departure time, preventing online check-in when too close to flight time.
For passengers requiring special assistance, the system directs them to airport check-in counters where staff can provide personalized support. When passengers meet all requirements, the system confirms eligibility and provides information about additional services like seat selection and extra baggage options. By delivering clear status messages with specific reasons for ineligibility, the system helps passengers understand next steps and reduces airport counter congestion.
How it works
The decision graph evaluates passenger eligibility through several sequential steps:
- Data Processing: Calculates time until departure and verifies document requirements based on destination.
- Time Check: Validates that check-in is being attempted within the allowed time window (more than 90 minutes before departure).
- Document Verification: Confirms passengers have valid passports and appropriate visas when required for their destination.
- Assistance Need Assessment: Identifies passengers requiring special assistance who need in-person check-in.
- Service Options: For eligible passengers, determines available additional services like seat selection and baggage options.
- Response Generation: Provides clear status messages with specific reasons for ineligibility or confirmation of successful check-in.
Where teams use it
- Commercial airline passenger check-in
- International flight documentation verification
- Airport resource optimization
- Passenger flow management
- Mobile check-in applications
- Self-service kiosk integration
Inside the decision model
Online Check-in Eligibility System ships as a JDM decision graph with 6 nodes, 1 decision table and 4 rules. Download it, load it into GoRules, and run it as-is on Zen Engine.
Request
inputTwo objects drive the check: passenger with hasValidPassport, hasValidVisa, and requiresSpecialAssistance, and flight with departureTime, requiresVisa, and the service flags hasSeatSelection and allowsExtraBaggage.
Sample requestJSON
{
"passenger": {
"id": "P12345678",
"name": "John Smith",
"hasValidPassport": true,
"hasValidVisa": true,
"requiresSpecialAssistance": false,
"frequentFlyerStatus": "gold"
},
"flight": {
"flightNumber": "BA123",
"departureTime": "2025-03-20T10:30:00Z",
"origin": "LHR",
"destination": "JFK",
"requiresVisa": true,
"hasSeatSelection": true,
"allowsExtraBaggage": true,
"hasSpecialMealOptions": true
}
}Preprocess Data
expressionPreprocessing turns raw fields into decision-ready values: hoursUntilDeparture is computed from date(flight.departureTime) against a fixed reference currentTime, and hasRequiredDocuments demands passenger.hasValidPassport plus a visa state that matches flight.requiresVisa, defaulting to false when the flag is absent. Folding the visa test into one boolean means the eligibility table never has to know whether the route is international.
date(flight.departureTime)date('2025-03-20T08:30:00Z')($.flightDepartureTime - $.currentTime) / 3600passenger.hasValidPassport == true and passenger.hasValidVisa == (flight.requiresVisa ?? false)Check Eligibility
tableEligibility gates run in strict order with first hit on free-form conditions: hoursUntilDeparture < 1.5 returns 'check_in_closed', !hasRequiredDocuments returns 'missing_documents', passenger.requiresSpecialAssistance routes to 'special_assistance', and only the empty final row grants isEligible true with 'You are eligible for online check-in.'
Closing online check-in 90 minutes before departure reflects the cutoffs airlines publish so baggage drop, security, and boarding still work downstream, though the exact window is carrier and airport policy rather than regulation. Sending document problems and assistance requests to the counter matches practice: travel-document checks against systems like IATA's Timatic and wheelchair or medical support both need a human agent.
| Condition | Is EligibleisEligible | Status CodestatusCode | Messagemessage |
|---|---|---|---|
| hoursUntilDeparture < 1.5 | false | 'check_in_closed' | 'Online check-in is closed. Please proceed to the airport for assistance.' |
| !hasRequiredDocuments | false | 'missing_documents' | 'Missing required travel documents. Please check-in at the airport.' |
| passenger.requiresSpecialAssistance | false | 'special_assistance' | 'Special assistance required. Please check-in at the airport.' |
| - | true | 'eligible' | 'You are eligible for online check-in.' |
Eligibility Check
switchRouting splits on a single statement: isEligible == true takes the top branch to the services step, while the default branch handles every refusal. Keeping the branch condition on the table's output instead of re-testing raw fields keeps the eligibility logic in exactly one place.
Additional Services Non EligibleAdditional Services
expressionService options are assembled for passengers who pass: canSelectSeat mirrors flight.hasSeatSelection, canAddBaggage mirrors flight.allowsExtraBaggage, and statusCode and message carry through unchanged from the table. With pass-through disabled, only these response fields leave the graph, which keeps the API answer small and stable.
falseflight.hasSeatSelection == trueflight.allowsExtraBaggage == truestatusCodemessageNon Eligible
expressionRefusals produce a minimal payload: isEligible is pinned to false while the statusCode and message set by the eligibility table pass through as the explanation. Trimming everything else off the response gives the check-in front end exactly what it needs to show the right instruction.
falsestatusCodemessageOther Aviation templates
View all templatesFlight Dispatch Decision System
Rules-based aviation system that evaluates weather, aircraft, crew, and weight factors to ensure regulatory compliance and safe flight operations.
AviationDynamic Airline Ticket Pricing Engine
Automated fare optimization system that sets ticket prices based on time to departure, seat availability, market demand, and competitor pricing.
AviationBooking Personalization System
Dynamic flight booking platform that tailors UI, discounts, and features based on customer loyalty status, device type, booking history, and traffic source.
Make this template
your own.
Load Online Check-in Eligibility System into GoRules, adjust the rules to your policy, and ship it behind your own API.