Skip to content

Upsells Forms

A configurable form system that lets hotels collect custom guest information at the point of upsell purchase — turning simple add-ons into structured service requests.

Upsells — form builder and guest experience

$3.8MUpsells CARR
$2.2MApproved upsell revenue/mo
80%Upsells approval rate
8,325Hotels using upsells

The Problem

When a guest requests a snowmobile expedition, airport shuttle, or spa treatment through Canary's upsells, the hotel has to follow up manually — via messaging or phone — to collect the details needed to actually fulfill the request. Flight number? Preferred time? Number of guests? Dietary restrictions? All of this creates back-and-forth that delays confirmation, frustrates guests, and creates operational overhead for already-busy concierge teams.

One hotel we tested with, Hotel Jackson in Wyoming, manages 30+ different tour experiences. Their tours coordinator described the current workflow: “I see the guest is interested, I message them, I wait for a response — it could take 5 minutes or 5 days.” Competitors like Duve had already built form-based data collection into their upsells, and CS teams were regularly fielding requests from properties that wanted to collect mandatory information at the time of purchase.

The Solution

I designed a form system that plugs into Canary's existing upsells product — hotel staff configure custom questions per upsell, guests answer them at the point of request, and staff see responses alongside the order in their dashboard. Alongside Forms, I redesigned the entire upsell creation experience from a cramped modal into a full-page layout with live preview.

Key Design Decisions

1. Full-page creation flow with live preview

The existing upsell creation modal couldn't accommodate forms — it was already cramped with basic fields. Rather than patching, I redesigned the entire creation experience as a full-page layout, emulating the pattern I'd established in Compendium Builder. The right side shows a live mobile preview that updates as staff configure the upsell, so they see exactly what guests will see.

2. Form fields as “Guest Information” within the upsell

I positioned forms as a natural extension of the upsell setup — a “Guest Information” section that appears when configuring an add-on. Hotels add up to 5 questions per upsell, each with a type (text, dropdown for MVP), a label, and required/optional status. The key insight from user testing was renaming “Fields” to “Questions” — hotel staff don't think in database terms, they think “What do I need to ask the guest?”

3. Guest form appears before submission, not after

I designed the form to surface before the guest submits their upsell request — not as a follow-up. This was the core product insight: if you collect information at the moment of intent, you eliminate the entire manual follow-up workflow. The guest sees the form integrated into the upsell detail view, answers the questions, and submits everything together.

4. Constraint-based UX with clear feedback

The form builder uses visual feedback to communicate limits: the “Add option” button disables when a dropdown reaches 15 options, deletion is blocked when only one option remains, and error indicators appear on language tabs when translations have validation issues. These micro-interactions came from observing hotel staff in testing — they needed immediate, visible feedback rather than error messages after the fact.

5. Staff responses surfaced in context

Guest form responses needed to appear everywhere staff manage upsells — in the New Requests tab, Past Requests, and within the check-in flow's “Manage Upsells” section. I designed a side sheet pattern that shows the full order alongside form responses, so staff can review answers and approve/deny without navigating away.

Research methods

  • Prototype usability testing with Hotel Jackson (Wyoming) — snowmobile/tour upsell use case with 30+ experiences
  • User testing with Guldsmeden Hotels (Copenhagen) — boutique hotel testing form creation flow
  • User testing with The Ozarker Lodge — resort experience upsells
  • Prototype iteration based on feedback from Cortiina hotel
  • Competitive analysis — Duve's form-based data collection, Oaky's upsell approach
  • Design hand-off session with engineering — validated field types, localization approach, question limits

Key insights

1. Hotels think in “questions,” not “form fields.” When Hotel Jackson saw the prototype, they immediately understood the concept but stumbled on terminology.

→ I redesigned the form builder section with question-oriented language throughout.

2. Upsell variants and variable pricing are tightly coupled with forms. Hotel Jackson manages half-day group, full-day group, half-day private, and full-day private versions of each tour.

→ This validated the Upsell Variants project (27 iterations) as a natural companion to Forms.

3. Template creation was the top productivity request. Hotel Jackson has “a set of standard questions across multiple Upsell variants” and wanted to avoid redundant setup.

→ While templates weren't in MVP scope, this shaped how I designed question reordering and duplication patterns.

4. The existing upsell modal was a dead end. As we scoped the forms roadmap, we realized that forms, variants, categories, and modifiers couldn't all fit in a modal.

→ I proposed the full-page redesign early, which engineering validated as feasible.

5. Nearly 95% of guests access the upsells page from mobile, yet only 42% scroll past the first screen.

→ Questions had to be discoverable without requiring scroll, leading to the integrated detail-page approach.

The prototype

