Skip to content

Automations ​

Automations send emails and texts, notify your team, update customer records and book follow-up appointments when something happens in your shop — without anyone lifting a finger.

Go to Settings → Automations to manage them.

The Idea ​

Every automation follows the same pattern:

When something happens (the trigger), only if certain conditions are met, then run these steps in order, with waits between them where you want them.

For example:

  • When an appointment is a no-show → wait 1 hour → email a link to rebook.
  • When a sale completes → wait 7 days → email asking for a review.
  • When the wedding date is 30 days away → email a final prep checklist.

The Automations Page ​

The list shows every automation you have, with four figures across the top:

FigureWhat it counts
RunningHow many are on, out of how many you have
Sent, last 30 daysEmails and texts that actually went out
Waiting to sendMessages scheduled but not yet due — a 7-day follow-up waiting for its day
Needs attentionAutomations that are on but can't run as written (see Needs Attention)

Each row shows what starts it, how many steps it has, whether it's on, what it sent in the last 30 days, what's waiting, and when it last ran. The switch at the end turns it on or off; the ⋯ menu opens it, shows its runs, duplicates it, or deletes it. Click anywhere on a row to open it.

Search, or filter by trigger or status, to find one in a long list.

Starting From a Template ​

Click + New automation. You can start from a working flow in the library, or from a blank trigger.

Each template card names the trigger it uses and how many steps it has. Pick one and the automation is created, off, and the editor opens on it so you can change the wording, the timing or the conditions before turning it on.

StarterFires OnWhat It Does
Appointment booked — confirmation emailAppointment bookedSends a branded confirmation email right after a new booking
Post-sale — review request (7 days later)Sale completedEmails the customer a week after purchase asking for a review
Welcome after first purchaseSale completed (first sale only)Sends a welcome email the first time a customer buys
No-show follow-upAppointment marked no-showEmails a rebook-us-please message an hour after the no-show
Post-appointment thank you + reviewAppointment completedTwo hours after the appointment, sends a thank-you + review request
Layaway overdue — email + SMS reminderLayaway marked overdueEmails immediately, then texts an hour later
Wedding — 7-day final prep reminderWedding date approachingSeven days before the wedding, sends a final prep checklist
Wedding — 30-day countdownWedding date approachingOne month out, sends an excited "you're a month away!" email

Blank gives you a trigger and nothing else. Every new automation starts off; nothing runs until you turn it on, and then only for things that happen from then on.

The Editor ​

The editor draws your automation as cards, top to bottom, with a panel on the right for whatever card you click.

The Canvas ​

  • The When card at the top is the trigger.
  • An Only if card under it holds the conditions, when there are any.
  • Each step is a card. A Wait before a step is its own card, so you can see the timing at a glance.
  • The + between cards adds a step there. Click it and the panel lists what can go in that spot: messages, a wait, conditions, record changes. A kind that doesn't fit shows why instead of its description — a Wait at the very end, say, with no step for it to wait for.
  • The badge in the corner of each card is green when it's fully set up and amber when something needs attention. Click the card to see what.
  • The number on a card is how many times that step ran in the last 30 days, with a blue +N for runs still waiting.

Use the zoom control at the bottom-left if a long automation runs off the screen.

The Panel ​

With nothing selected, the panel summarizes the automation — what starts it, how many steps, what kind of messages — and says whether it's ready to turn on.

Click a card and the panel shows its settings. Edits land on the canvas as you type. Done (or Save step) closes the panel; Cancel puts the card back the way it was when you opened it. Neither one saves to the server.

Saving ​

Save in the header sends all your changes live at once. It lights up when something has changed, and ⌘S / Ctrl+S works too. Leaving the page with unsaved changes asks you first.

Two things worth knowing about what Save does and doesn't do:

  • New runs follow what you saved. The next time the trigger fires, it uses your new wording, timing and conditions.
  • Messages already waiting keep what they were scheduled with. A 7-day follow-up that's been waiting four days goes out on day seven, with the wording it had when it was scheduled. Editing never changes or cancels a message that's already in the queue.

The name is edited in place: click it in the header, type, and press Enter.

When ​

Click the When card to choose what starts the automation.

Available triggers:

