Initialize sessions and receive real-time guest intelligence
Initialize a session when a guest begins browsing a menu. Sessions enable analytics tracking, personalization, and—with GuestIQ—deliver real-time intelligence about the guest before they even search.
First-Touch Personalization: When you create a session, GuestIQ returns the guest’s complete profile—behavioral patterns, demographics, order history, audience segments, and targeted dish recommendations. This data flows from every platform and touchpoint the guest has ever interacted with, plus any connected third-party loyalty systems. Your UI can adapt to the diner from the very first screen.
GuestIQ returns the guest’s complete profile at session creation. This data is aggregated across all platforms and third-party loyalty systems—giving you everything you need to personalize from the first screen.
Direct from source of truth (order history, loyalty data)
Observed
High (0.7-1.0)
Derived from sufficient observations (25+ interactions)
Inferred
Variable (0.1-0.7)
Predicted from limited data—score reflects sample size
Fields we compute (behavior, demographics, segments, targetedDishes) include confidence scores based on observation count. Fields from authoritative sources (orderHistory, loyaltyTags, touchpoints) are factual and don’t need confidence.
type DataQuality { observationCount: Int! # Total interactions observed firstSeen: DateTime lastSeen: DateTime lastUpdated: DateTime # When profile was last updated}
Identity has no confidence score—when matched via LOYALTY_ID or PASSPORT_ID, it’s verified. DEVICE_FINGERPRINT and BEHAVIORAL_MATCH indicate probabilistic matching.
Inferred demographic profile based on behavior patterns. All fields nullable with confidence scores—these are predictions, not facts.
Copy
type GuestDemographics { ageRange: ComputedAttribute householdType: ComputedAttribute dietaryLifestyle: ComputedAttribute healthFocus: ComputedListAttribute householdIncome: ComputedAttribute}type ComputedListAttribute { values: [String!]! confidence: Float!}enum HouseholdType { STUDENT YOUNG_PROFESSIONAL FAMILY_WITH_KIDS EMPTY_NESTER SENIOR}enum DietaryLifestyle { OMNIVORE FLEXITARIAN VEGETARIAN VEGAN HEALTH_CONSCIOUS PERFORMANCE_FOCUSED ALLERGY_RESTRICTED}enum HouseholdIncome { LOW # Bottom 25% by AOV MODERATE # 25-75% by AOV HIGH # Top 25% by AOV VIP # Top 5% by lifetime value}
Demographics are inferred from behavioral data. A low confidence score means limited observations—use for soft personalization (“You might like…”), not hard filtering.
type GuestSegments { primary: [SegmentMembership!]! compound: [SegmentMembership!]!}type SegmentMembership { segment: String! confidence: Float! # How confident we are in this classification basis: SegmentBasis!}enum SegmentBasis { EXPLICIT # Guest explicitly set this preference OBSERVED # Derived from consistent behavior INFERRED # Predicted from limited data}
Primary segments are single attributes: wheat-free, high-protein, frequent-visitor, customizerCompound segments are combinations: wheat-free+high-protein, vegan+spicy-lover
AI-powered dish recommendations based on the guest’s complete profile.
Copy
type TargetedDish { dishId: String! dishName: String! reason: String! # Human-readable explanation confidence: Float! # 0.0 to 1.0 targetingType: TargetingType!}enum TargetingType { PREFERENCE_MATCH # Matches dietary/nutritional preferences REORDER # Previously ordered, likely to order again NEW_ITEM_DISCOVERY # New menu item matching their profile UPSELL # Add-on they typically purchase CROSS_SELL # Complementary item based on order patterns}
Data synced from third-party loyalty systems. The confidence score represents match confidence from the source system.
Copy
type LoyaltyTag { source: LoyaltySource! programId: String! tier: String # e.g., "GOLD", "PLATINUM" points: Int tags: [String!]! # Custom tags from the loyalty system confidence: Float! # 0.0 to 1.0 - match confidence from source lastSyncedAt: DateTime!}enum LoyaltySource { CUSTOM # Direct API integration}
Loyalty data is passed through from your connected platform via direct API integration. We don’t assign confidence—your loyalty system is the authoritative source. Configure integrations via the Integrations API.
type Recommendation { type: RecommendationType! dishId: String! reason: String! confidence: Float!}enum RecommendationType { HIGHLIGHT # Feature prominently based on preferences UPSELL # Suggest add-on based on past behavior REORDER # Previous favorite NEW_MATCH # New menu item matching their profile}
All context (chain, platform, guest identity, passport) is bound to the session when you call startSession. You only need to pass the session ID on subsequent calls.