I built a functional prototype on Vercel that included the full-page creation flow, form builder with all question types (text, dropdown, date, time, quantity), live preview, and existing upsell configurations. Hotel Jackson and Guldsmeden Hotels both tested with this prototype, and it was iterated based on their feedback before engineering hand-off.

Approach: Start with the user's workflow — what questions do they need answered? — then design backwards from there into the builder experience and guest UI.

Research & prototyping (Apr–May 2025)

Built the v0 code prototype with all question types. Ran usability testing with Hotel Jackson, Guldsmeden, Cortiina, and The Ozarker Lodge. Iterated on prototype feedback — aligned UI to CanaryUI, added question type configurations, and evolved the modal into a full-page experience. Shared design hand-off with engineering on May 23.

Full-page creation + live preview (May–Jun 2025)

Designed the complete full-page upsell creation flow — form builder, live mobile preview with responsive layout, manual translation patterns (leveraging Compendium's pattern), and validation error states for all upsell types.

MVP scope-down & launch (Jun–Jul 2025)

Scoped forms down to text-only input for MVP (no dropdown), simplifying the creation UI. Engineering shipped the full-page view as a major milestone on July 21. Ran a bug bash, filed design tickets for release-blocking issues, and worked with engineering on a final checklist.

Guest frontend + dashboard (Jul–Sep 2025)

Designed guest-facing form submission within the upsell detail view, form response display on the staff dashboard, discard confirmation, and the unified deny button pattern. Re-integrated the dropdown field type after MVP. Forms builder shipped on September 15.

Constraints I designed around

  • Existing infrastructure — Forms had to integrate with the existing add-on model and Purchase Order system
  • Add-ons only — MVP excluded Room Upgrades, Early Check-in, and Late Checkout
  • 5 questions max — Aligned limit to prevent form fatigue and keep the guest experience fast
  • Multi-language from launch — EMEA hotels needed translations for custom questions immediately

Business impact

  • Upsells CARR reached $3.8M (+8.8% MoM), with a year-end target of $4.6M
  • Approved upsell revenue: $2.2M/month (+9% MoM)
  • 80% upsell approval rate across 8,325 hotels
  • Upsells Forms launched September 2025 — available to all customers
  • Marriott Upsells RFP leveraged forms designs — dedicated design reviews and presentation materials for enterprise sales
  • Price modifiers for custom questions designed and ready, extending forms into a revenue-impacting feature

Dream come true.

Hotel Jackson tours coordinator

User impact

  • Guest form submission eliminated the “5 minutes to 5 days” follow-up cycle Hotel Jackson described
  • CS teams reported frequent requests for exactly this feature — properties wanted to collect flight numbers, wine preferences, spa times, dietary restrictions
  • Wyndham brands exploring custom questions for new guest initiatives
  • IHG adopted forms for a welcome amenity selection use case — extending forms beyond concierge services

Product impact

  • The full-page creation flow became the new standard for all upsell management
  • Forms architecture designed for extensibility using Canary's internal schemaform pattern — supports branching questions, additional field types, and reuse across products
  • The live preview component sparked a cross-product design conversation: should we unify preview across Compendium, Upsells, and branding?
  • Forms laid the groundwork for price modifiers (dropdown options with per-option pricing), connecting forms directly to revenue impact

Worked well

  • Building a code prototype early (Vercel, not just Figma) made user testing dramatically more effective. Hotel staff could interact with realistic question types, drag to reorder, and preview the guest experience — which surfaced insights that static mockups wouldn't have caught.
  • Proposing the full-page redesign early instead of patching the modal was the right call. It required more upfront work but created room for every subsequent feature.
  • Close collaboration with engineering throughout — from design hand-offs to working on schema design to bug bashing before launch. The eng design review wasn't a handoff-and-walk-away; it was an ongoing conversation.
  • Leveraging patterns from Compendium (translation picker, builder layout, image management) accelerated the Upsells redesign. Cross-product pattern reuse was a conscious design strategy.

Would change

  • I'd push for the dropdown field type in MVP rather than scoping down to text-only. The scope-down shipped faster, but the immediate post-launch feedback was about dropdown support.
  • I should have anticipated the discoverability issue with form questions in the guest experience earlier. The bottom sheet treatment buried custom questions, and it took a follow-up ticket to explore the full-page treatment.
  • The bug bash process before launch was reactive — I should have established a structured QA framework earlier in the cycle.

What I learned

  • Form design is workflow design. The form itself is the easy part — the hard part is understanding where in the workflow information gets collected, where it surfaces, and what happens when it's missing.
  • Scoping down features (text-only MVP) and scoping up the container (full-page layout) is a powerful combination. You ship something small inside something that can grow.
  • User testing with real hotel operators — not just internal stakeholders — consistently produces the highest-signal feedback. Hotel Jackson's “Dream come true” reaction validated the concept, but their specific feedback shaped the entire roadmap.

The Work