TriggerFires When
Appointment bookedA new appointment is created
Appointment cancelledAn appointment is cancelled
Appointment rescheduledAn appointment is moved to a new time, including by the customer herself
Appointment approachingN days before an appointment, on the morning of that day
Appointment completedAn appointment is marked completed
Appointment no-showAn appointment is marked no-show
Sale completedA sale/order is finalized. Carries the total, the payment method, whether it's her first, and the product types on the order
Refund issuedA refund is processed
Layaway createdA new layaway plan is started
Layaway payment receivedA payment is applied to a layaway
Layaway overdueA layaway is marked overdue
Special order placedA special order is created — on the Special Orders page or by ringing one up at the register. Carries the vendor and the product type
Special order arrivedA special order is marked received. Carries the balance still owed, so a reminder can name the amount
Special order balance overdueA dress has arrived, its balance due date has passed, and money is still owed. Fires once, on the day it tips over
Quote sentA quote is sent to a customer
Quote acceptedA customer accepts a quote
Contract sentA contract is sent for signature
Contract signedA contract is signed
Customer createdA new customer is added
Customer birthdayOnce each year on the customer's birthday
Wedding date approachingN days before the customer's wedding date
Wedding date passedN days after the customer's wedding date — 365 for her first anniversary
Order from your online storeAn order comes in from a connected Shopify, WooCommerce or FluentCart store
Customer field changedA specific customer field changes value

Boutiques with the Tux Rentals module also get the rental triggers; see Tux Rentals.

The trigger panel also holds two settings that apply to the whole automation:

  • Kind of messages — Transactional (confirmations, reminders, receipts) go to everyone with an email on file. Marketing (invitations, offers, review requests) go only to customers who have opted in to marketing.
  • The same customer may start it again after — the cooldown. Within this window a second start for the same customer is skipped and logged as such, so a bride who books twice in an afternoon gets one confirmation. Set it to 0 to let every event start it.

Reminding someone before their appointment ​

Choose Appointment approaching and a Days before the appointment box appears. Put 2 in it and the automation runs two days ahead of every appointment — or 7, or 1. It needs a number: left blank, the automation never runs, and the card says so.

Two things worth knowing before you build one.

It's checked once each morning, not to the hour. A 2-day automation runs on the morning two days before the appointment date, not exactly 48 hours before her appointment time. For a reminder that's usually what you want — she reads it over breakfast rather than at 4pm.

You may already have what you're after. BridalOp sends 48-hour and 24-hour appointment reminders on its own, and those are accurate to the hour. If all you want is "remind her two days out", that's already happening — check Settings → General before building anything. This trigger is for when you want your own version: your wording, a text instead of an email, a nudge to the consultant, a tag on the customer, or a window the built-in reminders don't cover.

Cancelled, no-show and completed appointments are skipped. A customer with two appointments on the same day gets one message, not two.

Before or after the wedding ​

The wedding-date trigger asks for a number of days and before or after the wedding. Before is the countdown — a prep checklist at 30 days, a "wedding week" note at 5. After is for afterward — a thank-you at 14 days, a review request at 92, an anniversary at 365. Like the appointment reminder, it's checked once each morning.

Each automation only runs on its own day. Two wedding automations, one at 30 days and one at 7, each fire once, on their own day.

Only If ​

Click the Only if card — or add one with the + under the trigger — to run only for customers or events that match.

Each condition is field · operator · value:

  • Event type · is · wedding
  • Sale total · is more than · 1000
  • What was bought (product type) · contains · Gown
  • Client Type (a custom field) · is · Bride – Lead

Fields come from three places: what the trigger carries (the appointment type, the sale total, which store an online order came from), the customer (event type, source, tags, opt-ins, wedding date, consultant, location), and your custom fields. Where a field has a fixed set of choices — appointment types, product types, a custom dropdown — you pick from the list rather than typing, so a value can't be misspelled into something that never matches.

All of these, or any of these ​

A group of conditions is either All of these (every rule must be true) or Any of these (one is enough). To say Client Type is Bride – Lead or Bride – Purchased, put both rules in one group and set it to Any of these. With All of these, a customer would have to be both at once, which is impossible, and the card tells you so.

For rules like Client Type is Bride or Mother, and she bought a gown, add a group: the outer group is All of these, with the two Client Types in an Any of these group inside it.

Only when they bought a particular kind of thing ​

