# Placeful 2.3.0

## Highlights

- **Calendar display rules** — venues pick what the public booking widget shows per condition (closed, sold out, suspended, draft, upcoming, sales-expired, ended, unavailable): show or hide, whether the booking panel opens, and which badge renders — status label, places left, total booked, booked/capacity, percent booked, or custom text.
- **Rule cascade** — display rules resolve company → event type → event, so a venue sets defaults once and narrows them per type or per event; seats, times and areas follow the same model, including a "Closed" label for fully-closed days on the areas calendar.
- **Per-embed overlays** — a `data-cal-display` JSON attribute on the widget button (or `cal_display` on the embed session API) tailors visibility and badges for one integration without touching the company's defaults; overlays are whitelist-sanitized and can never bypass booking, tenant or capacity gates.
- **Booking reminders, opt-in** — automatic pre-event reminders now follow explicit switches: a company master switch, an event-type default and a per-event flag (existing venues start off — enable under company settings). Staff can still fire a manual reminder per booking or per event.
- **Safer deletes** — seats, areas, tables and events only refuse deletion while a live (non-terminal) booking references them; cancelled, expired and refunded bookings no longer block cleanup, and waitlist entries on a deleted target are closed through their own transitions instead of dangling.

## Private events & sales

- **Lead inbox** — a public inquiry form captures private-event requests into a manager inbox with statuses and assignment.
- **Proposals & BEO** — a document engine builds proposals/banquet-event-orders from bookings, with e-signature and PDF output.
- **Payment schedules** — deposits and installments on inquiries, card-on-file capture and F&B minimum shortfall tracking.
- **Tentative holds, approvals, buffers, quotas** — expiring soft holds with reminder nudges, an approval workflow for area requests, per-area turnover buffers and per-user booking quotas.
- **Recurring bookings** — weekly/monthly series for staff-created reservations, all-or-nothing.

## Revenue & distribution

- **Dynamic price rules** — day-of-week and days-out percentage modifiers that stack multiplicatively, scoped venue-wide, per area or per event.
- **Stripe Terminal** — card-reader registration and `card_present` payments straight on the order pad.
- **Channel links** — per-channel UTM booking URLs (Google Business Profile, Instagram, Facebook, custom) on the widget tab.
- **Venue groups** — multi-venue groups with an opt-in shared guestbook, a sister-venue fallback on sold-out widget days, and a cross-venue roll-up report.
- **Reserve with Google** — merchants/services/availability feeds plus the v2 booking server (check, create, cancel, list) behind an opt-in flag.

## Guest CRM

- **Surveys & reviews** — post-visit survey engine with review routing.
- **Tag rules, segments, campaigns, journeys** — auto-tagging rules, guestbook segments, one-shot campaigns and lifecycle journeys (birthday, anniversary, win-back).
- **Email capture** — a public widget that feeds the guestbook.
- **Gift cards** — resend, balance lookup and a branded printable card.

## Operations

- **Door ops & check-in** — door lists, event check-in and booking add-ons, plus hold recovery and booking source attribution.
- **Pre-shift briefing** — a per-service report of covers, VIPs and notes for the floor.
- **Staff radio** — WhatsApp-style push-to-talk with voice clips, read receipts and a PWA dock composer.
- **Scheduling intelligence** — demand forecasting from booking history feeds the shift solver; a swap pool covers offer → claim → approve; a labor-vs-sales report tracks a venue-set labor-% target.
- **Tip pooling** — the day's settled payment tips split proportionally across approved worked minutes, frozen into auditable shares.
- **Manager logbook** — dated, categorized shift notes for the handover.


---
> Source: https://placeful-app.com/en/changelog/2.3.0
