> For the complete documentation index, see [llms.txt](https://grouple.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://grouple.gitbook.io/docs/frontend/customer-flows.md).

# Customer Flows

### Enquiry Submission Flow  <a href="#enquiry-submission-flow" id="enquiry-submission-flow"></a>

The core customer flow is a multi-step enquiry form **(`client/components/endcustomers/Enquiries/steps/`):**

```
1. StepOne — Event type selection (occasion_type enum)
2. StepEventDetails — Date, time slot, group size, city, neighbourhood
3. StepRequirements — Budget tier, cuisine preference, venue type, special requirements
4. EnquiryModal — Customer details (name, email, phone, company)
5. Submit → Supabase INSERT into enquiries table
        ↓
   DB Trigger: tr_sync_enquiry_currency (BEFORE INSERT)
   DB Trigger: on_enquiry_created_broadcast (AFTER INSERT) → matches venues
   DB Trigger: send_enquiry_notification (AFTER INSERT) → calls send-lead-email Edge Function
```

### Enquiry Submission Flow [​](https://grouple.mintlify.app/frontend/customer-flows#budget-tiers) <a href="#budget-tiers" id="budget-tiers"></a>

Customers select from four budget tiers:

<table><thead><tr><th width="218.61273193359375">Tier</th><th>Description</th></tr></thead><tbody><tr><td>Economy</td><td>Budget-conscious group bookings</td></tr><tr><td>Standard</td><td>Mid-range group events</td></tr><tr><td>Premium</td><td>Higher-end experiences</td></tr><tr><td>Luxury</td><td>Top-tier venues and experiences</td></tr></tbody></table>

### Viewing Proposals[​](https://grouple.mintlify.app/frontend/customer-flows#budget-tiers)[​](https://grouple.mintlify.app/frontend/customer-flows#viewing-proposals) <a href="#viewing-proposals" id="viewing-proposals"></a>

Once venues respond, customers see proposals via **`Pages/MyEnquiriesPage.tsx`** and **`Proposals/ProposalTemplate.tsx`:**

```
Customer logs in → sees all enquiries across 4 tabs:
  - Pending (awaiting venue responses)
  - Bids Received (proposals received from venues)
  - Confirmed (booking confirmed)
  - Completed (event done)
        ↓
Clicks enquiry → sees all proposals received from venues
        ↓
ProposalTemplate shows:
  - Venue details, pricing, selected packages
  - Payment terms, venue policies
  - AI-generated proposal content
        ↓
Customer confirms one proposal →
  ├── Confirmed proposal → status: "confirmed"
  ├── Other proposals → status: "declined" (auto)
  ├── Enquiry → status: "confirmed" + confirmed_proposal_id + confirmed_venue_id set
  set
  └── DB Trigger: trigger_sync_settlement → creates commission_settlements
      DB Trigger: proposal-confirmation-email → sends confirmation emails

venue_leads statuses (pending/accepted/declined/connected/closed_won/closed_lost)
→ Updated MANUALLY by the merchant via the leads dashboard
        ↓
DB Trigger: trigger_sync_settlement → creates commission_settlements record
DB Trigger: proposal-confirmation-email → sends confirmation emails
```

### Compare Flow[​](https://grouple.mintlify.app/frontend/customer-flows#compare-flow) <a href="#compare-flow" id="compare-flow"></a>

**`Pages/Compare.tsx`** allows customers to compare multiple proposals side by side before confirming.

### [​](https://grouple.mintlify.app/frontend/customer-flows#occasion-types-supported)Occasion Types Supported <a href="#occasion-types-supported" id="occasion-types-supported"></a>

Corporate Event, Wedding, Conference, Private Party, Birthday Celebrations, Others
