Appearance
Changelog
All notable updates, new features, and improvements to BridalOp.
v1.15 — October 7, 2026
Vendors
- Archive the vendors you no longer buy from. Archive on a vendor's profile takes her out of the pickers on new products, purchase orders and special orders, and off the Active list, while every gown she sold stays in your history and reports. The Vendors page has an Active / Archived toggle, and Restore brings one back. See Archiving a Vendor.
Data Migration
- We bring your sales history across. Moving from BridalLive, Poppy, Square or a spreadsheet now includes your sales: one order per original transaction, dated when it happened and on the right client's profile, with open balances still owed and returns as refunds. Products you no longer carry come in as history only, typed properly, and vendors you've dropped come in archived. You answer the judgment calls in a short review inside BridalOp before anything is imported. See Migrating From Another System.
Alterations
- Create a customer from the New Alteration form. A walk-in who's only here for alterations no longer has to be added under Customers first: + Create New Customer sits at the bottom of the customer dropdown, filled in with what you typed. See Creating an Alteration.
Reports
- The two bridal tiles agree. The Close Ratio (Bridal Gowns) tile on the Sales Dashboard now counts the appointment types you ticked under Set goals, the same as Bridal Appointments Booked, instead of only types with "bridal" in the name. If 38 are booked, the close ratio reads "x of 38." See Bridal appointments goal.
Lookbook
- Wider page, dropdown filters, photo beside the details. The lookbook now uses a 1140px page instead of the booking form's narrow column; the category and type filters are two dropdowns next to the search box, with the Grid / List / Masonry switch on the same row; and clicking a gown opens the photo on the left, whole, with the name, price and sizes on the right, so nothing needs scrolling. Phones still stack them. See What customers see.
Orders
- A paid special order says where the dress is. An order reads Completed when it's paid in full, which on a special order sale looked like the gown was done when it hadn't been placed with the vendor yet. The Orders list now shows the special order's status under the Special Order badge (Pending, Ordered, Received, or counts like "3 pending · 2 cancelled"), and the order page lists each special order with a link to it. See Order Statuses.
Products
- Sales History on the product page. A third tab next to Details and Add-ons lists every sale of the product, with units, revenue, first and last sale across all of them. See Sales History Tab.
- The product list shows active products by default. A new Status filter (Active, Inactive, All statuses) keeps retired products and migration history out of the list until you ask for them.
- The inventory item editor has room to breathe. Editing an item on a product's page opens a full-width row under it instead of squeezing the fields into the table's columns.
Customer Forms
- Duplicate a form. Duplicate on the forms list copies a form with every question so a second intake form can start from the first. The copy starts inactive and opens for editing. See Form Templates.
Contracts
- Create a contract from the alteration. Create Contract in an alteration's sidebar opens the contract form with the customer chosen, the alteration linked, and your Alteration template loaded when you have one. The work order lists its contracts. See Contracts on an alteration.
- Alteration merge tags. A contract linked to an alteration can fill in Alteration Due Date, Alteration Price, Alteration Tasks and Alteration Tailor, so an alterations agreement can name the date the work is promised for. See Merge Tags.
Fixes
- Paying off a balance on a special order sale no longer asks you to set it up again. The size and measurements form and the "tick Special order on at least one item" check belong to the first payment on a new sale. They were also stopping the final payment on sales brought over from another system, which have the deposit and the alterations on them but no special order record of ours. A balance payment now goes straight to the till.
- The PO you send a designer now carries the size. A purchase order line made from a special order printed "—" where the size should be, in both the email and the PDF, because it was reading a product variant the special order doesn't use. The vendor now sees size and color, style number, the bride's measurements, that vendor's add-ons from the sale, and the special order's notes. See Email Vendor.
- Owner alerts for staff-entered bookings. The New booking owner and manager alert only fired for online bookings, so an owner who switched it on and then watched her team enter appointments all day saw nothing. It now goes out for staff-entered appointments too, to everyone except the person who entered it. See Manager & Owner Alerts.
- The alteration ticket and barcode labels open instead of downloading. Print Ticket on an alteration, and Print Labels on inventory, now open the PDF in a new tab, where Print goes straight to your printer, the same as receipts. No more saved files landing in the wrong folder.
- Booking answers showed as blank on the profile. A booking question linked to a profile field saved its answer exactly as the question spelled it, and if the profile field spelled the same choice differently ("$2000-$3000" against "$2,000-$3,000") the profile's dropdown showed nothing. Answers are now matched to the profile field's own choices, and a value that still doesn't match is shown rather than hidden.
- A first payment is welcomed, not "renewed." The email a new boutique gets when her first payment goes through now says welcome and that her account is active, with the receipt details, instead of telling her a subscription she just started has been renewed.
- A removed Square Terminal that pairs again comes back. If you removed a terminal under Settings → Payments → Readers and then entered a new device code on it, Square paired it but BridalOp kept it hidden. Re-pairing now restores it. To ring something up outside BridalOp you don't need to remove the terminal at all: sign out of BridalOp on the device, do the sale in Square, and sign back in with a new code.
v1.14 — October 6, 2026
Automations
- A new editor. Your automation is drawn as cards — the trigger, an "Only if" card for conditions, each wait and each step — with a + between them to add one, and a panel on the right to set up whichever card you click. Conditions can be All of these or Any of these, with a group inside for rules like Bride or Mother, and bought a gown. Values with a fixed set of choices are picked from a list, not typed. Nothing about how your existing automations are stored changed. See The Editor.
- It tells you when something can't run. Every card is checked as you edit: a reminder with no day count, a condition on a value the field doesn't offer, two "is" rules that can't both be true, an email with no subject, a merge tag the trigger doesn't carry. The list marks these Needs attention, and an automation with a blocking problem can't be turned on until it's fixed. See Needs Attention.
- A Runs tab. Every run of an automation — who it was for, how far it got, how it ended — with a page per run showing what each step did and why anything was skipped. See Runs.
- Start from a working flow. New automations start from the template library or a blank trigger, and open straight in the editor. See Starting From a Template.
- Wedding date, before or after. One timing setting: a number of days and before or after the wedding. See Before or after the wedding.
- Special orders rung up at the register now fire Special order placed, the same as ones created on the Special Orders page.
Fixes
- A deleted automation kept running. One deleted while it was on carried on firing and sending. It stops now, and anything it had waiting is skipped.
- Reminders fired on each other's days. With a 7-day and a 30-day wedding automation, both fired at 30 days and again at 7. Each now runs only on its own day.
- Conditions on custom fields never matched. A rule on a custom field like Client Type read the wrong key and failed every time, and so did the matching merge tag and the update-field step. All three work now, whether the field is named by its id or its label.
- Conditions on "days until" never matched. They do now.
- An after-the-wedding count written as a negative "days before" was silently skipped; it now runs that many days after.
v1.13 — October 5, 2026
Payments
- Set your own tip percentages. Tips were fixed at 1%, 3% and 5%. Now you choose the three amounts under Settings → Payments → Tip Percentages, and they're used on your card readers and on invoice payment pages. Customers can still enter a custom amount or skip the tip. See Tip Percentages.
- No more no-show fees charged by accident. Saving an appointment as No-Show now asks first, saying exactly what will be charged and to which card. Charge it, mark the no-show without charging, or go back. See Marking a no-show.
- Refund a no-show or cancellation fee. Owners and managers can refund a fee from the client's Payments tab, straight back to the card it was charged to. See Refunding a fee.
- Choose where add-ons show in reports. Set Report sales under on an add-on, like Fees/Extra Charges for shipping, and its sales count toward that category on Category Sales, past sales included. Anything else without a category now shows as Add-ons, Deposits or Custom items instead of "Uncategorized." See Vendor Add-ons.
- Add-ons can be untaxed. Untick Taxable on an add-on like shipping or delivery, and it comes into the POS with tax off. See Vendor Add-ons.
Client Communications
- See what's scheduled to go out. A client's Communications tab now starts with Scheduled: the emails and texts your automations are waiting to send her, and her 48- and 24-hour appointment reminders, with dates and times. See Communications Tab.
- Every text shows up. Texts sent to a number saved with formatting, like (918) 855-0112, weren't showing on the client's Communications tab. They all do now.
- Send your own emails by hand. Email Customer now lists the emails you wrote in your automations too, and fills in the date, time and reschedule link from her next appointment, so you can resend a confirmation yourself. See Emailing a Customer.
Booking
- Update a client's categories as you complete her appointment. Marking an appointment Completed asks whether to change her categories, like "Purchased Here" or "Not Purchased," and tells you whether she bought anything today. See Updating her categories.
- Reschedule cutoff. Stop clients rescheduling online too close to their appointment. Set the hours under Settings → Booking, and inside that window her confirmation link asks her to call you instead. See Reschedule cutoff.
- Same-day online booking works. With a short minimum notice, clients can now book and reschedule online for later the same day. Before, they were shown the times and then turned away.
POS & Special Orders
- Measurements before the contract. On a Special Order sale, Add Size & Measurements in the cart lets you enter them during the fitting. Pay then goes straight to payment, and the contract's size and measurement fields fill in. See Special Order Payment.
- Choose which items are special ordered. On a Special Order sale, each item in the cart has a Special order checkbox. Gowns and dresses are ticked automatically, and accessories aren't. Only ticked items are ordered from the vendor, and the rest are sold from stock. See Which items are special ordered.
Reports
- Look back at any month. The Sales Dashboard has a Month menu, so you can see any of the last 24 months, its quarter, and the year through it. See Looking at an earlier month.
- Bridal appointments goal. A new Bridal Appointments Booked tile, with a monthly goal you set, shows how you're tracking, like "17 of 20." See Bridal appointments goal.
Goals
- See how you're tracking at a glance. Revenue tiles on the Sales Dashboard show progress against your Sales Goals for the month, quarter and year, in green, yellow or red depending on your pace. See Goals on the Sales Dashboard.
- Department goals. Set monthly goals for just the departments you care about, like Gowns or Alterations, and track them on the Sales Dashboard.
- Bridal goals by month. Set a different bridal appointments goal for each month, to match your seasons.
- Appointments count the whole month. The appointment tiles now count everything on the calendar for the month, including what's still to come. They were only counting up to today. The bridal tile also shows how many are still to come.
Products & Orders
- Photos straight from your phone. Large photos are resized as they upload, so photos from an iPad or phone go straight in. If one can't be uploaded, you're told why. See Product Images.
- Edit an item's cost. The inventory table on a product page has a Cost column, editable along with status, location and condition. See Inventory Items Table.
- See what an item cost you on the order. Each line on an order links to its product and shows Our cost, for staff who can see products. See Line Items.
- Re-importing products doesn't duplicate them. Products are now recognized by name and vendor when there's no SKU or style number, and Update existing never adds inventory items to a product you already have. Put each size or color on its own row to import variants. See Products & Inventory Import.
Inventory & Permissions
- Filter your inventory. The inventory list now filters by vendor, category, product type, location and condition, on top of search and status. See Search & Filters.
- Costs are for owners, managers and accountants. The products.cost permission now covers every place a cost appears: product pages, the product and item forms, and order lines, not only the inventory list. Consultants, receptionists and tailors no longer see what you paid. See Seeing costs.
Shopify
- Install from the Shopify App Store. The Online Store page can send you to the Shopify App Store to install BridalOp, and you come straight back connected, with no store address to type. See Connecting Shopify.
- Signing in during a Shopify install connects your existing account. The sign-in page names the store you're connecting and doesn't offer to create a new account. Opening BridalOp from your Shopify admin takes you straight to your Online Store page.
Fixes
- No more overbooking fitting rooms. Online booking now checks that a room is free for the whole appointment, at its busiest moment, so a time isn't offered when all your rooms fill partway through. See How Fitting Rooms Affect Availability.
- A fitting room can't be double-booked. Rooms already in use at that time are marked in use when you assign one, and saving into one is refused. See One appointment per room.
- Saving General settings no longer wipes your business hours. That was making the booking page show no available times.
- Clients who paid a deposit when booking online now get your booking-confirmation automations.
- Email receipts show each item's price, not $0.00.
- Margin reports count the cost of every item sold, not just items added at the POS, so margins no longer read 100%.
- Uploading to a client's Internal Documents works again.
- The emails telling your boutique about a canceled or changed appointment send reliably again.
- The Rescheduled from note on an appointment shows the original time correctly. It was showing four hours early in Eastern time.
v1.12 — September 30, 2026
Staff Scheduling
- Time off requests. Your team asks for time off from My Schedule, for whole days or part of one. Owners, and managers at their location, get an email and approve or deny it from Staff → Schedule, and the person is emailed the answer. See Time off.
- Approved time off follows through to booking. That person stops counting toward booking capacity for those times, and Build from patterns won't put them back on those days. Their shifts stay on the grid, struck through, so canceling the time off puts everything back as it was.
- Add time off for someone yourself. Add time off on the Schedule page goes straight on as approved.
- Book against your staff schedule is now a setting under Settings → Booking, rather than something support switches on for you.
Appointments
- Customers can ask for a stylist. Tick Customers can pick them when booking on a staff member's profile, and your booking page asks for a preferred stylist. The calendar then shows only times she's scheduled, not on time off and not already booked, and the appointment is assigned to her. See Preferred stylist.
- Set start times. Run your fittings in blocks: list the times a day's appointments start, like 9, 11, 1 and 3 on Saturdays, and the booking page offers only those. Anything that doesn't use a fitting room, like pick-ups and drop-offs, still books every 30 minutes, and your staff can still book any time. See Set start times.
Booking on Your Website
- Track bookings as conversions. The embedded booking form now tells your page when a booking is finished. On Google Tag Manager that's a
bridalop_booking_completeevent in your data layer, ready for a Google Ads or GA4 conversion with no code to add. See Tracking bookings. - Your own thank-you page after booking. Add a thank-you page from your website under Settings → Booking → After Booking, and clients are sent there once they've booked instead of seeing the BridalOp confirmation screen. Your ads and analytics can count each visit as a booking. Works on your booking link and on the embed, and the confirmation email doesn't change. See After Booking.
Purchase Orders
- Vendor discounts when receiving. Enter the dollars a designer took off each item as you receive the line, and the item comes into stock at the discounted cost. The PO keeps the original price alongside it, and totals, balances and reports all use what you actually paid. See Vendor discount.
v1.11 — September 14, 2026
Staff Scheduling — new module
- Who's working, and when. A new Schedule under Staff. Set the days somebody normally works on their own page — Staff → edit someone → Usual week — then Build from patterns turns those into real shifts for as many weeks ahead as you like, in one press. See Staff Scheduling.
- A day can hold more than one shift. A ten-till-two and a four-till-eight on the same Saturday is a normal thing to work, and the schedule can say it.
- Draft until you publish. Move a half-built week around all afternoon without the floor watching it change, then publish when it's ready. Your team sees their own week, and their hours, under My Schedule.
- Building again never undoes your edits. Move somebody's Monday to a late and rebuild, and you keep the late — you don't get a second Monday shift back at the original time.
- Booking that counts people, not rooms. Three fitting rooms and two people in shouldn't mean three appointments at once. Switched on for your store, how many can run at once becomes the smaller of your rooms and the people actually working — and a tailor in the back never makes a fitting slot bookable. Off until you ask for it, and ignored on any day with no published schedule, so a forgotten week can't close your calendar.
Bri can make changes now
- Ask her to do things, not just look them up. "Schedule Brittany Ward Tuesday from 9 to 3." "Block Tuesday the 15th from 4pm to 6pm." "Note on Sarah's file that she's allergic to tulle." "Add a new customer, Jane Doe, 555-1234." "Set up 20% off called Spring Sale." "Draft an invoice for Sarah, $450 for alterations." See Ask Bri.
- She always asks first. Bri tells you exactly what she's about to do — the full date, the full name, the amount — and waits for you to say yes. Read it before you agree; "Tuesday" is two different dates, and that's where you catch the wrong one.
- Where she stops. Discounts are created switched off, so nobody can use one until you turn it on. Invoices are drafts and are never sent. Two people with the same name stops her rather than making her guess. A likely duplicate customer stops her too. And she works with your own permissions — if you can't edit the schedule in BridalOp, asking Bri won't change that.
- She'll never take a payment, issue a refund, cancel or reschedule on a customer, email or text anybody, delete anything, or change your settings. Every change she does make is recorded in your Activity Feed against whoever asked for it.
- "What can you do for me?" is now the first suggested question, which is the quickest way to see the list.
Tux Rentals
- Scan the box, both ways. Scan the box on a party: scan each garment as you unpack it, then again as it goes into the return box. Before you seal it, the screen tells you what isn't in there. Your vendor rebills weekly for what they don't get back, and the only moment anybody would notice a missing vest is while the box is still open. See Tux Rentals.
- Both passes record the actual barcode, so when a vendor sends a garment under another garment's number you can show you returned exactly what you were sent.
- Package pricing. One look, several prices, depending on how much of it he takes — complete outfit, coat and trousers, coat only. Pick which pieces each price covers, then set each man's price on his own row. Anything beyond it is charged on top.
- Sizes that fit the garment. A coat is 46R and fits one box; trousers are a waist and an outseam, a shirt is a neck and a sleeve, shoes are a size and a width. The right fields now appear for whatever piece you're on.
- Belly added to the men's measurements — taken over the stomach at its fullest rather than at the waist, because it's what decides a portly cut.
Point of Sale
- A custom item. Not everything you sell is in Products. + Custom item at the top of the product grid takes a description, a price, a quantity and whether it's taxable, and puts it straight on the sale — without creating anything in your catalog. For the jewelry case, an alteration charge, or old stock from a vendor who no longer exists. See Point of Sale.
Inventory
- The Price column shows the selling price. It used to show what you paid, under a heading that said Price — which is a quiet way for somebody to quote your cost to a bride.
- Cost is now a permission. It appears as its own column beside the selling price, but only for people with products.cost — owners, managers and accountants by default. It's removed before the page loads rather than hidden on screen, so it isn't in the page source either, and a customer standing beside the screen can't read it. Take the permission off a role under Settings → Roles & Permissions to hide it from them.
Support
- Attachments open instead of downloading. Images open in a viewer you can page through, PDFs open in a new tab, and everything else still downloads. No more round trip through your downloads folder to read a screenshot.
v1.10 — September 11, 2026
Commissions
- Pay on what somebody sells in a month, not just on what they sold. A new Monthly tiers plan on Commission Rules: set the totals that unlock each rate, and the month's total picks one rate that applies to the whole month. $30,000 at a 5% tier earns 5% of all $30,000, not 5% of the part above the threshold. Tiers can be shared across the team or set per person, and there's no limit on how many you have.
- The cliff is shown to you as you set it up, in your own numbers — "at $24,999 this pays $499.98, at $25,000 it pays $1,250". Threshold pay jumps by design, and for a lot of shops that jump is the point; it just shouldn't be a surprise on a payslip.
- Each person is on one plan or the other. Per-line rates and monthly tiers answer different questions, so somebody moved to tiers earns nothing per line and all of their commission comes from the monthly settlement. Their old per-line rules are hidden rather than deleted — move them back and everything is as it was.
- A new Commission Settlements screen for closing a month: sales, refunds, the rate each person earned, and how far anyone is from their next tier. Settle one person or everybody at once. A month that hasn't finished can't be settled, because its tier isn't decided until it is, and a settled month stops recalculating — that figure is what went to payroll.
- You choose what a refund does to tiered commission: take it off the month it was refunded in (the default), off the month it was sold in, or leave commission alone. The default never reaches back into a month you've already paid.
- Nothing about existing commission changes. Everyone stays on per-line rates until you move them.
Tux Rentals — new module
- Suit and tux hire, for the party rather than the person. A new module — off unless you switch it on under Modules — that tracks a whole wedding or prom party: who's in it, what each man is wearing, what he measures, when it's due back and what he owes. Built for the ordinary case where your supplier ships the garments and takes them back, not for hiring out a rack you own yourself. See Tux Rentals.
- A board that tells you what today is, not a list. Overdue, deadlines this week, arriving, collecting, due back — and the panel that matters most: parties with a vendor deadline coming and people still to measure. Three weeks out with six of nine measured and nobody noticing is the failure this module exists to catch.
- One link the couple shares with everyone renting. They text it to the party; each person picks their name, puts their own measurements in, and your board fills up without a phone call. The shared page shows only the look, the date and who's done what — measurements, contact details and money sit behind each person's own private page. Anything entered this way is flagged as self-reported, because those are the numbers that produce a coat that doesn't fit on the Friday.
- Looks rather than items. A tux is a composition — coat, trousers, shirt, vest, tie — so you build the look once and dress the party from it. Change a look afterwards and nobody is quietly rewritten; you get a button that re-applies it and tells you who it couldn't touch.
- Measurements are versioned, never overwritten. Re-measuring keeps the old set, because a boy measured in February is a different size in June and "did we measure wrong, or did he grow?" is a question an overwrite destroys the evidence for. Men's and boys' field sets, and every set records where the numbers came from.
- Three sizes, not one — what was measured, what BridalOp suggested, and what you actually ordered. The suggestion shows its working, your supplier's own size chart wins over the generic rule, and ordering something different asks you to say why. When a coat turns up three sizes too big, that's what answers which number was wrong.
- A return checklist with a price on every line. The vest, the tie and the studs are what go missing, and your supplier bills you for each one. Everything is ticked by default and you untick what didn't come back. Damage only proposes a charge when the person didn't take the damage waiver.
- Nothing ever charges a card on its own. A late return is flagged with the amount worked out — from a return date that already accounts for days you're closed — and somebody presses the button. Recording what's missing and billing for it are separate permissions.
- Due dates don't assume Saturdays. Pickup moves back and returns move forward to a day you're actually open, from your booking hours and holiday closures. A Thursday wedding comes back Friday; a Saturday one comes back after the days you're shut.
- Prom parties run on the same spine, so the revenue report splits weddings against prom. It stays independent of the Prom module — dress exclusivity is about gowns, and nobody minds two boys in the same tux.
- Switching it on also gives you three appointment types, a rental agreement template to edit, a Tux Rentals report, and eleven automation triggers including one that warns you before a party misses its deadline. See Setting Up Tux Rentals.
v1.9 — September 10, 2026
Appointments
- An extra that actually holds the shop. Tick Takes the whole shop on an appointment extra and it stops being a charge and starts being a rule: choosing it only offers times when nothing else at the location is booked, and once it's on the books that time stops being offered to anyone else, however many fitting rooms are free. An extra called "Private Appointment" used to charge for privacy without delivering it — a second customer could book the room next door. It's a setting on the extra rather than a fixed feature, so a trunk show can use the same thing. If you deactivated a fitting room to fake this, turn it back on. See Takes the whole shop.
- You choose when the booking page asks about extras — before she picks a date, or after. Asking first is what lets the calendar only ever offer times that can genuinely be private, rather than letting her pick 11:00 and telling her two steps later that it won't work. The default is unchanged, so no existing booking page reorders itself. See When to ask about extras.
- Your staff aren't stopped by any of it. They still see those times, can book into them, and get a warning telling them what they've done instead of a locked door.
Automations
- Remind a bride a set number of days before her appointment. A new Appointment approaching trigger with a Days before appointment box — 2, or 7, or 1. Worth knowing it's checked once each morning rather than to the hour, and that BridalOp already sends 48-hour and 24-hour reminders on its own; this is for when you want your own wording, a text instead of an email, or a window the built-in ones don't cover. See Reminding someone before their appointment.
Products
- Variant photos can be added several at a time, the same as the main product photos. The variant slots took them one at a time, which was an oversight rather than a decision.
- Drag any photo into the order you want, on products and variants alike — the handle appears top-left when you hover. The first photo is the one the rest of BridalOp uses: the products list, the POS tile, invoice and order lines, and your lookbook. It now carries a Main badge so that relationship isn't invisible. Worth knowing a bulk upload arrives in the file picker's sort order rather than the order you clicked, so it usually still needs a drag. See Product Images.
Imports
A spreadsheet that isn't UTF-8 no longer kills the whole import. Excel routinely saves "CSV" in an older character set, and one accented character used to fail the entire upload with a message about JSON that told you nothing — 692 rows lost on a single file. Those files now import, and names like La Mariée keep their accent instead of being mangled.
A missing location column is no longer an error. Stock falls back to your primary location. This was by some distance the largest single cause of rejected rows. A misspelled location name only errors if you have more than one location — with a single boutique there's nowhere else it could have meant.
Product class accepts what people actually write — "Bridal Gown", "Shoes", "Accessories", "Prom & Homecoming", "MOB", "Evening Wear", "Tuxedos". Only the exact singular words were accepted before, which cost hundreds of rows.
Purchase price falls back to your cost column when the purchase-price column is blank, which is what most spreadsheets actually carry. See Products & Inventory Import.
Send a different email depending on what someone bought. Sale completed and Special order placed now carry the product type, so an automation can be conditioned on it — one email when a gown sells, another for a mother-of-the-bride dress. A sale holds a list, since one order is routinely a gown, a bridesmaid dress and a pair of shoes, so the operator is contains and the builder switches to it for you. Pair it with a step's wait time to send days after the sale rather than immediately. See Only when they bought a particular kind of thing.
Settings
Booking settings is now seven tabs instead of one long scroll. General, Booking Page, Payments & Fees, Appointment Types, Questions, Fitting Rooms and Extras. Seventeen sections on a single page meant everything you wanted was below the fold. Categories and appointment types share a tab, since a type belongs to a category and nobody sets up one without the other, and checklist templates sit with them because a template is assigned to a type. The tab you're on is remembered in the address bar, so saving something leaves you where you were — and on a phone the tab strip swipes sideways rather than wrapping. See Page Layout.
The Add/Edit Appointment Type form is two columns and much wider. Seventeen fields stacked in one narrow box meant scrolling past the photo picker to reach the price. What the appointment is sits on the left, how it behaves on the right, and the day and date restrictions run full width underneath.
Fixed
- Every booking on every boutique failed for three and a half hours on 8 September. The policy tick shipped that afternoon read the shop's record before it had been looked up, which killed the booking before the customer, the appointment, the confirmation email or the calendar sync. It caught shops with no policies published as well, because the lookup ran before the check that decides whether policies apply. Ten bookings hit it before a shop told us.
- The Suggested Add-Ons picker looked broken because you couldn't see it. The searchable product list was being drawn underneath the pop-up window it belongs to, so clicking the field appeared to do nothing at all. The same picker sits in the Add Line window on a purchase order and was dead there too.
- Booking settings kept your place. Saving a custom booking question threw the page back to the top, so working down a list meant scrolling back after every edit. Adding, editing or deleting a fitting room did it too, as did deleting an appointment type.
- Recording a payment on an invoice would have failed after taking the money — charging the card, marking the invoice paid, then dying before the receipt. It never fired on a live boutique; it was found by running static analysis across the app after the booking fault above, and fixed before anyone met it.
v1.8 — September 8, 2026
Point of Sale
- Come back to a sale you only took part of. A deposit now and the balance later no longer needs a layaway. Take what she's paying, let her go, and the order sits Active with the balance showing — reopen it from Orders and the button carries the amount still owed. It previously refused to reopen and quietly started a fresh cart instead, which stranded sales. See Orders.
- An order that still owes money can no longer be marked complete. Completing one books its whole total as revenue, so doing it with a balance outstanding reported a sale that never fully arrived, left the gown in stock and skipped the commission. It now points you at the till instead.
- Take a payment as a percentage. "50% down" is two keystrokes rather than a sum at the counter — type 50, press %, and it shows what that comes to before you commit. Works on layaway down payments and special-order deposits too. See POS.
Card Readers
- A Square charge can't be taken twice by accident. Cancelling can't recall a payment the customer has already tapped for — no system can — but the screen used to say "cancelled" anyway, so the sale was rung again and she paid twice. It now tells you the card was charged and shows the receipt. And before arming a Square reader, BridalOp checks whether that sale already has a payment it never recorded, and records that instead of charging again. A refunded charge is never pulled back in. See Card Readers.
- Square Register is not compatible, and we've stopped saying it is. Square support their terminal APIs on Square Terminal only, so a Register answers the pairing code with "Unsupported Square Product". It was listed as supported hardware in the app, the docs and on our website. Use a Square Terminal.
Appointments
- A separate no-show fee, charged when your team marks the appointment as a no-show — not on a timer, and not without somebody deciding it was one. See Cancellation & No-Show Fees.
- Two tiers on cancellation fees, so cancelling inside your notice window and cancelling a fortnight out aren't the same money. The early tier defaults to nothing, so an untouched account keeps charging exactly what it charged before.
- The fee box offers the right amount. Open a cancelled or no-show appointment and it suggests what your own policy calls for as a button. It doesn't charge it for you — your team know when it was your fault rather than hers.
Special Orders
- A deposit rule you set once. Settings > Products holds the percentage you take up front and how long after arrival the balance falls due. The till fills the deposit in; marking a dress Received sets the due date. See Special Order Deposits.
- The list shows what's owed. A Balance column with the due date under it, an Owes money filter, and a line at the top telling you how many dresses are sitting unpaid and what that adds up to — for the gown that arrives, goes on the rack while the bride waits to try it on, and is handed over with the balance never collected.
- A reminder for a balance that's gone past its date, as a new automation trigger. Fires once, on the day it tips over.
Automations
- Five triggers that were offered but never fired now do. Special order arrived, Layaway overdue, Quote sent, Contract sent, and Customer field changed were all selectable in the builder and silently did nothing — an automation built on one waited forever with no error. If you built one and wondered why it never ran, that's why, and it will run now. See Automations.
- Special order arrived now carries the balance still owed, so the message can name the amount rather than just the news that the dress landed.
- Preview an email or text before anyone gets it. Every email and text step in the builder has a Preview button — the message made up with a sample bride, in your branded layout, sending nothing. A test run was the only way to see one of these before, and a test run genuinely sends. It also names any merge tag that came out blank, which is how "Hi ," reaches a customer, and shows what a long text splits into. See Preview.
Policies
- The booking page asks for a tick now, and keeps the answer. It used to say "By booking, you agree to our store policies" in small print and record nothing at all. A shop charging $100 for a late cancellation should be able to show she was asked — so it's a checkbox she has to tick, and ticking it stores the time, her IP, her browser and a snapshot of the policy exactly as it read that day. Edit the policy next spring and the record still shows what she agreed to. Look under View Signatures on any policy. Gift card purchases keep the passive line. See Policies.
Vendors
- A Files tab on the vendor profile. The designer's own paperwork — custom measurement forms, order forms, price lists, terms — kept where anyone on the floor can find and print it, instead of in whoever's inbox it arrived in. Grouped by category, up to 10 MB a file, and downloads are served through BridalOp rather than a public link. See Vendor Files.
Imports
- Bulk import for vendor add-ons — rush fees, size changes, extra length, shipping. One row is one add-on, and filling in the Product Category column applies it to every dress from that vendor in that category automatically, which is usually the whole job. See Import.
Dashboard & Reports
- Sales counted after discounts. The sales-goal card summed order subtotals, which are line totals before any discount — so a $3,000 gown sold at $2,700 counted the full $3,000 towards goal while the sales report showed $2,700. Both figures now agree with Reports > Sales Summary. Your progress against goal may read slightly lower if you discount.
- "Today's Revenue" is now "Taken Today", and the goal card says "Sold This Month". They measure different things — money as it arrives, against sales that have finished — and calling both of them revenue is why a deposit could show on one and not the other. See Dashboard.
Fixed
- A booking question that wouldn't save, and wouldn't say why. Adding a checkbox to your booking form could be refused — a label over 255 characters is the easy way to hit it — and the modal showed no message at all, just sat there looking ignored. The refusal now appears under the field it belongs to.
- Booking alerts lost when a customer record had gone. Four notices — three new bookings and a cancellation — failed outright rather than sending without the missing name. Boutiques were never told. They now fall back to the name the booking was made under.
- Long texts were quoted at double the credits. Bulk SMS added up recipients times message segments, so a 200-character message quoted two credits a head and could refuse to send on a balance that covered it fine. BridalOp only ever charged one credit per message. The page now says so, and notes where the carrier splits the text.
- Every dropdown in the app now looks the same. A handful — the vendor Files category among them — were still rendering with the browser's own arrow.
- Emails missing from a customer's Communications tab. Anything BridalOp sent in the background — appointment confirmations among them — was recorded without which boutique it belonged to, so it reached the customer and then never appeared on her timeline. Sent, delivered, no trace. Fixed, and the existing history has been repaired.
v1.7 — September 1, 2026
Appointments
- Offer codes for appointment fees. Set up codes your team can apply while booking someone — a percentage or a flat amount off the fee. Staff only: they never appear on your booking page and a customer can't type one in, so a rate you offer a warm lead on the phone stays off the internet. Codes can expire, can be limited to a number of uses, and a code that can't be used is refused with the reason rather than quietly ignored. See Booking Settings.
- An Appointment Offers report showing which codes were used, what they cost you, and — the part that matters — how many of those appointments were actually kept. An offer that books ten and loses seven is worse than one that books three and keeps them. See Reports.
- Choose how far your appointment buffer reaches. The gap has always been kept inside a fitting room, so with two rooms a second appointment could start the moment another finished. You can now apply it between every appointment instead, whichever rooms they're in — for when the buffer is really about your consultants. Two appointments running alongside each other are still fine; it's the handover with no gap that's stopped. See Booking Settings.
Google Calendar
- Repointing your calendar no longer strands what's already synced. Changing which calendar BridalOp writes to used to leave every existing appointment in the old one, and quietly break updates to them. Your upcoming appointments are now copied across when you save, and the Synced indicator tells the truth about which calendar they're actually in.
- Only calendars you can write to are offered. A calendar shared with you as view-only could be selected as your sync target, after which every update failed silently. Read-only calendars remain available for importing blocked time, which is all they could ever do.
Staff
- Deactivating a staff member now actually revokes their access. It previously removed them from lists but left their password working. If someone has left your boutique and was never deactivated, doing it now is what ends their access. See Staff.
- Your staff list shows current staff by default. All and Inactive are a click away, and nobody is deleted — their sales, commission and hours stay attached.
- Switch between boutiques on your phone. If you own two, the switcher only existed in the sidebar, which is hidden on mobile. It's now at the top of the More sheet.
Reports
- Totals on report tables, on Item Sales and Category Sales. The total follows the search box, and averages and margins are recalculated rather than summed.
- Close Ratio can count something other than a gown, so an evening-wear appointment that closes on a formal is no longer recorded as a miss.
Purchasing
- A dashboard card for orders nobody is looking at — taken from a customer but never placed, sent to a vendor who never came back, or confirmed with no expected date. Owners and managers only, and absent entirely when there's nothing on it.
v1.6 — August 31, 2026
Prom Module
- No two girls from the same school in the same dress — tracked, not remembered. A new opt-in module that registers every prom gown against the school it was sold to, badges dresses a girl can't have in the POS and on the product page, and warns your team at the till if someone tries to sell a clash. Switch it on under Settings > Modules. See Prom Module.
- Dresses register themselves when they sell. No list to keep. A full refund gives the dress back automatically; a partial refund deliberately doesn't, since that's usually an alteration coming off rather than the gown going back.
- You decide how hard it pushes back. Warn, block, or record silently — plus who may override and whether they have to say why. Every override is recorded with its reason, so if the promise is being bent you can see it. See Prom Settings.
- A page girls can check for themselves. Choose a school, search a dress, get an answer — and a suggestion of what is still free at her school when it's taken. It never says who has a dress. Link it from your own website as proof the exclusivity is real.
- Holds, off by default, for a girl who has decided but hasn't paid. Every hold gets an end date so a forgotten one can't block a school for a season.
- Prom appointments ask for her school when she books, which is the only chance to get it before she's standing in your shop.
- A Prom Season report — sales by school, most spoken-for styles, and every override with its reason.
Appointments
- Choose how far your appointment buffer reaches. It has always been kept inside a fitting room, so with two rooms a second appointment could start the moment another finished. You can now apply it between every appointment instead, whichever rooms they're in — for when the buffer is really about your consultants rather than the rooms. Two appointments running alongside each other are still fine; it's the handover with no gap that's stopped. See Booking Settings.
Staff
- Deactivating a staff member now actually revokes their access. It previously removed them from lists but left their password working. Anyone deactivated can no longer sign in, and is signed out on their next click if they're already in. If someone has left your boutique and was never deactivated, doing it now is what ends their access. See Staff.
- Your staff list shows current staff by default, so people who have left drop out of view. All and Inactive are a click away. Nobody is deleted — their sales, commission and hours stay attached, so past reports keep adding up.
- Switch between boutiques on your phone. If you own two, the switcher only ever existed in the sidebar, which is hidden on mobile — so on a phone you were stuck in whichever one you were in. It's now at the top of the More sheet.
Reports
- Totals on report tables. Item Sales and Category Sales now add up across the bottom, and the total follows the search box — filter to one designer and the total is that designer's. Average price and margin are recalculated rather than summed, because averaging a column of averages gives a number that looks right and isn't.
- Close Ratio can count something other than a gown. It only ever counted bridal gowns, so an evening-wear appointment that ended in a formal purchase read as a miss. Tick whichever kinds of product should count as closing an appointment. Existing figures are unchanged unless you change them.
Purchasing
- A dashboard card for orders nobody is looking at. A dress taken from a bride and never actually ordered, a purchase order sent to a vendor who never came back, or one confirmed with no expected date. Owners and managers only, and absent entirely when there's nothing on it. Waiting periods are yours to set under Products & Inventory.
Fixes
- The cancellation fee switch explains itself. It refuses to turn on without a fee amount — sensible, since arming an automatic charge with no amount would charge your clients nothing. But it said nothing and simply sprang back, which looked broken. It now tells you what it needs.
- Customer profiles no longer scroll sideways. With enough tabs the page stretched instead of the tabs scrolling, pushing the right-hand column off screen.
v1.5 — August 23, 2026
Online Store
- The BridalOp plugin is now on WordPress.org. Install it from Plugins > Add New inside your own site — search for BridalOp — instead of uploading a file. Updates arrive the same way as any other plugin. View it on WordPress.org.
- FluentCart is now supported alongside WooCommerce. Same everything: products and photographs published from BridalOp, stock kept in step, orders coming back as real sales, refunds and cancellations putting the gown back on your racks. If you run FluentCart, turn on its own Inventory feature before connecting — while that is off it accepts stock levels and ignores them. See Online Store.
- Connecting a second store retires the first. Moving from WooCommerce to FluentCart no longer leaves both shops selling from one pool of gowns.
- A gown sold at the till now leaves your website within about ten seconds. It previously waited for the next ten-minute sweep — the window in which someone is most likely to buy the dress standing at your counter.
v1.4 — August 16, 2026
Online Store
- Sell your inventory through your own WordPress website. Tick Sell online on a product and BridalOp publishes it to your WooCommerce store with its photos, description, price and sizes. Stock is kept in step automatically — a gown that sells on the floor stops being buyable online within about ten seconds — and every online sale comes back as a real order in BridalOp with the gown taken off your racks. See Online Store.
- Orders to send. Paid online orders queue up on the Online Store page. Marking one as sent tells your website, which emails the customer that their order is on its way. Kept separate from payment on purpose: paid is not posted, and nobody wants a bride told her gown shipped the second she ordered it.
- Cancelling an order on your website puts the gown back on your racks. Previously it stayed marked sold — off the floor and unsellable — with nothing explaining why. BridalOp also tells you when a cancelled order still holds the customer's money, since cancelling doesn't refund anyone.
- Refunds go back through the provider that took the money. A refund issued in BridalOp on an online order returns the money through your website's payment provider. Where that isn't possible — bank transfer and pay-on-collection never are — BridalOp says so before you click rather than failing afterwards.
- Choose which system sends online sales to QuickBooks. If your website already posts them, BridalOp won't, so your revenue isn't counted twice. BridalOp names any connector it can see running on your site.
- BridalOp now notices when your website goes quiet and emails you, including the case where the plugin has been deactivated — where stock updates keep working normally but orders silently stop arriving.
v1.3 — August 15, 2026
Booking
- Embed the booking form on your own website. Copy a short snippet from Settings > Booking and paste it into any page — WordPress, Squarespace, Wix, Shopify or a hand-built site. The form appears inside your page with your header, footer and branding intact, and resizes itself as the bride moves through the steps, so she never has to leave your site to book. Multi-location boutiques get a separate snippet per location, so a location's page books that location with no picker step. See Booking Settings.
- Appointment buffer times now apply on both sides of a booking. Previously a booking could start at the exact moment another ended, ignoring the buffer entirely.
- Online bookings now count towards fitting room capacity. Appointments booked through the public page weren't being counted when working out availability, so slots could be offered no matter how full the day already was.
Point of Sale
- Every variant is now sellable at POS. Tapping a product shows each size and colour — including ones with nothing on the rack, marked Not in stock — instead of silently adding whichever single unit happened to be in stock.
Purchasing
- Edit a line until it's received. Cost, dates and amount paid can be corrected on any line that hasn't been received yet, including one you've just un-received — previously un-receiving left the line uneditable, so "correct it and receive it again" wasn't actually possible.
Vendors
- Clearer size chart errors. Adding a second size chart with a name already used for that vendor now explains the problem instead of appearing to save and silently discarding it.
v1.2 — July 28, 2026
A wide update spanning point of sale, purchasing, reporting, booking, and integrations — much of it driven directly by boutique feedback.
Point of Sale & Orders
- Per-item sales tax. Products now have a Charge sales tax on this item toggle (default on). Turn it off for tax-exempt items like services, and tax is charged only on taxable lines at checkout. The POS cart adds a per-line Tax checkbox to override on the spot. See Products and POS Terminal.
- New "Service" product class — for items like Wedding Day Delivery, alongside Gown, Bridesmaid, Accessory, etc. See Products.
- Reassign salesperson on a completed order — owners and managers can correct a mis-typed salesperson on a finalized sale without reopening it; the commission is recomputed for the corrected person so every report agrees. See Orders.
Purchase Orders
- Shipping & Fees (landed cost). Record extra inbound costs — Shipping, Tariff/Duty, Customs, Processing, Handling, or Other — per item or shipment-wide, with a Goods + Fees = Total landed cost summary. See Purchase Orders.
- Un-receive a line — reverse a mis-entered receive: it removes the created inventory unit (unless already sold/reserved) and reverts the line so it can be corrected and received again. See Purchase Orders.
Reporting & Analytics
- New Sales by Zip Code report — traffic and sales grouped by customer zip.
- Close Ratio now has a Consultation Types multi-select, so you choose exactly which appointment types count as bridal consultations (no missed closes).
- Commissions report supports a tenant-wide "X% on all sales" rule and shows the actually-applied rate and de-duplicated totals.
- Team Sales now credits the assigned salesperson (falling back to whoever rang it up), so sales aren't shown as "Unassigned".
- Revenue figures across reports are shown net of sales tax.
Products, Inventory & Vendors
- Copy add-ons from another vendor in one step — for vendors that share an identical add-on list. See Vendors.
- Auto-generated barcodes when you add an inventory item without typing one.
- More label formats & print options — Avery 5160, Dymo 30334 (2¼×1¼), a 2⅛×4 notes label and per-item notes sheet, MSRP-strikethrough + sale price, and print-field toggles. See Inventory.
Appointments & Booking
- Minimum booking notice and bookable date-windows on appointment types; same-day appointments on the staff booking page. See Booking Settings.
- Save card on file for free appointments and a Charge cancellation fee action on the appointment slide-over.
- Owner/manager alerts (opt-in) for new bookings, cancellations, and reschedules; client self-cancel/reschedule now notify staff in-app with a Rescheduled indicator.
- Possible-duplicate flagging — matching booking names prompt staff instead of silently merging.
- A unified, editable "How did you hear about us" source list drives the booking question and reports; on-booking profile fields and the booking address now save to the customer profile.
Dashboard
- New Awaiting Completion panel — past-due appointments never marked complete, so you can reconcile them (and keep Close Ratio accurate). "Needs Confirmation" no longer flags already-confirmed appointments. See Dashboard.
Staff & Roles
- New Accountant role (reports + read-only financials), multiple owners, and a "choose your store" login + store switcher for team members in more than one boutique account. See Staff and Roles & Permissions.
Automations & Integrations
- New "Send a contract" automation action — tie a contract to an action (e.g. special order placed → send the Special-Order Agreement). See Automations.
- New Klaviyo integration — sync customers out to Klaviyo, and bring Klaviyo leads into BridalOp via a private webhook URL (deduped, tagged
lead).
Customers & Data
- Email a customer directly from their profile with a branded compose modal, logged to their timeline. See Customers.
- Import duplicate handling clarified and hardened — with the Skip strategy, re-importing the same file won't create duplicate customers or duplicate inventory. See Import Data.
Fixes & Hardening
- Appointment times in email and in-app notifications now match your calendar exactly (timezone fix).
- Ongoing security and dependency hardening.
v1.1 — May 14, 2026
The first post-GA update — focused on reporting depth and booking flexibility.
Reporting & Analytics
- New Sales Dashboard at
/reports/sales-dashboard— seven KPI tiles in one screen (Revenue This Month / Quarter / YTD with deltas, Appointments Booked, Close Ratio with weekly sparkline, Gross Margin by Department, Highest Margin Categories). Every tile drills into the underlying report. Pinned to the top of/reportsand the home Dashboard. - New Department Margin report at
/reports/department-margin— gross margin grouped by product type (Gowns / Bridesmaid / Accessories / Veils / Shoes / Alterations / Other) with KPI tiles, a bar chart, and a per-department table. - New Close Ratio report at
/reports/close-ratio— bridal-appointment-to-gown-sale conversion ratio with a configurable window (14 / 30 / 60 / 90 days), store and per-consultant views, and a dedup rule that stops repeat consultations from inflating the number. - Category Sales report gained COGS, Gross Margin, and Margin % columns.
order_lines.unit_costis now snapshotted at sale time, so historical margin doesn't drift later when product costs change. Existing orders backfilled from the inventory item's purchase price (with fallbacks).
Public Booking
- New Appointment Categories — group your appointment types into customer-facing buckets (Bridal, Bridesmaid, Service Visits, etc.). The public booking page gains a new What are you here for? step between location and type pick. Tenants with no categories keep the existing flat list. Uncategorized types surface under a synthetic Other bucket.
- New Show on public booking page flag on appointment types — distinct from Active. Lets you keep a type usable by staff (e.g., Pickup, Alterations Fitting, Trunk Show) while hiding it from the public page. Cards in the Appointment Types list now show a Staff only badge when the flag is off. When every type is hidden, the public page falls back to a "please call the boutique" message.
Vendors
- New Portal URL field on vendors — the URL of the vendor's own account portal (where you log in to place POs, check stock, etc.). Auto-prepends
https://if you paste a bare domain. Surfaced in four places: a prominent Open Portal button on the vendor profile header, the vendor contact card, an external-link icon in the vendor list, and an Open Portal ↗ link under the vendor name on every Purchase Order detail page.
Staff & Access
- New Account Access card under the Staff page (owners only) — grant another existing BridalOp account the ability to switch into your account with full administrator access. Distinct from inviting a staff member: the grantee keeps their own home tenant and uses the account switcher in their sidebar to flip between accounts. Email + in-app notification invite, single-click accept, revoke or self-revoke any time.
v1.0 — May 4, 2026
BridalOp is out of beta. v1.0 is generally available to every boutique, with a substantial list of new modules and platform polish layered on top of the beta foundation.
New Modules
- Quotes — pre-sale estimates with a public Accept / Decline page, one-click conversion to a draft order or invoice
- Customer Forms — build reusable questionnaires (style preferences, intake, post-appointment surveys) sent via email + SMS with a tokenized fill page
- Card Readers — Stripe Terminal (BBPOS WisePOS E, S700 / S710) and Square (Terminal, Register) with on-device tipping
- Lookbook + Automations (v1) — shareable customer-facing catalog plus the first slice of the Automations engine for follow-ups, reminders, and curated lists
- Referral Program — built-in referral tracking so brides can refer friends and earn rewards
- Appointment Conditions — deposits, lead times, and customer-type restrictions per appointment type
Booking & Appointments
- New Checklist Templates — reusable task lists tied to appointment types; ticking on the slide-over stamps name + timestamp and writes to the activity log
- Booking settings page reflowed into a 3 × 2 grid; Appointment Types now display as a card grid
Products, Inventory & Vendors
- "Class" renamed to Product Type across the UI
- New Show on Ecom toggle, LB / EC visibility badges, and Discontinued product state
- Qty on Hand column on Variants, bulk image upload, and inline editing of Status / Location / Condition on Inventory Items
- New Palette card — pull a vendor Color Group + Size Chart, plus an Extra Colors chip editor
- New per-product Pricing Rules with Calculate from cost & pricing rules helper
- Vendor profiles gain Color Groups, Size Charts, and Vendor Pricing that cascade to every product
- New Low Stock Alerts under Settings > Products & Inventory — notify immediately or as a daily 6 PM summary, with per-staff recipient picker
Payments
- Two independent Tipping toggles — on-reader (POS) and on the public invoice payment page (presets
1% / 3% / 5% / Custom / No Tip); invoice tips credited to the invoice's Sold By consultant - Card Readers as a top-level Settings page with full Stripe + Square pairing flows
Customer Profile
- New Forms tab for sending and reviewing customer questionnaires
- New Internal Documents files category gated by the
customer-files.internalpermission (Owner + Manager by default)
Sales Goals — Per-Staff
- Scope selector now supports Store Total, any Location, or any Staff member
- Non-owners / non-managers see a personal Your [Month] Goal ring on the Dashboard, attributed via
sold_by(matches commissions)
Email & Branding
- Tenant brand color + auto-contrast text power the Customer Form Invitation and Quote Sent CTAs
- Inline text links in default emails render near-black with underline for WCAG safety on light brand colors
Bri (AI Assistant)
- Updated to know about Quotes, Customer Forms, Internal Documents, per-staff Sales Goals, palettes, pricing rules, checklist templates, and Card Readers — see Ask Bri → What You Can Ask
Support & Polish
- Support ticket textareas now show a live 5,000-character counter (amber at 4,500, red at 5,000) with browser-side
maxlengthenforcement - Long tokenized URLs in SMS previews wrap inside the modal instead of overflowing
v1.0 Beta 1 — April 13, 2026
- Initial beta launch of BridalOp to a select group of boutiques
Check back here for the latest updates to BridalOp.

