openchair
FeaturesPricingAbout
Sign InStart Free Trial
Help Centre

Customers & Automation

  • AI Booking Enquiry Auto-Responder
  • AI Style Preview
  • Automated Notifications
  • Birthday & Rebooking Automations
  • Bulk Compose

Customers & Automation

Activity Feed

Last updated 19 May 2026

Activity Feed

A unified feed of everything going on at your venue — booking events, message threads, billing alerts, operator-action prompts. Three tabs (Unread / Needs action / All) with live counts. Staff see what's targeted to them; owners and managers see venue-wide.

Where to find it — Web: Sidebar → Activity. Mobile: bottom tab → Activity.

TL;DR

  • Three tabs with live counts: Unread (default), Needs action, All.
  • Owners and managers see venue-wide activity; staff see only notifications targeted to them.
  • Mobile: swipe right on any row to mark as read.
  • The bell icon now navigates straight here — the legacy notification panel was retired in v0.70.0.

The three tabs

Tab What's in it
Unread (default) Everything you haven't marked as read yet.
Needs action High-priority items plus types that always require operator follow-up: booking cancelled, client no-show, membership expiring, low wallet balance, deposit expired, deposit forfeited, SMS delivery failed.
All Every notification — read and unread, action and non-action.

The counts update live as new activity comes in. Tab counts are fetched independently from list contents so a badge stays correct even on a long scrolling list.

Notification types

A wide range of events flow through the Activity Feed:

Type What it means
booking_created A new booking was placed.
booking_cancelled A booking was cancelled (auto-includes "Needs action").
booking_rescheduled A booking was moved to a different time.
client_no_show A customer marked as no-show (auto-includes "Needs action").
client_low_satisfaction A client left feedback ≤3 stars.
payment_received A payment came in.
membership_renewed A monthly membership renewed successfully.
membership_expiring A membership is approaching its end (Needs action).
deposit_expired A booking deposit authorisation expired (Needs action).
deposit_forfeited A deposit was forfeited (Needs action).
low_wallet_balance Your wallet balance is low (Needs action).
allocation_warning SMS or email allocation is approaching the cap.
sms_delivery_failed An outbound SMS failed to deliver (Needs action).

Anything with priority: "high" also flags into the Needs action tab.

Role-scoped visibility

The feed is role-scoped at the database level, not just hidden in the UI:

  • Owner / Manager — sees venue-wide notifications. Includes their own targeted notifications plus everything aimed at the venue or other staff.
  • Stylist — sees only notifications where targetStaffId matches their user. They don't see other team members' notifications.

This applies to reads (you can't see what's not yours) and writes (you can't mark someone else's notification as read). Marking all read for a stylist only marks their own; for an owner/manager it marks venue-wide.

Tapping a notification

Each row's tap target is contextual:

Notification type Tap target
client_low_satisfaction /reviews?feedbackId=… — opens the specific feedback record
low_wallet_balance Settings → Billing
Has relatedBookingId The booking detail
Has relatedClientId The customer's profile
(Other) Falls back to the Activity Feed itself

Mobile-specific UX

Behaviour Mobile detail
Swipe right to mark as read Haptic confirmation, badge and count update live
Section grouping Today / Yesterday / day-of-week-and-date / Earlier (kicks in after 10+ items)
Tab persistence Swiping between tabs preserves scroll position
Per-type icons Calendar (bookings), XCircle (cancellations), Clock (rescheduled), CreditCard (payments), Bell (general), MessageSquareWarning (feedback), AlertTriangle (alerts), UserX (no-show), DollarSign (membership), Wallet (low balance)

Web-specific UX

Behaviour Web detail
Mark all read button Right side of the page header; disabled when no unread
Cursor pagination Loads more in chunks; smooth scrolling
Filter persists in URL ?filter=action or ?filter=all — share or bookmark a filter
Page count and tab counts Surfaced live; refetch on tab switch

Marking as read

Surface How
Mobile Swipe right on any row, or tap to navigate (auto-marks as read)
Web Click Mark all read in the header; individual rows auto-mark on tap

Marked notifications stay in the feed (still visible via All) — they just leave the Unread view and stop counting against the badge.

Bell icon (legacy notification panel)

