Appearance
Demo Minimal Onboarding Flow (QA/Testing)
Overview
Demo Minimal is a test-only provider that simulates Square-like onboarding with no prerequisites. This allows QA and Playwright tests to quickly get to post-onboarding flows without setting up payment profiles, billing, or branding.
Important: This provider is for testing/staging environments only and should never appear in production.
Integration Type
- Scope: Merchant-scoped (no location required)
- Payment Processing: Simulated (no real payments)
- Payment Profile: NOT required (skipped)
- Billing Profile: NOT required (skipped)
- Branding Profile: NOT required (skipped)
- Location: NOT required (auto-created with demo data)
- Menu Sync: Demo menu auto-populated
Discovery Flow (JSON - for deterministic parsing)
discovery_questions
[
{
"id": "channels",
"text": "What would you like to test?",
"options": ["Kiosk only", "Online ordering only", "Both"]
}
]setup_steps
{
"Kiosk only": [
{"title": "Demo Setup Complete", "route": "/orders", "auto_complete": true}
],
"Online ordering only": [
{"title": "Demo Setup Complete", "route": "/pickup-and-delivery/online-ordering", "auto_complete": true}
],
"Both": [
{"title": "Demo Setup Complete", "route": "/orders", "auto_complete": true}
]
}Prerequisites
None - This is the minimal demo flow for rapid testing.
What Gets Auto-Created
When demo-minimal is selected:
- A demo location with mock address and coordinates
- A sample menu with test items
- Mock payment configuration (no real transactions)
Emily Conversation Examples
Starting Onboarding
Emily: "You've selected Demo Minimal mode for testing. This skips all prerequisites and sets up a demo environment instantly.
What would you like to test?"
[Kiosk only] [Online ordering only] [Both]After Selection
Emily: "Demo environment is ready! You now have:
- A demo location with sample data
- A test menu with sample items
- Mock payment processing (no real charges)
You can now explore all features as if you had a real POS connected."Playwright Usage
typescript
// Select demo-minimal provider for quick testing
await page.evaluate(() => {
localStorage.setItem('qa_demo_provider', 'demo-minimal')
})
// Or via URL parameter
await page.goto('/dashboard?demo=minimal')