Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.grouple.pro/llms.txt

Use this file to discover all available pages before exploring further.

Merchant Onboarding Flow

New merchants onboard via a 3-step flow (client/components/merchant/onboarding/):
StepOne — Business Profile
  - First name, last name, phone, company name, role
  - Company logo upload (→ Supabase Storage: Logos bucket)
  - Saves merchant record to DB

StepTwo — Venue Details
  - Venue name, venue type, description, venue image (→ venue-images bucket)
  - Seated + floating capacity
  - City + neighbourhood (searched + auto-created if new)
  - Address, postal code
  - Cuisines (free text tags)
  - Amenities (free text tags)
  - DB Trigger: tr_check_venue_limit (BEFORE INSERT on venues)

StepThree — Venue Pricing + Shifts
  - Currency selection (USD, AED, GBP, INR, EUR)
  - Min + max price per person
  - Operating hours (shifts with days + start/end time)
  - On complete → merchant.onboarding_completed = true
  - Redirects to /dashboard

SuccessModal — "You're All Set! 🎉"

DB Trigger: tr_check_venue_limit — enforces venue limit per subscription plan

Lead Management Flow

Merchant receives new lead notification email (send-lead-email Edge Function)

Goes to Leads page (/leads)
  Tabs: Pending | Accepted | Declined | Connected | Closed Won | Closed Lost | All
  Shows: RFQ ID, Customer Name, Venue, Event Date, Time Slot, 
         Group Size, Event Type, Budget, Status

Clicks lead → RFQ Detail page (/rfq/RFQ-XXXX/pending/{venue_lead_id})
  Shows:
    Left: Event Type, Group Size, Event Date, Preferred Time, 
          Venue, Food Preference, Special Requirements
    Right: Budget Range (e.g. Standard $101-$250)
           Customer Details (Full Name, Company, Phone, Email)
  Actions: "Decline" or "Accept" buttons (when Pending)

Merchant clicks Accept → status changes to "Accepted"
  → "Send Proposal" button appears top right

Merchant clicks "Send Proposal" → goes to proposal creation page

DB Trigger: trg_set_venue_lead_timestamps → records accepted_at
DB Trigger: trg_record_response_time → logs response time

Lead Status Lifecycle

pending → accepted → connected → closed_won
                  ↘ declined
                  ↘ closed_lost

Proposal Creation Flow

Merchant clicks "Send Proposal" on an accepted lead

SendProposalPage → ProposalSendContainer

Right side shows Enquiry Details (read-only context):
  Event Type, Group Size, Event Date, Event Time, Budget Range, Requirements

Proposal form sections (all auto-filled by AI except noted):

1. Packages — Merchant selects from Sales Library
   (AI uses these for pricing context)

2. Proposal Details (AI fills automatically):
   - Proposal title
   - Choose a venue ← merchant can change
   - Event date + time (pre-filled from enquiry)
   - Group size (pre-filled from enquiry)
   - Offer validity date ← merchant fills manually

3. Executive Summary (AI fills automatically)

4. Package inclusions (AI fills automatically)

5. Pricing:
   - Amount (AI fills automatically)
   - Price type: "per person" (default) or "per event" (flat rate) ← merchant can change
   - Service fee ← merchant fills manually
   - Discount ← merchant fills manually

6. Optional add-ons (Label, Description, Price)
   → NOT included in Total Quote automatically
   → Only added to total if end customer selects them on the proposal

7. Payment terms (AI fills automatically)

8. Venue policies (AI fills automatically)

TOTAL QUOTE shown at bottom = Amount × Group Size (updates live)

Merchant clicks "Send Proposal status: "sent"

DB Trigger: proposal-updated-email → sends send-proposal-email Edge Function

BEO (Banquet Event Order)

After a booking is confirmed, merchants can generate a BEO document (beo/BEODocument.tsx) containing:
  • Event details, setup time, table setup
  • AV requirements, staffing requirements
  • Customer and venue contact information
  • Financial summary

Analytics Dashboard

analytics/AnalyticsPage.tsx powered by merchant_analytics_v3 view shows:
  • Total leads, wins, pending, accepted, connected, lost
  • Average group size, average lead value
  • Average response time (hours)
  • Lead distribution by category
  • Top budget tiers

Subscription Plan Limits

Merchant actions are governed by their subscription_plans record:
LimitField
Max venuesmax_venues
Max menu PDFsmax_menu_pdfs
Monthly proposal limitmonthly_proposal_limit
AI model accessai_model_name
Performance insightshas_performance_insights
Commission ratesuccess_fee_percentage