Skip to main content
This guide walks you through implementing different experience types with the Fanfare SDK. You will learn how to create queues, draws, auctions, and timed releases.

Before You Start

Ensure you have:
  1. Installed the SDK (see Installation)
  2. Configured the provider (see Configuration)
  3. Created an experience in your Fanfare dashboard

Using the Experience Journey

The recommended way to implement any experience is using the useExperienceJourney hook. This hook manages the entire customer journey through your experience, handling:
  • Session creation and restoration
  • Sequence routing (general admission, VIP, etc.)
  • Distribution entry (queue, draw, auction, or timed release)
  • Public journey state updates and admission notifications

Public Journey States

Use JourneyView first when building UI. It exposes only the actions that are valid for the current public state.

Creating a Queue Experience

Queues are first-in-first-out waiting lines. Customers join and wait for their turn.

Basic Queue Implementation

Using the Experience Widget

For the fastest implementation, use the supported ExperienceWidget. It renders the correct module for the routed distribution type and exposes slots when you need custom UI.
Use this same widget for queues, draws, auctions, appointments, and timed releases. The routed view.sequence.phase and view.sequence.mechanism decide which module appears.

Creating a Draw Experience

Draws randomly select winners from entrants. The same journey state model applies; only the participating and admitted UI copy changes.

Creating an Auction Experience

Auction experiences expose auction-specific actions while the consumer is participating. Render those actions only when they are present on the current sequence view.

Creating a Timed Release Experience

Timed releases expose a completion action once the consumer is participating. Keep the button tied to the state-gated action on view.sequence.

Handling Authentication

Some experiences require user authentication. The journey handles this automatically:

Handling Access Codes

For VIP or restricted sequences, handle access code requirements:

Waitlists for Upcoming Experiences

If an experience has not started yet, customers can join a waitlist:

Best Practices

1. Always Handle All States

Ensure you handle all possible journey states to avoid blank screens:

2. Persist the Admission Token

Always include the admission token when redirecting to checkout:

3. Handle Token Expiration

Admission tokens expire. Check the expiration and handle accordingly:

4. Provide Clear Feedback

Always show loading states and progress indicators:

Next Steps