Get Started
Tailor-Made ItinerariesTour & Cruise ItinerariesFIT Package ItinerariesRole Guides
Kaptio AdminSupplier ContractingProduct Design/BuildProduct ContentTraining ManagerData ExpertsDevelopersKaptio Platform Architecture
Architecture OverviewDevelopment GuidelinesFunctional DecompositionPlatform FAQNew to Salesforce?Security & ComplianceManage your EnvironmentsData Import & ExportGlobal Platform Setup
Getting Started with Core ConfigurationManage Global SettingsConfigure ChannelsManaging Users, Roles & AccessUnderstanding Your Sample DataPIM: Supplier Contracting
Managing SuppliersSetup LocationsManaging ServicesConfigure PricesBulk Import Service DataManage InventoryPromotion & Discount SetupPIM: Tour & Package Design
Getting Started with PackagesUnderstanding Departure TypesManage Package PricingSetup Package ContentConfigure Package DefaultingCRM Module
Customizing Kaptio TravelManage Account Record TypesSetup Trip & Itinerary WorkflowManage Salesforce FeaturesCONNECT: Land & Air Connectivity
Getting Started with ConnectivityPNR Import Setup & UsageIntegrating Amadeus Hotel Connectivity Setup & UsageDOCS Module
Getting Started: ContentManaging Content & MediaSetup Document StagesSetup TemplatesBuilding Custom Content ComponentsBulk Import Content DataUsing the Document Starter KitUsing the ATOL Certificate Starter KitPersonalizing DocumentsGenerating DocumentsCustomer Access to DocumentsEmail Setup & UsageAdvanced Sample Email TemplateCRS: Training Guides
Getting Started: TrainingTraining Reservation TeamsTraining Finance TeamsPAY: Payment Gateway Integrations
Getting Started: PaymentsImplementing Braintree/PayPalIntegrating Your Own GatewayData Migration
Guide to Booking MigrationPeripheral Integration Guides
Accounting IntegrationData Warehouse IntegrationWebsite IntegrationA key function of Kaptio Travel (KT) is to facilitate the delivery of branded documents from multi-day tour operators and their customers. To allow for maximum flexibility of the document setup and branding, Kaptio provides this Documents Starter Kit which contains a base setup of documents with code examples, which can either be used as-is or used as a foundation/examples for custom documents.
This document provides specifications of what, when and how data is made available for Documents for delivery to the customer as well as provides detailed insight into where key data is stored in the Kaptio system and how itβs applied within the Document Starter Kit
General Business Flow
An example of the high-level business flow describing document generation in Kaptio is described below.
The content manager has a wide range of configuration options when it comes to documents. Each channel defines which document types it uses (currently labelled Stages) and one or more document templates can be defined for each document type. These are used to define which data to pull into a document and the behaviour of documents, such as actions presented to customers on the document, expiration date and email template used to deliver the document.
All documents can be presented as online documents and/or PDF.
When generating a document, an example business flow is as follows:
- An Agent or direct customer contacts a sales consultant to create a trip and produce one or more itineraries
- The sales consultant composes a trip and one or more itineraries.
- The sales consultant manually generates an Itinerary Document (Proposal) which will pull in content articles from services, locations and other relevant entities, and data defined for the document type and channel based on the selected Template. Supported document types are:
- Proposal
- Booking Confirmation
- Amendment
- Travel Documents
- Cancellation
- The sales consultant modifies the Itinerary Document as needed.
- The sales consultant publishes the Itinerary Document and sends it to the customer via the built-in Email Composer
- The customer reviews the proposals and is given several standard options: 1. Reject the proposal; 2. Get back to the sales consultant with an additional question(s) and 3. Accept the proposal and select the option to BOOK.
- When options 1 or 2 are selected notification is sent to the sales consultant and the status of the Itinerary is updated accordingly
- When option 3 is selected the booking conversion process is triggered.
- Kaptio provides multiple ways to convert the itinerary to a booking (manual by a sales consultant or automated through the customer book option). In both cases, Kaptio Travel will produce a payment schedule based on configured business rules. The customer will be requested to make a deposit payment. Receiving the payment (automated or manual) triggers the creation of an Itinerary Document (Booking Confirmation)Β and its automatic delivery to the customer via Email.
- When the travel start date draws near, the Sales Consultant, Operational Support Staff or an automated process will generate an Itinerary Document (Travel documents), containing all vital information needed while travelling and deliver it to the customer via Email.
- If the Itinerary is cancelled, an Itinerary Document (Cancellation) is created (automated or manual) showing any cancellation fees that apply and delivered to the customer via Email.
Example Document
To help visualize the resulting documents, here is a shortΒ demo of an example online document:
https://share.getcloudapp.com/YEukyqmd
Kaptio Data Model
To understand the content generation process it is useful to have a high-level understanding of the underlying Kaptio Travel data model. For detailed object descriptions and relationships see Kaptio Developer Doc (seeΒ https://docs.kaptioapis.com/Β ) and the standard Salesforce Object Modeler/Schema builder.
The High-Level Entity Relationship Diagram below provides a high-level overview of the objects relevant to Documents.
In the context of this document, relevant objects are divided into 4 groups:
- Document Setup: Channel, Template, Content, Content Assignment
- Assignment objects: Service, Price Category, Package, Package Day, Departure Template Location, Service Departure Location, Ship, Cabin, Image, Video
- Itinerary Data: Itinerary, Itinerary Item, Itinerary Service
- Document Generation: Itinerary Content, Itinerary Content Line Item, KObject
Document Setup Objects
For the context of this document, the relevant objects for document setup are:
- KaptioTravel__Channel__c:Β Channels define the selling channels for each Business Unit, and contain rules related to currency, language, pricing and templates.
- KaptioTravel__Template__c:Β Templates relate to a Channel and stage and consists of a set of components. The template controls what content gets pulled together for a specific Itinerary.
- KaptioTravel__Content__c:Β Content is a text article used in any number of customer-facing materials such as proposals and travel documents.
- KaptioTravel__ContentAssignment__c:Β Allows you to connect content articles with multiple sources (See Assignment Objects). So that the same articles could be re-used, instead of duplicating it in a system.
Assignment Objects
The Content Assignment object creates a relationship between a Content article and the entities it belongs to or media files that belong to it. The following is a list of objects that can be assigned to a content article:
- KaptioTravel__Item__c:Β LabelledΒ Services. Products sold by the supplier are referred to as Services in Kaptio Travel. Services define individual Itinerary components such as accommodation, activities and car rental, defined by the record type.
- KaptioTravel__Price_Category__c:Β Price Categories relate to a Service and represent the variations of the products offered by the Service.
- KaptioTravel__Package__c:Β Packages are the parent object for all configurations of a package. It allows you to set up a combination of items to be booked together in a specific order and, in this case, content articles assigned as package summary and/or day summary.
- KaptioTravel__PackageDay__c:Β This object is not relevant to document generation but is solely mentioned for reasons of completeness. The package day component represents a specific day within the Itinerary. The current iteration allows for content to be attached as marketing content for websites or other channels.
- KaptioTravel__Location__c:Β Defines location hierarchy to control search and content. Content articles are assigned to a location and queried based on locations on services but the document engine can be set to collect articles from parent locations in addition to or instead of the location assigned to a service.
- KaptioTravel__DepartureTemplateLocation__c:Β Departure Templates define a template for the Itinerary of a cruise or a multi-day rail service. Departure Template Locations define locations within those Itinerary templates. Each Departure Template Location can be linked to a content article to give a general overview of the activities at that location within the context of the cruise/rail trip.
- KaptioTravel__ServiceDepartureLocation__c:Β Service Departures are defined as cruise or multi-day rail services. These use the Departure templates to generate the departure, including locations, which can then be overwritten per departure, if needed. Service Departure Locations are generated as a one-to-one copy of Departure Template Location but no content is assigned to them. The content engine will use the Departure Template Location content unless overwritten
- KaptioTravel__Ship__c:Β Defines Ships that Cruises are operated with.
- KaptioTravel__Cabin__c:Β Defines the cabins of a Ship
- KaptioTravel__Image__c:Β Stores link to an image to inject in content generation flow. By default, these are stored on AWS but can be configured to use other hosting services.
- KaptioTravel__Video__c:Β Stores link to a YouTube/Vimeo video to inject in content generation flow. No video hosting is part of the Kaptio Travel platform
Itinerary Data Objects
Kaptio Travel uses various objects to capture information related to the booking which can be surfaced on documents.
- KaptioTravel__Itinerary__c:Β An Itinerary is a key Object in Kaptio Travel as it is the parent object of the entire booking structure in Kaptio. Every booking at the highest level is represented by the Itinerary object. The Itinerary object contains a significant amount of financial information at a summarized level. At a very high level, the object provides insight into:
- Travel Dates (start and end)
- Total value (price) and outstanding balance
- Total value of Payments Received
- Costs (supplier costs, Re-seller Commission, additional charges).
- KaptioTravel__ItineraryItem__c:Β The ItineraryItem object provides detailed information by Booking line by Price Category and contains a few fields exclusively created for document display purposes. See table below (TODO).
- KaptioTravel__ItineraryService__c:Β This object aggregates information at the booking line and booking sub-line, including price categories, fees, meal plans, and add-ons (see conceptual example below).
Document Generation Objects
- KaptioTravel__ItineraryContent__c:Β The parent object of an Itinerary Document. This component is currently labelled as βItinerary Contentβ but is set to be relabelled to βItinerary Documentβ for increased clarity of the difference between Itinerary Documents and Content articles.
- KaptioTravel__ItineraryContentLineItem__c:Β Some template components allow for querying for multiple content articles. This object stores that selection information along with some additional details per selection and allows for configuring the selection during the content generation process.
- KaptioTravel__KObject__c:Β The KObject acts as a series of records that represent the output of the content generation engine. It stores two types of data:
- The actual output of the content generation document. Parts of this data are dynamic until the document is published at which time an HTML output is created and locked from editing to preserve the data of the Itinerary when published.
- The main document JSON file stores all edits made to the document. This allows for edits to be persisted between versions.
The Document Starter Kit
The Documents Starter kit was created to jumpstart the process of creating the branded documents needed to complete the customer journey.
With Kaptio Travel being built on the Salesforce platform, due to the restriction of managed packages, the document presentation code needs to be built as an extension to the Kaptio Travel system for it to be accessible and editable by our end users.
The Document Starter provides a fully out-of-the-box ready template that can be configured with a logo and colour scheme without touching any code. However, the code is also available to be used as reference or modified.
Installing the Starter Kit
Please reach out to Kaptio for the starter kit to be installed on your org.
Starter Kit Meta Data
Following is the component list for the starter kit. All files will follow the KTD_ prefix naming conventions to denote Kaptio Travel Documents.
Please note that this list may evolve with future updates.
Code
A | B | C | D | |
1 | File | Role | Description | Type |
2 | KTD_DocumentController | Main controller for the online document output | Online representation ofΒ Quotes, Travel Documents etc. | Apex Class |
3 | KTD_DocumentTemplateController | Template controller for online documents | Online representation ofΒ Quotes, Travel Documents etc. | Apex Class |
4 | KTD_DocumentPDFController | Main controller for the PDF document output | Online representation of Quotes, Travel Documents etc. | Apex Class |
5 | KTD_DocumentInvoiceController | Main controller for the Invoice document output | PDF Invoice layout, designed for window envelopes | Apex Class |
6 | KTD_DocumentInvoiceTemplateController | Template controller for invoice documents | PDF Invoice layout, designed for window envelopes | Apex Class |
7 | KTD_DocumentHelper | Util class for documents | Stores reusable functions applicable to documents | Apex Class |
8 | KTD_DocumentTestSuite | Unit Test for the Starter Kit | Unit test | Apex Class |
9 | KTD_DocumentTestHelper | Util class for document unit tests | Generates test data for document unit tests | Apex Class |
10 | KTD_ComponentBCOverviewController | Controller for Booking Confirmation overview custom component | A custom component that creates an overview of an itinerary's total value and payment schedules. | Apex Class |
11 | KTD_ComponentCancellationController | Controller for Cancellation Overview custom component | A custom component that creates an overview of cancellation chargers or refund due to customer for cancelled Itineraries | Apex Class |
12 | KTD_ComponentItinerarySummaryController | Controller for Itinerary Summary custom component | A custom component that creates an itinerary summary that is beyond the current capabilities of ootb template components. | Apex Class |
13 | KTD_ComponentPricingController | Controller for Pricing output | A custom component that provides a pricing summary based on Itinerary Price Breakdowns rather than totals. | Apex Class |
14 | CustomKTAgendaHandler | Output for KT Agenda component in PDFs | Defines the output for KT Agenda per record type in PDF documents. | Apex Class |
15 | KTD_Document | Main output for online documents | Online representation of Quotes, Travel Documents etc.Data loaded from Itinerary Content | Visualforce Page |
16 | KTD_DocumentTemplate | Composition TemplateΒ for online documents | Main structure of the online layout. This allows for the KTD_Document to handle data while layouts can be swapped out. | Visualforce Page |
17 | KTD_DocumentPDF | Main output for PDF documents | PDF representation of Quotes, Travel Documents etc. | Visualforce Page |
18 | KTD_DocumentInvoice | Main output for Invoice documents | Invoice template suited for documents such as Booking Confirmations and Cancellations. | Visualforce Page |
19 | KTD_DocumentInvoiceTemplate | Composition TemplateΒ for invoice documents | β | Visualforce Page |
20 | KTD_ComponentBCOverview | Output for BC Overview component | A custom component that creates an overview of an itinerary's total value and payment schedules. | Visualforce Page |
21 | KTD_ComponentCancellation | Output for Cancellation component | A custom component that creates an overview of cancellation chargers or refund due to customer for cancelled Itineraries | Visualforce Page |
22 | KTD_ComponentItinerarySummary | Output for Itinerary Summary component | A custom component that creates an itinerary summary that is beyond the current capabilities of ootb template components. | Visualforce Page |
23 | KTD_ComponentPricing | Output for Pricing component | A custom component that provides a pricing summary based on Itinerary Price Breakdowns rather than totals. | Visualforce Page |
24 | KTD_KTAgenda | Output for KT Agenda component in online documents | Defines the output for KT Agenda per record type in online documents. | Visualforce component |
Static Resources
Static resourcesΒ are files that can be referenced in documents. With the starter kit, Kaptio provides static resources called KaptioDocuments.
A | B | C | |
1 | Folder | Files/Subfolders | Description |
2 | CSS | Style.css | Style documents for the online layout.Note: Some elements are defined during runtime via JS |
3 | CSS | StylePDF.css | Style documents for the generic PDF layout |
4 | CSS | invoiceStyle.css | Style documents for the invoice layout |
5 | CSS | Normalise.css | Reset css |
6 | JS | main.js | Initialises scrips and methods needed for the layout to include dynamic values. |
7 | Images | Defaults | Contains default logos and banners for initial setup |
8 | Images | Icons | Stores all icons used in the default layout |
Custom Metadata Types
Custom Metadata Types (CMT)Β Custom metadata is customizable, deployable, packageable, and upgradeable application metadata. In the starter kit, we provide two custom metadata types whichΒ contain configuration settings that can be applied to one or many layouts.
Please note that this list may evolve with future updates.
A | B | C | |
1 | Metadata Type | Description | Included records |
2 | Kaptio Document Settings | General settings for a layout. Can be assigned to channels and document types if required. | None |
3 | Kaptio Document Date Formats | Provides the option to define multiple date formats and match them towards a channel | 5 common formats |
Kaptio Document Settings Fields
A | B | C | D |
Field | API Name | Type | Description |
Channels | Channels__c | Text | Allows the user to enter a comma-separated list of channel codes to which the setting record should apply. The empty field sets the record as the default. |
Color-100 | Color100__c | Text | Add any colour value acceptable in CSS to define this colour.
Default: #f3f6f6 |
Color-200 | Color200__c | Text | Add any colour value acceptable in CSS to define this colour.
Default: #dae0e4 |
Color-300 | Color300__c | Text | Add any colour value acceptable in CSS to define this colour.
Default: #646464 |
Color-400 | Color400__c | Text | Add any colour value acceptable in CSS to define this colour.
Default: #4d726d |
Color-500 | Color500__c | Text | Add any colour value acceptable in CSS to define this colour.
Default: #385450 |
Color-600 | Color600__c | Text | Add any colour value acceptable in CSS to define this colour.
Default: #343434 |
Color-700 | Color700__c | Text | Add any colour value acceptable in CSS to define this colour.
Default: #3c3c3c |
Color-800 | Color800__c | Text | Add any colour value acceptable in CSS to define this colour.
Default: #1d1d1d |
Logo URL | LogoURL__c | URL | Link to the online logo |
Logo Height | LogoURLHeight__c | Number (4,0) | Height of online logo in pixels |
Logo Width | LogoURLWidth__c | Number (4,0) | Width of online logo in pixels |
Logo PDF URL | LogoPdfURL__c | URL | Link to the pdf logo |
Logo PDF Height | LogoPdfURLHeight__c | Number (4,0) | Height of PDF logo in pixels |
Logo PDF Width | LogoPdfURLWidth__c | Number (4,0) | Witdh of PDF logo in pixels |
Logo Invoice URL | LogoInvoiceURL__c | Number (4,0) | Link to Invoice logo |
Logo Invoice Height | LogoInvoiceURLHeight__c | Number (4,0) | Height of invoice logo in pixels |
Logo Invoice Width | LogoInvoiceURLWidth__c | Number (4,0) | Width of invoice logo in pixels |
Navigation Type | NavigationType__c | Picklist | Allows users to choose whether the navigation of the online documents is a horizontal menu at the top of the document or a vertical menu in the sidebar. |
Contact Us | ContactUsLink__c | URL | Link to a contact page |
Facebook | Facebook__c | URL | Link to a Facebook page |
Twitter | Twitter__c | URL | Link to a Twitter account |
Instagram | Instagram__c | URL | Link to an Instagram account |
Privacy Policy | PrivacyPolicyLink__c | URL | Link to a Privacy Policy account |
Terms of Use | TermsOfUseLink__c | URL | Link to a Terms of Use page |
Website Feedback | WebsiteFeedbackLink__c | URL | Link to a Website Feedback page |
Kaptio Document Date Formats Fields
A | B | C | D | |
1 | Field | API Name | Type | Description |
2 | Channels | Channels__c | Text | Allows the user to enter a comma-separated list of channel codes to which the setting record should apply to. The empty field sets the record as the default. |
3 | DateFirst | DateFirst__c | Text | Date first version of date format. |
4 | MonthFirst | MonthFirst__c | Text | Month first version of date format. US format |
Kaptio Document Date Formats Included Records
A | B | C | D | |
1 | Name | Channels__c | DateFirst__c | MonthFirst__c |
2 | DayNumberLongMonth | β | dd MMMM yyyy (16 June 2022) | MMMM dd yyyy (June 16 2022) |
3 | LongMonthDayOfWeek | β | EEEE d MMMM yyyy (Thursday 16 June 2022) | EEEE MMMM d yyyy (Thursday June 16 2022) |
4 | Numeric | β | dd/MM/YYYY (16/06/2022) | MM/dd/YYYY (06/16/2022) |
5 | ShortMonth | β | d MMM, yyyy (16 Jun, 2022) | MMM d, yyyy (Jun 16, 2022) |
6 | ShortMonthDayOfWeek | β | EEE d MMM yyyy (Thu 16 Jun 2022) | EEE MMM d yyyy (Thu Jun 16 2022) |
- General Business Flow
- Example Document
- Kaptio Data Model
- Document Setup Objects
- Assignment Objects
- Itinerary Data Objects
- Document Generation Objects
- The Document Starter Kit
- Installing the Starter Kit
- Starter Kit Meta Data
- Code
- Static Resources
- Custom Metadata Types
- Kaptio Document Settings Fields
- Kaptio Document Date Formats Fields
- Kaptio Document Date Formats Included Records