openchair
FeaturesPricingAbout
Sign InStart Free Trial
Help Centre

Customers & Automation

  • Activity Feed
  • AI Booking Enquiry Auto-Responder
  • AI Style Preview
  • Automated Notifications
  • Birthday & Rebooking Automations

Customers & Automation

Bulk Compose

Last updated 19 May 2026

Bulk Compose

Send the same SMS or email to up to 500 selected clients in a single transaction. Bulk Compose is the "one-off broadcast" tool — no campaign builder, no scheduling, no multi-wave. Select clients, write a message, see the preview, send.

Where to find it — Web: Sidebar → Clients → tick the clients you want → Bulk compose in the selection bar. Mobile: Clients tab → select → Bulk compose.

TL;DR

  • One-off broadcast SMS or email to selected clients. No campaign builder needed.
  • Up to 500 recipients per Bulk Compose. Beyond that, save as audience and run a real campaign.
  • Live preview shows channel split, recently-messaged dedup, no-contact count, per-channel cost.
  • Send is queued server-side — close the tab and it still goes out. Cancel mid-send supported.
  • PRO only. Full web + mobile parity.

When to use Bulk Compose

Use Bulk Compose for one-shot broadcasts to a specific selection:

  • "Heads up, we're closed Thursday for staff training" to next week's bookings
  • "Studio reopens Monday with new hours" to your VIPs
  • "Last 3 spots for Tuesday's blowout special" to your favourites

Don't use Bulk Compose when:

  • You want to schedule the send for later → use a regular SMS campaign or email campaign
  • You want multi-wave sending (top match first, then second pass) → use a campaign
  • You'll run this same send again later → save selection as a saved audience and use a campaign
  • The audience is larger than 500 → save as audience, run a campaign

Triggering Bulk Compose

  1. Open Clients.
  2. Filter or search to narrow the list.
  3. Tick the clients you want (header checkbox selects all currently visible).
  4. In the selection bar that appears, tap Bulk compose.

The modal opens with your selection pre-loaded.

The preview card

Before you Send, the preview surfaces:

  • Channel split — "X of Y reachable by SMS" or "X of Y reachable by Email" based on the channel you've picked
  • No-contact count — clients in your selection who don't have a valid phone (for SMS) or email
  • Recently-messaged count — clients who received any campaign in the last 7 days (auto-excluded by default; can untick)
  • Sample names — first 3 personalised samples ("Hi Sarah, …", "Hi Tom, …") so you can sanity-check the merge tags
  • Cost — split into messages within your allocation (free) and overage (charged from wallet) with currency

If your wallet doesn't have enough for the calculated overage, Send is disabled with a "Top up your wallet" prompt.

Composing the message

Channel Notes
SMS 160 chars per segment; counter shows {n} chars · {n} segments; destructive warning at >480 chars (3 segments).
Email Subject line required. Body supports paragraphs.

Merge tags:

  • {{customerName}} — first name
  • {{venueName}} — your business name

There's no AI Write with AI button on Bulk Compose — the body is operator-typed only. For AI-drafted copy, use a regular campaign or draft in the inbox first then paste.

Sending

Tap Send. The system:

  1. Re-resolves your selection (in case state changed since you opened the modal)
  2. Filters to reachable recipients for the chosen channel
  3. Excludes recently-messaged (last 7 days) if that's still ticked
  4. Excludes opted-out, blocked, archived
  5. Creates a marketingCampaigns row (status: sending), a send-job row, and queued recipient rows
  6. Returns the modal to a live progress state

The server-side cron worker drains the queue in 10-recipient SMS batches every minute (1-second delay between batches) or 50-recipient email batches (200ms delay). For 500 SMS recipients, expect the send to take about 50 minutes total; 500 emails take about 2 minutes.

Tip

Closing the tab doesn't cancel the send. The cron worker keeps processing the queue regardless of whether the modal is open.

Progress and cancellation

While the send is running, the modal shows:

  • Progress bar: {processed} of {total}
  • Failed count (if any)
  • Cancel button (enabled while status === processing)

Tap Cancel to stop. Already-sent messages stay sent — SMS and email can't be recalled. The remaining queue is marked cancelled and no further messages go out.

The modal polls status every 2 seconds, so progress updates feel live.

Quiet hours and DND

If your venue has quiet hours configured, the worker pauses during that window — the job's lock naturally expires after 90 seconds and the worker tries again on the next tick. You'll see the job in sending status across the quiet-hours window; it resumes draining when quiet hours end.

NZ note

SMS Bulk Compose isn't available in New Zealand (NZ doesn't have the SMS infrastructure). NZ venues see email-only on the Bulk Compose modal.

Idempotency

Every Bulk Compose has an idempotency key generated client-side (24-hour TTL). If you accidentally double-tap Send (network blip, page refresh during submit), the second attempt returns the same campaign — no double-send.

Limits

What Limit
Recipients per Bulk Compose 500
SMS body 160 chars/segment, destructive at 480+
Email subject No documented hard cap
Email body No documented hard cap
Idempotency window 24 hours
Recently-messaged dedup 7 days

Role access

Action Owner Manager Stylist
Open Bulk Compose Yes No No
Send Yes No No
Cancel mid-send Yes No No

Owner-only feature. Managers and stylists can use the inbox for one-to-one replies but can't send broadcasts.

On the FREE plan

Bulk Compose isn't available on FREE. The button shows an upgrade prompt instead.

Common mistakes

Problem What to check
Send is disabled Either your wallet is short or the message is empty. Check the preview's cost panel.
Recipient count is much lower than I selected Look at the preview breakdown — recently-messaged, no-contact, opted-out filters can each drop a chunk.
Cap exceeded warning at 500 Save your selection as an audience and run it via a regular campaign with multi-wave support.
Send went to "sending" then never finished Check the cron worker status with support if it's been over an hour for an SMS send or 10 minutes for email.
Cancel didn't seem to do anything Already-sent recipients stay sent. The Cancel only stops further sends from the queue.
Mobile send timed out The send is queued server-side — close and reopen the modal to see live progress. The worker will keep draining.

FAQ

When should I use Bulk Compose instead of a campaign?

Bulk Compose is for one-off broadcasts to clients you've selected manually right now. Up to 500 recipients, immediate send, no scheduling, no multi-wave. For larger audiences, scheduling, or campaigns you'll run again, use a regular campaign.

How does the recently-messaged dedup work?

Bulk Compose ticks a 'Skip recently-messaged (last 7 days)' checkbox by default. Clients who received any campaign in the last 7 days are excluded so they don't get back-to-back messages. The preview shows how many are filtered.

Can I cancel mid-send?

Yes. While the send is running, tap Cancel in the modal. Any recipients already sent stay sent — they can't be recalled. The remaining queue is marked cancelled and no further messages go out.

What's the maximum size?

500 recipients per Bulk Compose. Selections beyond that prompt you to save the selection as an audience and run it through a regular campaign instead.

Is there an AI draft option?

Not in Bulk Compose. The body is operator-typed only. If you want AI drafts, use a regular campaign with Write with AI, or draft in the inbox first then paste the result.

Does Bulk Compose appear in my campaigns list?

Yes — each Bulk Compose creates a real campaign record (Bulk send · {date} · {count}) so it shows in your campaigns history. Useful for reviewing what went out and when.

Related Articles

  • Managing Customers
  • Saved Audiences
  • Creating SMS Campaigns
  • Creating Email Campaigns
  • SMS Allocation and Limits
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.