πŸ“¦ Golden Config advanced 2-4 hours

Setting Up Tour Packages

The Gold Config guide to package configuration for Circle Sell. Covers all six package types with real examples: Classic Land-Only, Air+Land, Combo, and Linked packages. Product Experience Layer best practices from production implementations.

Published: November 25, 2025 Updated: January 14, 2026 manifest.json
Objects: Package Component Component Option Item (Service) Departure Inventory Contract Payment Schedule Cancellation Assignment

Deploy to Salesforce

Guided wizard β€’ ~2-4 hours

Deploy Now

Overview

The Gold Config is a set of pre-configured sample packages that demonstrate best-practice implementation patterns for tour products. Think of it as your reference implementationβ€”when you’re wondering β€œhow should I configure a multi-destination tour?” or β€œhow do I handle flight pricing?”—the Gold Config shows exactly how it’s done.

What You’ll Learn

TopicDescription
Package TypesAll 6 types and when to use each
Component StructureHow to build tour segments
Flight PlaceholdersAir+Land pricing without inventory
Payment SchedulesDeposit and balance timing
Inventory ContractsMaking dates bookable
Multi-DestinationCombo and Linked patterns

Use the Gold Config as your template. Copy its patterns, adapt its structures, and customize for your specific tour products.


Understanding Package Types

Kaptio supports multiple package types to model your tour products. The key distinctions are:

  • How tours combine
  • Whether tours can sell independently
  • Whether flights are included

The Core Definitions

TypeDefinitionExample
Principle PackageStandalone tour (single or multi-destination) that can be sold independentlyJapan Discovery, South American Discovery
Combo PackageTwo or more Principle Tours combined into one productSouth Korea + Japan
Linked PackageOne Principle Tour + one Sub Tour (both in same package)Egypt (Principle) + Jordan (Sub)

Package Type Decision Matrix

QuestionLand-OnlyAir+LandComboLinked
Can sell independently?βœ… Yesβœ… Yesβœ… Yesβœ… Yes
Includes flights?❌ Noβœ… YesEitherEither
Combines multiple tours?❌ No❌ Noβœ… Yesβœ… Yes
Tours share inventory?N/AN/A❌ Noβœ… Yes
Best forSingle destinationPackage holidaysMulti-countryExtensions

How Package Type is Determined

Package behavior is controlled by three fields working together:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Package Type         IsCombo__c   IsLinked__c   HasFlights__c β”‚
β”‚  ───────────────────────────────────────────────────────────── β”‚
β”‚  Classic Land-Only      FALSE        FALSE         FALSE       β”‚
β”‚  Classic Air+Land       FALSE        FALSE         TRUE        β”‚
β”‚  Combo Land-Only        TRUE         FALSE         FALSE       β”‚
β”‚  Combo Air+Land         TRUE         FALSE         TRUE        β”‚
β”‚  Linked Parent          FALSE        TRUE          Either      β”‚
β”‚  Linked Combined        FALSE        TRUE          Either      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Classic Land-Only Package

This is your foundation product. Master this configuration before adding complexity with flights, combos, or linked tours.

When to Use

  • Single-destination tours without flights
  • Ground-only packages where guests arrange own air
  • Foundation for understanding all other types

Package Structure

A Classic Land-Only package consists of:

πŸ“¦ Package (Principle)
β”œβ”€β”€ 🏨 Main Tour Component (Required)
β”‚   β”œβ”€β”€ Room Option: Twin/Double
β”‚   β”œβ”€β”€ Room Option: Single
β”‚   └── Room Option: Triple
β”œβ”€β”€ 🏨 Pre-Tour Hotel (Optional)
β”‚   └── Room Options...
β”œβ”€β”€ 🏨 Post-Tour Hotel (Optional)
β”‚   └── Room Options...
└── 🎫 Optional Activities
    └── Activity Options...

Key Configuration Fields

FieldValuePurpose
IsCombo__cFALSENot a combo package
IsLinked__cFALSENot a linked package
HasFlights__cFALSENo flight components
ServiceLevelMode__cStandardBed type cascades to all components
MinPax__c2Minimum guests per departure
MaxPax__c16Maximum guests per departure

Component Configuration

The Main Tour component is always required and marked as:

  • IsMandatory__c = TRUE
  • IsPrimary__c = TRUE

Pre/Post hotels and activities are optional:

  • IsMandatory__c = FALSE
  • IsPrimary__c = FALSE

Teaching Point: Service Level Mode

When ServiceLevelMode__c = β€œStandard”:

  • Guest selects bed type on Main Tour component
  • Selection cascades to all other components
  • Ensures consistent room configuration throughout trip
  • No auto-fallback if selected type unavailable

Classic Air+Land Package

The Customer Request: β€œCan you include flights?”

Air+Land packages add flight pricing to your land-only tours without managing actual flight inventory.

How It Works

