Iceland - Minor (23.12)
This Iceland minor release expands crew planning and pricing across Price Models and Operational Itineraries, with new configuration tools and automatic re-evaluation when crew requirements change. Package Search and Booking Wizard gain package level filtering and a broad set of fixes for pre-selected changeable options, transfers, and occupancy workflows. Operational teams benefit from smarter Bulk Manager defaults and inventory reliability improvements, while platform-wide permission checks run faster with lower governor-limit usage. Additional refinements cover promotions, supplier agreements, location search, and supplier invoicing.
Price Models — Occupancy Adjusts with Quantity Behavior (KT-14089)
Adjust occupancy setup in Price Model if service's qty behavior is changed to "Standard" Group Tour When building a Price Model itinerary in the Group Tour table, changing a service's Quantity Behavior now automatically adjusts occupancy setup. Switching to Standard pre-populates Adult occupancy up to the service maximum; switching back to Auto resets to a single Adult.
Inventory — Group Tour Field Clears Correctly (KT-14299)
Group Tour (GroupTravelSupport__c) field on Inventory is not erased Inventory Management Removing all related Group Tours from an Inventory record now correctly clears the Group Tour field. Previously, the field could remain set to Selected Group Travel after the last group tour was removed.
Operational Itineraries — Group Size Excludes Cancelled Passengers (KT-14300)
Operational itinerary Group_Size__c includes cancelled passengers Group Tour Operational Itineraries Group Size on operational itineraries now excludes cancelled passengers. Cancelling a passenger immediately recalculates the group total to reflect only active passengers.
Price Models — Default Crew Behaviour Inheritance (KT-14312)
Default Crew Behaviour Inheritance (Price Category to Itinerary Item) Group Tour Services New Price Model services now inherit default Crew Behaviour from their Price Category at creation. Operators configure the default once per category and only override exceptions, reducing repetitive setup and inconsistent crew configuration.
Price Models — Crew Requirements Editor (KT-14313)
Crew Role Selector LWC Group Tour Operational Itineraries A new crew requirements editor in the Group Tour table lets operators set Crew Behaviour and Crew Roles from a single popover on each service line. Both values are edited together and saved with the normal table save, without switching between separate fields.
Pricing — Crew Data in KTAPI Price Calculation (KT-14314)
Send & Recieve Crew Data in KTAPI Price Calculation Request (Backend) Group Tour Crew configuration on group tours now flows through KTAPI price calculation. Salesforce sends crew requirements and per-service crew behaviour to the API, and persists the crew-attributable cost breakdown returned in price model outputs.
Inventory — Duplicate Allotment Day Prevention (KT-14327)
Validation on the same Allotment day required on By Package Departure Inventory tab Inventory Management Edit Inventory on By Package Departure and By Group Tour Departure tabs now blocks creating allotment days on dates that already have allotment days for the same contract and departure, with a clear validation message instead of silently creating duplicates.
Operational Bulk Manager — Context-Aware Filter Defaults (KT-14348)
Prepopulate values into the filter fields in OI Bulk manager Bulk Operations Group Tour Operational Itineraries When the Operational Itineraries Bulk Manager is opened from a Group Tour, Tour Departure, or Service record, search filters now prepopulate from that record. Users no longer need to re-enter the group tour, departure date range, or service they were already viewing.
Operational Itineraries — Crew Passenger Sync (KT-14354)
Update Crew Requirement with Passenges on Operational Itinerary Group Tour Operational Itineraries Passenger Grid Crew passenger records on an Operational Itinerary now stay in sync when crew requirements are added, edited, or removed. The system automatically creates, updates, or cancels crew passengers to match the current requirement set.
Operational Itineraries — Crew Data on Re-evaluation (KT-14355)
Send Crew Data on Operational Itinerary Re-evaluation Request Group Tour Operational Itineraries Operational Itinerary re-evaluation requests to KTAPI now include crew passengers and per-service crew behaviour. The API uses this data for crew activation, role filtering, and unit assignment, and Salesforce persists the updated occupancy through the existing re-evaluation flow.
Inventory Table — Pagination by Departure (KT-14365)
[KHELP-12123 / Intrepid] Inventory Table pagination skips tour departures Inventory Management Pagination now works correctly in the Inventory Table when results are grouped by Tour Departure or Package Departure. KHELP-12123
Itinerary — Supplier Invoice Tab Formatting (KT-14367)
Formatting issue in Supplier invoice tab in Itinerary Supplier Invoices Fixed HTML formatting in the supplier payment rules column on the Supplier Invoice tab.
Operational Bulk Manager — Price Model Date Filter (KT-14369)
Price Models are not filtered by the Tour Departure date filter in Operational Bulk Manager Bulk Operations Operational Itineraries The Tour Departure date range filter is now applied when the Operational Itineraries Bulk Manager groups results by Price Model. Previously this filter worked for Tour Departure grouping but was ignored for Price Models, showing items outside the selected date range.
Operational Itineraries — Auto Re-evaluation on Crew Changes (KT-14370)
Trigger OI Re-evaluation after Crew Requirement update Group Tour Operational Itineraries Operational Itineraries are now automatically re-evaluated when crew requirements change. Re-evaluation runs when a crew requirement is inserted or deleted, or when Crew Role or group size range fields are updated, keeping quantities and crew assignments current without a manual re-run.
Operational Itineraries — Crew Fields Copied from Price Model (KT-14382)
Copy crew fields from Price Model to Operational itinerary when it's created Group Tour Operational Itineraries When an Operational Itinerary is created from a Price Model, Crew Behaviour and Crew Roles Included are now copied from the Price Model itinerary items to the corresponding operational items.
Group Tours — Combo Tour Record Page Error (KT-14385)
A "Component Error has occurred!" on opening Group Tour record with debug mode enabled Group Tour Fixed a component error that could appear when opening a Group Tour record with debug mode enabled. The error originated in the Combo Tour subtrip list component.
Price Models — Occupancy Preserved on Clone (KT-14387)
Preserve all occupancy slots when cloning a Price Model itinerary Itinerary Cloning Cloning a Price Model itinerary now preserves all occupancy slots, including empty slots without linked passengers, so the cloned itinerary matches the source occupancy structure. KHELP-12808
Supplier Invoices — Force Recalculation Reliability (KT-14397)
(NX-3692) Force recalculating Supplier Invoices does not work currently Supplier Invoices Repeated Force Recalculation on supplier invoices no longer removes valid lines incorrectly when a booking mixes supplier agreement rules and default payment rules. Force recalculation now produces consistent line counts across repeated runs.
Discount Actions — Clickjack Protection Fix (KT-14398)
[NX-3213, NX-3378] When click-jack protection is enabled certain pages throw errors Services Discount actions now open in a separate Visualforce page instead of an embedded iframe, resolving errors when clickjack protection is enabled.
Departures — Timezone-Safe Date Selection (KT-14422)
Date filter bug with San-Francisco timezone Group Tour Fixed a timezone issue in the Create Departures calendar that could select the previous date or duplicate selected dates for users in certain time zones such as San Francisco.
Supplier Agreements — Business Unit and Channel Assignment (KT-14437)
Creating Supplier Agreement with Channel assignment Supplier Agreements Supplier Agreements now handle Business Unit and Channel assignment more clearly. A new Has Channels indicator drives the Business Unit Assignment display, and Business Unit and Channels are mutually exclusive on save. Existing orgs must run the one-time post-upgrade script after installing this release so legacy agreements display correctly.
Services — Price Categories Tab Clickjack Fix (KT-14452)
Header, footer and namespace issue for issue with click jack Services Resolved header, footer, and namespace issues on the Price Categories tab when clickjack protection is enabled.
Price Models — Crew Requirement Validation (KT-14455)
Incorrect crew requirement validation for Price Models Group Tour Operational Itineraries Crew requirement validation during Price Model save now checks that each crew-included service has a matching crew requirement whose group size range overlaps the service range. Partial coverage within the itinerary item range is valid; disjoint ranges show a clear error identifying the service and role mismatch.
Booking Wizard — Primary Contact After Back to Search (ST-996)
BW preserves linked passengers after "Back to Search" and Primary contact preserved as well Booking Wizard Package Search Navigating back from a booking to package search no longer silently clears the primary contact. If no primary contact is set when returning to search, the flow correctly prompts for primary contact selection before proceeding.
Booking Wizard — Clear Missing Passenger Fields from Contact (ST-1469)
KAPI-4244 Guest without age on file, when swapped from TBD & linked on Passenger Grid, is displaying with Age = 110 Passenger Grid When populating passenger details from a contact in Booking Wizard, date of birth and age fields are now cleared if the contact has no value for those fields. This prevents placeholder values such as a default age of 110 from persisting in the passengers grid.
Booking Wizard — Total Price Emphasis for Options (ST-3093)
Booking Wizard should show Total Price for non-selected Options Booking Wizard Total price values are now shown in bold in Booking Wizard for unit-based services when selected, and for person-based services when selected or partially selected, making option totals easier to scan.
Platform — Custom Permission Framework Performance (ST-3153)
3️⃣ (C16) Optimize Custom Permissions Framework Permissions Custom permission checks and frequently read org configuration now use Platform Cache, reducing SOQL usage and CPU time across Itinerary Builder, Booking Wizard, Package Search, REST API, and async jobs. Permission Set Group grants are now recognised correctly. Administrators can disable caching via App Settings or clear caches manually after metadata deploys.
Booking Wizard — Release Pre-selected Changeable Holds (ST-3355)
Temp Hold container is stil active when pre-selected changeable option AL is changed during Itinerary creation Booking Wizard Pre-selected changeable options are now correctly released on change for both room and person units of measure.
Booking Wizard — Deselect Sold-Out Pre-selected Options (ST-3358)
When Pre-Selected Changeable option is selected as last one with fallback Sold Out it cannot be deselected Booking Wizard Pre-selected changeable options that become unavailable can now be deselected in Booking Wizard. Previously, sold-out options could block interaction and leave guests stuck with a selection they could not remove. Sold-out options that are not yet selected remain blocked from new selection.
Package Search — Multi-leg Cruise Availability (ST-3375)
Multi-leg Cruise: Availability reflects lowest component inventory Inventory Package Search availability for multi-leg cruise packages now reflects the minimum available inventory across components, so displayed availability matches the limiting leg.
KTAPI — Multi-leg Cruise Availability Calculation (ST-3377)
KTAPI new min_cabin_type_inventory field Inventory Package Editor The cruise_details endpoint now returns data needed to calculate available units correctly for multi-leg cruises, supporting accurate availability in Package Search and Booking Wizard.
Package Search — Package Level Day-by-Day Filter (ST-3390)
Cabin Levels Frontend Package Editor Package Search Package Search availability can filter the day-by-day timeline by package level. A View package level control appears when the package has levels with offered options. Switching level updates components to match that level's offered options, and selecting a cabin can align the timeline to the matching level.
Package Setup — Unpriced for Mandatory Optional Components (ST-3397)
When Component Selection Type = Pre-Selected Changeable the Component Option Unpriced flag is not visible Booking Wizard The Unpriced checkbox in the Component Options edit modal is now available for Required components marked as Mandatory Optional (Pre-Selected Changeable), not only Optional components. This lets operators configure unpriced display in Package Search Booking Wizard for that component type.
Booking Wizard — Change Occupancy Label (ST-3406)
KAPI-6159 Change occupancy - 'You are changing package occupancy' title is not displayed in booking wizard Booking Wizard Booking Wizard now correctly displays the Change Occupancy label when changing occupancy.
Booking Wizard — Pre-selected Defaults on New Room (ST-3414)
When in Change Occupancy add a new room the Pre-Selected Changeable option are not default one, but the same as other existing room Change Occupancy When adding a new room in Change Occupancy, pre-selected changeable options now default correctly.
Booking Wizard — Reset Pre-selected Options on Pax Change (ST-3416)
When Change Occupancy add or remove pax the pre-selected options are not reset to default one Change Occupancy Adding or removing passengers in Change Occupancy now resets pre-selected options to their defaults.
Transfer — Package Level Room Indexing (ST-3440)
Transfer breaks Package Levels Booking Overview Booking Wizard Transfer Package transfer now preserves correct room indexing to match selected package levels.
Booking Wizard — Unit of Measure for Pre-selected Options (ST-3463)
Price is wrong in PS and during Change Occ when changing pre-selected option for 2 pax room Booking Wizard Change Occupancy Resolved an issue where the unit of measure for pre-selected changeable components could be missing, causing incorrect pricing calculations.
Booking Wizard — Pricing Summary Display Fixes (ST-3467)
Reinstate - selected cabin not displayed in the Pricing Summary Reinstate The Booking Wizard pricing summary now shows selected cabin details correctly when a room has package changes, and room total change highlighting evaluates correctly across all booking modes.
Booking Wizard — Temporary Holds with Package Levels (ST-3474)
When Double is selected Twin is temporary held Package Search Temporary hold creation now supports Package Levels mode and land-based packages more reliably. Per-room selections take precedence when appropriate, main components resolve correctly when cruise_details returns no component IDs, and item enrichment refreshes after price category mapping to avoid stale hold records.
Package Search — Options Without Package Level (ST-3493)
Component filtering hides components when all should be displayed Package Editor Day-by-day availability no longer requires an exact package level match on every offered option. Options with no package level assigned appear on all levels in the View package level selector, consistent with Booking Wizard behaviour for inclusive components such as transfers.
Promotions — Available for All Currencies (ST-3508)
Add AvailableForAllCurrencies field to Promotion in Kaptio Travel Promotions Promotions now include an Available for All Currencies field, allowing promotions to be configured for multi-currency use without separate currency-specific records.
Package Setup — Assign Departures to Components (ST-3520)
(X-TEAM) Assigning Departures to Components does not work as expected ComponentUI Departure dates selected via Assign to Package Departure dates on components with Selective Departures are now saved correctly. Previously, assigned departures could appear empty after reopening the component.
Costings — Unit Pricing in Price Lines Modal (ST-3523)
[Carr Golf] UX issues with unit prices in costings Costings When Enable Unit Pricing In Costing is enabled, the Price Lines modal now respects unit pricing settings. Unit values display correctly with edit controls, and amounts shown in the modal match the configured unit pricing.
Location Search — Exclude Record Types (ST-3675)
[KHELP-12061 / Railbookers] Service Search/Itinerary Builder - Remove Transport Hubs from Location Search Itinerary Builder Administrators can hide selected Location record types (for example Transport Hubs) from location search in Service Search and Itinerary Builder via a new multi-select in Kaptio Settings → Location Settings. Excluded types still appear when they host active bookable services for the relevant context. Rail, train station, and flight lookups are unaffected. KHELP-12061