The bell-icon panel that opened a dropdown was removed in v0.70.0. The bell now navigates straight to the Activity Feed instead — same shortcut, fuller view.

The mobile route /notifications is a redirect to /(tabs)/activity so push-notification deep links still resolve correctly. Old links keep working.

Push notifications

Push notifications fire for high-priority events (cancellations, no-shows, low balance, delivery failures) on both iOS and Android. Tapping the push opens the matching Activity Feed item.

Configure which events push at Settings → Notifications.

Empty states

Each tab has its own empty-state copy:

  • Unread (empty) — "You're all caught up."
  • Needs action (empty) — "Nothing needs your attention right now."
  • All (empty) — "No activity yet."

A truly empty venue (just signed up, no bookings yet) sees the All empty state.

Role access

Action Owner Manager Stylist
View venue-wide activity Yes Yes No
View own targeted activity Yes Yes Yes
Mark own notifications as read Yes Yes Yes
Mark venue-wide as read Yes Yes No

Common mistakes

Problem What to check
Badge says 5 unread but the list is empty Refresh the page or restart the app. The badge can briefly diverge from the list during high-write moments (rare).
Notification I expected isn't appearing Check your role — if you're a stylist, only your own targeted notifications appear. Check Settings → Notifications that the type is enabled.
Marked all as read but the badge stayed Web: mark-all-read is for the current filter. Switch to Unread and try again.
Swipe-to-read isn't working on mobile Confirm you're swiping right (not left or tap-and-hold). Some accessibility settings reduce swipe sensitivity.
Tap on a client_low_satisfaction doesn't open the feedback Confirm the feedback record still exists; very rarely it's been deleted server-side. Otherwise check console for errors.
Lots of sms_delivery_failed notifications A delivery failure pattern usually means a carrier or number issue. Check Settings → Communications that your dedicated number is healthy.

FAQ

Where is the Activity Feed?

Web: Sidebar → Activity. Mobile: bottom tab → Activity. The legacy bell-icon notification panel was removed; the bell now navigates straight to the Activity Feed.

What's the difference between Unread, Needs action, and All?

Unread (default) shows everything you haven't seen yet. Needs action shows high-priority items plus types that always require operator action (cancellations, no-shows, expired deposits, SMS delivery failures). All shows everything.

Do staff see the same activity as owners?

No. Staff see only notifications targeted to them personally (their bookings, their clients). Owners and managers see venue-wide activity. The filter is applied to every read and every mark-read action.

Can I swipe to mark notifications as read on mobile?

Yes. Swipe right on any row to mark it as read with haptic confirmation. Tab counts and the badge update in real time.

Why are some items always in "Needs action"?

Specific types are flagged by the system as always requiring operator follow-up: booking_cancelled, client_no_show, membership_expiring, low_wallet_balance, deposit_expired, deposit_forfeited, sms_delivery_failed. Plus anything with priority "high".

Can I clear all read notifications?

There's no clear-history action today. Marked-read notifications stay in the All tab indefinitely so the audit trail is preserved. They don't count against the unread badge.

Related Articles

  • Push Notifications
  • Customer Feedback
  • Communication Settings
  • Subscription & Billing
openchair

The operating system for high-end service venues. Built in Australia for the world.

Product

  • Features
  • Pricing
  • AI Features
  • Mobile App
  • Online Booking
  • AI Concierge
  • Sign In

Solutions

  • Hair Salons
  • Barbers
  • Beauty
  • Wellness & Spa
  • Nail Salons
  • Tattoo Studios

Compare

  • All comparisons
  • vs Fresha
  • vs Timely
  • vs Square
  • vs Booksy
  • vs Mindbody
  • vs Boulevard
  • vs Phorest
  • vs Mangomint
  • vs GlossGenius
  • vs Vagaro
  • vs Shortcuts
  • vs Acuity

Resources

  • Blog
  • Help Centre
  • Guides
  • Glossary

Company

  • About
  • Contact
  • Book a Demo
  • Founding Members

Legal

  • Privacy
  • Terms
  • Cookie Policy
  • Sub-processors
  • Accessibility
  • Privacy Request

© 2026 OpenChair Platform. All rights reserved.

Made on the Goldie.