Kaptio uses flight placeholdersβ€”components that represent flight pricing without actual inventory. This enables:

  • Package pricing that includes air
  • Separate commission structures for air vs land
  • Flexibility for guests to upgrade or decline flights

The Two-Component Flight Model

πŸ“¦ Package (Air+Land)
β”œβ”€β”€ ✈️ Return Flight (Subsidized) - NotMandatoryHidden
β”‚   └── Economy class included in package price
β”œβ”€β”€ ✈️ Flight Upgrade (Optional) - NotMandatoryHidden  
β”‚   β”œβ”€β”€ Premium Economy (+$500)
β”‚   └── Business Class (+$1,500)
β”œβ”€β”€ 🏨 Main Tour Component (Required)
β”‚   └── Room Options...
└── 🏨 Pre/Post Hotels (Optional)

Why Two Flight Components?

ComponentPurposeVisibility
Return FlightBase air included in package priceHidden (auto-selected)
Flight UpgradeOptional upgrades for additional costShown to guest

This model enables:

  • Clean pricing: Package price includes economy air
  • Upsell opportunity: Guests can upgrade class
  • Commission separation: Air earns different commission than land

Key Configuration Differences

FieldLand-OnlyAir+Land
HasFlights__cFALSETRUE
Flight Component IsMandatory__cN/AFALSE
Flight Component MandatoryMode__cN/ANotMandatoryHidden

Teaching Point: NotMandatoryHidden

Flight components use MandatoryMode__c = β€œNotMandatoryHidden” because:

  • They don’t require inventory checking
  • They’re auto-included in package price
  • Guests don’t need to β€œselect” the base flight

Combo Packages: Multi-Destination Tours

The Business Decision: Sell multiple destinations as one product.

When to Use Combo

  • Multi-country itineraries (Japan + South Korea)
  • Regional combinations (Peru + Bolivia)
  • Themed collections (Grand Tour of Europe)

How Combo Works

A Combo package references multiple Principle packages:

πŸ“¦ Combo Package: "Japan & Korea Discovery"
β”œβ”€β”€ πŸ“¦ Japan Discovery (Principle Package)
β”‚   β”œβ”€β”€ 🏨 Tokyo Hotels
β”‚   β”œβ”€β”€ 🏨 Kyoto Hotels
β”‚   └── 🎫 Japan Activities
└── πŸ“¦ South Korea Explorer (Principle Package)
    β”œβ”€β”€ 🏨 Seoul Hotels
    β”œβ”€β”€ 🏨 Busan Hotels
    └── 🎫 Korea Activities

Key Characteristics

AspectCombo Behavior
InventoryEach Principle has separate inventory
PricingCombined from both Principles
DeparturesMust align across both tours
BookingSingle booking, multiple tour segments

Configuration Fields

FieldValuePurpose
IsCombo__cTRUEMarks as combo package
IsLinked__cFALSENot using linked model
ComboPackages__c[Package IDs]References to Principle packages

Combo vs Selling Separately

ScenarioUse ComboSell Separately
Always sold togetherβœ…
Shared departure datesβœ…
Single booking experienceβœ…
Can book just oneβœ…
Different departure datesβœ…
Separate payment schedulesβœ…

Linked Packages: Principle + Sub Tour

The Linked Package Model: Pair a main tour with optional extensions.

When to Use Linked

  • Pre/post tour extensions (Egypt + Jordan extension)
  • Optional add-on tours
  • Modular tour building

How Linked Works

πŸ“¦ Linked Package: "Egypt with Jordan Extension"
β”œβ”€β”€ πŸ“¦ Egypt Discovery (Principle)
β”‚   β”œβ”€β”€ 🏨 Cairo Hotels
β”‚   β”œβ”€β”€ 🏨 Luxor Hotels
β”‚   └── 🎫 Egypt Activities
└── πŸ“¦ Jordan Extension (Sub Tour)
    β”œβ”€β”€ 🏨 Petra Hotels
    β”œβ”€β”€ 🏨 Amman Hotels
    └── 🎫 Jordan Activities

Key Differences from Combo

AspectComboLinked
RelationshipEqual partnersParent + Child
InventorySeparateCan share
Sub tour aloneN/ACannot sell alone
PricingCombinedPrinciple + Extension

Configuration Fields

FieldValuePurpose
IsCombo__cFALSENot a combo
IsLinked__cTRUEUsing linked model
LinkedParentPackage__c[Package ID]Reference to Principle
IsSubTour__cTRUE (on sub)Marks as extension

Revenue Management with Extensions

Extensions enable:

  • Incremental revenue from add-on sales
  • Inventory optimization across related tours
  • Flexible packaging for different guest preferences

Payment Schedules: When Do Customers Pay?

Most tour operators don’t require full payment at booking. You want deposits to secure bookings, then collect balance closer to departure.

How Payment Schedules Work

Payment schedules are template-based:

  1. Configuration contains rules (deposit %, days before departure)
  2. Assignment links configuration to packages/channels
  3. Booking generates actual payment schedule from rules

