HQ Campaigns (HQ dashboard → Campaigns, under Franchise Ops in the sidebar — `/app/hq/[orgId]/campaigns`) lets a franchisor draft one SMS or email blast with merge tags and dispatch it straight to customers at every shop in the network, instead of asking each location to write and send its own. This is an HQ-level feature: it lives under the HQ dashboard and requires the org to have the HQ add-on enabled. It's a separate feature from the single-shop Campaigns page under Growth & Marketing that an individual location uses to blast its own customer list — the two aren't connected, and a location's own team doesn't build or trigger an HQ campaign. HQ does, from this page, in one action.
Building a campaign
Click New campaign to open the builder. You'll fill in:
- Internal name — for your own reference in the campaign list; customers never see it.
- Channel — SMS or Email.
- Audience — All customers, Lapsed 90+ days, Lapsed 180+ days, High-LTV (top 25%), or New (last 30 days). This is evaluated separately at every targeted shop against that shop's own customer records — a "Lapsed 90+ days" send doesn't pull from one master list, it re-runs that same targeting logic at each location.
- Email subject — only appears when Channel is Email.
- Message body — text with three merge tags you can drop in anywhere: `{firstName}`, `{shopName}`, and `{bookingLink}`. Each is resolved per recipient at send time — `{shopName}` becomes that customer's own shop's name and `{bookingLink}` becomes that shop's own booking page, so one template reads as locally relevant everywhere it goes.
- Schedule (optional) — a date/time you intend to send by.
Save campaign requires a name and at least 5 characters of body text. It saves as Draft, or Scheduled if you set a schedule date.
Reviewing and sending
A Draft or Scheduled campaign shows a Send now button. Clicking it opens a confirmation dialog that first estimates how many customers will actually receive it — the total recipient count across every targeted shop, plus how many were excluded for being opted out of marketing (or, for SMS, opted out of texts). Click Confirm & send to actually dispatch: SalesThumb resolves the live customer segment at every shop, personalizes the merge tags per recipient, and sends the messages right then. There's no intermediate step where a shop has to review or push the campaign out themselves — one HQ click is the entire dispatch. Send now is only available while a campaign is Draft or Scheduled; once you confirm, it moves to Sending and then Sent, and a Sent campaign can't be reopened, edited, or sent again.
A Schedule action is also available directly on a Draft campaign in the list, which flips its status to Scheduled.
Who can do this
Any org member with HQ dashboard access can open this page, see the campaign list, and preview recipient counts. Creating a campaign, changing its status, and sending it are gated further — by default only ORG_OWNER and ORG_ADMIN can do those, through a permission your org owner can also extend to other roles. Either way, the org needs the HQ add-on enabled, or none of this page's actions are available.
What your shops see
Shop-level staff don't have their own version of this page and don't take any action to "push out" a campaign themselves — HQ's single Send click is the entire dispatch, start to finish. What a shop's own team does see: every message an HQ campaign sends to their customers is recorded in that shop's own customer conversation history, right alongside anything the shop sent itself, so a location can always see exactly what its customers actually received. This is unrelated to a shop's own Campaigns page (Growth & Marketing → Campaigns), which a location uses to send its own one-off blast to its own list.
Things to know
- The current builder always targets every shop in the org. The underlying campaign record can be scoped to a specific roster of shops, but the New Campaign dialog doesn't expose a shop picker yet, so in practice every campaign goes network-wide.
- Recipients are filtered the same way any other SalesThumb blast is: only customers with marketing opt-in on, and — for SMS — not opted out of texting. Seed/demo customer records are always excluded automatically.
- A single send caps at 5,000 recipients per shop, and a shop that's paused, over its own messaging cap, or on a plan tier without SMS is skipped for that campaign rather than blocking the send for every other location. Shops running their own Twilio account (Bring Your Own Carrier) are exempt from the shared caps. Neither of those situations is currently shown anywhere on this page after you send — the only recipient number you see is the pre-send estimate.
- Recipient-count previews are rate-limited to 120 per hour per org — generous for normal back-and-forth tweaking, but there as a safeguard against a runaway loop.
- Nothing about a saved campaign — name, channel, audience, or message body — can be edited after creation; only its status can change. To fix a typo or change an offer, you create a new campaign.
- The Schedule field and button set a status label, not a timer. Setting a schedule date at creation, or clicking the list's Schedule button on a Draft campaign, moves it to Scheduled — but nothing sends it automatically when that time arrives, and the list's own Schedule button doesn't even set a date. Someone with permission still has to open it and click Send now.
- A Sent campaign is permanent — no un-send, no reopen, no resend from this page. A duplicate send attempt, like a double-click or two admins both hitting Send at once, can't double-message the same customers; only the first attempt actually dispatches.
Frequently asked questions
Q: Who can build and send an HQ campaign?
A: Any org member with HQ dashboard access can view campaigns and preview recipient counts, but creating, scheduling, or sending one requires ORG_OWNER or ORG_ADMIN (or another role your org owner has explicitly granted that permission to), on an org with the HQ add-on enabled.
Q: Does an HQ campaign go to every shop, or can I limit it to a few locations?
A: Today it goes to every shop in your org — the New Campaign builder doesn't have a per-shop opt-in picker yet, even though the underlying campaign record supports scoping to a specific list of shops.
Q: Do shops have to do anything to send the campaign, or does HQ send it directly?
A: HQ sends it directly. One Send now click from HQ dispatches the messages to every targeted shop's customers immediately — no location has to take any action, and there's no separate approval or push step on the shop side.
Q: If I set a schedule date, will it send automatically?
A: No, not yet. Setting a schedule date only moves the campaign's status to Scheduled. Nothing sends it automatically when that date arrives — someone with permission still has to open the campaign and click Send now.
Q: What happens to a shop that's over its messaging cap or doesn't have SMS on its plan?
A: That one location is skipped — the campaign still sends to every other targeted shop. Shops on their own Twilio account (Bring Your Own Carrier) aren't subject to the shared caps at all.
Q: Can I edit a campaign after I've saved it, or resend one that already went out?
A: You can't edit a saved campaign's name, channel, audience, or message — only its status. And once a campaign has actually sent, it's done; there's no way to reopen, edit, or resend it from this page.