Product Updates
Everything we ship, in one place. Follow along as we build the all-in-one platform for Australian businesses.
The /dashboard/sms page now opens with an "All SMS" / "🏨 Hotel SMS only" chip pair so hotel operators (and tax-agency operators with the hotel module enabled) can scope the recent-messages list to stay-related touchpoints — pre-arrival check-in links, arrival-day welcomes (returning + first-time variants), review requests, booking confirmations, and operator broadcasts — without scrolling past invoice-payment, quote-followup or appointment-reminder traffic. Driven by ?scope=hotel — chips are plain Links that preserve any other active URL params on toggle, server-side filter is a single PostgREST .or() clause against the message column matching the canonical hotel-template body fingerprints ("stay at", "Welcome BACK", "pre-arrival", "30 seconds to leave a review", "booking for", "thanks for staying"), and the existing columns, sort and 100-row pagination cap are untouched. Empty-state copy switches to a hotel-specific line when the chip is on but nothing matched in the most recent activity so the filter never lies.
Hotel tenants now receive a single skim-able morning email — sent automatically at 06:00 AEST — listing today's arrivals, today's departures, and the outstanding balance to collect at the desk, with a one-tap CTA into Front Desk TV. Property managers can read the day's plan before reception opens instead of poking around the dashboard. Quiet days (zero arrivals AND zero departures) are skipped so the inbox doesn't get nagged on a Sunday with nothing on the board, the balance line hides itself when there's nothing outstanding, and operators who'd rather skip the daily ping can flip tenants.hotel_send_daily_digest off. Demo tenants are excluded.
The /dashboard/audit-log page now opens with an "All events" / "🏨 Hotel events only" chip pair so tax-agency operators with the hotel module enabled can isolate hotel-vertical activity (stay.created, stay.confirmed, stay.cancelled, stay.checked_in, stay.checked_out, stay.no_show, stay.broadcast_sms, stay.reschedule_approved/declined, stay.tag_assigned/removed, plus accommodation_* actions) without scrolling past unrelated ATO traffic. Driven by ?scope=hotel — chips are plain Links that preserve any other active params, server-side filter is a single PostgREST .or() clause against action.like.stay.% and action.like.accommodation_% so it adds no extra round-trip, the row format and the existing date / actor filters and pagination are untouched, and the empty-state copy switches to a hotel-specific line when the chip is on but nothing matched in the most recent 100 rows.
Each promo code row on /dashboard/promo-codes now shows a small "Redeemed N · Revenue $X" subtitle under the code, so operators can see at a glance which codes are actually pulling in bookings versus sitting idle. The redeemed count is an actual stay count (joined via accommodation_stays.promo_code_id) rather than the cached uses_count, and the revenue figure sums total_cents across all stays that applied that code — formatted as AUD with no decimals to match the rest of the dashboard. One bounded select per page load keyed by tenant_id, no N+1, falls back to uses_count for legacy rows that pre-date the per-stay link. Existing toggle/edit/delete row actions and pagination are untouched.
Operators can now configure a per-tenant weekend surcharge alongside the existing cleaning-fee and tourism-levy auto-charges. Two modes: flat (cents per Friday/Saturday night) or percent (whole-percent points pro-rated by weekend share of the stay) — so a 5-night stay with 2 weekend nights pays roughly 40% of the headline percent rather than the full whack. Surcharge fires automatically at booking time on both the operator-created flow (/dashboard/stays) and the public guest flow (/stay/[slug]), lands as a regular folio line so it shows up in the Folio card and the OTA reconciliation PDF, and is summarised on the public booking page ("+ Weekend surcharge $20/Fri+Sat night") so guests aren't surprised at checkout. Disabled by default — operators opt-in via tenant config; UI toggles ship in a follow-up.
The /dashboard/reviews list now surfaces a small "🏨 Matched stay" pill next to a Google reviewer's name when their author_name exactly matches (case-insensitive) a checked-out hotel stay at the same tenant whose departure_date falls within ±60 days of when the review was fetched — one click jumps straight to the stay detail. Heuristic only (operator-typed guest_name vs free-form Google name is too messy for hard identifiers), so the pill is intentionally framed as a possible match. Single bounded select against accommodation_stays (in() on visible names plus an ilike-OR fallback for casing), capped at 500 rows — no per-review N+1, hidden cleanly when nothing matches.
The public /demo page now opens with a dismissible "Hotel demo highlights — May 2026" tour panel pointing prospects at the seven hotel-vertical features shipped this month — channel-manager conflict detection, Front Desk TV with balance-to-collect KPI, returning-guest indicators on the Stays board, the reschedule queue with conflict pre-check, house rules and deposit policy on the public booking page, printable scan-to-book QR cards in Settings → Booking Embed, and the OTA commission reconciliation PDF on the Accommodation Reports page. Each row links straight into the corresponding screen in a new tab so visitors can open the OBP hotel demo, then jump directly to the new work without hunting through the sidebar. Stays dismissed per browser via a localStorage key (obp_demo_tour_dismissed_2026_05) so returning prospects aren't nagged.
The Housekeeping page now opens with a "🔥 Priority today" filter chip alongside "All rooms" — one click narrows the grid to rooms that have BOTH a departure today AND a different arrival today, which is the cleaner's hard same-day-turn list (must finish before the next guest checks in). Same priority badge also pins to those room cards in the unfiltered view so it's never missed in the wider scan. Adds a single bounded select against accommodation_stays for today's departures (room_id only), intersected with the existing today-or-tomorrow stays query — no extra cost when the chip is left at All rooms. Empty-state line when nothing requires a same-day turn so the filter never lies.
The STR Compliance page now opens with a one-line cap-exposure tile that summarises every room with a configured state and night cap — "X rooms at cap, Y approaching cap. Highest exposure: Room 101 — 168/180 nights (93%)". Tone shifts red when any room has hit its annual cap, amber when only approaching (90%+), neutral otherwise. Reuses the existing rolling-12m nights count (no extra query) and stays hidden for operators who haven't configured STR state or caps yet so the page never shows a placeholder.
The Direct Booking Engine page now opens with an emerald "Direct-booking savings this month" hero card that totals what the operator KEPT this calendar month by capturing bookings directly — for each direct / phone / walk-in stay arriving this month, we project the 15% Booking.com baseline cut against its total_cents and sum, then surface the dollar headline alongside an "N direct vs M OTA bookings" sub-line. Bounded same-month select against accommodation_stays (capped at 1000 rows, excludes cancelled / no-show / hold), hidden when no direct stays exist this month so a brand-new operator never sees an empty celebration.
The Accommodation Reports page now opens with a tight 6-month revenue trend card alongside the existing 12-month ADR/occupancy chart — six emerald bars (oldest left → newest right) summing total_cents of checked-out stays bucketed by departure-date year-month, each labelled with the month and dollar figure so operators can read the trajectory at a glance. Distinct from the pro-rated nightly chart: this answers "when did revenue actually realise?" Reuses the existing 12-month stays select (no extra DB roundtrip), hides cleanly with an empty-state line for new operators.
New control at the top of /dashboard/rooms/types lets operators apply a flat percentage rise (or fall) across every room type's base rate in one click — common ahead of school holidays and shoulder-season corrections. Inline percent input with +5 / +10 / +15 quick-fill chips, ±50% guardrail so a typo can't 6× every nightly rate, refuses any bump that would drop a rate to zero or below. Revalidates both the room types page and the calendar so the new rates flow through immediately.
The App Marketplace at /apps now surfaces a brand-tinted Hotel & Accommodation callout listing the May 2026 hotel-vertical work — guest portal with scan-to-book QR cards, channel-manager conflict detection that catches double-bookings before they reach the calendar, returning-guest indicators on every stay, an OTA commission reconciliation PDF, and self-check-in access codes for after-hours arrivals. Sits as a dedicated panel above the category grid with a quiet link through to the full /for/hotels suite.
New side-by-side breakdown showing what hotels lose to Booking.com (~$540/mo) and Airbnb (~$504/mo) on a typical 50-room property versus 0% commission with OneBookPlus direct bookings.
8 new accounting pages: chart of accounts, general ledger, journal entries, balance sheet, cash flow, aged receivables, aged payables, and budget tracking — bringing total accounting pages to 13.
Upload, organise, and search business documents with categories. File management integrated into client records and business workflows.
Full campaign builder with templates, audience segmentation, campaign analytics dashboard, and SMS marketing via Twilio. Track opens, clicks, and attributed revenue.
Manage Facebook and Google Ads campaigns, audiences, keywords, and creative assets directly from your OneBookPlus dashboard.
Connected integrations page with POS provider connections, third-party marketplace, and one-click install for add-on services.
80+ SwiftUI screens with complete CRUD for invoices, quotes, bookings, contacts, jobs, expenses. Tenant switcher with create/remove business, payment reminders, and all industry dashboard types.
Contacts now support secondary email and phone with notification toggles on invoices. Invoice emails optionally cc secondary address.
Full retail POS with product catalogue, barcode scanning, inventory tracking with low-stock alerts, and integrated payment processing. Built for shops, market stalls, and product businesses.
Employee management, shift scheduling, timesheets, leave tracking, and payroll calculations with superannuation and PAYG. Manage your team from one place.
Job management with weekly scheduling view, quick-create, and batch invoicing. Track jobs from quote to completion and invoice multiple jobs at once.
Launched 13 free Australian tax calculators including income tax, GST, superannuation, PAYG, CGT, HECS-HELP, BAS, FBT, and more. Designed to help individuals and small businesses estimate their obligations in seconds.
Introduced a built-in CMS for publishing guides, tutorials, and industry articles. Optimised for SEO with structured data, categories, and social sharing.
BAS preparation, individual tax return lodgement, TPAR reporting, lodgement history, audit trail, and find-an-agent directory. Direct ATO integration for Australian businesses.
Full hospitality platform: Point of Sale, table management, kitchen display system, menu builder with dietary tags, daily sales tracking, orders (dine-in/takeaway/delivery), and reservations.
Public booking pages with embeddable widget, custom forms, site builder, domain mapping, analytics, and Stripe payment at checkout. Supports walk-ins, waitlists, and service selection.
Import bank transactions via CSV, match to invoices and expenses, and reconcile accounts. Connects your banking data to your books for accurate reporting.
Accept payments directly through invoices and booking pages via Stripe Connect. Includes Checkout Sessions, webhook handling, and payment reconciliation.
Product catalogue with categories, variants, barcode support, inventory tracking, low-stock alerts, and purchase order management.
Visual deal pipeline with drag-and-drop stages, deal values, probability tracking, and conversion analytics. Turn leads into paying clients.
Full quote lifecycle: create, edit, send, accept or decline, and convert accepted quotes into invoices or bookings with a single click. Includes PDF generation and email delivery.
Modular add-on marketplace with Google Reviews, Google Ads, Facebook Ads, Mailchimp integration, booking platform, POS, and more. Install only what you need.
Check out our public roadmap or get started for free today.
Last reviewed and updated: May 2026 by Bishal Shrestha
Related pages