Typical Structure

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Payment Schedule: "Standard Tour Deposit"                      β”‚
β”‚  ───────────────────────────────────────────────────────────── β”‚
β”‚  At Booking:        25% deposit                                 β”‚
β”‚  90 days before:    50% (total 75%)                            β”‚
β”‚  30 days before:    25% (total 100%)                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Assignment Hierarchy

Payment schedules are assigned with priority:

  1. Package + Channel (most specific)
  2. Package only
  3. Channel only
  4. Default (least specific)

Configuration Objects

ObjectPurpose
PaymentScheduleConfiguration__cThe schedule template
PaymentScheduleRule__cIndividual payment rules
PaymentScheduleAssignment__cLinks to packages/channels

Inventory Contracts: Making Dates Bookable

Departures aren’t created manuallyβ€”they’re generated from inventory contracts.

How It Works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Inventory Contract: "Tokyo Hotels Q1 2026"                     β”‚
β”‚  ───────────────────────────────────────────────────────────── β”‚
β”‚  Supplier: Tokyo Hotel Group                                    β”‚
β”‚  Period: Jan 1 - Mar 31, 2026                                  β”‚
β”‚  Rooms: 20 per night                                           β”‚
β”‚  ───────────────────────────────────────────────────────────── β”‚
β”‚  β†’ Generates departures for each valid start date              β”‚
β”‚  β†’ Tracks available capacity in real-time                      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Concepts

ConceptDescription
AllotmentContracted inventory from supplier
Release TierWhen unsold inventory returns to supplier
DepartureBookable date generated from allotment
CapacityReal-time tracking of available spots

Release Tiers: Minimize Risk

Release tiers automatically return unsold inventory:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Release Tier 1: 90 days before β†’ Release 50% unsold           β”‚
β”‚  Release Tier 2: 60 days before β†’ Release 25% unsold           β”‚
β”‚  Release Tier 3: 30 days before β†’ Release remaining            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

This protects you from holding inventory you can’t sell while maintaining availability for bookings.


Cancellation Policies

Cancellation policies define what happens when guests cancel their booking.

Structure

Like payment schedules, cancellation policies are template-based:

ObjectPurpose
CancellationPolicy__cPolicy definition
CancellationRule__cFee rules by timeframe
CancellationAssignment__cLinks to packages/channels

Typical Policy

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Cancellation Policy: "Standard Tour Policy"                    β”‚
β”‚  ───────────────────────────────────────────────────────────── β”‚
β”‚  90+ days before:   Full refund (minus admin fee)              β”‚
β”‚  60-89 days:        25% cancellation fee                       β”‚
β”‚  30-59 days:        50% cancellation fee                       β”‚
β”‚  0-29 days:         100% cancellation fee (no refund)          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Channel-Specific Policies

Different channels may have different policies:

  • Direct: Standard policy
  • Travel Agent: May have more flexible terms
  • Group Charter: Custom negotiated terms

Common Questions

Should I create separate packages for Land-Only and Air+Land?

Yes. While you could use a single package with optional flights, separate packages provide:

  • Cleaner pricing display
  • Simpler inventory management
  • Easier reporting by product type

Can I change minimum capacity after departures exist?

Yes, but carefully. Existing departures keep their original capacity. New departures use the updated minimum. Consider the impact on already-booked departures.

How do I handle single supplements?

Single supplements are configured at the Component Option level:

  • Create a β€œSingle Room” option
  • Set the supplement price
  • System calculates automatically when guest selects single

What if inventory is less than my maximum capacity?

The system uses the lower of:

  • Package maximum capacity
  • Available inventory from contracts

If you have 16-pax max but only 10 rooms contracted, departures show 10 available.

Can I offer the same tour style in different regions?

Yes. Create separate packages for each region:

  • Japan Discovery (Asia)
  • Italy Discovery (Europe)
  • Peru Discovery (South America)

Each has its own inventory, pricing, and departures while sharing the β€œDiscovery” brand concept.


Key Takeaways

1. Package Type = Your Product Strategy

The three classification fields (IsCombo__c, IsLinked__c, HasFlights__c) determine how your product behaves. Choose based on your business model, not technical convenience.

2. Flight Placeholders Solve Real Problems

The two-component flight model (subsidized + upgrade) enables air+land pricing without inventory complexity. It’s pricing, not operations.

3. Departures Are Generated, Not Manual

Inventory contracts drive departure availability. Focus on contracting the right allotmentsβ€”departures follow automatically.

4. Payment & Cancellation Are Template-Based

Create configurations once, assign to many packages. The system generates actual schedules at booking time.

5. Start Simple, Add Complexity as Needed

Master Classic Land-Only first. Add flights when needed. Use Combo/Linked only when your product truly requires it.


Next Steps

  1. Review Gold Config packages in your sandbox
  2. Copy a Land-Only package as your template
  3. Customize for your first tour product
  4. Test the booking flow end-to-end
  5. Add complexity (flights, combos) only when needed