Sale completed and Special order placed both carry what was bought, as a product type. Condition on it to send one email when someone buys a gown and a different one for a mother-of-the-bride dress:

Trigger: Sale completed
Only if: What was bought (product type) contains Gown
1. Send email "Your gown — what happens next"

Two things worth knowing:

  • The operator is "contains", not "is". One sale is routinely a gown, a bridesmaid dress and a pair of shoes, so this field holds a list. Picking it switches the operator for you.
  • A sale matches if any line is that type. An order with a gown and a veil matches both a Gown rule and a Veil rule. To match either a gown or a mother-of-the-bride dress, put the two rules in an Any of these group; with All of these, the sale would need both.

A special order is one product, so it carries a list of one and the same rule works either side.

Wait ​

A wait pauses before the step under it. Add one with the + above a step, then set how long — minutes, hours, days or weeks. A wait counts from the previous step, or from when the automation starts if it's first.

Texts never go out during quiet hours (9pm–8am in your boutique's time). A text whose wait lands in that window goes at 8am.

Steps ​

Actions ​

ActionWhat It Does
Send an emailSends a branded email to the customer. Three ways to write it: in your boutique's branded layout, from a saved template, or as raw HTML that bypasses the layout. The Test tab shows it made up before anyone gets it (see Preview)
Send a textSends a text via your Twilio number. The Test tab shows it made up, with what it splits into. Skipped automatically if the customer has no phone, opted out of texts, or you're out of credits
Notify staffA bell notification in BridalOp for everyone on the team, everyone with a role, or one person
Update a customer fieldSets a built-in customer field (event type, source, consultant, wedding date…) or one of your custom fields, or adds or removes a tag
Move between categoriesAdds a customer to one or more of your client categories and removes her from others. Because your mailing list segments on categories, this moves her in Klaviyo (and Mailchimp, and the rest) too
Book an appointmentSchedules a new appointment on your calendar. Respects your business hours, fitting room capacity, holidays and existing appointments — if the requested slot isn't available, finds the next open one within 14 days
Send a contractCreates a contract from a contract template you pick, links it to the record that fired the trigger, and emails/texts the customer to sign it. Needs at least one Contract Template

Each step's panel has its own form. Steps can be moved up or down with the arrows in the panel footer, and deleted there too.

Move Between Categories ​

Your client categories — "Bride – Lead", "Bride – Purchased", "Bridesmaid", whatever you've set up — are what your mailing list segments on. Klaviyo keeps a list per category and BridalOp keeps that list in step, adding and removing contacts as the categories change.

What this step does is move somebody without you having to remember to. Tick the categories to add to and the ones to remove from, and when the trigger fires, both happen.

The usual one:

Trigger: Sale completed
1. Move between categories
   Add to:      Bride – Purchased
   Remove from: Bride – Lead

From that point on she stops receiving your "still looking for the one?" campaign and starts receiving whatever you send people who've bought — alterations reminders, accessories, the lot. Nobody has to move her by hand, and nobody gets a lead email a week after spending four thousand dollars with you.

A few things worth knowing:

  • The mailing list is updated straight away, not on the next nightly sync.
  • A customer who hasn't opted into marketing isn't pushed anywhere. Her categories still change in BridalOp — that's your record — but nothing is sent to your mailing list, because she hasn't agreed to be on it.
  • Deleting a category later doesn't break the automation. It's checked when the automation runs, so a category that no longer exists is simply ignored rather than failing the whole run.
  • Categories are managed under Settings → Customer Fields. If you have none yet, the step will tell you so.

Send a Contract ​

Pick a contract template, and when the trigger fires, BridalOp generates that contract from the template, links it to the record that triggered the automation, and sends the customer a signing link by email (and text, if they have a phone on file).

  • When a special order is placed → send the Special-Order Agreement (linked to that special order).
  • When a sale completes → send the Off-the-Rack Purchase contract (linked to that order).

The record it links to depends on the trigger, so merge fields like the order number, product or size are filled in from the right record. The step is skipped if the customer has no email address, since there's no one to send the signing link to.

Multi-Step Example ​

A "welcome new lead" drip:

When: Customer created
1. Send email "Welcome to {{boutique.name}}!"
2. Wait 2 days → Send text "Hi {{customer.first_name}}, ready to book? Tap here: {{boutique.booking_url}}"
3. Wait 5 days → Update field source → "engaged-lead"

And the one most boutiques want on day one:

When: Sale completed
1. Move between categories — add "Bride – Purchased", remove "Bride – Lead"
2. Wait 3 days → Send email "How are you feeling about the dress?"

Needs Attention ​

As you edit, BridalOp checks the whole automation and marks any card that can't do what it says. The panel lists the reasons in plain words. Among the things it catches:

  • A reminder or wedding-date trigger with no day count — it would never run.
  • A condition on a value the field doesn't offer, like a Client Type that isn't one of that field's choices, or an appointment type that doesn't exist.
  • A condition the trigger can't answer — left over from switching triggers.
  • Two "is" rules on the same field joined with All of these, which can never both be true.
  • An email with no subject or body, a text with no message, a notification with nobody to notify, a contract step with no template, a category step with nothing ticked.
  • A merge tag this trigger doesn't carry, which would come out blank in front of a customer.

An automation with a blocking problem can't be turned on — the switch tells you what to fix first. One that's already on keeps its state, but the list marks it Needs attention and the status reads On, can't run until it's fixed. Saving is never refused; you can fix one thing at a time.

Merge Tags ​

Every text field — subject, body, text message, notification title — takes merge tags, replaced with live values at send time. Click Insert a merge tag… under the field in the panel and the tag drops in at your cursor.

Common tags:

NamespaceExamples
Customer{{customer.first_name}}, {{customer.full_name}}, {{customer.email}}, {{customer.phone}}, {{customer.wedding_date}}
Customer custom fieldsOne per custom field under Customer Fields. Inserted by the field's id, like {{customer.field.5}}; the field's name works too, like {{customer.field.Client Type}}
From the triggerDepends on trigger — see the appointment tags below
The appointment this booksIf an earlier step books an appointment, later steps can use {{new_appointment.start_at}} and {{new_appointment.end_at}}
Boutique{{boutique.name}}, {{boutique.phone}}, {{boutique.email}}, {{boutique.address}}, {{boutique.website_url}}
Links{{boutique.booking_url}}, {{boutique.lookbook_url}}, {{boutique.gift_card_url}}, {{boutique.portal_url}}, {{boutique.review_url}}
Per-location booking{{location.slug.booking_url}} — shown only if you have more than one location
Time{{now}}, {{today}}

Appointment tags, available on the appointment triggers (booked, cancelled, completed, no-show, rescheduled, approaching):

TagGives you
{{appointment_date}}Saturday, September 19, 2026
{{appointment_time}}10:00 AM
{{appointment.starts_at}}Both together — Sep 19, 2026 10:00 AM
{{appointment.type}}The appointment type, e.g. Bridal Appointment
{{appointment.manage_url}}That customer's personal link to reschedule or cancel
{{appointment.staff_name}}The assigned consultant, where one is set

Writing a sentence? Use the separate date and time

{{appointment.starts_at}} prints the date and time together, which reads awkwardly mid-sentence:

We'll see you on Saturday, September 19, 2026 at Sep 19, 2026 10:00 AM

Use {{appointment_date}} and {{appointment_time}} instead and it reads how you meant it:

We'll see you on Saturday, September 19, 2026 at 10:00 AM

Replacing the built-in confirmation? Include the manage link

If you write your own booking confirmation and switch off the built-in one under Settings → General → Booking confirmation, include {{appointment.manage_url}} somewhere in your email.

That link is how a customer reschedules or cancels her own appointment. It only exists in the built-in email by default, so leaving it out means every change of plan arrives as a phone call instead.

Dates in merge tags are formatted in the boutique's timezone (e.g., "May 15, 2026 2:00 PM"), not as raw timestamps.

Relative Dates in Booking ​

The "Book an appointment" step's Start time uses a structured picker:

  • Relative to an event — compose expressions like "7 days before the customer's wedding date, at 10:00."
  • Specific date — a plain date/time picker for fixed scheduling.

You never have to write merge-tag arithmetic by hand.

Preview ​

Every email and text step has a Test tab in its panel. Preview with a sample bride makes the message up exactly as it will go out — merge tags filled in, your branded layout around it — and sends nothing.

Use it while you're writing. A test on a customer is the other way to see one of these, and that one genuinely sends.

What you see:

  • Email — the subject line, and the finished email in your boutique's layout, logo, footer and all. Raw HTML is shown as it will land, without the layout.
  • Text — the message as a chat bubble, the character count, and how many texts your wording splits into.

The sample it uses. The customer is invented — Sarah Whitfield, a wedding nine months out, an appointment in three days, a $2,450 sale with $1,225 still owed. Your boutique's own name, address and phone are real, because those come from your settings and you should see them exactly as she will.

Merge Tags That Came Out Blank ​

If a tag resolved to nothing, the preview lists it in an amber panel rather than quietly showing you a gap. Two reasons it happens:

  • The tag is misspelled. is a tag; is not, and prints as nothing.
  • The trigger doesn't carry it. means nothing on a trigger about a layaway payment. Every trigger carries the customer tags; the rest depend on what fired.

Left alone, either one is a blank space in front of a customer — "Hi ," is the classic. The editor flags these on the card as you write, and the preview shows you the result.

How Many Texts ​

The text preview counts the way a phone carrier does, not by characters alone.

  • A plain message fits 160 characters in one text; longer, and it splits at 153 characters apiece.
  • One character outside the standard alphabet — an emoji, a curly quote, an em dash (—) — drops the whole message to 70 characters per text, 67 once it splits.
  • Accented letters common in boutique names — é, ü, ñ, à — are in the standard alphabet and cost you nothing.

Whatever it splits into, BridalOp charges one credit per message sent, not one per part. See SMS Credits.

Test Runs ​

To see the whole automation run for a real customer, open the ⋯ menu in the header and choose Test on a customer. Search by name, email or phone, and click Run it.

A test:

  • Bypasses the cooldown — it always starts.
  • Still respects consent — text opt-outs and marketing opt-outs are honored.
  • Still respects quiet hours — a text queued between 9pm and 8am waits for the morning.
  • Skips "Book an appointment" and "Send a contract" steps, so a test never puts anything on your calendar or creates a contract.
  • Runs even if the automation is off — you don't have to flip the switch to test.

Emails and texts do send. The run appears on the Runs tab marked Test.

Runs ​

The Runs tab lists every time the automation started: who it was for, when, how far it got, and how it ended. Figures across the top count the runs started, finished, waiting, and skipped or failed in the range you've chosen; filter by outcome or dates.

OutcomeMeaning
WaitingStarted; one or more steps still waiting for their time
DoneEvery step ran (some may have been skipped, which is fine)
SkippedNothing ran — within the cooldown, or she hasn't opted in to marketing. The reason is shown
FailedA step hit an error. The reason is shown

Click a run to see the steps it took: when each was scheduled, when it ran, and what happened — who was emailed, which field was updated, or why a step was skipped (no email on file, opted out of texts, out of credits). The panel on the right shows what started the run.

A skipped step doesn't fail the run — the steps after it still run.

Settings ​

The Settings tab holds the name and the description shown on the list, who created and last edited the automation, and Delete.

Deleting stops it starting runs; anything waiting to send is skipped. Its run history is kept. If you only want it quiet for a while, turn it off instead.

Turning On and Off, Duplicating ​

  • On / off — the switch in the header or on the list. New automations start off. Turning one on only affects things that happen from then on. Turning it off skips any messages that were waiting to send.
  • Duplicate — in the ⋯ menu. Copies the automation with its conditions and steps, names it "… (Copy)", and starts it off. Useful for a family of similar automations, like one message per appointment type.

Safety Rails ​

A few things happening automatically in the background so automations don't embarrass you:

  • Per-customer cooldown — prevents the same automation firing twice for the same customer within the cooldown window. Default 24 hours.
  • Consent — marketing automations skip customers who haven't opted in. Text steps always skip customers who've opted out.
  • Quiet hours for texts — no texts between 9pm and 8am boutique-local time. Anything scheduled for that window goes at 8am.
  • One day window at a time — a reminder set for 7 days only runs on the 7-day pass, never on another automation's day.
  • Availability for booking — the "Book an appointment" step won't create conflicts with existing appointments, closed days, holidays, or fitting-room limits.

Permissions ​

The settings.automations permission controls who can view and manage automations. By default, it's granted to the owner and manager roles. Staff roles (consultant, tailor, receptionist) are not granted by default — you can toggle this under Roles & Permissions.