Changelog

What's new in OneHub360. We ship fast.

September 16, 2026

SHIPPED

Text a customer their proposal link

When a customer has a phone on file, the Send step offers to text the tracked proposal link instead of emailing it. Same link, same tracking, and the text shows on the customer's thread.

IMPROVED

Texted photos now get asked for an email

A customer who texts photos or dimensions and has no email on file is asked once for the best address, and an address they text back is saved to their card.

FIXED

A call that just ended no longer shows as 0 seconds

The call page reads the real length and transcript the moment the call ends, and says the recording is still processing instead of showing no recording.

IMPROVED

Pick which plan the 3D room shows

On a deal with a proposal, choose option A, B or C and the room lays out that option's panels, so a customer who wants to see a rendering before deciding can see each plan in their own room.

IMPROVED

Phone asks come one at a time

The voice assistant now asks for one detail, waits for the answer, then asks the next, instead of listing several in one breath.

IMPROVED

Reopen a layout after its link was shared

Sent the room link and then clicked Done too early? You can reopen the layout and keep working. The link you already sent stays live and shows the room as you change it, so there is nothing to resend.

FIXED

Ceiling baffles hang from their long edge

A ceiling panel hung on edge now drops by its short side and runs its long side along the ceiling, whichever way round you enter the size. The Hang control spells it out in inches, so you can see how far the panel hangs before you look at the room.

September 15, 2026

FIXED

Large customer photos no longer block a proposal

Photos a customer sends are sized for the proposal page before they go in, so a 13 MB screenshot no longer stops the document from being built. Small photos are untouched.

September 15, 2026

FIXED

Ceiling panel hang and finish show on the workbench

The operator workbench now shows how each ceiling panel hangs and whether it is wrapped front and back, and the room draws an on-edge panel on edge. Suspension hardware is no longer drawn in the 3D room.

IMPROVED

A greyed-out Text button tells you why

On a call page, Text is available once the caller is linked to a contact, because every text is logged to that contact. When it is greyed out, hovering now says so and names the button that links the contact.

September 15, 2026

SHIPPED

Ceiling panels can hang on edge and be wrapped front and back

Pick how each ceiling panel hangs: flat on four points, or on edge from two. Choose a complete wrap and the panel is finished in fabric on both faces, which is what you want on a panel people see from every side. The room view draws both, the price shows the wrap as its own line, and your room plan says which way each panel hangs.

FIXED

Custom panel sizes accept inch marks

Typing 18" x 36" into the custom size box now works. The field reads inch marks, the word inches, decimals and fractions like 18 1/2, and the price preview and the Use this size button follow.

September 14, 2026

FIXED

Deal values match the quoted, delivered price

A deal created from a proposal now carries the same delivered total the customer sees and accepts, including freight, so your pipeline numbers and your quotes agree.

IMPROVED

Sending tells you the real reason when it cannot send

An expired Gmail connection is reported as exactly that, with the fix, instead of a generic error. And if the mail service cannot deliver a proposal from your business address, nothing goes out and the proposal stays a draft, rather than quietly leaving from a personal mailbox.

FIXED

Proposals tell one payment story

Next Steps now points to online acceptance and payment, with calls or texts for questions. Freight labels say when delivery is included in the total. Liftgate notes use the same wording, and the comparison table calls the panel measurement Panel face area.

September 14, 2026

FIXED

A proposal that failed to generate says so

When generation cannot finish, the draft is now marked failed with the reason recorded, instead of appearing as a healthy draft with a placeholder sentence. Regenerating a draft that has nothing to regenerate from now tells you to generate a new one.

September 14, 2026

FIXED

Freight follows the destination

A proposal shipping outside the contiguous United States now says freight is quoted before payment on every line, instead of showing free ground shipping or a flat rate the destination cannot have. Any option that mixes a quoted-per-order note with a delivered total is held for review.

FIXED

Option names no longer repeat in the introduction email

A price refresh could print an option name twice inside its own parentheses. The name and price now render once.

September 14, 2026

FIXED

One payment story, one fabric story, one liftgate story per proposal

The next-steps text and the accept box now name the same payment methods, the shipping notes and totals agree about liftgate service, and a proposal can no longer offer a fabric we do not stock or promise a result the room has not been measured for. Any draft that slips is held for review before it can be sent.

FIXED

A fixed hold now clears

When an operator corrects the sentence that held a draft, the hold releases on save instead of sticking until the proposal is regenerated.

September 14, 2026

IMPROVED

Proposals read like a note from a person who wants to help

Every proposal and its introduction now follow one plain-language voice: friendly, short sentences, and technical terms explained in everyday words or left out. A draft that slips into jargon or a spec-sheet tone is flagged for the operator before it goes anywhere.

September 14, 2026

FIXED

The email and the proposal now show the same price

The note that introduces a proposal used to quote each option before freight while the document quoted the delivered total, so a customer could read two prices for the same option on one page. Every price in the note now comes from the same delivered total as the document, and a mismatch holds the draft for review before it can be sent.

September 14, 2026

FIXED

Long proposals download as a PDF every time

A proposal with a very full option card or a long specification page could fail to render and hand the customer an HTML file instead of a PDF. Tall cards now continue onto the next page with their header repeated, and the specification page flows across pages.

IMPROVED

Panel sizes are always stated in inches

A quote that described a panel in feet anywhere in the document, including the summary and line items, is now held for review before it can be sent, so the size a customer reads is the size that ships.

September 12, 2026

FIXED

Photo checks follow the current proposal layout

Each proposal opens its own room layout, including when another quote on the deal is regenerated. Photo checks run after placement, and verified upper-wall layouts can establish capacity beyond the automatic layout estimate.

September 11, 2026

FIXED

New wall coverage counts as a proposal upgrade

The quality check now recognizes a counted placement plan that keeps the existing treatment and adds the same panels to previously untreated walls or ceiling. More panels on already treated surfaces still require review, and photo and layout checks still apply.

FIXED

Proposal comparisons show what is quoted

The comparison table now shows panel counts, absorption area and price without automatically promising echo elimination or bass control from panel quantity. Each option’s treatment plan explains its intended result.

FIXED

Editing a proposal preserves unresolved review holds

Saving text could clear a room-layout or generation hold even though that check had not run again. Those holds now remain until a full regeneration or an explicit review override.

FIXED

Long proposal options download as PDFs

A long introduction could prevent a proposal from downloading as a PDF. It now breaks between complete sections when needed, while keeping shorter introductions with their first priced item.

FIXED

Shipping terms keep complete amounts

Removing a freight clause from a ground-shipping proposal could leave fragments of its price in the terms. The whole clause is now removed, and nearby payment and validity terms stay intact.

FIXED

Proposals generate again, and the site stays up while they do

Building a proposal document slowed to a crawl as the customer link grew, which left proposals blank and froze the app for everyone. The text handling that caused it is fixed, every document now builds in milliseconds, and a hard limit means one difficult document can never hold up the rest of the system.

September 10, 2026

FIXED

Proposal pages break where a reader expects

When an option runs longer than a page, the break now falls after the last line that fits, the shipping and totals stay together with the pay block, and a card that fits a fresh page moves whole instead of leaving half a page empty.

FIXED

A proposal never links to an empty 3D room

Sending a proposal now publishes your room plan link, and the email and document only include the 3D walkthrough when a published layout with panels exists. A link opened before the layout is published shows the room in Spin with a note instead of a blank canvas.

FIXED

Proposal specifications describe your actual panels

The specifications page used to list one generic panel size. It now reads sizes, thicknesses, fabric or print finish, core, certifications and the acoustic rating from the panels in your proposal, and says nothing it cannot source.

IMPROVED

Proposal pages keep each option whole

Option cards, comparison tables, line schedules and the totals block no longer split across a page break in the PDF. Table headers repeat when a long schedule continues.

SHIPPED

Accept and pay from the proposal itself

The PDF carries an Accept and pay online link with a QR code beside the investment and the recommended total, the cover email opens with the same button, and the proposal page keeps Accept in view on a phone. Accept, sign, pay by card or purchase order.

SHIPPED

Undo and redo in the room plan

Every move, resize, fabric change, add, remove and batch action can be undone and redone, on the desktop with Cmd or Ctrl+Z and on the phone from the bar. Thirty steps deep. A removed panel comes back to its exact spot when the space is still free.

SHIPPED

Copy or mirror a wall layout

Lay out one wall, then copy it to the others or mirror it across the room in one step. Panels that would land on a door or off the wall are skipped and named, nothing is placed twice, and Undo takes the whole copy back.

SHIPPED

Your artwork on printed panels

Printed art panels now show the artwork you chose, in the 3D room, on the customer page, in the wall diagrams and in the proposal PDF, upright at every rotation. Pick the image from the deal photos and every surface follows.

IMPROVED

Place a panel where you actually want it

When a scan measures a surface a few inches off the wall line, or a panel needs to cover part of a door, your rep can place it anyway. The panel mounts on the real surface and the exception is recorded, so the plan says what the room will look like.

IMPROVED

Change fabric or colour on any selection

Select any mix of panels and pick a fabric and colour, or Printed art, and all of them follow. Printed art panels convert to fabric and back without a refusal.

IMPROVED

The Above view is a dollhouse

Looking down at the room now cuts the ceiling and the upper walls away just above the highest panel, so the floor plan and every panel read at a glance. Choose Low, Above panels or Full.

FIXED

Rooms built from measurements show up on the customer page

A room drawn from measurements and photos opened as a blank white canvas on the customer link. It now walks in the same painted view your rep sees, and the room shell is a warm grey instead of pure white.

FIXED

Honest model size on the workbench

The header showed the room file as 1 byte. It now reads the size from the file itself and says which version is loaded, Raw or Clean.

IMPROVED

Your room plan, rebuilt for a phone in one hand

The room fills the screen. Three labelled actions sit under it: Add panels, Auto-fill and More. Panel sizes have names and feet, every control has a word, the stage of your plan is said plainly, and a three-step first run shows you around. Nothing you could do before went away; it moved one tap deeper.

IMPROVED

The same plan on a desktop, three columns

A labelled rail on the left, the room in the middle, and a plain-language summary on the right: panel counts, coverage, the echo estimate and what happens next. Pick a panel and its card takes the summary panel over.

IMPROVED

Your room page names things the way you would

Rooms are named for you, never after the scan file. Walls are named by compass and by what is on them, such as "West wall, with the overhead door", and the plan is listed wall by wall in feet. Printed-art panels draw as a printed pattern instead of a placeholder colour.

SHIPPED

Room scans clean themselves up after upload

A phone scan arrives with a torn floor, rippled walls, stray fragments and whatever was sitting in the room that day. Each upload now goes through a cleanup pass on its own: the floor is rebuilt with a plank or tile finish matched to the scan, walls are flattened to true planes, loose fragments and small furniture are removed, holes are backed, and walls the scan stopped short on are carried up to the eave. The original file stays on record and you can switch the viewers back to it at any time.

SHIPPED

Cleanup controls on the Room card

The Room card shows the plan before and after, one elevation per outside wall, and the objects and openings the cleanup found. Keep or remove an object, confirm or drop a door or window, add one it missed, set the wall height, pick the floor finish and run it again. Each run lists what changed.

IMPROVED

Panels sit on the wall, not on what is in front of it

Panel depth now follows the wall surface across the whole panel footprint. A cart, a stand or a cabinet in front of the wall no longer pushes a panel out into the room, so the layout and the render agree with the wall you will hang on.

IMPROVED

Reopen a layout after Done

Done no longer locks a layout for good. Reopen it for more edits at any point before the customer link is shared. Once the link is out, the layout stays as the customer saw it. Update, September 16: you can now reopen after the link is shared too, and the link shows the layout as you edit it.

FIXED

Room updates show up without fighting the browser

Model files were cached for an hour, so a corrected room could stay hidden behind the old copy through any number of refreshes. Every scan version now has its own file, the viewer checks for a newer one and offers a one-click reload, and the version and file size are shown next to the model.

IMPROVED

The workbench on a phone

The room fills the width of the screen, the panel sizes fold into a bottom sheet, and the walk controls sit below the room instead of over it.

September 8, 2026

FIXED

Regenerating a proposal updates its room plan

A proposal regenerated on a deal that already had a room plan kept the old plan, so a new quote for sixteen panels could open a plan holding ten, and the plan link was held back because the two disagreed. A regeneration now lays the plan out again to match the quote it just wrote. A plan you arranged yourself is never rewritten: if it holds fewer panels than the new quote it is left exactly as you placed it, and the difference is noted on the deal for you to decide.

FIXED

Room sizes read the same way everywhere in a proposal

A proposal could show your room as "10 ft 7 in by 20 ft 8 in" in one place and as raw decimal feet in another, including inside a worked square-footage formula and on the room diagram captions. Every dimension now prints in feet and inches, and a proposal that slips back into decimals is flagged for review before it reaches you.

FIXED

A proposal states its absorption area once

The comparison table and the option write-up could print two different square-foot figures for the same option, a page apart. The table counted a corner bass trap pair as one panel face and the write-up left traps out of the total, so neither matched what you receive. A pair is two traps and now counts as two, one calculation feeds every place the number appears, and a proposal whose wording disagrees with it is flagged for review before it reaches you.

FIXED

Wall drawings are named after your room

Every wall drawing in a proposal was titled "Corridor wall", so a home theater, studio or living room read as somebody else's hallway. The name came from ceiling height, and a normal 8 ft ceiling looked short enough to be a corridor. Walls are now named for the part they play in the room, side walls along its length and end walls across it, and the word corridor appears only when the floor really is long and narrow. If your room brief names its walls, those names are used instead.

IMPROVED

A lead that arrives during an outage still gets a draft

Automatic proposal drafts are written by a service that occasionally goes offline, and a lead that landed while it was down used to wait for it to come back. On one outage that was 46 minutes. Drafts now move to a paid backup writer while the usual one is unreachable, so the lead gets a draft at the normal time. It only happens when the usual service is genuinely not answering: a busy or slow queue still waits for it, and a draft that failed on its own is not paid for a second attempt. Two limits keep it bounded, a cap on how many paid drafts run in a day and the daily spend cap you already have, and you get one alert the first time it happens each day rather than one per lead.

FIXED

Your room plan holds every panel the quote lists

A quote that mixes two panel sizes could open a room plan holding only the larger ones. The layout placed one quoted line at a time, and the first line spread its panels at the wider spacing before the second line asked for any, which left gaps too narrow for the smaller size in a room with space for all of it. On a 20 by 10 foot room that meant ten panels on the plan against fourteen on the quote, and the plan link was held back because the two disagreed. Panels now close up to the minimum spacing when that is what it takes to fit the whole quote, and the plan tells you when it did that and by how much. The usual wider spacing is still what you get whenever the quote fits, and a room that genuinely cannot hold the order still reports how many fit, with both numbers.

FIXED

The recommended option is marked in words

The comparison table and the recommended card carried a star and a tick mark that the PDF had no font for, so both printed as an empty box on every proposal that recommends an option. The comparison column now says Recommended under the option name, and the card badge stands on its own. A new check reads a finished document and flags any character the PDF cannot draw, so a symbol that would print as a box does not reach a customer.

FIXED

Proposals and their cover emails come from the team

A generated proposal and its cover email closed with an individual name and a direct line, which is not who a customer is buying from. Both now sign off as the business, with one contact line, unless you have set a named rep for that business in your settings, in which case that rep is used. A document that signs with a personal name is held for you to look at rather than sent, so it stops at review instead of at a customer.

FIXED

Room sizes typed in inches build the right room

A room size entered in inches was read as feet, so a 10 by 21 foot room was built as a 127 by 248 foot one, with a panel count to match. Inches are now recognised in every form they get typed, including 127", 127 in and 127 inches, and each side can carry its own unit, so 127 in x 20 ft reads exactly as written. A ceiling stated in inches converts too. A figure too small or too large to be a room is still refused rather than guessed at.

FIXED

Bass trap lines are counted as what they are

A freestanding bass trap panel hangs flat on a wall and is sold one at a time, but it was counted as a corner trap pair and doubled, so a proposal reported more panels than it listed. Corner traps now count as pairs and freestanding traps as panels. The check that compares a quote against your layout counts only the panels a layout can hold, because corner traps stand in corners through their own tool, so a proposal that includes corner traps is no longer held back for a count it could never reach.

FIXED

Payment terms say what you actually charge

The Next Steps page and the terms block quoted a 4.5% credit card processing fee alongside the methods that avoid it, which reads as a surcharge and is not what is charged. The step now names the accepted methods and the one real term: payment in full clears before production starts.

September 6, 2026

FIXED

Connected calls stop support reminders

A connected outbound call placed from the app stops the clock, as does a call logged through HAL by iMessage. A call that rings out or is logged as voicemail does not.

IMPROVED

Mark a support ticket handled in one tap

Mark handled is on the reminder and the contact card, including in All Businesses. One tap resolves the ticket and clears every reminder about it.

IMPROVED

Ask for a panel the way you say it out loud

The phone agent understands spoken sizes such as twenty four by forty eight and four by eight. Product lookup puts confirmed size matches ahead of panel lines whose size range needs confirmation. Mounts and Z clips find the installation kit, including zclip and zclips. A stated panel size takes priority over a generic room kit, and upgrade questions lead with the upgrade when it is the only product named.

FIXED

Reading a notification now stops the text that follows it

Your notifications escalate to SMS when nobody acts on them, which is what you want at 2am and not what you want thirty seconds after you have already dealt with it in the app. Until now nothing recorded that you had seen one, so the text went out regardless of what you did. Opening a notification, tapping through from the alert list, or marking one read now stops its escalation. Anything you genuinely ignore still reaches your phone.

FIXED

No more alerts about statements, receipts and newsletters

An inbound email from a contact could raise an alert even when no person had written it. A loan statement, a marketplace digest and a shipping receipt all count as email from a contact, and all three were reaching phones. Machine mail is now recognised from its headers, including senders that route replies to a no-reply address, and it no longer raises an alert. The message still syncs and still sits in your inbox exactly as before, so nothing is hidden, only the interruption stops. A real person writing to you, including a first-time enquiry, still comes through.

IMPROVED

Your first day is quieter

A new account has no device registered yet, and the alert ladder read that as a phone that could not be reached, so the very first notification skipped straight to SMS. A brand new account now gets the normal window to see it in the app first. An account whose devices really have stopped working is still treated as unreachable and still gets the text immediately, because that is the case the rule exists for.

FIXED

Your phone agent quotes only what it can look up

When a caller asked about a product, the agent received every variant of every matching product, thousands of rows carrying several different prices, and read a range aloud. It now receives only the options that match what was asked, each with the price the store actually charges, and it asks which fabric or colour before naming a figure. Where there is no single true price it asks the question instead of guessing one.

IMPROVED

The agent never asks about an option it was not given

The answer sent to your phone agent can no longer invite a question it has no way to support, such as asking a caller to choose from a list that is not there. Every question now carries what it needs, and the check runs across every product in your catalogue rather than one at a time.

FIXED

One text after a call, not two

The voice agent texts the caller at the end of a call, and your system sends one too when the agent never got to it. Both were firing, so a caller could get the same message twice. Each text is now filed against the call it belongs to, carrying the provider's own message id, so only a message that actually went out counts and the other sender stands down at hang-up. A caller who rings back after a dropped call still gets that call's text, and a quote link or a callback confirmation still goes out on its own, because those are different messages. If the agent never sent its text, yours still does.

FIXED

The end of call text is written by your system, not composed on the fly

A wrap-up text told a caller a single panel shipped free ground when free ground starts at $349.99. The voice agent no longer writes that message on either of the two paths that can send it. The text is built from your contact record and from what the call actually did, so it greets the caller by the name on file, mentions the callback that was booked or the layout being put together, and says nothing it cannot stand behind. It mentions a layout only when the room details actually landed on a deal, and points the caller at their quote link only when that link really reached their phone, so it never sends someone looking for a text that did not arrive.

IMPROVED

The wrap-up text still quotes the price and the freight, when those numbers can be checked

A caller asking what four large panels cost to ship should get that in writing, and one did: the price each, the flat freight rate and the liftgate add on, all correct. The text now states those numbers again, taken from the product lookup that ran on that same call and from your own shipping rates, never from what the agent typed. If the panels come in at several prices across fabrics it says they start at the lowest rather than naming one, and if the call looked nothing up, or covered two different sizes, the text simply says nothing about money.

FIXED

A call that reports itself twice is still one call

The voice platform gives the wrap-up step five seconds to answer and sends the same report again if it runs long. Both copies were being processed, which could mean two summary emails and, on a call where a text was promised, two texts. The second copy now recognises that the call is already on record and stops there.

FIXED

The review task no longer says the agent skipped its wrap-up

When a call reached the recovery sweep with no summary on it, the review task said the voice agent had skipped its wrap-up. The sweep cannot know that, and often it was not true. The task now says what actually happened, that no summary was on record for that call when the sweep ran.

September 5, 2026

IMPROVED

Line up panels around doors and windows

Lining up a row of panels above a door could leave three of them where they were, with a note that they were too close to the door, when a line a few inches higher was fine for the whole row. When the line you asked for falls inside the clearance a door or window needs, the whole row now slides to the nearest line that clears it, up to a foot, and the message says how far it moved and why: 7 panels lined up, 3 inches higher, to keep 4 inches clear of the door. If no clear line exists within a foot, every panel that could not move is named along with what stopped it, and where a short slide would have been enough you get the distance it fell short by, so you know what to change. The count you read is the number that actually landed, and any panel whose move did not go through is named.

IMPROVED

Composing an email is easier on the eyes in dark mode

Text pasted from Gmail, Word or a web page used to bring its own colors with it, so in dark mode each pasted line sat on a white block and a line copied from Gmail in dark mode came out black. The message body is now one readable surface in both themes. Pasted text drops stray colors, backgrounds, fonts and hidden markup and keeps what matters: paragraphs, bold, italics, links, lists and headings. Bold and italic you apply yourself never pick up hidden styling either.

SHIPPED

Preview shows exactly what the recipient will see

A Preview button next to Rich text renders the message the way it goes out: on a light background with dark text and a standard font, whatever theme you write in and wherever the text came from. The email itself is cleaned the same way when it is sent, so a message never carries the colors or fonts of the page it was copied from, and a plain-text copy travels with it for inboxes that prefer one. Merge tags and templates work as before and your signature is added at send time, untouched.

FIXED

Removing panels and applying a fabric to the whole layout now complete in one step

Setting one fabric on a large room plan sent one request per panel, and on a plan of 97 panels the last 37 were turned away with Slow down a moment, as if something were wrong with those panels. A fabric, size, rotation or removal on a selection now goes to the server as one request, every panel is checked by the same rules as before, and the message afterwards gives the counts and the reason rather than a list of 37 names. If you open a customer room plan while signed in to your own account, the page says so, lets you remove or change any panel the way your workbench does, and links to that workbench. Customers can still remove only the panels they added, and the Remove button now says why when it is off.

IMPROVED

Fabric swatches show the real Burch Prime Time colours

The colour circles in the fabric picker, the tint on the 3D panels, the surface diagrams and the fabric card on the proposal PDF were painted from approximate values, so Azure read as a light blue when the fabric is a deep navy and Academy read as navy when it is a teal blue. Every colour now comes from one table measured off the store swatch photographs, the picker shows the photograph itself in each circle, and hovering a circle names the colour.

SHIPPED

Remove a ticket from the production board with one click and undo

Taking a ticket off the board meant finding a 7 by 7 pixel icon with no label, then typing a reason before the dialog would submit. Every open card now has a Remove button that says what it does. The confirm box explains where the ticket goes, the reason field is optional, and if you leave it blank the record still says who removed it. A single toast holds an Undo button for eight seconds, so a mis-tap puts the ticket back at the stage it left.

IMPROVED

Every ticket links to its Shopify order, invoice, contact and deal

A card told you the stage and the customer name, so answering what did they actually buy took three searches across two systems. Each card now carries a row of links: the Shopify order in your store admin, the Shopify invoice or draft it was paid from, the OH360 order with its line items, the contact, the deal, and the invoice or proposal behind it. The same links are on the order detail, so the iOS board has them too. Only records you can already open become links, and a stored web address that is not a secure link is left off rather than shown.

FIXED

A manually entered ticket no longer counts the sale twice

Adding a won deal to the production board wrote a stand-in order marked paid, so the contact's total revenue carried the ticket on top of the sale it stands for. Seven customers were reading a combined $28,597.00 more than they had ever spent, one of them showing $19,998.78 against a single $9,999.39 order. A manual ticket is now recorded as a manufacturing record rather than a payment, so the money is counted once, at the invoice, payment or store order it actually came from. Removing a manual ticket takes its amount back out and updates that customer's total straight away, and Undo puts the amount back with the ticket, so a mis-tap does not leave a live ticket marked as a cancelled sale. A real store order's payment status is never touched.

FIXED

Tickets find the deal they belong to, so the same sale stops being offered twice

A ticket only picked up its deal when the sale came from a quote built in your store, which left most tickets with no deal on them. The list above the board reads that as a won deal with no ticket and offers to make one, which is how the same sale reached manufacturing twice. A ticket now finds its deal from the link recorded when the order was matched, or from the deal reference the order carries out of your store, and never by guessing from a customer name or an amount. A deal you link later fills in the tickets that were waiting.

FIXED

Order numbers keep the number the order was placed with

A re-sync rewrote a stored order number such as 14790S down to 4790, on 457 orders, and that is the number you read off the board and quote to a customer on the phone. Order numbers are now written once, when the order is first captured, and no sync rewrites them afterwards. Orders captured live also carry their link back into your store admin, which only synced orders had before.

FIXED

The production board says when it cannot load, instead of showing an empty board

A failed request cleared the board and displayed Nothing is waiting right now, which tells the manufacturing floor there is no work when the truth is that the board could not be reached. Any failure now says what went wrong and offers Retry, keeps the last board you saw on screen, and never shows the empty-board message unless a request actually succeeded. The first moments of a normal visit now read Loading the board rather than Board unavailable. The board also refreshes every 45 seconds while you have it open, so it recovers on its own.

IMPROVED

The won-deals list above the board follows production access

That list carries customer names and deal values across every business, and it was shown before any permission was checked, while every request behind the board itself required production access. It now checks the same permission before reading a single deal.

FIXED

A customer total never reads higher on one card than on the card above it

The Shopify Orders card on a contact added up every stored row, including the stand-in records behind manual tickets, so it could show a larger figure than the all-sources total sitting right above it. Both now count the same thing: money actually taken. Rows that are not payments still appear in the list with their own status, they just no longer add to the badge.

IMPROVED

A full store sync no longer floods the production board with old orders

A sync walks the whole order history, and every paid order it touched was going straight onto the manufacturing board. Sync now opens tickets only for orders from the last sixty days, the same window the daily sweep uses, and respects the same off switch, so one tap of Sync now cannot fill the board with years of finished work.

FIXED

Two deliveries of the same order in the same instant leave no stray deal behind

When your store delivered the same order twice within milliseconds, both copies could open a deal and only one of them ended up linked. The unlinked one sat in the pipeline as a won deal with real money on it and no ticket, which is exactly what puts the same sale in front of you to add a second time. The copy that loses now releases the deal it opened, so one order leaves one deal.

FIXED

A won deal whose order is already on the board no longer offers Add to production, so a sale cannot appear twice

Three sales reached manufacturing twice on the same afternoon. The board listed a won deal as not in production while its Shopify order was already building, because the two were linked in a way the check did not read, and one tap on Add to production made a second ticket. A deal whose order is already on the board now reads Already on the board with the order number, the amount and the stage, and offers two clear choices: link this deal to that ticket, or add a separate one with a written reason. A quote under fifty dollars needs that same reason, because a swatch is not a build. Intake also closes the gap that created the orphans: an order that arrives by sync rather than by webhook goes on the board straight away, a daily sweep picks up any paid order from the last sixty days that has no ticket, and a duplicate delivery from Shopify no longer fails the order.

IMPROVED

The same call actions on every call screen

Every call, voicemail and contact phone number now offers the same actions: call back, text, email, recording, transcript and contact, and the call page adds the linked deal. Call back rings you first and connects you through your business number, and a More menu adds copy number, copy transcript, the SMS thread and a plain phone link.

FIXED

Voicemail Call Back places a real call

Call Back on a voicemail now dials through your business number like every other call screen. Recordings in the inbox Call Log, on the contact page and on voicemails play through the secure recording link, and numbers show as +1 (AAA)BBB-CCCC everywhere.

September 4, 2026

FIXED

Every room is one tap away in the walkthrough

Rooms that scanned as separate spaces are joined through their real openings, and Go to buttons stand you in any room directly. Walkthroughs open in the largest room.

SHIPPED

Walk through your scanned room

Drag to look around your scanned room, tap the floor to walk, or use the on-screen Move and Look buttons. Both room views keep you at standing height inside the walls. Reset view brings you back, Show me the panels turns toward your layout, and Spin the model opens the whole-room view.

FIXED

Photo view matches the 3D room page

Photo view now uses the same processed room scan and panel spacing as the 3D room page. Panels stay clear of uneven walls and ceilings, and adjust their spacing as you move them.

IMPROVED

Scanned rooms load faster and look like the photos

Scanned rooms use smaller photo textures for more reliable loading and show the lighting captured by the camera. Repeat visits reuse cached models, while proposed panels keep their fabric shading.

FIXED

Panels sit cleanly on scanned walls and ceilings

Panels in shared scanned rooms now sit against the ceiling or wall that is really there, including lower ceiling bays. The scan is smoothed under them, not cut, so textures stay continuous without holes. The original scan stays unchanged.

IMPROVED

Panel diagrams drawn over the photos of your room

Panel diagrams now show the actual walls and ceilings from your room scan, with fabric colours and matching panel numbers. Beams, lights, doors and windows give each placement context.

FIXED

Add-ons no longer count as panels

Proposal panel counts and absorption area now exclude add-on layers, upgrades and service lines. Option cards, comparison tables and room layout declarations use the same physical panel count.

SHIPPED

Printed art panels keep their product and price

Printed art panels stay printed art after you reopen a room plan, use the art product price, and appear as purple murals while artwork is being prepared. Mixed plans list art and fabric separately, and your rep handles artwork and proof before printing.

SHIPPED

Keep PDFs and documents on the deal

The Photos card on a deal now accepts PDFs, Word documents, Excel workbooks, CSV files and plain text files alongside images, up to 25 MB each. Files are listed with their name, size, upload date and caption, with controls to open, download or delete them. PDFs open in the browser, while Word and Excel files download. Documents stay out of room photo analysis and the customer photo grid in a proposal.

SHIPPED

Send a proposal to more than one person

A proposal can now go to the coordinator, president, owner, partner, or any other buyer who needs it. Use Also send to when sending or resending, then pick an existing contact or enter a name and email address. Each person receives a tracked email and their own proposal link, and the proposal shows everyone it was sent to afterwards.

SHIPPED

See every panel on the wall or ceiling where it belongs

A proposal showed the room in 3D and listed the panels, but it did not give the customer a surface-by-surface drawing they could check with an installer. The proposal PDF, proposal page, and shared scan page now include a scaled diagram for every treated wall and ceiling region. Fabric panels use their selected colour, printed art uses purple, doors and windows are marked, and each panel has a number that matches a compact schedule of surface, size, height, and material. Moving a panel refreshes the diagrams with the room picture on the same background pass.

FIXED

Ceiling grids follow the hallway and fill evenly

A ceiling grid could mirror the direction of an angled room and cut diagonally across a hallway. It now follows the actual wall run. Ceiling layouts can also fill every regular grid position or use an alternating checkerboard, with each corridor and tall room centered independently. Existing count-based suggestions stay unchanged.

SHIPPED

Walk through the room in Inside view

Inside view used to let you turn and zoom without moving from the spot where it opened, so a long corridor could not be followed from one end to the other. Use W A S D or the arrow keys to walk at eye height, hold Shift to move faster, or tap the floor to move there. Floor taps keep the direction you are facing and stop at the room footprint instead of crossing a wall. Tapping a wall or ceiling still places a panel exactly as before.

FIXED

A room plan no longer chooses Burlap Black for you

A room plan with no fabric selected used to label and price every panel as Burlap Black and offer Review in cart. It now says Fabric not chosen yet, prices the plan using Burch Fabrics Prime Time without choosing a colour, and requires Choose fabric before checkout or before creating a draft order or proposal. Plans where every panel already carries a fabric keep their current label, price and checkout or proposal actions.

FIXED

Tall rooms no longer have a false low ceiling

When one scan included a 10 foot corridor and a 23 foot room, the room view still drew the corridor ceiling straight through the tall room. It hid the upper walls and caught ceiling taps in mid air, so a panel could land at 10 feet instead of on the real ceiling. The room view now leaves that false slab out wherever a measured ceiling exists and draws each area at its own height. Where measured areas overlap, the lower ceiling is used. Older scans and rooms with one flat ceiling stay exactly as they were.

FIXED

Ceiling panels line up with the walls, and go up as 48 by 48 clouds

On a phone scan of a room set at an angle, ceiling panels came out turned about 38 degrees off the walls, because the ceiling grid was lined up with the world rather than with the room. Ceiling panels now run parallel to the walls, whether you place one by tapping or let Suggest layout fill the room, so a cloud reads as a deliberate array instead of a diamond pattern. Suggest layout also lays the ceiling in 48 by 48 panels, the standard overhead size, whatever size is going on the walls, and picks it from what your plan already includes rather than adding something you have not bought. A room already square to the world lays out exactly as it did before, and panels already on a plan do not move.

FIXED

Tall rooms measure to their own ceiling, not the building average

A scan that takes in a 10 foot corridor and a 23 foot room reported one ceiling for the whole building, at the average height, so every wall in the tall room came back about 8 feet and there was no way to treat the top two thirds of a 21 foot wall. Rooms of different heights in one scan are now measured separately: each area gets its own ceiling, and the walls under it are measured to it. On the room this was found in, five walls went from 101 inches to between 197 and 251 inches, and the corridor walls stayed where they were. A ceiling tap in the tall part lands on the real ceiling instead of in mid air, and the room volume behind the acoustic recommendation is unchanged.

IMPROVED

Deselect, and select all, in the panel workbench

Tapping a panel picked it up, and after that nothing on the page let it go. The ways out were the Escape key, a click on bare wall, or a small X that only appeared once a second panel joined, which left a phone with nothing to press. A Deselect button now sits with the panel controls the moment anything is selected, and reads Deselect all for a group. Select all takes every panel on the board in one press, so setting one fabric or one size across a whole room is a single selection instead of a tap per panel. Corner bass traps are left where they are, since they are placed one at a time. Both controls stay available on a plan that is already quoted or ordered, because letting go of a selection changes nothing about the layout. Escape still clears everything.

FIXED

Suggest layout keeps panels in the room

Suggest layout on a phone scan of a large space came back with a grid of panels spread over the whole plan, most of them hanging in mid air outside the walls, plus a lone panel on every little offcut of wall the scan picked up. The ceiling was being treated as a plain rectangle drawn around the outermost walls, which is right for a square room lined up with the world and badly wrong for a room set at an angle or a scan that takes in the corridors next door. Ceiling panels now go only where the walls actually enclose a space, so nothing is suggested over open floor. Wall panels go on the walls big enough to hold a real run, and the small sections that were skipped are named so you can tap one and fill it yourself. The count of panels the room can hold is measured the same way, so the number you quote against is the room you have. A square room lined up with the world lays out exactly as it did before.

FIXED

Plan view places panels on the ceiling

Looking straight down on a room, a tap in the middle of it answered that no wall was detected and placed nothing, which left the ceiling unreachable from the one view people lay a ceiling out in. A tap in plan view now lands on the ceiling, shows the panel where it will sit, and places it on the second tap. Walls are edge on from above, so they still take a tap in the Inside or Perspective view, and the message says that now rather than asking you to aim closer to a wall. With ceilings switched off it says so, and one button switches them back on. The floor is never treated as somewhere a panel goes.

SHIPPED

Upload a room scan from the deal page

A 3D room could only come from a scan taken on the phone or from typing measurements, so a .glb or .usdz already sitting on your laptop from Scaniverse, Polycam or RoomPlan had nowhere to go. The Room card on a deal now takes the file. Pick it, name the room, and the upload runs with a progress bar you can cancel, up to 100MB. The room name comes from the filename, so a second room on the same deal is not called Room 1 again. Geometry starts pre-processing the moment the upload lands, so the panel workbench opens on the new room instead of asking you to come back later, and a file that cannot be read says which file and why.

September 3, 2026

IMPROVED

A paid customer’s room page reads As ordered, with no pricing prompts

A customer who had already paid opened the 3D room link and read that their quote was still coming, beside a button offering to price all 92 of their panels as extras and another offering to clear the board. A room plan for a paid job now reads As ordered, and says the layout is the one the order was built from. The pricing prompt, the clear-all button and the controls for adding or removing panels are gone from that page, so nothing on it suggests a purchase that is already settled. Looking around the room, the ceiling view and moving a panel all work exactly as before, and your own workbench is unchanged.

SHIPPED

Text a photo or PDF from the inbox

A text reply could only carry words. Attaching a file on a text thread quietly sent nothing, and on the phone there was no way to attach one at all, so a proposal PDF or a room render had to go by email or from your own phone. Photos and PDFs now go out with the text, from the web inbox and from the iOS app. Attach with the paperclip, paste a screenshot straight into the box, or drop a PDF onto it, up to five files per message. Photos are resized on the way out so carriers deliver them, and the thread shows what you sent, with photos in place and PDFs as a chip that opens. Pictures the customer texts you show up the same way.

FIXED

Room renders build from the dimensions on any lead, including regenerations

A room size the customer typed into the form only became a 3D room on some paths. A lead that came through the website, or a draft picked back up after a pause, was written with no room, no panel layout and no room link, even with the dimensions sitting on the record. The size is now read from every place it can arrive: the room brief, the form the customer submitted, the deal title, and the notes from a call. Compass wording like 40 feet north to south, 56 feet east to west now reads as a room, and so do sizes written with curly quote marks or with no units at all. When nobody gave a ceiling height, the height is taken from the kind of space and the quote says it was assumed, so the customer can correct it.

IMPROVED

Send panel flags a proposal that has dimensions but no room yet

A customer who measured their room should not receive a quote for it with no picture. When the dimensions are on file and the 3D room is missing or holds far fewer panels than the quote sells, the send panel now says so before the email goes, and one button builds the room and lays it out to the quoted schedule. Sending without it stays possible and takes a written reason, which is kept with the proposal. A deal that never had dimensions is never held up.

IMPROVED

Room layouts fill the wall instead of stopping at one row

A quote for forty panels in a 56 by 40 foot room with 13 foot walls laid out ten of them and reported that the rest did not fit. Panels were only ever placed in a single band at listening height, so the clear wall above it went unused, and each size in a schedule was given a share of the wall measured as if the wall were empty. Layouts now use the full clear wall, add a second row when the wall is tall enough, and move panels a wall cannot take to a wall that can. Doors, windows and anything the photos show on a wall are still kept clear.

FIXED

Queue alerts no longer fire on drafts that just started

An alert said proposal drafts had been waiting for hours while they were minutes old and generating normally, because the wait was measured from when the proposal was first created rather than from when it entered the queue. The wait is now measured from the queue, and the alert only goes out after checking that the generation service is genuinely not answering.

FIXED

Vendor emails no longer trigger deal or photo prompts

A vendor pitching their own service, like a freight broker offering their rates, could attach a file and get treated like a customer: a contact record with lead-shaped tags, and a nudge to open a deal for them. The same check that already keeps a vendor’s email from opening a deal now covers photo attachments too, so a vendor is never promoted into your pipeline, and the contact is tagged as a vendor instead.

FIXED

Room dimensions typed with units or ceiling notes now build the room

A room size typed as 35ftx31ft, 22ft ceilings produced no 3D room at all, because the size was only read when the units sat away from the x. The same room written as 35’ x 31’ with 22’ ceilings did build, but took 35 as the ceiling height. Both now read the way they were meant: units against the numbers, x, X or by between the sides, feet and inches like 12’6", and the ceiling taken from the number beside the word ceiling, never from one of the sides. A size nobody can read is still left alone rather than guessed at.

FIXED

The steps across a deal only tick what actually happened

The journey steps on a deal marked everything behind the current step as done, so a deal with no photos and no mockup still showed Photos in and Mockup ready ticked, directly above a panel reading No photos yet. Each step now answers from its own record: the photos on the deal, the mockup that was published, the brief that came in. A step the lead went past without it happening shows as skipped, with a note saying what never arrived.

FIXED

Panels sold by the carton now count as panels

A quote line reading three cartons of six panels was counted as three panels everywhere it mattered: the room plan would only let you place three, the panel total and coverage area on the comparison table were a fraction of what the customer is buying, and the room link could be held back for not matching. Carton, box, case and pack lines are now read as the pieces they deliver, so three cartons of six is eighteen panels on the plan and on the page. The price is unchanged, and an extra panel beyond the plan is priced per panel rather than per carton.

FIXED

Felt sheets keep their real thickness

PET felt is a 9mm sheet, and the placement tool only accepted 1, 2 and 4 inch panels, so a felt panel could not be given its own thickness and the 3D room drew it as a two inch slab. Felt gauges are accepted now, along with any thickness a product in your catalog actually states.

FIXED

Room render now matches the quoted panel schedule

The 3D room in a quote was laid out before the quote was written, from what the room needs acoustically, so a quote selling twenty 48x48 wall panels could link to a room holding nine, all of them on the ceiling. The room is now laid out from the quote itself: the sizes on the schedule, the counts on the schedule, wall panels on walls and ceiling clouds overhead, clear of the doors and windows and of anything the photos show on the wall. When the quoted count does not fit the clear wall, both numbers are recorded on the deal instead of the layout quietly coming up short.

IMPROVED

One room button in the proposal and email

The link to the 3D room was printed as a full web address in plain body text, once in every option column, so the same long link appeared three times on one quote. The room now appears once, under the picture of the layout, as a single button that reads Open your room in 3D. The same button is in the cover email.

SHIPPED

Room card on the deal page with re-layout

The deal page said nothing about the room a customer can open in 3D. It now shows the room, where it came from, the panels on the board against the panels the quote sells, the customer link ready to copy, and the current render. When the two counts disagree, one button re-lays the room to the quoted schedule without touching a quote the customer already has. The Add room from dimensions fields also arrive filled in from the size the customer already gave you.

SHIPPED

Proposals wait for the customer’s photos

A form that asks the customer to send pictures of the room used to get a quote written from the form alone, seconds later, before a single photo could arrive. When the auto-reply asks for photos and the deal has none yet, the quote now waits for them, up to a day by default. The customer’s timeline says what is being waited for and until when, and if the photos never come the quote is written from the form so nothing sits waiting forever. Set the wait to zero hours on a business to keep the old behaviour.

SHIPPED

Room renders from the dimensions on the form

The room size box takes one line of text, and a room typed as 48 x 30 x 15 produced no 3D room at all, because only separate length and width fields were ever read. That line now becomes the room: the 3D model is built from it, panels are laid out inside it, and the quote carries the room link and the still. A number typed into its own field still wins, and a size nobody can read is left alone rather than guessed at.

IMPROVED

Photos that arrive on an untouched draft regenerate it

Pictures landing minutes after a draft was written left the draft as it was and asked you to redo it by hand. If nobody has sent, reviewed or edited that draft, it now regenerates itself with the photos. A quote you have sent, approved or written into is never rewritten underneath you.

FIXED

Photo mockups skipped photos named after room corners

Mockups are built on wall photos, and ceiling and corner-trap shots are left out on purpose. The check was matching the word corner on its own, so four photos named for the corner they were taken from were all thrown away and the deal got no mockups. It now matches the surface, not the word, and when no mockup is produced the timeline says why.

FIXED

Price check recognizes catalog add-ons

A quote line for an add-on your product catalog already prices was held as an unpriced line, because the check only read your synced store products. It now reads your proposal catalog as well, so a priced entry there answers for the line the same way a store product does. An entry with no price still answers for nothing, so a made-up number is still caught.

FIXED

NRC check no longer flags correct values

A quote stating the right absorption rating for the right panel was flagged as disagreeing with the rating it matched, once for every place it appeared, so a clean document arrived carrying six warnings that said nothing. The check now reads the products named around the number and stays quiet when the number belongs to one of them. A rating stated against a panel that does not carry it is still flagged, once, with a count of where it appears.

FIXED

A proposal with no document cannot be sent

When a draft failed its checks, the document came out empty and the page still offered Send. Sending is now refused on both send paths whenever there is nothing to deliver, and the draft shows what went wrong with one action: regenerate. A cleared hold does not open that door.

IMPROVED

Photo placement over-quote now holds the proposal

Quoting more panels than the clear wall can hold was only ever a note, so a quote for three times the wall could go out unread. A modest overshoot is still your call and still just a note. Half again more panels than fit now holds the quote, names both numbers, and offers the two ways out: move the balance to ceiling clouds as their own line, or bring the count down.

IMPROVED

Room link only when the room matches the quote

A quote could carry a link to a 3D room holding nine panels while the schedule quoted ninety-four, and the customer counts what they can see. The link is now attached only when the room covers at least 80 percent of the quoted count, and when it is held back the reason is written to the deal so you know why.

IMPROVED

A cleared hold needs a reason someone can use later

Clearing a hold accepted almost any text, so a record could read "its ok" and tell the next reader nothing. A reason now has to be a short sentence naming the item and why it is right, and it shows on the proposal with who cleared it.

FIXED

One mixed-material sentence no longer throws away the whole quote

A quote mixing felt panels with fabric-wrapped panels could claim one material for the package, which is not true of both, and the whole document was discarded rather than the sentence. The sentence is now removed and the quote re-checked before anything is thrown away, and the draft says which sentence went.

IMPROVED

Proposals honor the budget the customer gave, with a plan at their number and the recommended plan beside it

A lead who said what they could spend could get a quote where every option cost several times that, leaving them nothing to act on. When the treatment a room needs runs well past the top of a stated budget, the quote now carries two anchored options: the best real result at their number, built from real catalog products, and the recommended plan with the coverage math that explains the difference. A quote with nothing at or under their number is held until it has one, unless it says plainly that the budget will not cover a full treatment and quotes the smallest set still worth buying.

September 2, 2026

SHIPPED

Put a won deal into production without a Shopify order

A deal paid by ACH, check, wire, or an invoice paid outside checkout closed won and then went nowhere, because the production board only ever heard about an order through Shopify. The deal page now offers Add to production on any won deal that has no order yet: pick how it was paid, confirm the amount, and it joins the board like any other order.

SHIPPED

The board flags won deals that are not in production yet

A banner above the production board lists every won deal with no order behind it, with the contact, the value and how long it has been waiting, and a one-tap fix per row. Nothing paid outside your store gets missed just because it took a different path to get to yes.

SHIPPED

Move a production card back, with a reason

A card tapped forward to the wrong stage had no way back except a correction on the deal page. Every open card now carries a Move back button: pick the stage it should actually be at, say why, and the board and the customer status page both pick up the change. The record keeps what it said before as well as what it says now.

SHIPPED

Drag a card between columns on the production board

Cards can now be dragged from one column to another, not just tapped forward one step. Dropping on a later column advances the order the same as the button; dropping on an earlier column opens the same reasoned Move back dialog. Everything still works from the buttons alone if you would rather not drag.

SHIPPED

Archive finished orders and see them in a Completed view

The board only ever showed open work, which left no place to file an order away once it was done. A Completed toggle now shows delivered, picked up, cancelled and archived orders grouped by outcome, with the date each one closed out. Archive any order with a reason from its card, and reopen one from the Completed view if it needs another look.

SHIPPED

Order notes save to the customer’s timeline

Notes on a production card now live on the customer’s own profile, not a side table only the board can see. Open the notes icon on any card to read the history and add one, and every stage move is logged there too, so the customer’s timeline tells the whole production story in one place.

FIXED

Test orders no longer clutter the production board

Internal test runs and $0 smoke orders were showing up on the live board next to real customer work. They are hidden by default now, with a Show test orders switch in the header for the rare time you want to see them. A real customer is never hidden by this, whatever their name happens to contain.

IMPROVED

Send Invoice shows you the email before it goes, and gives you a few seconds to pull it back

Pressing Send Invoice used to go straight to a plain confirm box describing what would happen. It now shows the actual email: subject, recipient and the payment link, exactly as your customer will see it. After you send, a short window lets you undo it, the same recall you already have on regular emails, so a wrong note or the wrong deal never reaches an inbox.

SHIPPED

See your won deals from the pipeline page

The pipeline board leaves out closed deals so they do not crowd the columns, which meant a won deal had no page that listed it. The Closed Won tile now opens a Won view, and the Board and List toggle has a Won option. It lists won deals newest close first with the contact, the value, the close date and the days from first contact to close, and the search box filters it. It shows the 500 most recent and says how many there are in total.

SHIPPED

Send an updated quote yourself after regenerating it

A quote that had already gone out, then was regenerated, had no button that worked: Send refused because it was already sent, and Resend only appeared on a sent quote. The button now reads Send update on a regenerated quote, confirms the address it is going to, and sends the new version through the same tracked path as the first, replacing the copy the customer holds and marking the quote sent again.

FIXED

Your admin can open every screen the moment a feature ships

Permissions were listed in code, and the database only learned about them when a business was created. A permission added later, like viewing the production board, was missing from every existing admin role, so the board answered "no production access" to the owner. The permission list now syncs itself on startup and whenever you ask, and a super admin always holds every permission.

SHIPPED

Support has its own place in the sidebar

The support list, with every open ticket, its age, where it came from and the order it is about, now sits in the sidebar right after Inbox for businesses that take orders.

FIXED

A quote cannot go out with a made-up price

A generated quote could carry a line the writer priced on its own, with no product behind it, and nothing checked. Every priced line now has to match a product in your catalog. A line with no catalog price holds the quote and names the line, until you price it or remove it. Freight and mounting hardware are not checked, and a business with no synced catalog is left alone.

FIXED

The quote and its room plan agree on the count

A quote could say six of a panel while the room plan in the same email showed ten. When a quote has a plan built for it, the schedule and the plan now have to match, size by size, and fabric by fabric when both name one. A difference holds the quote with both numbers shown. A starting layout that was never drawn from the quote is not compared.

FIXED

The plan link in a quote opens the plan you built

Regenerating a quote could attach a newer, empty or automatic board instead of the board where the panels had been placed. The quote now takes the board bound to it that has panels on it, and only falls back to a newer board when there is no such board.

IMPROVED

Follow-ups wait for your tap where the ladder runs

Two older follow-up senders could still email a customer on their own next to the staged ladder that drafts every message for your approval. For a business whose follow-ups run through the ladder, those senders now stand down, and the only follow-up that reaches a customer is one you sent.

FIXED

The cart from a room plan carries the real fabric and the whole order

Pressing Price on a room plan built a cart in the default fabric whatever fabric the panels were in, and only for panels added after the quote. Until a plan is accepted or paid, the cart now carries every panel on the wall, in the fabric it was placed in, and says how many came from the plan and how many are additional. Once a plan is paid, only the additional panels go to the cart.

SHIPPED

Change the fabric or size of several panels at once

Select two or more panels and set a fabric or a size for all of them in one go. A size that would not fit a panel where it sits is refused by name, and the rest still apply.

FIXED

Align works wall by wall and never pushes a panel into a door

Lining up panels on two walls at once did nothing, and Bottom could aim a panel into a doorway. Alignment now works per wall, checks every move against openings and other panels first, names any panel it refuses, snaps to whole inches, and offers Undo for twelve seconds.

SHIPPED

The operator room plan has a way back and the customer link on top

A sticky strip on the operator board links back to the deal and the proposal, copies or opens the customer link in one click, and says whether a photo view is available for this room.

SHIPPED

Duplicate a panel instead of placing it again

Adding a second panel like the one already on the wall meant going back to the size rail, picking the size again and clicking the wall again, and the rail sitting under a selected panel read like the control that changes that panel’s size. There is now a Duplicate button beside Rotate, and the D key. The copy keeps the size, the fabric and the rotation, and lands on the same wall one panel width away with the standard gap, or on the other side, or at the next clear spot if both are taken. It never lands over a window, a door or another panel. Pick several panels and the whole set is copied together, keeping its arrangement. The rail now names the size it has armed and what to do next, and the Size button carries the size of the panel you have selected.

FIXED

The view stays where you put it while you work

Moving, resizing, rotating or removing a panel sent the camera back to the opening view of the room, so every adjustment meant finding your way back to the wall you were working on. The view now stays exactly where you left it through any change to the panels, including switching between the photo and plan surfaces. Reset view, Inside, Plan view and Photo view are the only things that move it.

SHIPPED

Every door recognizes someone you already know

A lead who filled in a form last month and calls today used to become a second record, with a second deal, and the history split between them. Every way a person can reach you now checks for them first, by email or by phone, however the number was typed, before a new record is made. When someone still looks like a possible twin, the record carries a card naming who it might be and why, with one tap to merge and one to say they are different people. Nothing merges on its own.

SHIPPED

A question about an order opens a ticket with a clock on it

Where is my order, something is missing, something arrived damaged: those messages used to land in the same inbox as everything else and wait for whoever noticed. Now an email, a text, a voicemail or a form message about an existing order opens a support ticket, or adds to the one already open for that order, and the ticket keeps the time. If nobody has answered inside your response window, 24 hours unless you set another, you are told, and told again at two and three times the window. The support list shows every open ticket with its age, where it came from and the order it is about.

SHIPPED

Schools and churches can accept a quote with a purchase order

Buyers who pay by purchase order or hold a tax exemption had no way to say so when accepting a quote, so the acceptance stalled in email. After signing, a buyer can now enter a purchase order number and billing contact, and upload a tax exemption certificate. That holds the card checkout, records the details on the deal and on the contact, and tells you to build the order with the purchase order number on it. Buyers who pay by card see nothing new.

SHIPPED

Freight orders collect the delivery details before checkout

Anything too big for a parcel carrier ships freight, and a freight delivery goes wrong when nobody asked about the dock, the liftgate or who is receiving. For an order over your freight size, the acceptance page now asks for dock or liftgate, the receiving contact and phone, receiving hours and any access notes, and writes them onto the order the carrier will see. Liftgate service is listed as an add-on, never assumed.

SHIPPED

A caller who never got the photo link gets it by text after the call

Most callers are standing in the room they want treated and hang up without the upload link. When a call ends and the link was never sent, the text is drafted for you the moment the call finishes, going to the number that just called. It is held for your approval unless you have turned photo requests to automatic, in which case it goes out within a minute, on the same rules and the same opt-out list as every other text.

September 1, 2026

SHIPPED

Emails Shopify sends now show opens and clicks in OneHub360

Your store sends a lot of the mail your customers actually read: the draft order invoice, the order confirmation, the shipping confirmation, the shipping update. OneHub360 tracked every email it sent itself and knew nothing about any of those, so "did they even see the invoice?" had no answer. Those emails now carry the same tracking, and an open or a click lands on the contact the same way an open on a quote does, with the time and the location. Sends are recorded the moment the store sends them, so an invoice nobody has opened looks different from one that was never sent. Setup is a snippet for each notification template, in the docs.

SHIPPED

Photo requests reach people by text and by email

Photos of the room are what turn a set of measurements into a real plan, and asking for them only ever happened during a phone call. A lead who filled in the form and never rang was never asked, so more than half of the leads who gave you their room details had nothing to look at. The ask now works on both channels: a text to the phone in their hand when they are standing in the room, and an email for the photos already sitting on a laptop, both carrying the same upload link so they use whichever is nearer the pictures. One ask per person per channel per day, and a request stops the moment they send something.

SHIPPED

Approve and send a drafted message without leaving the pipeline

When a lead stalls at a step only they can finish, the message asking them to finish it is written for you and left on the deal. Until now it was only left there. Every draft now carries Send, Edit and Dismiss, on the deal and inside the pipeline queue, with the exact words shown before the button does anything. Edit it and your words are what goes out and what the record shows was approved. Nothing reaches a customer unless you press send.

FIXED

One request for photos instead of two in the same second

A lead who came in through the room analysis form could receive two emails at the same moment, both asking for photos of every wall and the ceiling, because two parts of the system each thought the asking was theirs to do. Whichever asks first now wins, and everything else stays quiet for the day. The same check stops a follow up going out after the photos have already arrived, or after the quote has already been emailed.

FIXED

A subject line no longer says "there" where a name should be

When we did not have a first name on file, a subject written as "Following up on pictures, [name]" was going out as "Following up on pictures, there". The greeting inside the email is meant to read "Hi there," and that is fine. In a subject line it read like a machine. A missing name now drops that part of the subject entirely, keeping the question mark or exclamation, so it reads as written either way.

FIXED

Your customers can accept a quote from the link you send them

The quote page has always been able to take an acceptance: the customer picks their option, the price locks to what they picked, and they go on to sign the agreement and pay. No customer could reach it. The link in the email carried a token the page treats as view only, so anyone who clicked was shown the quote and told to ask you for an acceptance link, and there was no way to produce one. Sending a quote now issues that acceptance link, so the customer can choose and commit in the same click that opens the quote. Links already sitting in inboxes still open the quote and still download the PDF, exactly as before. Resending a quote issues a fresh acceptance link and leaves the copy the customer already has working.

FIXED

Send Invoice shows up on deals that came from Shopify

The button that emails a draft order’s payment link to your customer only appeared when OneHub360 had created that draft itself. A draft that arrived through the Shopify sync was attached to the deal and showed nothing, so on a busy store the button was missing from almost every deal that had an order ready to invoice, and orders worth thousands sat unpaid because there was no way to send the link from the deal. The deal now finds its draft order either way and reads the payment link from Shopify. A draft that has already been paid or cancelled shows no button, and the status is checked once more at the moment you press Send, so a customer is never emailed an invoice for something they already bought.

IMPROVED

The quote follow-up text reaches the people who opened the email

The text that goes out two days after a quote was skipping anyone who had opened the email, whether or not they ever looked at the quote. That is the person most worth a nudge: they saw it arrive, meant to read it, and never did. It now goes on whether the quote has been read rather than on whether the email was opened. Someone who clicked through to it, replied to you, or has already had the text still hears nothing, and it is still once per quote, in business hours, on the same rails as before.

FIXED

The approved step on a deal actually happens

The path across the top of a deal has an approved step between draft ready and sent, and no deal ever reached it, because approval was only recorded by a screen nobody uses. Reading the quote and pressing Send is the approval, so sending now stamps it with your name and the time. A quote that was already approved keeps its original approver, and resending never rewrites it.

FIXED

Panels stop landing on doors, windows and screens

When a quote builds a 3D room from the measurements a customer gave, it had nothing to say about what is already on their walls, so it treated the room as four blank rectangles and put panels over the doors at both ends of a hall, over the windows on the far end, and where the projection screens hang. The photos the customer sent had shown all of it. They were being read, and what came back was a written description that only the wording of the quote ever saw. Those photos now also produce a list of what is on each wall, and that list reaches the room: doors, windows and openings are cut into the model, so the same rule that has always stopped a panel covering a measured window now covers these too, and anything hanging on a wall rather than cut into it becomes a keep-off area the layout works around. A photo that cannot be tied to a specific wall is never guessed at. It is kept clear on every wall instead.

SHIPPED

A quote is held when a panel sits on something already there

The check above shapes where panels are suggested. This one is the last look before the quote reaches anyone: if a panel in the 3D plan overlaps a door, window, screen, TV, board or fixture the photos show, the quote is held and names both the panel and the thing it is sitting on, so it is a minute in the workbench rather than a customer opening a picture of their own room with a panel across the door. It also warns when the quantity quoted is more than the clear wall can hold, which is often deliberate and should never be silent.

IMPROVED

A render colour nobody picked says so

A 3D render has to be some colour, so a room shown in the default read as a recommendation. When a fabric colour has been named, the panels are rendered in it. When none has been, the quote and the image description both say the colour shown is a placeholder and invite you to pick, rather than letting a stand-in look like a choice.

FIXED

A repeat customer who texts you photos gets a deal for the new job

Someone who has already bought from you texts differently from a stranger: no introduction, often just pictures of another room. Those texts were treated as questions about the order they already placed, so no deal was opened and the photos never reached one. One customer sent thirteen pictures of a new space and none of them landed anywhere you could work from. Now when a returning customer texts a photo, a measurement, or words like "another office", a deal is opened for that new job with the photos already on it and the room details already read out of the message. A text that really is about an existing order still does not open a deal, and any pictures attached to it are filed on their most recent job rather than dropped.

IMPROVED

A short text can now earn a room analysis invite

A text message is eight words. It was being scored against a bar built for a form, so "how much for 10 panels" counted as no interest at all and no texted lead had ever been offered the room analysis. A short text that names a product or a size, or any text with a photo attached, now counts. Everything that decides whether an invite is sent or held for your approval is unchanged, so this widens who is considered, never who is contacted without you.

FIXED

A text to a number you have not set up stops disappearing

A phone number pointed at OneHub360 but not yet added in your settings had every text it received silently discarded. Those texts are now kept, with the message intact, and you get an alert naming the number so you can add it. Nothing that arrived is lost while the number is being set up.

August 31, 2026

SHIPPED

Send a quote again when the address was wrong

A quote that had already gone out could not be sent again. Once it read Sent, the only things left on the page were the PDF and the history, so a bounced address meant rebuilding the email by hand in a mail client. Sent quotes now carry a Resend button. It reads the email address on the contact at the moment you press it and shows you that address before anything leaves, so a correction you just made is the one you see. The customer gets the same quote on the same link, and any copy that did reach someone keeps working.

FIXED

A spelled out email beats what the call heard

When a caller says their address and then spells it out letter by letter, the spelling is the one they mean. The spoken form was winning instead: a caller who said vanderpool and then spelled V-A-N-D-E-R-P-O-E-L had the misheard version saved to their record, and the quote went to an address that does not exist. Spelled out addresses are now read back out of the call and used wherever the two disagree, whether the caller spells the whole address, only their name, or only the company. A call with nothing spelled out is left exactly as it was, and a different address spelled out on the same call, such as a support line, never replaces the caller’s.

SHIPPED

Read a call that came in another language

Your voice agent switches language to match the caller, so a review could open on a transcript nobody on your side could read. A call with a transcript now carries a Translate to English button, and once translated it sits behind an Original and English toggle so you can always get back to the words that were actually spoken. The translation keeps every speaker label and the turn order, because judging how the call was handled means reading the conversation rather than a summary of it. It is worked out once and kept with the call, so opening it again is instant. If the call is later re-transcribed, it translates the new text instead of showing you English that no longer matches.

August 29, 2026

FIXED

Calls you place from the app land on the customer record

Dialling from a screen that had the number but not the record left the call attached to nobody. It was still logged, it just was not on the customer, so their call history and anything counting calls against them could not see it. Calls now match the number you dialled to a customer you already have, when exactly one matches, and older calls have been reconnected the same way. A number nobody is on file for stays unattached rather than creating a customer, because returning a call to a supplier or a wrong number is not a new lead. Two people sharing a number is left alone rather than guessed at.

SHIPPED

Kill a crew link the moment you want it back

A read only link handed to an engineer or a driver worked until it expired and there was nothing you could do about it in the meantime. Every link you create is now listed on the booking with the date you made it, what it opens and when it runs out, and one tap stops it working. The other links you handed out keep working. The 30 day expiry stays, so a link you forget about still dies on its own.

SHIPPED

Show the settlement on a crew link, when you choose to

Some nights it suits you to show the money and some nights it does not, and that is a decision per link rather than a setting. Creating a crew link now offers a switch that adds the settlement: the fee, the extras, what has been paid and what is still owed, the same figures your own settlement screen reads. It is off unless you turn it on, the link says plainly that it shows money, and what your performers are paid stays off it.

SHIPPED

A thank you note, written and waiting for your verdict

The day after an event a short thank you to the client is drafted and put on the booking, naming the event and signed as the business that played it. It is never sent for you, because only you know how the night actually went. Read it, add the line only you can write, and send it if it was earned. If it was not, dismiss it and nothing leaves. It is raised once per event.

SHIPPED

Every lead says where it actually is

A lead moves through a set of steps between the first message and a quote landing in their inbox, and the pipeline only ever showed the stage you had dragged it to. Each deal now carries the step it has really reached, worked out from what is on file: invited, room details in, photos in, mockup published, draft ready, approved, sent. It shows on the board card, in the list, and across the top of the deal with the whole path laid out and the days it has been sitting there. Nothing new to fill in and nothing to keep up to date. It is read from the work already done.

SHIPPED

Finished quotes stop waiting in silence

A quote that has been generated, checked and is ready to go looks exactly like every other deal on the board, so finished work can sit for weeks without anyone noticing it was ever finished. The pipeline now opens with what is waiting on you, most valuable first: quotes ready to send, quotes held back for review, deals with photos and no quote started, and leads who never sent their room details. Each one links straight to the deal. A daily check raises each one once, so a quote that waits three weeks does not turn into three weeks of reminders.

IMPROVED

A stalled lead comes with the message already written

Two of these prompts are about something only the customer can do: send their room details, or send photos of the room. Those arrive with the message drafted for you, email and text versions both, waiting on the deal. Read it, change it, send it, or leave it. Nothing reaches a customer unless you send it. The rest are about work on your side of the table, so they say what is waiting and leave the customer out of it.

FIXED

Venue addresses stopped being replaced by the city

Booking forms that ask for a venue name, a city and a street address were storing the city as the address and dropping the street the client had typed. The reason was ordering: answers were matched in the order the fields appear on the form rather than the order they were asked for, so the city, which sits higher up the form, was picked ahead of the address it was only meant to stand in for. Addresses now come from the address field, and where a form collects the city separately the two are joined, so what you get is something a maps app can actually open rather than a street with no city or a city with no street.

FIXED

Inquiries no longer lose the venue and headcount you were sent

A booking form that labels its fields "Venue or City" and "Audience or Headcount" had both answers read and then thrown away, so every inquiry through it arrived with no venue and no guest count even though the client had filled them in. Both now reach the booking. Event type, how the client found you, and any equipment they said they are providing are recorded as details you can read and search rather than a line buried in the notes.

IMPROVED

Accepting an inquiry captures what the agreement will need

The end time, load-in time, venue address, event name, overtime rate and balance due date could not be entered when you accepted an inquiry, so a booking left that step still mostly empty and the details ended up typed into an agreement instead. They are all on the accept form now, behind a Day-of details section so a quick accept is still two fields. The end time is worked out from your start time and set length and offered as a suggestion you confirm or change, never saved on its own, because the end time is something you are committing to.

IMPROVED

An invoice raised for a booking stays attached to it

Creating an invoice from a booking produced a document with nothing tying it back, so it could only be found by hunting through the invoice list and there was no way to see from the booking that it existed. Invoices now carry the booking they were raised for, on the web and on your phone, and Create Invoice opens with the client, the amount owed, a description and the due date already filled in rather than asking you to type what is on the screen in front of you.

FIXED

Bookings on your phone follow the business you have selected

The bookings, calendar, inquiries and performers screens could show a list drawn from every business while the header named just one, and opening a booking from that list could then fail to find it. All four now read the business shown in the switcher and reload when you change it, so the list matches the name above it.

IMPROVED

A clearer answer when an API key cannot reach a booking

An API key works within a single business, which is deliberate, but asking it for a booking in a different business answered "Booking not found" and read as though the record had been deleted. The reply now explains that the key is limited to one business, so a correct request stops looking like missing data.

FIXED

A Shopify order stops rewriting your customer record

When an order shipped to a venue, the number on the delivery was the site contact at that venue, not the person who bought. The hourly Shopify sync stamped that number onto the buyer and replaced their company with the name of the delivery address, and it did it again every time the order re-synced, so a phone number you had corrected by hand kept reverting. The buyer's own billing details now take precedence, and anything coming from Shopify may only fill a field you left blank. What you typed yourself is never overwritten.

FIXED

A text from an unrecognized number lands on the right contact

If nobody currently carried an incoming number, the message opened a new phone-only contact with no name and no history, which split a customer's conversation across two records and could raise duplicate deals against the empty one. Before anything new is created, the recent messages already exchanged with that exact number are checked, and the number joins the contact who has been talking to you all along.

IMPROVED

A lead describing a problem is treated as a lead

A school writing in about a loud classroom and asking about soundproofing was being read as a support question and filtered out of your pipeline. Form submissions are now scored on the words people actually use to describe a noise problem, and "we did one room, we need another" reads as new work rather than a question about the old job. Qualifying form leads also receive the room analysis invite automatically, which until now only went to leads who arrived through chat, and the existing guard still stops anyone getting it twice.

IMPROVED

Your invite emails carry your brand, not ours

Links in the room analysis invite now use your brand color, and the signature carries the same phone and website line your sequence emails end with, so a customer sees one consistent sender. A reply to somebody's own inquiry ends with your business identity rather than an unsubscribe link, because they never joined a list. Campaigns and drip sequences keep their full opt-out footer, and both are built from the same place so they cannot drift apart.

August 28, 2026

SHIPPED

Close out a gig once the money is in

A booking stopped at performed, which said the event happened and nothing about whether you were paid for it. Every event that has been played now carries a settlement: the contracted fee, every extra charge, every payment received, and what is still outstanding, all from the same figures your payment links are built on. Close it out when the money is in and the reminders stop. Close it with money still owed and you are asked why first, so a write off is a decision you can find later rather than a number that quietly vanished. Money still owed to your performers blocks the close entirely, because that is not yours to sign off.

FIXED

Money owed after the event still gets chased

Reminders stopped the moment an event date passed, so a balance nobody paid on the night became invisible the next morning. A balance still outstanding after the event now raises one prompt with the message to the client already written, ready to read and send. One prompt per booking, not one a day, so an unpaid balance three weeks on stays a phone call rather than turning into a fortnight of notifications.

FIXED

Day sheets, settlements and advances open on the first try

Those three tabs all read "Add a show date first" with no button and no explanation, while the checklist above them showed a green tick against the show date, so the same screen told you that you were finished and refused to let you start. Each tab now offers the booking date it already knows about, and one tap sets up the day. Running more than one date still works the way it always has: add each day on the Dates tab and nothing is added for you.

SHIPPED

Send your crew the day sheet without giving them an account

Call times, load in, the venue and the stage plot sat behind a login, which the engineer, the driver and the sub covering a set do not have. A booking now produces a read only link covering the day sheet, stage plot and rider that opens on any phone with no sign in. The link carries an expiry so it stops working after the run instead of circulating forever, and it shows only the show details. Client contacts, fees and payments are never on it.

SHIPPED

Read an agreement before it becomes one

Checking how a wording change looked against a real booking meant creating the agreement to find out, so a few rounds of edits left a pile of documents behind and every one of them had to be cancelled by hand afterwards. Preview now shows the finished document for that booking, laid out exactly as the client will receive it, and saves nothing at all. Anything still missing from the booking is listed above the preview so you can fill it in and look again. Nothing is created until you choose to create it.

IMPROVED

Editing a draft agreement updates it instead of copying it

Every re-render used to leave a new document behind and the old one waiting to be cancelled, one at a time, so a single agreement could end up buried under seven abandoned versions with nothing to say which mattered. Re-rendering a draft now updates that draft and moves it to the next version, and the template, payment terms and custom clauses you typed come back with it instead of starting blank. Once an agreement has been sent it is left alone: sending a revision retires the version it replaces and records which one replaced it, so what happened is readable later.

IMPROVED

Chase a signature without leaving the booking

An agreement waiting on a signature offered no way to follow up, so a reminder meant opening a mail client and pasting the link by hand. Sending it again is now one action on the booking, and the link already in the client inbox keeps working. Each agreement also states who has signed it rather than leaving you to read a status: signed by both parties, waiting on the client, or waiting on your countersignature, with the countersignature one tap away when it is yours to give.

FIXED

Committed hours and venue show up where you look for them

A booking could sit with no venue, no address and no times while the signed agreement carried all four, so the one place you would check at the venue was the empty one. Sending an agreement now fills any of those details the booking is missing, and only the missing ones: anything you typed yourself is left exactly as you typed it. An agreed overtime rate written into the terms is captured as a number too, so an extra hour prices itself.

SHIPPED

Your bookings tell you what is not ready

Nothing on the booking side ever chased anything, so an agreement could sit unopened for weeks and a balance could fall due on the morning of the event without a single prompt. A daily check now reads every live booking and tells you what is missing: an agreement sent and never opened, a signature still outstanding a week before the date, a deposit due or already past due, a balance still owed the day before, and on the day itself one summary covering whether it is signed, what is owed, your committed hours, the venue and the client number. Each alert also writes the message to the client for you. Open the booking and the draft is sitting at the top, in full, with one button that sends it through the same payment link or agreement flow you already use. Read it, send it, or dismiss it. Nothing reaches a client until you press send. Each alert is raised once per booking, so an agreement that stays unsigned for three weeks does not turn into three weeks of reminders.

SHIPPED

Get paid at the gig

Collecting the rest of your money at an event meant a laptop, or editing the agreed fee by hand and hoping you remembered why. A booking now carries a money panel that shows what is owed and lets you act on it: send the client a payment link for the balance, bill overtime at the hourly rate already in the signed contract, add a tip the client offered, or record the cash and checks that never touch a card reader. Extra charges are itemized, so the client sees the balance and the extra hour as separate lines rather than one number they have to trust. Nothing is sent to a client unless you send it.

FIXED

The balance owed counts what was actually paid

The amount shown as owed was the fee minus the deposit, worked out fresh on the screen you were looking at. It ignored the payment record, so a part payment, a cash handover, an added charge or a refund left the figure wrong, and a payment link could be raised for the wrong amount. Balances are now worked out once, on the server, from the payments actually recorded against the booking, and every screen and every payment link reads that one figure. Where a deposit was collected before this record existed, it is still credited and the booking says plainly that no receipt backs it.

IMPROVED

Overtime rates live in the contract as a number

An agreed overtime rate sat inside the terms as a sentence, so billing an extra hour meant reading the contract and doing the math. Bookings now hold the rate itself, contracts fill it into the overtime clause, and adding an hour prices it from that rate. Where no rate was agreed, the charge is marked as outside the contract so you know to get the amount confirmed in writing before you bill it.

IMPROVED

Type any size without leaving the size menu

Changing a placed panel to a size you type used to mean leaving the size menu for the separate custom size sheet, and the menu read as if the listed sizes were the only ones. The menu that opens on a selected panel now takes a typed width and height directly, tells you the price at the next stock size up before anything changes, and runs the same fit checks every resize gets, so a size that will not fit is refused with the reason and the panel keeps its spot.

SHIPPED

Rotate several panels at once

With two or more panels selected there was no way to change their orientation; rotate only existed for a single panel. The group toolbar now turns every selected panel a quarter turn where it stands, even when the selection spans walls. Each panel is checked on its own, so the one whose turn would cross a window stays put while the rest still turn, and any split is spelled out with the reason instead of left to guesswork.

FIXED

A firm press on a panel stays a click on a Mac

Pressing firmly or tapping with three fingers over the 3D room could open the macOS dictionary card on top of your layout. The viewer gives the system nothing to look up now, so a firm press selects the panel you meant. Chrome owns the three finger tap gesture itself, so there a stray tap can still summon the card on text outside the viewer; inside the room it finds nothing.

August 27, 2026

SHIPPED

See where visitors get stuck, and which customers hit it

Session recordings showed you one visit at a time, so a problem hitting dozens of people looked like a run of unrelated sessions. Your recordings are now measured for the moments that signal trouble: repeated clicks on the same spot, clicks that do nothing, script errors, and forms started but never sent. The Recordings page opens with the pages where visitors struggled most over the past week, ranked worst first. Ask the assistant how your conversion moved this month and it will line the change up against the behavior that shifted on each page over the same period. Because your recordings are already tied to your contacts, it can name the real people who hit the problem and link you straight to them, so a bad checkout page becomes a follow up list instead of a guess. Counts cover recorded sessions rather than every visit, and the assistant says so when it answers.

August 26, 2026

FIXED

Emailed pictures stop pretending to be texts

When a contact replied by email and the email carried an embedded picture, such as a signature logo, the timeline added a second entry labeling that picture an inbound text-message photo and printed the raw code of the email underneath it. The contact had never sent a text at all, and the duplicate entry buried the real conversation in markup. Photo entries on the timeline now come only from actual text messages, so an emailed picture stays with its email and a texted photo still shows as one. Nothing was lost either way; the fix removes the confusing double.

FIXED

A quote never steers your customer to the cheapest option

On a three option quote, the Recommended badge could land on the lowest priced option, which points the customer away from the work their room actually needs and away from the money the job is worth. When the lowest priced option is the one marked, the badge is now shown on the middle priced option instead, on the online quote and on the PDF alike, and new quotes are written to put the recommendation there in the first place. Picking and accepting an option works exactly as before, your own choice is still what gets saved, and a two option quote shows the badge exactly where you put it.

August 25, 2026

IMPROVED

Quote options read by what they cover, with a clear recommended choice

Quote options were named by rank, which can make a buyer feel cheap for picking the leaner option and hold back the reply that starts the conversation. Each option now carries a name that describes what it covers rather than a rank, the option you recommend wears a Recommended badge on both the online quote and the PDF, and the side by side comparison names each option by its scope. A three option quote always shows the recommended choice, even on an older draft that never marked one. Picking and accepting an option works exactly as before.

FIXED

Undo send works where you actually reply

The undo window after sending an email applied only in the Compose window, so replying inside a conversation sent instantly with no way to take it back. Replying in a conversation now holds the email for the same undo window: the message shows a countdown, one tap on Undo pulls it back before it ever leaves, and your words return to the reply box so you can fix them and send again. The hold runs on the server, so closing the tab cannot slip the message out early.

August 22, 2026

SHIPPED

Your shared 3D room says which quote option it is

A shared room could look finished without saying which option from your quote it matched, so there was no way to check the two agreed. Opening a scan link or a room plan now names the option it is showing and how many panels are on it. If the layout has changed since the quote went out, it says so plainly instead of repeating an old count, so what you see always matches what you are told.

August 21, 2026

FIXED

Ceiling and wall panel suggestions come out balanced

A starting layout could put a full row of panels on the ceiling and leave one panel alone in a second row, which reads like a mistake even on a room that never asked for that shape. Panels are now grouped into rows sized to match each other and centered as a group, so a suggested count comes out as an even cloud rather than a nearly full row with a leftover. The same fix applies to a wall where a window or door splits the panel row into two stretches: each side now gets its fair, centered share, and a side wide enough for more panels still gets more of them.

FIXED

Correcting a room saves the first time

Fixing the measurements on a room could come back with an error and leave the wrong numbers in place, so a room a customer had measured badly stayed that way. Editing, adding and removing a room all save reliably now. A corrected room keeps its own link, so a plan you already sent stays valid and still opens on the room the customer is looking at.

FIXED

A starting layout leaves your glass walls alone

A room with a glass storefront could come back with panels drawn across the window. A phone scan cannot see clear glass, because the light passes straight through it, so the front of a shop arrives as a wall with nothing on it rather than as a window to work around, and finding no windows was read as having nothing to avoid. Where a room was really scanned, a wall the scan barely picked up is now treated as glazing and left clear. Where a glass wall, a storefront or a window wall was described to you and nothing in the scan says which wall it is, the layout stops covering all four walls, treats the ones it measured best, and tells you to confirm which wall is the glass before you order. Two walls and the ceiling take the echo out of a room, so the panel count on the quote does not drop, and a wall you tap yourself is always laid out, because you can see what it is made of.

FIXED

Photo view only offers itself when there is a photo

On a shared room link, Photo view appeared on every room, including a room typed in from measurements with no photography in it at all. Tapping it swapped one plain room for another, which reads as a broken button. The link now checks whether the 3D file actually holds photographs, and where it does not, Photo view is switched off with a line saying the painted view is the only view for that room. A room built from measurements that does carry your customer's own wall photos still offers it, because the check asks the file instead of assuming.

SHIPPED

A quote shows the customer their own room

Putting a customer's room into a quote meant building the room, laying the panels out and sharing the link by hand before generating anything, so most quotes went out with no room in them at all. When a job already holds the room details a customer gave you, on a call, by text, or through a form, generating the quote now builds that room, places a starting layout of panels in it, and includes a link they can open and look around in 3D. Where they gave a length and a width, those are the room. Where they gave only a floor area, the shape is worked out from it, and both the room and the document say it is an estimate based on what they described and ask them to confirm it. A job that already has a room, scanned or built earlier, is left exactly as it is, and a layout anyone has already worked on is never touched. The starting layout is a starting point rather than a final panel count, and it stays yours to change before anything is quoted against it.

SHIPPED

Fix or remove a room after you add it

A room could be added to a job and never touched again, so a measurement a customer got wrong stayed wrong for the life of the deal and a room added by mistake stayed on it forever. Every room now has Edit and Delete beside it. A room you built from measurements opens with its own length, width and height already in the form: correct them, save, and the room is rebuilt and re-measured the same way it was created, keeping the same room so a link you have already shared still works. A room that came from a real 3D scan can be renamed, because its shape is a measurement and not something to retype. Deleting takes the room, its 3D files and its measurements with it, and if it was the last room on the job the customer link is switched off rather than left pointing at an empty page. A room a customer has already accepted a quote on cannot be deleted, and the button tells you why.

FIXED

Customer attachments are only what the customer sent

The Customer attachments panel on a job listed images you had emailed out to the customer alongside the ones they sent in, under a heading saying the customer sent them. A product example you mailed someone looked exactly like a photo of their room, and it counted toward the photos a quote gets written from. The panel now shows only what arrived from the customer, by email or by text. Anything you sent stays in the email thread where you sent it and is no longer read as a picture of their space. The same correction applies on the contact page and everywhere a quote gathers customer photos, so what you see and what a quote is built from are the same set.

SHIPPED

Remove an attachment you do not want

There was no way to take an image off a job or off a contact. A photo that landed on the wrong customer, a duplicate, or an email signature graphic picked up as a room photo stayed there for good and kept feeding quote generation. Hover any attachment, on the job or on the contact, and remove it. It leaves the panel and stops being used for quotes and room analysis, and any quote already built with it is redrawn without it. The customer's original email or text keeps the image, so clearing an attachment never changes what they actually sent you.

FIXED

A contact’s Calls tab shows that contact’s calls

Opening a contact and clicking through to Calls listed every call in the business instead of theirs, which made the tab worse than useless on a busy line. Email, texts and chats had always narrowed to the person you were standing on, and calls now do the same. Calls already linked to the contact show up, and so do older calls logged from their number before that number reached their record. A chip at the top names who you are looking at, with one click back to the whole business.

FIXED

A deal only says a quote went out when one did

A deal could show that a quote had been sent when none had. Any reply containing an ordinary word like "attached" was read as a quote, so a note thanking a customer for their photos marked their deal as quoted and moved it down the board ahead of the work still to do. A message now counts as a quote only when it states a price and calls it one, and a reply about a room analysis or a photo upload never counts. A price sitting in the quoted history at the bottom of a reply is ignored, so a thread cannot re-report the same quote on every message in it.

August 20, 2026

SHIPPED

Change your mind after Send

Every email now gives you a short undo window before it leaves. Click Send and the message is held for a few seconds with an Undo button in front of you, so a wrong recipient, a missing attachment or a sentence you thought better of costs you one click instead of an apology. Undo puts it straight back in the composer as a draft, with the subject, the body and the attachments exactly as you left them. Leave it alone and it goes out on its own a moment later. Nothing is written against the customer until the email has genuinely gone, so a message you pulled back leaves no thread and no activity claiming you wrote to them. Scheduling an email for later works as it always did, and the window can be switched off for a business that would rather send straight away.

SHIPPED

Build a quote line by line

A quote total used to be whatever got typed into it, so a figure could drift away from the work it was supposed to describe and nothing on the page would say so. You can now add, duplicate and remove lines, and put the size on each one. The total is worked out from the lines, so the number at the bottom is the number above it added up. If a stored total ever disagrees with its own lines, the quote will not lock a price on it until you have looked.

SHIPPED

Decide once how freight is billed

Freight is now a field on the quote rather than something restated in three places. Your one choice drives the shipping row, the total and the terms paragraph together, so a document cannot show a flat freight price in the box and say "quoted later" further down. Where the rate is known it is included and the total says it is delivered. Where it genuinely is not known yet, no dollar figure is shown and the total says it is before freight.

SHIPPED

Turn a priced room plan into a quote in one step

A finished room plan had to be re-entered as a quote by hand, which is where the counts drifted. A priced plan now becomes a draft quote directly, carrying the panels, sizes and materials that are actually on the walls. It goes through the same quality checks as any other quote and waits for you to review it, so nothing reaches a customer without you.

SHIPPED

Room details sent by text fill the job automatically

When a customer texts you their measurements, the fabric they want or how the delivery needs to work, those details now land on the job itself instead of sitting in a thread for someone to copy across. Photos they text are attached to the job the same way. What they already told you is not asked for again.

SHIPPED

Phone calls fill the job too

What a caller tells the phone agent about their room, the dimensions, the material, how it needs to arrive, is written to the same job record the web form and the app write to, so a call is no longer the one channel whose details had to be typed up afterwards. A measurement is only recorded when the caller states the unit, because a wrong dimension does not announce itself, it produces a confident wrong quote. Where you have turned it on, the caller can be sent a link mid-call to add photos of the room.

SHIPPED

Choose what a shared 3D room link lets a customer do

A shared plan link used to be look-only or full edit, with nothing in between. You now set the level on each link as you share it. Look is a walkthrough. Approve lets the customer sign off on the plan without the layout moving under them. Edit gives them the full set. The level is enforced on the server rather than by hiding buttons, so a link cannot be talked into doing more than you granted. Where a customer has sent photos of their walls, those can appear on the walls in the room view.

SHIPPED

Quote follow-up texts go out automatically if your quote email goes unopened

A quote that lands in a spam folder looks exactly like a quote someone is thinking about, and the difference only shows up weeks later when the job is gone. When a quote email has sat unopened for two days and the customer has not viewed it, replied, called or texted, they now get one short text from your number with a direct link to the quote. It is the message you would have sent yourself: who it is from, that the quote went out by email, and the link in case it never arrived. It goes out once per quote, only between 9am and 7pm, and never to anyone who has opted out, asked you to hold off, already bought, or been texted by another part of the system that day. The text lands in your own SMS thread with that customer and on the job, so you can see what was said before you pick up the phone. Off until you switch it on, per business.

IMPROVED

A room you type in is ready straight away

Entering a room's length, width and wall height put it in the same queue a 3D scan goes into, so the walls, ceiling and roof pitch took a few minutes to come back and the room could not be laid out or quoted until they did. If the machine that does the measuring was asleep, it took longer than that or gave up. A room built from measurements is now worked out the moment it is sent, because the measurements already are the answer. Send it, and open the room plan on the next click. Rooms that come from a real scan are unchanged: those are still measured properly, which is the only way to know a room nobody typed in.

IMPROVED

Click any link while composing to open, change, or remove it

A link in an email you are writing could be read but not checked. Clicking it put the cursor in it, the way clicking anything in the body does, so the only way to see where it actually pointed was to send the email and click it from your own inbox. Put the cursor in a link now, or click it, and its destination appears above it with three things you can do: open it in a new tab to see what your customer will see, change where it points while keeping the words, or drop the link and keep the text. It works the same in your templates and your email signature.

IMPROVED

A quote tells you what it is still missing

Before a quote goes out, the review screen now names what is still outstanding on the job and anything about the document worth a second look, with the total and the number of options in front of you. You are told what needs attention rather than having to go find it.

FIXED

Emailed document links always open

Document download links sent by email now resolve to onehub360.com in every case.

FIXED

Quote pages read correctly on freight, art panels and coverage

Proposal pages stop contradicting the freight line, show the right options for art panels, and count coverage correctly on itemized schedules.

August 18, 2026

FIXED

Orders from a hand-built quote land in the right column

When a quote you built by hand in Shopify became a deal, it always arrived in New Lead, even when the customer had already paid it. Nothing moved it afterward either, because the rule that closes a deal on payment only watches for payments that arrive after the deal exists. Paid quotes could sit in New Lead for months. Now the deal lands where the order actually is: paid goes straight to Won, valued at what was collected and dated on the day the payment landed, and a quote that is still open or invoiced goes to your quote stage instead of the top of the funnel. A deposit does not count as won, and a cancelled order never does. If the money for an order was already recorded on another deal for that customer, the order links to that deal rather than creating a second one, so the same sale is never counted twice.

FIXED

A payment closes the deal from any active stage

A payment could only close a deal sitting in a handful of stages. If you had moved the deal to Contacted or Nurture while you worked it, the payment arrived and the deal stayed open, with nothing to tell you. Payments now close a deal from any active stage. Stages you set deliberately, like Won, Lost and Archived, are still never touched.

FIXED

The emailed quote matches the one on screen

The proposal page and the PDF are drawn fresh every time they are opened, but the copy that goes out by email was written once and stored, so a correction to how a quote reads reached the page and never reached the inbox. A customer could be holding an email whose figures disagreed with the link inside it. The email body is now drawn at send time from the same quote data the page uses, so the two always say the same thing. A quote you have edited by hand is left exactly as you wrote it and is never redrawn, and if anything about redrawing fails the stored copy is sent as before, so nothing can stop a quote going out.

FIXED

A freight quote adds up

A quote for panels that ship by freight showed a subtotal, then a shipping line with a real dollar figure under it, and then a total that quietly left that figure out. Read top to bottom the box said delivery was covered and then did not cover it, and the customer only found the difference later. When the freight rate is known, it is now added into the total and the line reads "Total, delivered", so the number at the bottom is the number to pay. When the rate genuinely is not known yet, because the delivery address is still open, the shipping line no longer shows a dollar figure at all and the total reads "Total before freight", so nothing implies a price we cannot stand behind. The amount charged on acceptance is the same number the quote displays, and the freight on the resulting order is unchanged: it is counted once, as it always was.

August 17, 2026

SHIPPED

Guests change their own reservation

A guest who needed a bigger table or a different night had to call, or reply to a text and wait for someone to read it, and a change nobody got to was a change that never happened. The confirmation link now opens a page where the guest sets a new party size, moves the date or time, or cancels, from their phone and without signing in. The restaurant is texted the before and after the moment anything changes, so the floor sees the new number without anyone relaying it, and the guest gets their own confirmation on the spot. The link only ever opens the one reservation it was sent for, it is good until the table is due, and a reservation that has already been seated or turned down stays read-only with the phone number to call.

August 16, 2026

SHIPPED

A quoted deal closes itself when the payment lands

A deal you quoted through a draft order stayed open after the customer paid, so the board showed work still in play against money already in the bank, and someone had to drag the card across by hand. When the payment for that quote arrives in full, the deal now moves to won on its own and records the amount actually paid rather than the estimate it was carrying. It only acts when the money matches the quote to the cent, so a payment that does not line up is left alone for you to look at. Deals you have already marked won, lost or archived are never touched, a part payment does not close anything, and a paid sample never closes a real deal. Every automatic move is written to the deal timeline with the order it came from.

FIXED

A quote says what the room is actually made of

A quote card described the whole room with a single fabric name, so a room built in two colours of felt read as one panel fabric that was not in the room at all. The material line now lists what is really on the walls with a count against each one, so a room split between two colours reads as both, with the numbers that go with them. A room built in one material reads exactly as it did before. The same wording now goes onto the draft order and the invoice note, so the document a customer receives names the same materials as the screen it was priced on.

August 15, 2026

FIXED

Password reset emails actually arrive

Asking for a password reset always said “check your email” whether or not the email had gone anywhere, and for most accounts it had not. The reset was being sent from an address our mail provider does not recognise, so it was rejected before it ever left. Reset emails now go out from a verified address: your own domain where we can sign as your brand, ours where we cannot, with replies still landing in your real inbox. When a reset genuinely cannot be sent, the page says so and asks you to try again, rather than pointing you at an inbox that will stay empty. As before, it never reveals whether an account exists for an address you type in.

SHIPPED

Price a whole room plan in one click

Pricing a finished layout meant reading the covered panels off the quote, the extra ones off the invoice card, and adding them up by hand. A room whose plan covered everything answered “nothing to invoice” with panels on every wall. Quote plan now prices every panel in the room at once and shows the split: how many the accepted plan already covers, and how many go beyond it. Panels matching the accepted plan keep its price and are marked as such in the list, and anything new is priced at today’s rates. Where the store price has moved away from the accepted one, the difference is named line by line so it gets corrected before anything goes out. Staging puts a draft order in Shopify to review and sends nothing to anyone. If the plan already has money against it, a checkout that is staged or a quote that has gone out, that is on the screen before the button, and staging waits for you to confirm.

SHIPPED

Quote the room plan you laid out

The panels on a room plan and the panels on the quote were worked out separately, so a plan with fourteen panels on it could sit beside a quote for twelve, with nothing on either saying which one to trust. One action on the deal now makes the plan the quote source: the sizes, fabrics, ceiling panels and corner traps on the plan become the schedule the quote is built from, and they stay the schedule every time that quote is rewritten. Change the plan afterwards and the deal says so, naming the count it was quoted at and the count it is at now, with one button to bring the quote back in line. Corner traps count as pairs, the way they are sold, so a corner line cannot double. A quote already sent to a customer is never rewritten underneath them: the plan is bound and a new quote is drawn up from it. A deal with no room plan behind it is unchanged.

August 14, 2026

IMPROVED

A shared room plan says whether it is final

A room plan link could be opened before anyone had signed the layout off, and the page looked the same either way, so a working draft read as the plan you were buying. Every shared plan now says which it is, right under the heading: a working layout that can still change, a layout your team has reviewed, or the exact layout your quote was priced on. It comes from the plan itself rather than being set by hand, so it is always current, and a room with no plan behind it reads exactly as it did before.

IMPROVED

Coverage means the same thing on your quote and in your room plan

The coverage percentage on a quote and the one in the 3D plan were worked out against different surfaces, so the same layout could read 17.8% in one place and 21% in the other, with neither saying what it was a percentage of. Both now measure panel area against your walls and ceiling together, the same way our room calculator does, and both say so next to the number. Ceiling panels count toward it now, so a plan that puts treatment overhead no longer reads as though less was done.

IMPROVED

Panels you add keep the price your plan already gave you

Adding a panel to a finished plan could quote you a different number than the identical panel already on that plan, because your plan holds the price you agreed to while the store prices change over time. Add a panel that matches one on your plan, in the same size and fabric, and it now carries your plan’s price. Anything genuinely new is priced at today’s rates, and the summary says which of the two you are looking at, so there is no working it out from the total. When your plan’s price and the current one differ, your rep completes that order so the price you were given is the price you pay.

FIXED

A room scanned on the iPhone app gets measured on its own

A scan sent from the app reached the deal and then stopped. Nothing was measuring it, so the panel workbench kept answering that the scan was still being pre-processed no matter how long you left it, and the only way forward was to ask someone to start it by hand. Scans are now picked up as soon as the room geometry is ready, whichever way the scan arrived: the phone app, a file you imported, or a video reconstruction. Scan a room, and within a few minutes the walls, ceiling and openings are worked out and the workbench opens ready to place panels. Scans already sitting on your deals without measurements get picked up too, newest first. The AR view of a scan taken on an iPhone is unchanged.

FIXED

The comparison table shows the larger plan as the stronger one

On the side by side comparison, the bigger recommended plan could read as weaker than the smaller one on echo, clarity, bass and coverage, because the plain-language ratings were assigned by the order the columns happened to be in rather than by how much sound each plan treats. The panel counts, square footage and prices were always right, only the descriptions were flipped. Each rating now follows the real treatment, so the plan that covers more of your room always reads at least as strong as a smaller one, whichever column it sits in.

SHIPPED

Create a room from its measurements when you do not have a scan

No LiDAR scan of the space? Enter a room's length, width, and wall height on the deal, pick a flat or a peaked (gable) roof, and the room is built and analyzed the same way a scan is. It appears in the deal's room list within a couple of minutes with its walls and ceiling worked out, ready to place panels on and quote, so a customer who can only send you measurements is no longer a dead end. A peaked room comes back with both roof slopes, so ceiling panels sit on the pitch rather than a flat lid.

August 13, 2026

SHIPPED

Your quote shows a picture of the room with the panels on it

The quote now carries a still of your actual scanned room with the recommended layout in place, above the links. Customers who will not open a 3D link on a phone still see what they are buying, and the picture is taken from the same plan the link opens, so the two can never show different layouts. It is captured from your room plan, so a room with no plan simply shows the links as before.

IMPROVED

You choose whether a shared room plan is view only or hands on

Every room plan link now carries its own setting. Leave it on and your customer can move panels and try sizes, or switch it off and they get a clean view of the plan with nothing to change by mistake. The room, the panels and the camera work either way, so a view-only link is still something worth opening. Existing links keep working exactly as they do today.

IMPROVED

The room you share shows the panels you are getting

A shared room link opened as an empty scan even when the plan behind it was finished, under a line offering to turn it into a panel plan that had already been made. The page now draws the layout into the room: every panel where it will sit, at its real size and thickness, in the colour you picked, so navy on the walls and white on a ceiling read as two different things instead of one grey. It stays a picture rather than a control panel, so walking around, standing inside the room, spinning and full screen all work as they did. When there is an interactive plan to go with it, an Adjust the layout yourself button sits right under the greeting. A room with no plan behind it opens exactly as it always has.

FIXED

The quote PDF and the cover email carry your 3D room links

The 3D room links reached the customer only when someone remembered to paste them in while the quote was being written, so rewriting the quote quietly removed them and every other quote never had them. The walkthrough and the adjustable plan now come from the deal itself, so they appear in the PDF, on the quote page, and in the email that goes out, and rewriting the quote no longer drops them. Each one prints as the full web address as well as a link, so it still works on a printed page, and it is clickable in the PDF. A deal with no scan and no plan reads exactly as it did before.

IMPROVED

Quotes include your interactive 3D room links automatically

When a deal already has a scanned room or a room plan, the quote now points the customer straight at it instead of asking them to picture the space. The view-only walkthrough comes first, with nothing to configure, and the interactive plan next, so they can move panels around and watch the coverage change before deciding anything. It uses the links already on the deal, so nothing new is shared and a link you revoked stays revoked. A deal with no scan and no plan reads exactly as it did before.

IMPROVED

You can see when someone else is working in the same room plan

Two people can open the same room plan, and until now neither could tell. If your rep moved panels while you were moving panels, whoever saved last won and the other screen quietly went out of date. A note now appears at the top of the plan when anyone else has changed it in the last few minutes, saying who it was and how long ago, so you can reload before you keep going. It tells you our team is in there without naming a person, and your own changes never set it off. Nothing is locked and nobody is blocked, so you can still work whenever you want to.

SHIPPED

PET felt panels in the room plan

PET felt is now a panel you can place, next to fabric and printed art. Pick a colour, put sheets on walls and ceilings, and see the price live from the store. Felt comes in one 9mm thickness, so there is no thickness to choose and the control is not shown. Colours we build to order are offered alongside the stocked ones and marked as made to order, so you know which you picked before you place it. Type any size and it is cut from a full sheet and priced as one, with the cut dimensions travelling with the order. Anything larger than a sheet is priced by your rep rather than guessed at.

SHIPPED

Felt panels leave the mounting to your installer

There are many ways to mount felt and installers have their own preference, so felt sheets do not add mounting hardware to your order, on walls or on ceilings. The plan says so on the panel and on the price. Fabric ceiling panels still include the suspension kit they need, unchanged.

FIXED

Felt panels are measured at their own absorption

The echo estimate worked out absorption from panel thickness, which is right for our fabric-wrapped panels and wrong for felt. A 9mm felt sheet was read as a thin fabric panel, and a felt sheet carrying the old fixed thickness was credited with the two inch figure, which claims more than the product does. Felt now uses its own published rating of 0.88, the same figure your proposal states, so the suggested panel count and the echo estimate match what you are actually buying.

IMPROVED

A vaulted or sloped ceiling shows the shape it really is

Your room plan drew every ceiling flat, at the average height of the roof above it. In a room with a gable, a vault, or a single sloping ceiling, that put a lid across the middle of the room and floated the ceiling panels well below where they would actually hang. A gym with 17 foot eaves and a 30 foot ridge came out as a flat ceiling at 23 and a half feet. The plan now draws the roof as the planes it is built from, so what you approve matches what you walked into. The echo estimate is unchanged, because it was working from the average height and the average was right.

IMPROVED

Panels on a sloped ceiling sit on the slope

Tap a pitched ceiling and the panel lands on the pitch, at the height the roof is at that spot, angled the way the roof is angled. Ask for a whole room layout and the ceiling share spreads across both sides of a ridge rather than crowding onto one. Moving a panel up the slope moves it toward the ridge, which is what the arrows now do.

FIXED

Tapping the ceiling works in the clean view

Placing a panel on the ceiling worked in Photo view and did nothing in the clean view, with no message to say why. The ceiling was drawn facing the wrong way, so the tap was thrown out before it reached anything. Ceilings now take a tap in either view.

FIXED

Rooms longer than a hundred feet are measured properly

A scan of a big room came back with no walls found and no roof shape, and the plan opened with nothing to place a panel on. Scans arrive measured in metres, and we worked out which unit was used by looking at the longest wall. That test assumed no single room runs past about ninety eight feet, so a hundred foot gym was read as a room thirty inches across, and nothing in it was big enough to count as a wall. We now also check the room height, because a room that would be five feet tall is not a room in inches. Gyms, sanctuaries and warehouses measure correctly.

FIXED

Felt panels show their own colour in the room plan

Every felt sheet in the 3D plan was drawn the same dark grey, whichever colour you picked, because the colour list the plan reads only covered our woven fabrics. On a room quoted entirely in felt that made the whole layout one flat shade, so navy panels on the walls and white panels on the ceiling looked identical. Felt now paints in the colour you chose, and a colour outside the range shows as plain felt rather than borrowing a fabric shade.

SHIPPED

Move a whole group of panels at once

Panels could only be moved one at a time, so a row of six meant six drags and six chances to be an inch out. Hold shift and click to pick as many as you want, or tap Select on a phone and tap the panels. Drag any one of them and the whole group moves together, keeping its spacing. Every panel is still checked against your own room, so if one of them would land on a window it says so and the group stays where it was.

SHIPPED

Line panels up and space them evenly

Pick two or more panels on the same wall and line them up on their left, right, top or bottom edges, or put them in one row or one column. Pick three or more and space them evenly, with the outer two staying exactly where you put them and the gaps between the rest made equal. It reads the wall the way you are looking at it, so left is the left you can see. Anything that will not fit says which panels stayed put and why, rather than moving some of them and going quiet.

August 12, 2026

IMPROVED

A proposal held by the quality check can be read and sent anyway

The quality check holds a proposal when the money, the counts, or the shipping wording look wrong, which keeps a bad quote off a customer screen. When the check was wrong there was no way out of it: Send refused, and the page offered nothing to do about it. The hold now lists what was flagged in plain words, with a Review and send anyway button next to it. Clearing a hold asks for a short reason, and that reason is kept on the proposal with your name and the time, so the record shows who decided and why. The flagged items stay on the page as warnings rather than disappearing, and once the hold is cleared the proposal sends the ordinary way. Fixing the content and regenerating still clears a hold exactly as before.

IMPROVED

A quote split into purchase phases is no longer held as an upsell

A quote that treats one door with nine panels and a second door with thirty three of the same panel, bought in three phases, was read as padding the bigger option with more of the same thing, and was held for review. Buying the same treatment in stages is a payment plan, not an upsell, so a quote that names its phases now goes out without a hold. An option that genuinely adds nothing but quantity is still held.

IMPROVED

Quotes are written to the quality rules instead of being graded against them

The quality check knew rules the draft was never told: a higher option must earn its price with a real upgrade, counts must match everywhere they appear, each option gets one shipping price, and no total may come out as zero. Those rules are now part of the instructions the quote is written from, so a first draft aims at them rather than discovering them at the gate. There is one set of rules behind both, so the instructions and the check cannot drift apart.

IMPROVED

A flagged draft gets fixed automatically before it reaches you

A draft the quality check flags is now sent back once, with exactly what was wrong, and rechecked. Only a draft that still fails after that lands in your queue for review, and when it does, the note says the automatic pass already ran and what it could not fix. If the first pass took long enough that a second would leave you waiting, it goes straight to you instead, because a held draft you can see beats a fix you are still waiting on.

FIXED

The panel count on a quote matches the panels quoted

A quote for nine panels showed eighteen on the tier badge, and one for thirty three showed sixty six. The doubling came from a protective layer built inside each panel: priced alongside the panels, never shipped as a separate piece, and counted as if it were. Anything in that shape, a built-in layer, an upgrade, a surcharge, freight, installation, no longer counts toward the panel total on the option card, the PDF comparison table, or the editor. The absorption figure on that same comparison row stops crediting square footage no panel provides.

FIXED

Shipping terms in the editor match the quote you send

The proposal editor printed freight wording of its own and it had gone stale, so you checked one set of delivery terms on screen and the customer read another. Shipping in the editor now comes from the same place the quote, the email and the PDF read it, and a total that already covers shipping says delivered.

August 11, 2026

FIXED

Corner bass traps appear in the finished room picture

A corner trap you added was priced, counted toward the echo estimate, and then missing from the picture your rep sends back. Traps now show up where they actually sit: across the corner, at the angle they mount at, at their real size and thickness, in the colour you picked. If a trap cannot be drawn because the room was rescanned since it was placed, the picture says so instead of quietly leaving it out.

FIXED

Panel sizes on a shared room plan read as words, not a long number

On a plan shared without a quote behind it, every panel size showed a sixteen digit number where the count belongs, in the palette and in the menu for changing a panel size. Sizes you can add as many of as you like now simply say Add.

SHIPPED

Plan your room yourself, from a link

A room plan shared without a quote behind it could be looked at but not touched: the panel sizes were right there, tapping a wall showed you where the panel would land, and then nothing happened. You can now place, move, resize and remove panels in it yourself. Every panel you add is priced as an addition, with the cost shown before you order anything, and nothing is ordered or invoiced until you decide. Your rep still produces the final render.

FIXED

Tapping to place a panel works on a phone

On a touch screen a tap that moved even slightly counted as spinning the room, so the panel never landed and it read as the screen ignoring you. A tap now places where you aimed, and turning the room works exactly as it did.

IMPROVED

Corners you can actually aim at

Picking a corner trap size used to leave you tapping around a corner hoping something happened, and on a phone the tap often turned into a spin of the room instead. Choose a trap size and every corner it can go in is now marked in the room, so you can see your targets before you aim. Tapping near a marker places it there, and turning the room still works the way it did. Corners that cannot take a trap say why, which on a room with a wide storefront opening is usually that the two walls never actually meet.

SHIPPED

Corner bass traps in the room plan

Pick a trap size, tap near a corner of your room, and see it seated where it will really sit. Two stack floor to ceiling in one corner, the way they ship, and they are priced by the pair because that is how they are sold.

IMPROVED

The room plan tells you when a corner will not work

The outside edge of a column, a corner too short for the trap, or a window reaching into the corner each say so in a sentence you can check against your own room. In a corner tighter than a right angle it also tells you how far the trap will stand out, before anything is built.

FIXED

No more mystery boxes on your walls

The room plan drew a faint rectangle for every edge the scan noticed, which on a real room meant a scatter of squares that looked like junk. Those never blocked anything, and they are gone. Real windows and doors still show, now as a light glass pane rather than a grey slab, so a window reads as a window.

SHIPPED

Share your room plan

A Share button on the plan gives you two links to copy: a view-only page of the room as scanned, and the interactive plan itself. Each one says who it is for. Copying a link does not send anything, so you decide who gets it and when.

FIXED

Photo view says when there is no photo

Some scans are shape only, with no photography in them. Photo view used to look available and then show the same painted room. It is now switched off on those scans with a line saying why, instead of a button that appears to do nothing.

SHIPPED

Put panels on the ceiling

Tapping the ceiling did nothing. Suggested layouts could put panels up there, but you could not place one yourself. Now you can: pick a size, tap the ceiling, and it previews and places the same way a wall does. Each ceiling panel adds the suspension kit it needs to hang, priced from the store, so what you order is what you can actually install. Ceiling panels show as unverified rather than backed, because the scan measures walls and works the ceiling out from them.

SHIPPED

Custom size, where you can find it

You can type any width and height and place a panel at that exact size, billed at the nearest stock panel it can be cut from. That was true before and it was buried. There is now a Custom size chip in the panel palette, a Custom size row at the bottom of the list when you change a panel size, and a Custom size button in the toolbar. All three open the same thing, and it names the panel it cuts from and what that costs before you place it.

IMPROVED

12 x 12 panels are no longer offered

The smallest size has come off the list. If you need a piece around that size, type it as a custom size and it is cut from a 24 x 24.

SHIPPED

Clear all the panels at once

Taking a layout apart meant removing panels one at a time. One control now clears the board, with a confirm first that says how many will come off and how many stay. Panels your plan covers stay on the wall, and it tells you that rather than quietly leaving them. Everything cleared can be placed again.

FIXED

Zoom that actually gets you close to a wall

Zooming in the room plan barely moved while zooming out drifted across the room, which read as the scroll working backwards. Scroll, trackpad, and pinch now move the view the way the shared scan view does, so you can get right up to a wall and see how a panel meets a corner.

FIXED

Two panels is now an order you can place yourself

Adding a couple of large panels beyond your plan produced a price and then no way to pay it, because large panels carry a five-piece minimum at checkout. The room plan now carries that exemption with it, so a layout with two extra panels gets a working cart link the same as a layout with twenty. Ordering any quantity through your rep still works exactly as it always has.

SHIPPED

Enter the size you actually need

A wall rarely wants the sizes on the shelf. You can now type any width and height and the panel goes on the wall at the size you asked for. It is priced at the nearest stock panel it can be cut from, and it names that panel and its price before you place it, so nothing changes on you at the cart. The cut dimensions travel with the order, so what arrives is the size you typed. Anything larger than our biggest panel is priced by your rep rather than guessed at.

SHIPPED

Pick the fabric and the colour on the panel

Panels were priced in one colour, with a note saying other colours are arranged with your rep. A Panel button now opens fabric, colour, thickness and size together, on the board and on any panel already on the wall. Every burlap colour we carry is there, black included, and colours are offered per size, so you cannot pick one that turns out to be unavailable in the size you want. Fabrics we finish to order are still offered, marked as priced with your rep rather than hidden. Changing the colour of a panel your plan covers costs nothing: the plan bought that panel, and the colour is yours to choose.

SHIPPED

One inch, two inch, and four inch bass traps

Thickness is a choice on the panel now instead of a fixed two inches. One inch, two inch, and four inch bass traps are each priced from the real product, at the sizes that thickness actually comes in.

SHIPPED

Printed art panels as an option

Art panels can go on the wall alongside fabric ones and are priced live from the store. They print on a white substrate rather than fabric, so choosing art drops the fabric and colour controls entirely. Art is finalized with your rep, who sets up your artwork and sends a proof to approve before anything prints.

SHIPPED

Take the whole layout, not just the part your plan covers

Ask the room plan for a layout and it shows you what the room actually needs, which is often more panels than the plan you bought. Until now the only two choices were to place the handful your plan covered or throw the whole layout away. You can now take all of it. The extra panels go on the wall as real panels you can move, turn, resize, or take off again, marked in amber so it is always clear which ones are included and which ones are additional. The button says the extra count before you press it.

SHIPPED

Change a panel size without starting over

A panel on your wall can now be swapped to any size in the range, not just the size your plan came with. Pick the panel, pick the new size, and it changes where it stands. Sizes your plan includes show how many you have left; the rest are marked as additional. If the new size will not fit where the panel is, because it would cross a window or run past the end of the wall, it says so and the panel stays as it was rather than sliding somewhere you did not ask for.

SHIPPED

See what the extra panels cost, and buy them yourself

Adding panels beyond your plan used to end with a note saying your team would follow up. The room plan now prices the additional panels for you, live from the store, with the split stated plainly: how many your plan covers and how many are extra. A cart link takes you straight to checkout with exactly those panels in it. Sizes we build to order are marked as priced by your rep rather than guessed at, panels over four feet say they ship by freight, and nothing is ordered, invoiced, or sent to anybody until you decide.

FIXED

You can remove a panel you just added

Panels added beyond your plan could be placed but not taken back off, and tapping a panel while a size was selected did nothing at all. Both are fixed. Any panel your plan does not cover can be removed at any time, whoever put it there, because it is a panel you are being asked to buy rather than one you already own. Panels your team placed as part of what you bought can still be moved and resized, and still stay on the wall.

IMPROVED

Prepare an invoice from a room layout

When a customer adds panels beyond their plan in the 3D view, you can now price the extras and stage the order from the same screen, matched to real products at current store prices. Freight is applied where it belongs rather than left at zero. It stages a draft and stops: sending it is still your call, in Shopify, the same as every other order.

FIXED

The room plan keeps you in the room

Looking around your 3D room plan could swing the camera through a wall and leave you outside the building, facing the backs of your own walls with no obvious way back in. The view now turns around a point inside the room rather than around the wall you are facing, so dragging turns you on the spot the way looking around a real room does, and zooming out stops at the far wall instead of flying through it. Your plan opens standing in the room at eye height, facing your largest wall. A new Inside button puts you back in the middle of the room whenever you want it, still facing the way you were looking, and Plan view still lifts you above the room for the overhead layout.

FIXED

The panel count matches the floor you actually have

The echo estimate sized your room from a rectangle drawn around your walls rather than the floor inside them, so an L-shaped or angled space came out larger than it is. A bigger room needs more treatment, so the reverberation figure ran high and the suggested panel count followed it. On a real restaurant scan that was 863 square feet of floor in a room that has about 567, and 39 suggested panels where 23 does the job. Your room outline is now traced from the walls the scan measured, following the actual shape of the space. Where a scan has no wall to follow, such as a glass front, the outline runs straight across the gap and the estimate is marked approximate, with a note saying how much of the shape was filled in.

FIXED

A half-finished scan says so instead of getting quoted

Walk a large space, stop partway, and the scan covers a wide area with only a few walls in it. The echo estimate counted that whole span as floor, which on one real scan produced a room four times its true size and a suggestion of 234 panels. A floor area that could not fit inside the walls the scan actually measured is now refused, and the estimate is left off rather than shown. A partial scan reads as needing more scanning instead of as a very large room.

IMPROVED

A panel is marked backed only where the wall was measured

Panels showed the green backed marker whenever they sat inside a wall the scan reported, which is not the same as the scan having found anything there. On one room that left approved panels marked backed while sitting nearly two feet from any measured surface. Scans now record which stretches of each wall were actually captured, so a panel reads as backed where the wall was measured and unverified where it was not, whether you placed it by tapping or took it from a suggested layout. Unverified does not mean unusable: the wall behind a booth or a bar often cannot be captured from the floor, and those spots are still fine to treat. A panel hanging off the end of a wall or across a window is still flagged straight away. Re-scanning a room also re-checks every panel already in it, so a panel left on a wall the new scan cannot find stops showing as good.

SHIPPED

Ask for a panel layout, then move anything you want

Placing panels one at a time meant deciding where each one goes before knowing how many the room needs. Tap a wall and the room plan now proposes a layout for it, or lay out the whole room at once. The number comes from what it would take to bring the room down to a conversation-friendly level, estimated from the scan itself rather than from what the plan already contains, so when a plan holds eight panels and the room calls for nineteen you get that number in plain words instead of a guess. Panels arrive in an even band at listening height, spread so a long wall gets more than a short one, and never over a window or a door. Nothing is placed until you say so: the layout appears as a preview first, and once you accept it every panel can still be moved, turned, or taken off, and you can add more in any size your plan includes.

IMPROVED

A cleaner view of your room while you plan it

The room plan opened on the raw 3D scan, which is faithful but rough: torn patches, uneven walls, and taps that sometimes landed nowhere. Planning now happens on a clean version of your room built from the same measurements, where windows and doors are real openings you can see through, so it is obvious why a panel will not go somewhere. Tapping a wall lands where you aimed. A Photo view button brings back the actual scan whenever you want to see the panels in your real space, and switches back again. On a scan the clean view cannot represent faithfully, the photo view opens first instead. A room whose scan never produced a viewable 3D model can be laid out here too, which was a dead end before.

FIXED

Your room plan opens on the view that actually shows your room

A scan of a large or irregular space can resolve the same wall more than once, and sometimes resolves walls that overlap each other. The clean view drew each of those as its own surface, which came out as shards across the floor with panels showing through them. Where a scan resolved one wall several times, it is now drawn as one wall, and panels sit flat against it. Where a scan produced walls that overlap, the photo view of your actual room opens instead, with the clean view still one tap away. Asking for a whole-room layout on a scan like that now tells you so rather than placing panels on surfaces that are not there, and tapping a wall to fill it works exactly as before.

SHIPPED

Ceiling coverage, on or off

A suggested layout now places panels on the ceiling as well as the walls, with the walls still taking the larger share. A Ceilings button leaves them out if you only want wall coverage, and the suggestion is worked out again without them.

IMPROVED

Panels in the 3D room plan are real panels now

A panel in the room plan used to be a flat rectangle drawn on top of the picture. It stayed the same size when you zoomed in, it showed through walls and furniture, and it had no thickness, so it read as a sticker on the screen rather than something mounted on the wall. Every panel is now real 3D geometry at its actual size: it grows as you move closer, it has a soft edge and a dark rim the way a fabric-wrapped panel does, it sits flush against the wall, and a panel around a corner is hidden until you turn to face it. The preview you see before placing one is the same shape and size as the panel you get. Reset view also works on the layout page now, instead of doing nothing.

August 10, 2026

IMPROVED

Your room plan opens standing in the room

The 3D room plan you send a customer used to open from outside the room, looking at the back of the walls, which on a partial scan reads as a mess of fragments rather than a space. It now opens inside the room facing the largest wall, stood back far enough to see it, with a Reset view button to get back there after looking around. Zooming out stops at the room instead of drifting back outside it.

IMPROVED

Panels look like the colour they actually are

Every panel in the palette showed the same grey square, so a plan with two colours of the same size was two identical rows. Panels now show their real fabric colour, drawn from the same colour reference the proposal PDF prints, across Burch Prime Time, Microsuede, Burlap, and the Guilford ranges. Size is the headline on each one, because that is what a customer is choosing between. A short palette also says how many panels the plan includes, so one option does not read as the whole product.

IMPROVED

Tap to preview, tap again to place

On a phone the first tap now shows an outline exactly where the panel would land, coloured by whether it is allowed there, with a confirm button. Tapping somewhere else moves it. Before, a tap placed the panel immediately and the only preview anyone ever saw was the one that appeared when a placement was refused. Aiming at a wall is also more forgiving on a small screen, and the page fills the phone with the palette under your thumb instead of a heading and a paragraph above a squeezed-down room. The cookie notice no longer sits on top of the controls.

FIXED

A hole in a scan is no longer mistaken for a window

Where a scan tore — a patch the camera never captured — the software read the gap as a window or a door and refused every panel near it, permanently, with a message about clearance from glass that was not there. Those gaps are now told apart from real openings by whether the wall around them is intact, and a torn patch is flagged as something to check rather than a wall that says no. Real windows and doors, including ones the scan is only somewhat sure of, still block placement exactly as before.

IMPROVED

Outdated wording gets caught in eight places, not three

The check that finds stale claims across your content used to look at your storefront pages, products, and blog. It now also reads the reference material your proposals are generated from, what your chat and voice agent knows, every step of every outbound sequence, every canned reply, and every knowledge base article. Those are the places a correction usually gets missed: a policy fixed on the website while an email sequence keeps sending the old wording for months. Each place now reports whether it was actually readable, so a source that failed to load no longer has its open findings marked resolved as though somebody fixed them.

SHIPPED

Facts that expire on their own, and a record of who changed what

A canonical value can now carry the authority behind it and, when it is only true for a while, an end date. A supply note good through November stops being treated as current the day it lapses, instead of quietly becoming the wrong answer everybody trusts. Every change to a value is recorded with what moved and why, and changing a value that can flag your outgoing work requires a stated reason. You can also mark a value internal, and anything internal showing up on a public page is raised as a high-severity finding.

FIXED

A fire rating gets credited to the product that actually earned it

A quote containing PET felt panels could state a Class A rating and attribute it to the fabric face, which is not what those panels are made of. The rating is real, but the attribution was wrong, and that is the kind of detail an institutional buyer checks. Proposals now flag it for review and supply the correct wording, and a quote whose only rated item is PET felt states that product on its own terms. Quotes containing a component that is not Class A are still held, unchanged.

August 8, 2026

SHIPPED

Mark an option accepted when the customer says yes on the phone

Plenty of customers confirm which option they want on a call or in a reply, and until now the only way to record it was to ask them to go find the email and click a link. Each option on a proposal now carries a Mark accepted action on the deal. It locks that option at the price the proposal already shows, creates the contract for signature, and stages the order for your review. The amount is always recomputed from the proposal itself, so nothing typed on the screen can change what gets charged, and the record shows whether the customer clicked it or your team recorded it. Accepting a second time, from either side, never creates a second order. Nothing reaches the customer until you tap send on the approvals page.

SHIPPED

Open the panel workbench on any scan, with no proposal needed

Some customers know exactly what they want and do not need three options priced out first. You can now open the placement workbench straight from a scan on the deal, with no proposal behind it. The panel palette becomes the standard size range instead of a purchased plan, with no count to run out of, so you can lay out a room and produce the 3D render as a starting point for the conversation. Every placement check still applies, so a panel over a window is still refused. The finished render and its customer link land on the deal timeline the same way, and nothing is priced, invoiced, or sent.

SHIPPED

Place panels by clicking the room, and the machine checks every one

Laying out a treated room used to mean a scan, a spreadsheet, and a render request that came back hours later with panels in the wrong place. Open the scan, pick a panel size from the plan the customer bought, and click the wall. Each click is checked as it lands: the panel seats on the surface the scan actually measured rather than an idealized flat wall, stays square, keeps four inches clear of every window and door, and cannot overlap a panel already placed. A drop that breaks one of those is refused with the reason, so a panel over glass never reaches a customer. Where the scan is not confident whether something is a window, the area is treated as one and the coverage number reflects it, instead of guessing and covering it. Panel counts come straight from the confirmed plan and tick down as you place them, so a layout can never show more panels than were bought. When the layout is right, Done builds the finished 3D room and publishes the customer link on its own.

SHIPPED

Customers can move their own panels

A customer looking at their 3D room can now nudge a panel along the wall and add more from what their plan already includes, instead of describing the change in an email and waiting. The same checks apply to them, so a customer cannot place a panel over their own window. Panels your team placed can be moved but not removed, and nothing they change touches pricing or sends an invoice: their edits arrive for your review, and any change to what the job costs stays your decision.

SHIPPED

Your customer sees their own room on the proposal

When a 3D render of a room finishes, the link to it now lands on the proposal by itself, on the option it belongs to. The customer opens the proposal and can look at their actual space with those panels in it, rather than reading a list of sizes. Regenerating the proposal no longer wipes the link, and the same link shows up on the web version, the PDF, and the emailed copy without anyone pasting anything. A note goes on the deal timeline when it publishes, so you can see when the customer got it.

SHIPPED

A customer picking an option builds the order for you

When a customer confirms one of the options on their proposal, the matching order is put together and waits for you, instead of someone rebuilding the same cart by hand and getting a size or a shipping line wrong. Panels are matched to real products, custom sizes are priced at the next standard size up rather than guessed, and anything over four feet is marked for freight so a pallet shipment is never quoted as a parcel. If a line cannot be priced with confidence it is flagged rather than filled in, and the order still needs your tap before it goes anywhere.

SHIPPED

One place for everything waiting on your approval

A new Approvals page collects the two things that stall without you. Checkouts a customer has already confirmed sit there with the tier, the amount, the customer, and how long they have been waiting, and go out on one tap. Panel layout changes a customer made in the 3D view sit there for you to accept or reject before anything is repriced. Nothing sends on its own, and nothing ever will: a checkout still reaches a customer only when you tap send. If a checkout contains a line we could not price, the send button stays off and tells you why, rather than showing you a total that is missing something.

IMPROVED

The morning brief flags work that is only waiting on you

The daily brief now names checkouts that have been staged more than a day without being sent, and customer layout changes nobody has reviewed. Both are the kind of thing that costs a sale by sitting still. Neither line appears when there is nothing waiting.

SHIPPED

See what a panel layout does to the room, not just what it costs

A proposal could tell a customer how many panels they were buying and what the total was, but not the thing they actually care about: how the room will sound afterward. Every tier on a proposal now carries an estimated reverberation time, before and after, in plain seconds with a word for what that means, from echoey down to conversation friendly. The number is worked out from the room the customer scanned and the panels that tier contains, so a bigger option visibly does more. In the panel workbench the same figure sits in the toolbar and moves as panels are placed, so the effect of one more panel is visible before anyone commits to it. Every figure is labelled estimated and shows the assumptions behind it on a click, and when a scan is only good enough for a rough room size it says so rather than pretending to a measurement. A deal with no scan simply shows nothing, because a reverberation figure for a room nobody measured would be worse than none.

August 6, 2026

IMPROVED

The 3D room share page holds still when you do

The shared room scan used to spin on its own and start spinning again the moment you let go, so pointing a customer at one wall and talking it through was a fight. The model still turns gently when the page opens, but the first touch stops it for good; a Spin button brings it back if you want the showroom effect. A new Inside button places the camera in the middle of the room so you and your customer can look around from where they would actually stand, instead of orbiting a dollhouse.

August 5, 2026

SHIPPED

Let the client sign your contract first

Sending a contract used to require your typed signature on the way out, which put your name on a document before the other side committed to anything. Sending now offers a Client signs first option: the recipient gets an unsigned copy, and when they sign, the contract waits for you with a Countersign button on the contract page. You get a notification the moment their signature lands, they get a copy of what they signed plus a note that yours is coming, and the fully executed copy goes out to them automatically once you countersign. Signing first is still there and still the default, so nothing changes unless you pick the new order. A contract waiting on your countersignature shows its own status everywhere it appears, and cannot be deleted, so a signature you already collected can never be thrown away by accident.

FIXED

Cart recovery stops at the first bounce

A recovery sequence kept sending to a mailbox that had already rejected the first email, which spends your sending reputation on an address that will never receive anything. Every step now checks the address against your bounce and suppression records before it goes out, and a sequence pointed at a dead mailbox is closed instead of finishing its remaining emails. That check now comes from one shared rule used across your automated email, so an address that bounces once is respected everywhere instead of in a single feature. Emailing someone deliberately from your inbox is unaffected; this governs automated sends only.

FIXED

Invented shoppers no longer trigger recovery emails

Bot traffic was creating abandoned checkouts under made-up names, and your recovery emails were going to mailboxes that do not exist. Abandoned checkouts are now screened before a sequence starts, using the same spam defenses your forms and chat already run plus whether there is any real browsing behind the cart. Two safeguards keep real people in: anyone who has ever bought from you is never screened out, and a missing browsing record on its own never blocks anyone, because plenty of genuine customers arrive without one. Suspect records are kept and tagged rather than dropped, so you can still review them.

IMPROVED

Cart recovery reminders drop the fake deadlines

The reminders warned that your cart was about to expire, that availability could not be guaranteed, and that the items would be gone after the final email. For stock products none of that holds up, and shoppers can tell. The three emails now say plainly that the cart is saved, that the link still works whenever the customer is ready, and on the last one that it is the last email they will get about it. Timing, layout, and buttons are unchanged.

August 3, 2026

SHIPPED

Send Shopify invoices from the deal, with opens and clicks

Deals with a Shopify draft order now have a Send Invoice button. The invoice email goes out from your own business address with an optional personal note, and because it rides your tracked sending rail, you see when the customer opens it and get notified the moment they click through to pay. Shopify’s own invoice sender tells you none of that. Your Shopify admin workflow keeps working; this gives the same send a paper trail.

SHIPPED

Shopify invoice sends show up on the timeline

Send an invoice on a Shopify draft order and the contact timeline records it within minutes: which draft, the amount, and exactly when it went out. Re-send it and the timeline shows that too. The open deal also carries a last-invoiced date, so you can see at a glance who has an invoice in hand and who is overdue for one. If the invoiced customer was not in your contacts yet, a record is created so the follow-up has somewhere to live.

August 1, 2026

SHIPPED

One-click Room Analysis invites, with an optional auto-suggest

Inviting a lead to your Free Room Analysis is now one click from the contact or the deal, with the invite written in your business voice and sent from your own address. When a lead describes a real project, the timeline can now surface a ready-to-send invite suggestion so the opportunity is in front of you the moment it appears; sending stays your click. A new Settings switch, off by default, lets a business send those project-intent invites automatically. Every invite, clicked or automatic, checks the contact hold and the deal state first, so a paused contact or a closed deal is never emailed without you seeing why and choosing to proceed.

FIXED

Hold dates mean the day you picked

Pausing outreach on a contact until a date could show, and end, one day early. A hold now runs through the end of the day you chose in your own timezone, on every screen and in the automation that honors it.

FIXED

Send and Regenerate always respond

The confirmation step on sending a proposal and on regenerating an edited draft could be silently swallowed by the browser, leaving the button doing nothing. Both now use a clear in-page confirmation that names what is about to happen, including whose edits a regeneration would replace and that a snapshot is kept in version history.

IMPROVED

Customer links go out on your own domain

Once you set up a link domain in Settings, every link your customer sees now carries it: the proposal, the invoice and payment page, the booking confirmation, the e-sign request, the ticket and wallet pass, and the unsubscribe line. Previously only click tracking moved across, so a quote sent from your address could still ask a customer to click a domain they did not recognize. Matching the link to the address you send from also helps the message reach the inbox instead of the spam folder. Businesses that have not set up a domain are unaffected.

FIXED

Link-domain setup says who is waiting on what

The setup screen implied the security certificate completed on its own, so a correctly configured domain could sit on a failed check with no next step for anyone. It now separates the DNS record you add from the certificate we issue and names which one is outstanding. Your email keeps sending on the default domain until yours is live, so nothing is held up.

SHIPPED

Share a room plan with a link

A plan built in the room planner now has a Share button that captures the whole design in the link itself: room size, tier, fabric, color, and every per-wall edit. Whoever opens it sees the exact plan on any device, with nothing to sign up for and nothing stored on a server. The person planning a space is often not the person approving the spend; now the plan travels to them intact.

SHIPPED

Won means paid

Moving a deal to Won now asks for payment on record first: a paid invoice, a linked order, or a payment you log in one click right from the refusal message. Off-the-books payments count once logged, and you can still override with a note when reality calls for it; the override is recorded on the deal timeline. Your pipeline’s won column now agrees with your bank account.

FIXED

Call notes quote the caller, not the agent

Details captured from phone calls, like quantity, budget, and timeline, could pick up a number the voice agent said, such as a delivery fee, and file it as the customer’s answer. Extraction now tracks who said what, so a quoted fee can no longer become a customer budget and a product model number can no longer become an order quantity.

July 29, 2026

IMPROVED

Proposal specifications read per product

The Product Specifications table on a proposal now tracks the products on that quote. When a quote covers more than one product, the core material, mounting method, fire rating, and acoustic rating are each stated against the product they belong to, so a customer comparing a sound barrier with a fabric-wrapped panel sees the right figure next to each instead of one set of numbers for the whole document. The fabric details, UL recognition, cleaning code, and color card now appear only on quotes that include a fabric-faced panel, which keeps an art-only or diffuser quote to the specifications that actually apply to it. A standard fabric panel quote renders exactly as it did before. Every proposal is also checked against its own line items before it goes out, and one whose specifications do not line up with what is on it is held for your review rather than sent.

July 28, 2026

FIXED

A follow-up task closes itself when the customer buys

A customer who called with a question and then simply placed the order left you with a reminder to chase him anyway, and the reminder stayed open and went past due. When an order is paid, the follow-up tasks it plainly answers now close on their own, with the order number and what was bought written onto the task so the history is intact. Closing is deliberately cautious: it only applies to reminders raised by your own call assistant, only when the order came in after the reminder, and only when the products line up. Anything less certain stays open and gets a note pointing at the order, and a task you wrote yourself is never closed for you.

FIXED

Calls that name a product reach your pipeline

A caller who described exactly what he wanted could still be scored as having shown no buying signal, so the call never became a deal and the only trace was a callback reminder. The check that reads the product out of the call transcript was running after the decision it was meant to inform, so it never got a say. It now runs first, and a call that names a size or a product lands in the pipeline the way it always should have. Calls with no buying signal are still left alone.

FIXED

Your own testing no longer shows up as shoppers

Active Carts counted carts created by your own uptime checks and by your team testing the store, so the count and the dollar total were both inflated and a real cart worth watching was buried among them. Carts created by a store monitor are now left out of the view, the totals, and the alerts, and so are carts from a device already signed in to OneHub360, which is how most in-house testing happens. Uptime checks keep running and still tell you the moment checkout breaks. Genuine carts are never hidden, and nothing is hidden on a guess: a cart is only left out when it identifies itself as a monitor or comes from a network you sign in from.

July 27, 2026

FIXED

Tapping an alert opens the exact record, not a list

An alert about a customer complaint used to drop you on your whole inbox, so you still had to go find the message. Complaints now open the actual conversation, ready to reply, whether it arrived by email or by text. Alerts about a quote that needs a look, a reply to a campaign, and a cart worth watching all open the specific record too, instead of a board or a summary page. A few alert links also failed to open the app at all and sent you to a browser login screen first. Those open the app directly now.

FIXED

Call recordings play in the mobile app again

Opening a call in the mobile app showed the details and the full transcript, but the recording refused to load and offered only a Retry that never worked. Recordings captured by your own phone line were being looked for in the wrong place, so the audio was reported as unavailable even though it was saved and complete. Every recorded call plays again, and you can scrub through one to reach the part you want instead of listening from the start.

July 26, 2026

FIXED

Store orders paid outside checkout now reach OneHub360

Your connected store now tells OneHub360 the moment an order is actually paid, including a quote or invoice a customer pays over the phone or through the link you email them. Those sales used to depend on a setting that was never part of the connection, so reconnecting your store could quietly stop them from arriving. Every connected store gets it from now on, and there is a one-step repair for stores connected earlier.

SHIPPED

A quote paid by phone gets credited to the ad that brought them in

When someone arrives from an ad and asks for a quote, that click is now saved on their record and on the quote itself. If they pay by phone or through an emailed invoice weeks later, the sale is still traced back to the ad that started it, instead of counting as if it came from nowhere. A customer with several quotes keeps each one tied to what actually produced it, so one old click no longer takes credit for every order they ever place.

IMPROVED

Your ad reporting says what it can and cannot prove

The list of sales ready to report back to Google now shows where each match came from and flags any where the ad click aged out before the invoice was paid, with the dollar total attached. Those are reported to you rather than sent as matches that would be rejected, so the number you are looking at is one you can act on.

July 24, 2026

SHIPPED

A call fills in the deal for you

When a caller says what they need, those details now land on the record instead of waiting to be retyped. The panel count, size, thickness, color, budget, timeline, room dimensions, and the organization they buy for are read straight from the call and written to the contact and the deal, and the deal card reads like the actual job instead of "phone inquiry". Anything already filled in stays exactly as you set it, including the deal value, so your own numbers are never touched. A friendly call with no order in it changes nothing at all. The captured details also carry into the quote, so a proposal starts from what the caller actually said.

SHIPPED

Turn a website freight request into a ready-to-pay order in one step

When a customer asks for an exact freight price from their cart, that deal now has a freight box. Type the number your carrier gave you, press the button, and the store order is built from the exact cart they configured, with freight as its own line and their delivery address already filled in. A customer email is drafted alongside it with the line items, the total, a working checkout link, and the note that the rate holds for three days. Both stay drafts until you send them, so you read everything first.

FIXED

Links you put in an email draft now look like links

A link inside a draft used to render as ordinary text, so a checkout link that was already there looked missing and got pasted in a second time. Links in drafts, email bodies, and message threads show as links again. The insert-link button now also works when no text is selected, and typing a bare address like example.com creates a working link instead of a broken one.

SHIPPED

Ask for room details and photos in one click

A Request room analysis button now sits on the contact page and on the deal page. It opens your saved invite, already addressed to that person, so you can send it as-is or reword it first. The message is short, points them at your room analysis page as a real link, and invites photos by text or by reply. Sending it logs the invite on the timeline and marks the deal as waiting on photos, so an automated follow-up will not turn around and ask for the same pictures right behind you. The wording lives in your templates, so edit it once and every future invite picks it up.

SHIPPED

Your proposal edits are never overwritten without you saying so

Once you edit a draft proposal it is marked as yours. Regenerating it now asks first and tells you what it is about to replace, and an automatic regeneration, like the one a customer photo reply triggers, will not touch it at all. Your edited draft stays exactly as you left it until you decide otherwise.

SHIPPED

Quote requests that need a second look wait for you

A request that asks you to install the panels, or whose location does not match where it was actually sent from, now pauses instead of generating a quote on its own. The contact, the deal, and everything they sent are still saved, and the alert names the signal that tripped, so you can read it and decide. Nothing gets deleted or marked as junk, and a normal request still quotes automatically.

SHIPPED

Every proposal keeps its earlier versions

A History button on the proposal lists the earlier versions of that document. A copy is saved automatically before anything replaces it: before a regeneration, before your first edit of an AI draft, and before a restore. Any of them goes back with one click, and the version it replaces is saved too, so putting one back is also reversible. A version can no longer be lost.

July 23, 2026

SHIPPED

Session recordings are one click away from the visitor, the contact, and the deal

A visitor's page now lists every recorded browsing session, with when it started, how long it ran, the page they landed on, and roughly how many pages they viewed, each one a click from the full replay. If nothing has recorded yet you are told that plainly instead of seeing an empty page. A hot cart alert over $500 now carries a direct replay link when a recording exists for that visit, so you can watch what they did before you reach out. And the replay link on a deal's visitor card, which used to land on the wrong screen, now opens the recording itself.

IMPROVED

Follow-up automations pause when a real conversation is live

Your automated follow-ups now hold back the moment a lead already has a sent proposal, has replied to you in the last few days, or has a follow-up you sent by hand, so a customer in the middle of a real thread never gets a generic nudge on top of it. The touch is marked handled and the sequence moves on to the next step, and a genuinely cold lead still gets every scheduled follow-up on time.

IMPROVED

Sending a proposal fills in an empty deal value

When you send a proposal on a deal that has no value set yet, the deal value fills in with your recommended option total, so an empty deal reflects what the customer was quoted. A value you set yourself is never changed, and every fill is recorded on the deal.

IMPROVED

Proposal PDFs open right away

Your proposal PDF is now built the moment a draft is ready and cached, so opening or downloading it is near-instant instead of a wait of up to a minute. The room photos inside are sized to the page, so the file is smaller and loads fast for your customer too. Edit the proposal and the next open rebuilds it on its own.

FIXED

The fabric color chart stays whole in the proposal PDF

The fabric color chart no longer splits across pages with the last color group stranded by itself. The whole chart now moves to a fresh page as one block whenever it cannot fit, and the product specifications table stays together too.

SHIPPED

Turn a call into a deal in one click

A Create deal button now sits on every call in the Calls list and on the call page. It builds the pipeline deal for you, creates the contact first if there is not one yet, drops the call and a short summary onto the timeline, and takes you straight to the deal. No more copying a caller's details from one screen to another.

FIXED

Promoting a call to the pipeline always works, even one tagged support

When you choose to promote a call, it now creates the deal every time. An automatic tag like "support" no longer overrides your click. Your decision wins, and the earlier automatic read is kept on the deal for reference so nothing is lost.

FIXED

A quote call is no longer mistaken for a support call

A caller who asks for a real quote, with a panel count, sizes, a thickness, or a clear pricing question, now lands in your pipeline as a new deal even when the call also sounds like an existing customer. A genuine order-status question still stays out. When the two signals conflict, OneHub360 creates the deal so a real buyer is never dropped and you can set it aside if you disagree.

IMPROVED

Call rows open the call, with the contact one tap away

Every row in the Calls list now clicks through to the full call. The phone number is a direct link, a matched caller's name jumps to their contact record, and a chevron makes it clear the row opens.

FIXED

The new-deal form keeps what you type

The Create Deal box no longer clears the title or the contact you picked while you are still filling it in, so a deal you start by hand is captured exactly as you entered it.

SHIPPED

Start a deal from a contact

A New deal button now sits on the contact header and in the contact's Deals tab. It opens the deal form prefilled with that person and their business, titled from their name and company. Every place that shows a person now has a one-click path to a deal.

FIXED

Texted leads follow the same quote rules as email

Inbound texts now go through the same checks as email before a quote is drafted. A scheduling or conversational text no longer starts a quote, a text on a deal that already has a proposal shows you any new photos instead of quietly redoing the quote, and photos you already sent that get texted back are not counted as new. A real request ("send me a quote for a 12x14 room") and genuine room photos texted in still generate a draft, and your own outgoing texts never trigger anything.

FIXED

Photo replies only redo your quote when the photos are actually new

When a customer replies with photos, OneHub360 now checks whether they are genuinely new before touching your draft. Room photos they actually sent generate or update a quote, but images your own earlier email quoted back to you no longer trigger anything, and a signature logo never counts as a photo. If new photos land on a deal that already has a proposal, you get a heads up that they arrived and you decide whether to regenerate, so a finished draft is never overwritten behind your back. And an email you send is never mistaken for a customer message, so your own outgoing mail can never start a draft.

IMPROVED

Auto-drafts stay on the free lane and never surprise-spend

Every proposal drafted for you automatically now runs on the free lane only. If that lane is briefly down, the work waits and finishes on its own when it recovers instead of falling back to a paid one, and you get a single heads up if a draft is still waiting after a couple of hours. You only get a "draft ready" alert for a draft you started or a brand-new lead.

July 22, 2026

IMPROVED

Vendor pitches are caught even when the wording is brand new

Your contact and quote forms now weigh the meaning of a message, not just phrases seen before, so a sales pitch worded in a way you have never received still gets recognized as a solicitation, kept out of your pipeline, and held off your phone. A real buyer who describes their own project still comes through as a lead and still gets your reply. Borderline messages come through tagged so you can glance and decide, and every sender is kept and tagged for review.

SHIPPED

Log a call you made from any phone

A Log Call button now sits on a contact and on the Calls screen, so a call you placed or picked up from any phone, including your personal cell, becomes part of the record. Set the direction, how it went, when it happened, an optional note, and whether it came from your personal line, and it lands on the contact timeline and the Calls list right beside your recorded calls, marked Logged. If the contact has a single open deal, logging the call keeps that deal marked as freshly worked so it stays off your follow-up list for the right window.

FIXED

Live chat keeps selling after it captures a lead

Once the chat assistant has what your team needs for a quote, it no longer signs off and repeats the same wrap-up. It keeps answering the visitor's next questions about designs, fabrics, colors, sizing, and custom artwork, while the team still follows up on the quote in the background. When a visitor asks to see the options, the assistant now shows them instead of wrapping up. And it will never send the same message twice in a row. If it is about to, the chat is handed to a person so the visitor gets a real answer.

SHIPPED

Merge two deals for the same contact into one

When a contact ends up with more than one open deal, a new Merge button on the deal page folds another of their open deals into the one you keep. Its activity, proposals, tasks, files, and history all move over, the merged-away deal is archived, and the deal you keep holds its own value so nothing gets double-counted. Pick the deal to fold in, and it is done in one step.

FIXED

A new call or chat adds to an existing open deal instead of making a duplicate

When a contact who already has an open deal calls in or starts a chat, OneHub360 now attaches that touch to the deal they already have rather than opening a second one for the same job. Your pipeline shows one deal per opportunity, so the numbers stay honest and nothing gets worked twice.

FIXED

A deal you closed stays closed

After you mark a deal won or lost, a later call or chat from that same contact no longer quietly reopens a fresh deal. The inbound is still logged to the contact, and if it shows strong buying intent you get an alert so you can reopen it yourself when it is truly a new project. You decide when a closed deal comes back.

IMPROVED

Creating a deal warns you if the contact already has one open

When you add a deal by hand for a contact who already has an open deal, a banner points to the existing one with a one-tap jump, so you can add to it instead of starting a duplicate. It never blocks you, it just makes the duplicate obvious before you create it.

SHIPPED

Schedule an email to send later

Write an email now and pick the exact day and time it goes out. The Send button becomes Schedule, your pending emails show in the composer so you can edit or cancel any of them before they send, and each one goes out through your connected mailbox at the time you chose. Great for lining up a morning follow-up the night before.

SHIPPED

Drop an email template into any conversation reply

The reply box in your inbox now has a template picker, so you can insert a full saved template into a reply in one click. Merge tags like the recipient first name fill in from that contact the moment you insert, so you see the finished text and can edit it before you send. Nothing goes out with a raw {{first_name}} in it.

FIXED

Merging two duplicate contacts that share an email now works

Combining two records for the same person no longer stops with a database error when they share an email or phone. The merge keeps one clean record, moves every order and message onto it, and preserves the other address so future email from it still finds the right person. If anything does block a merge, you get a plain explanation instead of a raw error.

IMPROVED

A task reminder opens the exact task, with the person and deal attached

A task reminder now takes you straight to the task it is about, with the contact and the deal it belongs to linked right there, instead of dropping you on the full task list to hunt for it. Open the reminder, see who and what it concerns, and act in one step.

SHIPPED

Pause outreach for one contact without losing their place

You can now put a single contact on hold or snooze their outreach for a set time, and every automated email and text pauses for them without burning a follow-up step. When the hold ends, the sequence picks up where it left off. Use it when someone asks for space or you want to handle them yourself.

IMPROVED

Revenue reports count the payments you log by hand

Cash, check, and Zelle payments you record by hand now show up in every revenue total alongside your card and store sales, so a contact's lifetime value and your reports reflect money that never touched an online checkout. Log the payment on the contact and it counts everywhere revenue is shown.

FIXED

Text alerts carry a tappable link straight to the right screen

Text-message alerts now include a full, tappable web link that opens the exact deal, reservation, or task it is about, so you go straight there from your phone instead of copying a fragment into a browser.

IMPROVED

Your contact forms filter out vendor sales pitches automatically

When a supplier or service vendor fills out one of your contact or quote forms to pitch you, OneHub360 now recognizes it as a solicitation, keeps it out of your sales pipeline, and holds the new-lead alert off your phone. A real buyer who describes their own project still comes through as a lead and still gets your reply, so your pipeline stays clean without you sorting a freight, SEO, or web-design pitch out of it by hand. The sender is kept and tagged so you can review it anytime.

IMPROVED

A deal closes itself the moment the order is paid

When a customer pays for their order, OneHub360 now moves the matching deal to Won on its own, whether the paid order arrives instantly or on the next store sync, so your pipeline reflects the sale without a manual drag. Follow-up sequences see the deal is closed and stop nudging someone who has already paid.

July 20, 2026

FIXED

Live cart values show correctly in the iOS dashboard

The Active Carts view in the OneHub360 iOS app now shows each live shopper's real cart total instead of $0. It reads the same value the web dashboard and browser extension already displayed, so what a visitor has in their cart right now reads the same everywhere you look.

FIXED

Your sidebar shows only the tools for your industry

Entertainment-specific features such as Stage Plots no longer appear in the navigation for law firms, restaurants, retail, and other business types. Every industry profile now declares exactly which specialized tools it shows, and a build check keeps future features from leaking across industries.

FIXED

Follow-up emails never re-ask for something a customer already sent

A sequence step now checks its own premise before sending. If a lead already sent photos of their space, the "did you have a chance to gather pictures" follow-up completes silently and the sequence moves on to the next step that still applies. Same when a proposal has already been generated or sent for the deal. Photos count no matter how they arrived: attached to the original form, texted, emailed, or captured in the app. Leads who genuinely have not responded still get the full follow-up sequence.

SHIPPED

Sequence steps can carry their own exit conditions

Each automation step can now declare exactly what makes it obsolete, such as photos received or proposal sent. The moment that condition is met, the step completes on its own and the rest of the sequence keeps running, so your later follow-ups still go out at the right time to the right people.

July 19, 2026

FIXED

Autoresponders no longer buzz your phone as replies

When a campaign or proposal email gets an automated response, a billing notice, an out-of-office, a "do not reply" system message, or a bounce, OneHub360 now recognizes it as machine mail and holds the reply alert. The email still lands in your inbox as before, and a real person replying always reaches your phone, so every buzz is worth picking up for.

IMPROVED

Your AI runs on the newest Claude Sonnet

Proposal drafting, PDF layout reading, and the chat assistant's backup path now run on Claude Sonnet 5, the newest generation, so you get sharper drafts and answers at the same price. If you bring your own API key, the model picker in Settings now offers Claude Sonnet 5 as the balanced default.

IMPROVED

Bring-your-own-key AI picker offers today's OpenAI and Google models

If you bring your own API key under Settings, AI, the model picker now offers GPT-5.5, GPT-5 mini, and Gemini 2.5 Pro in place of the retired GPT-4o and Gemini 1.5 models, so a model you pick there is a current one.

FIXED

A reservation alert opens the reservation, ready to approve

Tapping a new-reservation alert now takes you straight to the reservation approvals screen with that request highlighted, so you can accept or decline it in one tap. Before, the tap opened the guest's contact page, which has no approve control, and you had to find the pending request yourself. The daily still-pending reminder lands on the same spot.

FIXED

A proposal PDF shows a current cover date

A proposal's cover page now shows the date it was actually sent, or today's date while it's still a draft, instead of the day it was first generated. Reopening or re-downloading an older draft no longer makes your quote look expired before your customer has even seen it.

SHIPPED

The website room planner now fits the room the customer actually has

A visitor planning their room on your site can now tap any wall to skip it (windows, brick, a doorway) and choose whether the ceiling gets treated, and the plan redistributes to the surfaces they left open. A new layout view shows each wall with the panels placed on it, and they can nudge the count per wall within what the wall can hold. If their choices drop the plan below what the room needs, the planner says so and points them to a specialist instead of quietly selling a weaker result. They can also tag the problem they hear, echo, muddy speech, too loud, or recording quality, and the suggested treatment level adjusts.

IMPROVED

The planner never builds a cart that checkout will reject

When a plan is below a fabric line’s minimum order quantity, the planner explains the minimum and offers the fixes, more panels, a no-minimum fabric, or sending the plan, instead of showing a cart button that would fail at checkout.

July 18, 2026

SHIPPED

Restaurant calls, orders, and reservations alert your phone in the app

Operator alerts for a restaurant business now reach the OneHub360 app on your phone: a summary after every answered call, a missed call or voicemail in progress, a caller asking you to call back, an order outcome, and a new reservation waiting for accept or decline, with a daily nudge while it stays pending. Each alert opens the right screen in one tap. Your existing text alerts keep arriving exactly as before, so you can rely on the app alerts at your own pace. Install the OneHub360 iOS app, sign in, and allow notifications to get them.

SHIPPED

Set your own quiet hours for phone alerts

You can now choose a nightly window when OneHub360 holds push notifications to your phone, under Settings, Notifications. It is off by default, so you get alerts around the clock unless you turn it on. Pick a start time, an end time, and your timezone, and a window like 11:00 PM to 5:10 AM that runs past midnight works too. Messages still arrive in the app during your quiet hours, only the phone buzz is paused, and the setting is yours alone so each team member sets their own.

SHIPPED

Block vendors and senders from creating leads

A new Sender Denylist under Settings lets you list the vendors and email senders that should never become a lead. When one of them emails you it still lands in your inbox, but it no longer spawns a deal in your pipeline, so your sales list stays clean. Add or remove domains and addresses anytime, per business.

IMPROVED

The chat assistant brings in a person for a ready buyer

When the assistant would otherwise repeat itself to a visitor who is ready to buy, it now hands off to a live person instead of looping. You approve the handoff in one tap, the visitor gets a short note that help is on the way, and no one is connected to a dead line or left waiting.

IMPROVED

Suspicious order forms get flagged, not auto-answered

When an inbound form looks like an order-fraud attempt, OneHub360 now captures the lead, flags it for your review with a note, and holds back the automatic reply and proposal. A scammer never gets an auto-response, a real lead is never lost, and you decide before anything goes out.

SHIPPED

Ask for a review after every visit, order, or booking

OneHub360 can now ask each customer for a quick star rating right after they finish, whether it was a closed order, a seated reservation, or a completed booking. Happy customers get pointed straight to your Google review page. A lower rating opens a private note that reaches your team instead of the public, so you hear about a problem before it becomes a public one-star. Turn it on per business under Settings, Review Requests, choose email or text, set how long to wait, and preview the exact message first. It stays off until you switch it on.

July 17, 2026

SHIPPED

Send email tracking on your own domain

Your email click and open tracking can now run on a subdomain you own, for example track.yourdomain.com, instead of onehub360.com. When the tracking host matches the address your email comes from, mailbox providers trust your mail more and more of it reaches the inbox. Add one DNS record, click Verify, and every new email for that business uses your domain. Links already sent keep working. Set it up under Settings, Tracking.

July 16, 2026

SHIPPED

Mark a lead "not a fit" and stop the sales machine for them

A new Disqualify control on any contact or deal lets you flag a lead who is not a fit, and OneHub360 stops sending them quotes, room-analysis follow-ups, auto-drafted proposals, and campaigns, without deleting the record. The deal is archived rather than lost, so nothing disappears. Requalify puts them back in the pipeline anytime.

IMPROVED

The chat assistant qualifies before it funnels

When a visitor names a target price below where your volume pricing starts, the assistant states where pricing genuinely begins and invites them back if that range works, instead of pushing them into a quote form. It offers your intake form at most once per conversation and wraps up politely when someone says thanks, so no one gets pitched the same link three times in a row.

SHIPPED

See what a chat visitor is typing, so you can answer faster

Once a live chat is underway, your inbox can show a visitor’s message as they type it, before they send, so your team starts the reply sooner. It turns on only after the visitor sends their first message, the chat widget shows visitors a short notice about it before they start, and the typed preview is only ever shown to your team. It is never used to train AI and never crosses between businesses.

FIXED

A price you lock on a proposal stays locked through every regenerate

A line-item price you set now holds through the first regenerate and every one after it, not just the next one. Regenerating a proposal several times no longer quietly reverts your locked prices back to the calculated number.

FIXED

Freight proposals quote the real flat rate and liftgate cost

A proposal that ships freight now states the actual flat freight rate and a $95 liftgate add-on, delivered dock to dock, instead of a vague lift-gate range. When the delivery ZIP is known, the freight is quoted right on the proposal rather than left to be figured out later.

IMPROVED

Proposals never volunteer a discount you did not approve

The proposal generator no longer offers a discount on its own, even when a customer asks for one. If a customer asks and you have not approved a discount, the proposal points them to volume pricing on request. You can authorize a specific discount in the deal notes and it is applied exactly.

IMPROVED

Better and best options recommend a real upgrade, not just more panels

The higher tiers on an auto-drafted proposal now have to add something acoustically meaningful for the room, such as ceiling clouds, corner bass traps, art panels, or thicker or larger panels, with the reason stated. A tier that is only a bigger quantity of the same panel is held for your review instead of going out as an upsell.

FIXED

A proposal reads the same shipping in the email and every option

A proposal whose cover email and option boxes disagree on shipping, one saying freight while the other says free, is now caught and held for review before it can reach a customer.

FIXED

A proposal is sent once, even on a double-click

Sending a proposal twice in quick succession, or retrying a send that already went through, no longer emails the customer a duplicate. A proposal that has already been sent is left as is.

FIXED

3D room scans show their real surfaces

A captured 3D room scan now renders with its full photo texture on the deal page and on the customer share link, instead of appearing as a blank white shell. The surfaces you scanned are the surfaces you see.

July 15, 2026

IMPROVED

Only real inquiries become deals in your pipeline

An inbound email now has to read like an actual customer inquiry before it opens a deal. Auto-replies, out-of-office notices, bounce messages, newsletters, vendor invoices, and administrative notices are recognized and kept out of your pipeline, so your board stays leads only. A real question about your products, a quote request, a form, a chat, or a call still opens a deal exactly as before.

IMPROVED

A customer complaint reaches a person, not a new deal

When an existing customer replies about a problem with their order, OneHub360 now flags it for a reply from your team instead of opening a fresh deal for it. A reply on a thread you started counts as part of that conversation, so past customers stop generating duplicate leads every time they write back.

FIXED

Proposal drafts never carry an internal not-a-lead note

If the proposal generator decides an inbound is not a sales inquiry, it now stops cleanly and flags the deal for review instead of saving a draft whose cover email held that internal note. A draft like that can no longer reach a customer.

IMPROVED

Your first proposal option matches what the customer asked for

The first option on an auto-drafted proposal now reproduces the customer’s own request as closely as your catalog allows: the item, the quantity, the size, the thickness, the mounting, and the fabric they named. The better and best options only add upgrades on top, so nothing the customer specifically asked for gets swapped out or quietly dropped.

IMPROVED

Custom panel sizes price from a rate you set, not a guess

A proposal for an off-catalog panel size now prices from a per-square-foot rate you control under Settings, Sales Pipeline, so the number is consistent and traceable instead of invented. Set a rate per thickness once and every custom-size quote follows it. Until you set one, it is worked out from your smallest standard panel’s live price, so it always tracks your real store pricing.

IMPROVED

A price you type on a proposal sticks

When you edit a line-item price in the proposal editor, that price is now locked and copied exactly when you regenerate, and the cell marks it as operator-set. Your pricing decisions hold instead of being recomputed out from under you.

FIXED

Regenerate a proposal now applies your changes

Clicking regenerate now produces a fresh draft that reflects your latest edits and context, instead of returning the same result from an earlier run. Each regenerate is its own pass, and the built-in quality second look runs again too.

IMPROVED

More proposal drafts are held for review when something is off

A drafted proposal that skips a lead time the customer asked about, defers a freight cost when the delivery ZIP is already known, or leans on a competitor fabric name the wrong way is now held for your review instead of landing looking finished.

July 13, 2026

SHIPPED

Let customers plan their room right on your website

Put a room planner on your site and a visitor can pick their space, enter a few room details, and see a recommended acoustic panel plan with pricing in about a minute, no app to download. When they send it, it reaches you as a new lead with the room details attached, ready to turn into a proposal. So a browsing visitor becomes a qualified lead with the plan already started, instead of just a name in a contact form.

SHIPPED

Choose what a campaign pings your phone about

A big send no longer buzzes your phone for every open. A new Settings, Campaign Alerts page lets each business decide what a campaign notifies you about: opens stay off by default, clicks stay on, and a reply always reaches you. Bounces and unsubscribes roll into a recap instead of arriving one at a time. A single summary lands one hour and one day after a campaign finishes with delivered, opens, clicks, and replies. Every open and click is still tracked and counted no matter what you pick, so your stats stay complete.

FIXED

Email leads read as clean text on the deal

When a customer emails from Outlook or Word, the first message on their deal now shows the words they actually wrote, not the raw formatting code and the quoted thread underneath it. The proposal draft reads that clean version too, so it works from what the customer said.

FIXED

Email signature logos stop posing as customer photos

A logo repeated in an email signature on every reply used to pile up as dozens of customer attachments on a deal and could even slip into a proposal as a room photo. Those logos are now grouped aside, shown once, and kept out of the room analysis and the proposal, so the photos on a deal are the ones the customer actually sent.

FIXED

Each deal shows what kind of message started it

A deal opened from a customer email, a text, a chat, or a phone call no longer reads as "Form Submission" on the card. Each one is now labeled by where it actually came from, and the details below use the wording that fits that channel, so you can tell how a lead first reached you without opening it.

July 12, 2026

SHIPPED

A stalled store cart can become a quote in your pipeline

When a shopper fills a cart with oversized, freight-only items and stops at the shipping step, they can now ask for an exact freight quote in one step instead of walking away. That request opens a deal in your pipeline with their cart and total, drafts a proposal from the items they picked, and alerts you to send the quote quickly. Their cart stays intact, no checkout is needed, and no draft reaches the customer until you review it.

IMPROVED

Room scans now download as GLB too, not only USDZ

A 3D room scan a customer captures now downloads as a GLB file alongside the USDZ, so you can open it directly in Blender, web-based 3D viewers, and other standard 3D tools, not just Quick Look on an Apple device.

IMPROVED

A freight quote request now arrives ready to price

The quote request on a freight cart now asks where the order is going and whether a truck can dock there, so the request comes back with everything needed to quote in one glance. Each one carries the delivery address, whether it is residential or commercial, the loading-dock answer, every line broken out by quantity, exact size, fabric, and color, and an estimated pallet count and shipment weight worked from the cart. A likely liftgate is flagged for you. The details land in the alert and on the deal, and the address fills onto the contact when it is blank.

SHIPPED

Edit your proposal follow-ups in Settings

The follow-up emails and text a customer gets after opening a proposal are now yours to edit under Settings, Proposal Follow-ups. Reword each subject and message, set how many days after the view each one sends, switch any touch on or off, and control the whole sequence and the text channel from one page. Placeholders fill in the customer name, your callback number, and the pricing-hold date for you, and wording changes take effect on the next send with no wait.

FIXED

Finished proposal drafts stay in the Proposal column

When a draft proposal finishes, it now stays put instead of getting bumped back to Contacted by a background sync. Your ready drafts stay where you can see them and act on them.

IMPROVED

A quality check now runs on every auto-drafted proposal

Every proposal drafted automatically from a web, phone, text, or email lead now passes the same quality check as the ones you regenerate by hand. A draft with a wrong total or a broken count is held for your review instead of landing in your queue looking finished.

IMPROVED

A texted lead now enters your pipeline

When someone texts your number with a real inquiry, OneHub360 creates a deal for them, files any photos they text onto the deal, and drafts a proposal when there is enough to work from. A text lead no longer sits as just a message.

IMPROVED

A cold customer email now starts a deal and a draft

When a new customer emails asking about your product, OneHub360 creates a deal and drafts a proposal, the same way it already does for your web form and phone leads. First-time email inquiries no longer wait for you to notice them.

IMPROVED

Photos from chat and text now show on the deal

Photos a customer shares in website chat or texts to you now appear in the deal photo gallery, so you can review them and the proposal draft can use them.

FIXED

Campaign click counts now show the clicks that happened

Email campaign click tracking now reports accurately on the campaign page and in analytics. Clicks were being recorded but not added to the click tile, so a campaign could show zero clicks even when recipients clicked through. Your click count, click rate, and top-clicked links now reflect real activity.

FIXED

Automated emails greet by name, or greet cleanly when there is none

When a contact has no first name on file, your automated emails now open with a clean "Hi there," instead of a bare "Hi,". Names stored in all capitals read normally too, so an aged list greets "Hi Gary," not "Hi GARY,". This applies across proposal follow-ups, cart recovery, booking and invoice emails, and campaigns.

IMPROVED

Acoustic Sound Panels proposals offer your real fabric colors

The fabric color a customer picks on an Acoustic Sound Panels proposal now comes from your full catalog, every color grouped by fabric family, instead of a short placeholder list that named colors you do not carry. Customers choose the exact color they want, presented the way your store presents it.

FIXED

Opening a proposal yourself no longer counts as the customer viewing it

When you open a proposal you sent, it no longer marks it as viewed, starts the follow-up sequence, or fires a hot-buyer alert. Only the customer’s genuine first open does that. So your view timestamps, follow-ups, and alerts track the customer, not your own review.

July 11, 2026

FIXED

A text to cancel a reservation now actually cancels it

When a guest texts your reservation line to cancel, the reservation is canceled and the guest gets a confirmation right back. If the guest has more than one upcoming booking, the date in their message now picks the right one to cancel. And if it still is not clear which one they mean, you get an alert to confirm, so a cancel request never slips through unnoticed.

SHIPPED

Cancel a reservation in one click

Every pending or accepted reservation on your dashboard now has a Cancel button. Confirm once and the reservation is canceled, the guest gets a cancellation text, and you are notified the table is freed.

FIXED

Won deals now record what the customer actually paid

When a payment closes a deal automatically, the deal value is now set to the real order total instead of keeping the earlier estimate. The original estimate stays on the deal for reference. Your won-revenue numbers now match actual sales, so the pipeline reporting you make decisions on is accurate.

IMPROVED

Change who an invoice goes to, and resend it, even after it is sent

When a customer changes their email after you have already sent an invoice, you can now point that one invoice at the new address and resend it, without touching their contact record. Open the invoice, set the address under Recipient, and send. Reminders follow the new address too. One checkbox also updates the contact if you want the change to stick for future invoices. Every recipient change is logged on the invoice so you can see who it went to and when.

SHIPPED

Show a customer their own room with the treatment in place

After a proposal drafts, OneHub360 can composite the recommended acoustic panels onto your customer’s own wall photos and add a “Your room, treated” page to the proposal. You review the renders in the editor, keep the ones that look right, drop any that miss, and turn the set on or off per proposal. Every render is labeled as a concept for visualization, not an exact layout. It runs only for wall photos and never delays the draft.

IMPROVED

Emails you send keep your deals current

Sending a manual email from the inbox now updates the last-contacted time on that customer’s open deals, so your hot and stale lists reflect the real last touch instead of going quiet right after you followed up.

July 10, 2026

FIXED

Every attachment now opens, whatever its filename

Photos and files with unusual characters in their names, like the invisible spacing character iPhone puts in screenshot names, failed to load from the contact timeline, inbox, and documents. They now open and download reliably, keeping their real name.

IMPROVED

You hear the moment a customer opens their proposal

When a prospect opens the proposal you sent, you get a notification right away with their name and the quote value, and for proposals over $1,000 a text lands on your phone too. So you can follow up while they are still looking at it, instead of finding out days later.

IMPROVED

A reply to your proposal now reaches you, not just an open

When a customer emails back about a proposal you sent, you get a notification for it, the same way you already hear about opens and clicks. A real reply is the strongest buying signal, so it no longer sits unnoticed in your inbox.

IMPROVED

You know the instant an auto-draft is ready to review

When a lead comes in and a proposal draft is generated for them, you get a heads-up that it is waiting on the deal. As more drafts are created for you automatically, none of them sit unreviewed.

IMPROVED

Deal wins and stage changes now notify your team

When a deal is marked won or moves stages, your team gets a notification, and the on/off setting for it finally works. A change you make yourself in the app stays quiet, so you only hear about the ones you did not make.

FIXED

Tapping a form-submission alert opens the right person

A new form-submission notification on your phone now opens straight to that contact, instead of a general list.

IMPROVED

Fewer junk form submissions reach your pipeline

Website form submissions that trip a hidden bot trap, or that are filled out in under three seconds alongside other bot signals, are now filtered before they become a lead. Your pipeline stays clean and your follow-ups reach real people.

FIXED

No more asking for photos a customer already sent

When someone already shared room photos through the app, the follow-up that asks for pictures is skipped and the rest of their sequence still continues. A customer who did their part never gets a "still need your photos" email.

SHIPPED

Proposals now draft themselves the moment a lead shares their room or cart

When a prospect submits their room details, uploads photos, or builds a cart on your site, a full proposal draft is generated and waiting on the deal for you to review. This now happens for deals you are already working, not only brand-new ones, so a returning lead who finally shares specifics gets a draft instead of nothing. Each deal gets one auto-draft, and a burst of submissions is worked one at a time so nothing is lost or duplicated. You review and send every draft, nothing goes to the customer on its own.

IMPROVED

Live chat now recognizes returning customers

When a visitor you already know starts a chat, the assistant sees their open quotes, recent orders, latest proposal status, and what they told you on past calls and chats, so the conversation picks up where it left off instead of starting over. It uses this to sound like it remembers them, and never reads it back word for word.

IMPROVED

Your phone assistant can speak to a caller’s open quote

When a known customer calls, your voice assistant now has the detail behind their history: their open deal and its value, a one-line summary of their room, their latest proposal status, and how the last call went. So it can reference their open quote naturally if they ask, instead of treating them as a first-time caller.

IMPROVED

A lead who reaches out over chat now gets the same follow-up as a form lead

When someone shows real buying interest in a live chat and leaves their email, they now enter the same follow-up sequence a website form lead gets, so a promising chat conversation keeps its momentum instead of going cold. Each person only ever enters once.

July 9, 2026

IMPROVED

Room details your customers submit now flow straight into their AI proposal

When someone fills out a room analysis form, the space type, room size, problem, placement, budget, timeline, and color they entered now reach the AI proposal every time, even when they already had a deal open. Before, that detail could sit unused in the background and the quote was written without it. The deal page also marks when the room brief is included, alongside photos, layouts, and replies, so you can see the proposal is built on what the customer actually told you.

IMPROVED

The deal page shows what a customer submitted, cleanly and in plain language

A lead’s form answers now read as labeled fields with the newest submission first, instead of a raw data dump. Cart value shows as one dollar line rather than a raw cents number, behind-the-scenes tracking keys tuck into a collapsed section, and any files the customer sent are clickable. Those tracking values can no longer be edited by hand, so the numbers that drive your cart alerts and deal totals stay accurate.

FIXED

One contact per person, no matter how they reach you

When the same person calls, chats, books, and fills out a form, they now land on a single contact record instead of scattering into duplicates. Every intake path checks for an existing person by email and by phone first, matching a number in any format, and fills in the blanks on the record you already have rather than starting a new one. Your pipeline, call history, and follow-ups all point at the same person, so nothing about a customer is split across ghost records.

SHIPPED

Room scans a customer sends in now open right on the deal

When a customer captures a 3D room scan on your mobile app and submits it with their request, the deal now shows a Room scan and 3D files card. Download the scan and open it in 3D and AR with Quick Look on iPhone or iPad, or in Preview on a Mac, and browse every room-measurement snapshot the app captured, newest first. Before, these files arrived but had nowhere to appear, so you could not see what the customer sent.

IMPROVED

Your AI proposals now draw on the whole picture of each customer

Every proposal now pulls in what the customer actually configured in their cart, the notes from your calls with them, past orders, and the details on their record, all in one assembled brief the AI writes from. A quote reflects the exact items and room they built and the conversations you have had, so it lands specific to that customer instead of generic. Nothing is sent automatically; proposals are drafted for your review.

FIXED

Checkout links from a voice quote now reliably text to the caller

When your voice agent builds a quote and tells the caller their checkout link is on the way, that text now sends every time, even when the carrier does not pass the caller number through cleanly. The number is recovered from the live call and the link is delivered, and every send is recorded on the contact so you can see it went out. If a link ever cannot be delivered, you are alerted right away with the details to send it yourself, so a ready-to-pay customer is never left waiting.

IMPROVED

Calls that need a human look now reach you the moment they are flagged

When the system flags a call for review because the agent did not finish its own wrap-up, you now get an immediate, clearly marked alert plus a task, instead of the flag sitting quietly on the call record. A hot lead that needs your follow-up no longer waits to be noticed.

FIXED

Inbound voice calls now capture the caller’s number, even when the carrier hides it

When someone calls your voice agent, their phone number is now saved to the call and to their contact so you can call them back, even when the phone network does not pass it through cleanly. The number is matched from your own call log right after the call, and a nightly pass fills in any that slipped through and links them to the right contact. If a real conversation ever ends with no reachable number, you are alerted with the call details so the lead is never lost.

July 8, 2026

SHIPPED

A lead who asks you to reach out now alerts you right away

When a prospect explicitly requests that your team follow up, that request stands out from routine background activity: the deal moves forward on your pipeline, you get a heads-up the moment it lands even if the order they configured is small, and a follow-up task is created so no hand-raiser slips through. Reach out while it is fresh.

FIXED

Form auto-replies now reach people who are already in your pipeline

When someone who already has an open deal submits a form, they now get the same instant auto-reply as a brand-new lead, instead of silence. A prospect you are already working never wonders whether their request went through. Genuine later submissions from the same person are still not double-answered.

July 8, 2026

FIXED

Chat alert email links open the conversation, even after it auto-closes

The link in a live-chat alert email now opens the exact conversation it points to, including chats that have since auto-closed and moved to Archived. The page switches to the Archived tab, opens the chat, and scrolls to it, so a link you click hours later still lands on the conversation you came to read. If the chat belongs to a different business than the one selected in your sidebar, the page names that business so you know where to switch. Before, most of these links showed a "conversation not found" notice.

July 8, 2026

IMPROVED

Your automated emails send from your brand, and replies reach you

Sequence nurtures, cart-recovery notes, chat transcripts, and order confirmations now go out from your own business address when your sending domain is set up, and every one carries a reply-to your inbox. A customer who hits reply reaches a real person on your team instead of a no-reply address that goes nowhere. And when someone replies from a second address at the same company, we keep the whole thread on one contact instead of starting a new one.

SHIPPED

Desktop notifications the moment something happens, not just on your phone

While OneHub360 is open, a notification now pops up the instant a contact opens an email you sent, texts you, misses a call, submits a form, or starts a chat. Each one shows who did what and links straight to that person, so you can act while it is still warm. Your phone already got these; now your computer does too. A new Send test notification button under Settings, Notifications confirms your browser is set to show them.

SHIPPED

Send an SMS campaign to your contacts from the Campaigns page

Build a text campaign, pick your audience, and Send now actually delivers it through your business number. Anyone who replied STOP is skipped automatically, every message carries an opt-out line, and each send is tracked per recipient so you know exactly who received it. Available on plans that include mass SMS.

IMPROVED

Your SMS campaigns show on the Campaigns dashboard with real numbers

Text campaigns now sit alongside your email campaigns in one list, each showing accurate recipients, sent, failed, and opt-out counts pulled straight from the delivery records. Past blasts are included, so your campaign history is complete in one place.

IMPROVED

A contact's timeline now shows what they did on your website

Open a contact and the Timeline tab pulls their website activity into one place: the pages they viewed, their live cart and its value, and their recorded sessions, alongside emails, calls, and messages. Each web entry links straight to the visitor page or the session replay, so the intel you already had on the analytics side now lives on the person too.

SHIPPED

Get alerted when a known customer builds a big cart on your site

When a visitor you have already identified fills a cart worth $500 or more, that cart becomes a deal on your pipeline and you get a heads-up with their name, cart total, item count, and how many times they have visited. Reach out while it is fresh. Repeat pings are held back so one hot shopper does not flood you.

FIXED

Session replays fill the player instead of sitting in a small box

When you watch a recorded visitor session, the replay now scales to fill the viewer area instead of showing a small frame with empty space around it. You see what the visitor saw at a readable size, on any screen.

IMPROVED

Email opens and clicks now reflect real activity, not scanners or your own reads

Opening an email you sent, or Gmail pre-loading its images the moment you hit send, no longer counts as your contact opening it or fires a false alert. Security scanners that walk every link in a message at delivery, including all the footer policy links, no longer show up as your contact clicking them. And since Gmail routes every image through its own servers, an open's location now reads via Gmail instead of naming a city your contact was never in. Your open rates, click rates, activity feed, and notifications track genuine engagement.

July 7, 2026

IMPROVED

Session replays now show what visitors type and pick

Watch a recorded session and you see the real values a visitor entered and chose, cart quantities, panel sizes, product options, and form fields, so you can see exactly what someone configured before they left. Passwords and payment card numbers stay hidden. A business that prefers the old hide-everything behavior can switch it back on, one setting at a time.

July 7, 2026

FIXED

Each call shows once, with its direction and the customer number

Outbound calls used to appear twice in your call list and show your own business number instead of the person you called. Every call now appears one time, carries an Inbound or Outbound badge, and shows the customer number. Existing duplicates were cleaned up.

SHIPPED

Call a customer back in one click

Open any call and tap Call back. Your phone rings first, then we connect you to the customer with your business number as the caller ID. Save the number to reach you once and every future callback is a single tap.

July 7, 2026

SHIPPED

Stage Plots: build a pro stage diagram and input list, then share it

A new Stage Plots tool under Orders and Scheduling. Lay out the stage on a 2D grid by dragging drums, amps, monitors, DIs, mics, and horns from a palette, color-code each musician by position, and number the channels right on the diagram. Fill in a proper input list (channel, mic, stand, 48V, notes) and a monitor output list beside it. Send the venue a read-only share link that opens with no login, or download a clean PDF with the diagram on page one and the input and output lists on page two.

SHIPPED

Send photos in SMS conversations

Reply to a text with a picture, not just words. Open any SMS conversation, attach a photo (JPEG, PNG, GIF, or an iPhone HEIC that converts automatically), preview it, and send it with or without a message. The photo you send appears right in the thread next to the customer's messages. If a number cannot send picture messages, the attach button tells you before you try.

IMPROVED

The SMS inbox stays still while you read

The text conversation view no longer repaints every few seconds while it checks for new messages, so photos stop reflashing, the thread stops jumping, and your place and half-typed reply stay put. A new message still appears within a few seconds.

July 7, 2026

FIXED

Proposal PDF downloads are real PDF files again

The Download PDF button on a proposal could return a print-this-page view instead of a file. It now always delivers an actual PDF, and the copy your customer receives by email attaches that same file. Invoice and signed-agreement PDFs got the same fix.

IMPROVED

Your proposal looks the same everywhere

The proposal your customer reads in email, views online, and downloads as a PDF now renders from a single template. The online view picks up the full card layout with per-item pricing, and prices, shipping, and totals always match across all three. Every option shows its real total, even when a draft is missing a number.

July 7, 2026

FIXED

Inbox conversations show the customer's name

An inbound text or MMS could show up in your inbox under your own name, with a system note as the preview instead of the message. Conversations now always show the customer (their name, or their number when you have not saved them) and the actual text they sent, so a glance tells you who is waiting and what they said.

FIXED

No more duplicate copies of your sent emails

A reply you sent from the inbox could appear twice in the thread: once as your sent message, then again a minute later when the same email synced back in from Gmail. Sent replies now show once.

IMPROVED

The inbox no longer gets stuck on a connection error

A brief hiccup during a routine update used to leave a red "retrying" banner pinned over your fully loaded inbox until you reloaded. The banner now appears only if a problem actually persists, and clears itself the moment the connection is back, with no button to press.

July 6, 2026

SHIPPED

Chat handoff that never strands a visitor or contacts you off-hours

Live chat handoff is now warm-approve: the assistant never connects a visitor to a person on its own. When a ready-to-buy visitor asks for help, you get a one-tap ping to approve a live connect, inside the hours you set. If you do not approve in time, or it is after hours, the visitor is told the team will follow up and it lands in your queue. The assistant keeps answering and taking the message the whole time, so no one is left waiting on a silent bot.

SHIPPED

Per-business chat availability and escalation settings

A new Live Handoff and Escalation section under Settings, Chat lets each business set who gets connected live (serious buyers only, or anyone who asks), the hours you can be pinged, a hard no-contact cutoff, the approval timeout, how and who to ping, and the follow-up message a visitor sees.

FIXED

Voice calls now capture the caller number even when the phone platform drops it

On some inbound calls the AI voice platform never passes along the caller's number, so the call landed as an unknown caller. Calls now recover the number from the phone provider and match it to a contact, so your call log and follow-ups have who called. When a number still cannot be recovered, you can add or correct it right on the call page.

IMPROVED

Cart entries in your activity feed link straight to the visitor

A live cart in your activity feed is now clickable and opens the visitor behind it, so you can see the full session and reach out while the cart is still warm.

July 6, 2026

FIXED

Opening a contact's chat now finds archived conversations

Jumping to Live Chat from a contact used to show nothing when their chats had been archived. The scoped view now checks archived conversations automatically and opens the newest one.

July 6, 2026

IMPROVED

Your own opens and clicks no longer count as contact engagement

Reading your own sent email or checking its links used to show up as the contact opening and clicking, which could mark a lead hot when it was just you. Tracking now recognizes the operator, so open and click signals mean the contact did it.

FIXED

Empty cart syncs no longer clutter the activity feed

Add-to-cart events with zero items and a zero total came from routine cart syncs and crawler traffic, not shoppers. They no longer create feed entries, so a cart event in your feed means something real went into a cart.

July 5, 2026

SHIPPED

Four new guides on running your business from an AI assistant

The blog has four new reads for operators. What a CRM with a built-in MCP server changes about your day, how to pick a GoHighLevel alternative that fits a service business, what an AI agent actually handles across a normal week, and a CRM setup for contractors and trades so no lead goes cold on a job site. Each one ends with where to go next.

IMPROVED

Every blog post now points you to what to read next

A Keep reading section at the end of each post links straight to the product comparison, the MCP server, and pricing, so finding the next answer takes one click instead of a search.

July 4, 2026

SHIPPED

Clients fill out their own song requests

Every booking now has a client link you can text or email. Your client opens it on their phone, fills in must-plays, do-not-plays, and special moments on a clean branded page, and you see the submission on the booking. The form matches the event type, so a private party or corporate gig gets the right questions instead of wedding ones.

SHIPPED

Share a stage plot with any venue, no login needed

Stage plots now have a share link that opens for anyone, so the venue sound engineer sees the plot and input list without an account. Copy it from the booking and text it.

IMPROVED

Smarter email filing across your businesses

When a sender is connected to more than one of your businesses, their emails now file to your chosen home inbox instead of landing on whichever business matched first. Client email keeps filing exactly as before.

July 3, 2026

FIXED

Creating and editing contacts from the mobile app works again

Saving a new contact from the iOS app sent first and last name in a form the server rejected, so the contact was never created, and edits used a request type the server did not accept. The server now builds the contact name from first and last name (or the email if that is all you entered) and accepts the app's edit requests, so contact saves from your phone land every time.

SHIPPED

Premium suites are now live to buy

The Legal, Political, and Hospitality suites announced this week are now one click to add on Scale and higher plans. Open Settings, then Billing, and add or remove a suite anytime. Your base plan and its price stay exactly as they are.

SHIPPED

Choose protein, extras, and options when you fire a kitchen order

Building an order from the menu now prompts for the choices an item needs. Tap a burrito and you pick the meat, add a side, or add a paid extra like a second protein, with the price shown as you go. The order total and the kitchen ticket both reflect exactly what was chosen, matching what the phone ordering line already offered. Items with no options still add in one tap.

SHIPPED

See if a customer opened your invoice, and how many times you sent it

The invoice page now shows a Delivery section: how many times the invoice was sent and when, whether the customer has opened it, and whether they clicked the payment link, with a timeline of the activity.

SHIPPED

Your team sees who is texting or calling, with their reservation

Inbound text alerts now carry the sender's name and any upcoming reservation, like "Has reservation tonight 6:00 PM, party of 12". The phone assistant recognizes returning guests the same way, and transferred calls and callback tasks carry the context with them.

IMPROVED

Call-back tells you what happened

When you call a customer back and their line is busy or unanswered, you now hear the reason instead of the call simply ending.

FIXED

Google Ads and Search Console open signed-in from the mobile app

Opening a web-based screen from the iOS app no longer asks you to sign in again. Your app session carries over automatically, so integration screens load ready to use.

FIXED

Overdue tasks now show up in the dashboard attention feed

The attention feed on the mobile dashboard listed overdue task counts but never the tasks themselves, so that section stayed empty. Overdue tasks now appear as tappable items, including callback requests captured by your phone ordering line.

IMPROVED

Reservation requests tidy themselves up

A pending reservation whose date has already passed can no longer be decided, so it now closes itself instead of sitting in your pending list. Your pending view only ever shows requests you can still act on.

FIXED

Team invites can now be resent

If an invite email never arrived, a Resend invite action now appears next to any pending teammate, and a failed send shows a clear warning instead of a quiet success. Invited teammates also land in the right business automatically when they accept.

FIXED

Billing safeguards for upgrades

Upgrading from inside the app now recognizes an existing subscription and points you to the billing portal for plan changes, so an account can never be billed twice for its base plan.

FIXED

Opens and clicks on Gmail-sent emails now track reliably

Emails sent from Gmail with the OneHub360 extension were leaving before open and click tracking could be attached, so those sends never showed engagement. The extension now finishes tracking setup before the email goes out, and your open alerts, click history, and contact timeline all pick it up. Update to extension v5.7.0 to get the fix.

FIXED

Every view of an email now agrees on whether it was opened

An open could land on the contact timeline while the email itself still showed as unopened in other parts of the app. Opens and clicks now update the email record directly, so lists, reports, and the timeline stay in sync.

IMPROVED

No more duplicate logged emails

Registering the same email twice within a couple of minutes, for example on a retried send, now returns the original record instead of creating a duplicate, and manual sidebar logs are labeled separately from real sends.

July 2, 2026

SHIPPED

Premium vertical suites for law firms, campaigns, and restaurants

Add the depth your industry runs on to any Scale plan: the Legal Suite ($999/mo) brings matters, trust accounting, and conflict checks; the Political Suite ($799/mo) brings donors, events, and FEC itemized export; the Hospitality Suite ($499/mo) brings reservations, guest SMS, and AI voice ordering. Enterprise includes all three. Pay only for the depth you use.

SHIPPED

Add a suite to your workspace in a few clicks (beta)

On a Scale plan, the Billing page now shows the three premium suites with an Add button that takes you straight through secure checkout, so a suite goes live on your workspace the moment you finish. Rolling out now; if a suite is not yet available to buy on your account, reach out and we will switch it on for you.

SHIPPED

A paid order closes the deal on its own

When a customer pays their Shopify order, the matching open deal moves to Won automatically with the payment logged on the deal timeline. Swatch and sample purchases never close a real deal.

SHIPPED

See where every contact and deal came from

A traffic-source chip on the contact profile and deal page shows the origin, like "Google Ads", a named campaign, or "Organic Search", so you can tell which marketing actually brings in business. It appears only when the source was captured.

SHIPPED

Google Ads clicks now follow through to the sale

When someone arrives from a Google ad, the click and campaign are captured the moment they identify by chat, form, or call, and stay with them. If a Shopify draft order is created from their deal and gets paid, the sale is reported back to Google Ads. Paid search becomes measurable and repeatable, deduplicated so it never over-reports.

FIXED

Draft-order invoices no longer trigger cart-reminder emails

Customers who opened an invoice you sent them were being treated as abandoned carts and got reminder emails with a broken cart link. Invoice checkouts now stay out of cart recovery entirely.

SHIPPED

Pick real store products when creating an order from a deal

The Create Order & Invoice dialog now searches your Shopify catalog so line items carry the real product, variant, and price, and the ship-to address is editable before the draft is created.

FIXED

Gmail email-open alerts are back

A bot filter added Monday was mistakenly treating Gmail's image proxy as a scanner, so opens from Gmail recipients went uncounted for two days. Real Gmail opens now count and notify again.

July 1, 2026

FIXED

Call back always dials the customer

Calling back from certain call-log entries could dial your own business line and drop the call. The server now refuses to bridge a call to a number you own, and the app picks the right side of the call every time.

SHIPPED

Email button on the contact page

Next to Call and SMS, an Email button opens the composer with the contact's address and business already filled in.

FIXED

Send email from the iOS app without extra setup

Composing email in the app no longer asks you to connect Gmail on the device. It sends through the same Gmail account your OneHub360 is already connected to.

SHIPPED

Know the moment your email gets opened

Turn on Email Opens in notification settings and get a ping the first time a contact opens an email you sent, with their name and the subject. Bot and scanner opens are filtered out, and repeat opens stay quiet.

SHIPPED

Change a deal stage right from the deal page

The stage badge on a deal is now a dropdown. Move a deal to Won, Lost, or any stage without leaving the page, and the change lands in the stage history like a board move.

SHIPPED

See what an active shopper has in their cart

Live visitors browsing your store now show their cart value in the visitor view, on the web and in the app, so you know who is worth engaging right now.

FIXED

Customers who bought no longer get cart reminder emails

When a checkout completed at the same moment the cart was recorded, the recovery emails could still go out. Purchases now cancel their reminders every time.

IMPROVED

Chat answers product questions with more of your knowledge

The website chat now draws on up to 60 knowledge articles and keeps voice-agent scripting out of its context, so product details like fabric colors come back with specifics.

June 29, 2026

SHIPPED

Send orders straight to the kitchen

Restaurant admins can build an order from the menu and fire it to the kitchen from OneHub360, as a paid order or a comp. Comps are logged with who sent them and why.

SHIPPED

Share a call

Send a teammate the recording and transcript of any call with one tap. They open a secure link that expires on its own, no login needed. On the web and in the app.

FIXED

Text replies from the app actually send

Replying by text from the app now delivers to the customer instead of only saving to the thread. The web inbox sends texts the same way, and every sent text shows up on your dashboard and in the conversation.

IMPROVED

Email notifications that only ping you for real customers

New-email notifications are off by default, and when you turn them on they ping you only for genuine customer replies, not marketing blasts or no-reply mail. Control them under notification settings, alongside texts, calls, chats, and form submissions.

SHIPPED

High-value abandoned carts land in your pipeline

When a cart worth $500 or more finishes its recovery emails without a sale, it becomes a deal in your pipeline so a person can follow up.

FIXED

Cart recovery emails show the right totals

A cart with several of the same item now reads as one line with its full line total, instead of repeating the item at its unit price.

FIXED

Your notification choices now save

Turning an alert type on or off now sticks the first time, so you get exactly the pings you asked for and nothing you turned off.

FIXED

Drag and drop documents from anywhere on the page

Drop files anywhere on the Documents page to upload them, with a clear drop overlay. Missing the upload box by a hair no longer makes your browser open the file instead.

IMPROVED

See tomorrow’s reservations, or any day

The reservations view now has a day picker: step to the next day, jump to any date, or hop back to today in one tap, so finding a specific night no longer means scrolling the whole list.

June 28, 2026

SHIPPED

Duplicate an invoice

Copy any invoice into a fresh draft in one tap, then tweak and send. The copy carries the contact, line items, tax, and notes, with a new number and a fresh due date. Works on the web and in the app.

IMPROVED

Add a new customer right on the invoice

Invoicing someone new no longer means stopping to add them in Contacts first. Add them on the invoice in one tap and they are selected for you. Works on the web and in the app.

FIXED

Create an invoice from a price alone

A line item with a price creates the invoice even when you skip the description, instead of the Create button quietly doing nothing. A blank description fills in as a simple line so the invoice still reads clean.

FIXED

Open a contact’s calls, and every tab that went nowhere

On a contact, the Calls and Insights tabs open to their content instead of bouncing back to the overview. Booking contract links land on the right tab, and the settings and inbox links go where they say. The app already worked here; the web now matches.

FIXED

Ask AI works in the app

The in-app assistant answers again instead of returning an error, so you can ask about your business from your phone.

SHIPPED

Your live chat captures the lead and starts the quote

When a website visitor gives your chat what it needs (who they are and what they want), it now creates the deal automatically, saves their answers to it, and wraps up instead of looping. Generate a quote from that deal and it pulls the whole conversation in for you, so you are not copying and pasting the chat to get a proposal.

IMPROVED

Your invoices wear your brand

Invoices and the customer pay page now show your logo, use your brand colors, and carry your phone, email, website, and address from settings, so what your customer receives looks like you. Set your business address under Settings, Businesses, Contract and Brand.

SHIPPED

A real Sales page

One screen with a Today, Yesterday, 7 day, and 30 day switch, then the breakdowns that matter: sales by server, top items, sales by hour, and this period against the last. Tap a server to see their numbers and their orders, tap an order to see its line items.

SHIPPED

Edit an invoice after you send it

Change line items, the due date, tax, or notes on an existing invoice instead of starting over. Available on the web and in the app.

IMPROVED

Your dashboard stays the way you left it

Arrange and hide tiles once and they stay put across updates and devices. Restaurants lead with sales and skip the tiles meant for online stores, so you open to what runs your floor.

IMPROVED

Know which booking inquiry to chase first

The inquiry list shows how many are open, the dollars at stake, and how long the oldest one has waited. Open a booking and create the invoice from it in one tap.

FIXED

Drink and modifier prices now count toward your sales

When an item carries its price on a modifier, like a house margarita priced by the pour, that money now shows up everywhere: today's sales, sales by server, top sellers, and the order detail. Your dashboard totals match your POS report instead of reading low, and every order detail now shows the real line price and tax so the order adds up.

IMPROVED

Your sales day runs on your hours, not the clock

Restaurant dashboards now use a 10am to 3am business day, so a late night counts as one night and a 1am check lands on the night you are actually working, not a near-empty new day. A Yesterday view shows your last complete night at a glance.

June 27, 2026

FIXED

Your dashboard numbers now match your POS to the day

Sales, top sellers, open tabs, and calls now use your local service day correctly, so what you see matches what your register shows. Sales by Server also reports gross (matching your POS report) alongside total collected, labeled by tab owner so it is never confused with a per-item split. Open tabs are tappable into the order, and call counts reflect the real day.

FIXED

Complete and delete tasks from the app

Finishing or removing a task from the mobile app works now. A number of detail screens that quietly failed to load on mobile are fixed too.

IMPROVED

Switch Sales by Server and Top Sellers between today, 7 days, and 30 days

Each of those tiles now has a Today / 7d / 30d switch, so you can see tonight at a glance or step back to the week or month. The drill-down into the orders behind a row follows whichever window you pick.

SHIPPED

Tap any number to see the orders behind it

Every dashboard tile drills in. Tap a server to see their orders, a top seller to see who ordered it, this week to see the week, or open tabs to see what is live. Each order opens to its full line items, server, and total. The category tile is now Top Sellers, ranked by revenue, so you see what is actually moving.

SHIPPED

See who is selling, what is selling, and which way the week is headed

Restaurant dashboards now show sales by server, sales by category, and this week against last week. See who to coach, what to push, and whether the week is up, all at a glance. Customize which of these lead your dashboard.

IMPROVED

Orders and revenue now count every closed tab

Paid tabs from Clover sync the moment they settle, so your sales totals, open-tab count, and revenue reflect the real state of the floor instead of leaving settled tabs stuck open. Your numbers and your "open right now" count finally agree.

SHIPPED

Play call recordings right in the app

Open any call and play its recording in the app with no extra sign-in. The recording streams securely through your account.

SHIPPED

A live restaurant dashboard built for your floor

Restaurant dashboards now lead with what you need during service: today's sales with order count and average check, a sales-by-hour chart that marks your busiest hour, today's confirmed reservations with party size and VIP guests, and open tabs grouped by area so you can see where the room stands at a glance. The open-tabs view reads live from Clover, so it reflects the tabs your team has open right now.

IMPROVED

Your dashboard layout saves to your account

Arrange and hide dashboard widgets the way you want, and your layout follows you to every device and survives clearing your browser. Rearrange on the web and it carries over on mobile.

June 26, 2026

FIXED

Background actions now always complete

Automatic follow-ups, owner alerts, customer webhooks, and proposal generation run in the background after a page loads. A permissions race introduced in the June database update could silently drop some of them on the first attempt. That is closed, so these now complete reliably the first time.

June 25, 2026

SHIPPED

Premium vertical suites for legal, hospitality, and political teams

Depth features built for how you actually run: trust accounting and IOLTA for law firms, AI voice ordering for restaurants, and FEC export for campaigns. Available on the Scale tier, and any team already using these keeps them.

SHIPPED

Turn on modules from any other workflow

Each business shows its own industry modules by default, and you can switch on tools from any other vertical when you need them. A law firm can turn on Reservations the same day. Find it under Settings, pick a business, then Add Modules from Other Workflows.

SHIPPED

QR self-enrollment that builds your contact list

Put a QR code in front of customers. A scan opts them in, creates the contact, and stores consent, then auto-enrolls them into review-request and birthday-club sequences. A daily birthday send goes out on its own. TCPA and CAN-SPAM consent is captured on every signup.

SHIPPED

Printable host-stand day-sheet for reservations

Print the full day of reservations for the host stand, or a single reservation on its own. Flexible time slots cover lunch and dinner from 11am to 10pm, and every request carries a clear note that it is a request, not a confirmed booking.

IMPROVED

Arrange your sidebar your way, saved to your account

Drag any menu item into the order you want and hide the ones you do not use, all in one list. Your layout saves to your account, so it follows you on every device and survives clearing your browser.

IMPROVED

The AI phone agent now works for any restaurant

The phone agent shows as Voice Agent across the app, so it fits any restaurant you run instead of a single hardcoded name.

IMPROVED

Customer reply photos attach to the deal on their own

When a customer emails photos back, the images land on the matching deal automatically. No saving and re-uploading to find them later.

FIXED

A silent auto-reply failure now alerts you and retries

If an automatic reply email fails to send, you get an alert and the system retries on its own, so a customer message no longer goes unanswered without anyone knowing.

FIXED

Dashboard pipeline now matches your pipeline page

The dashboard Pipeline tile counts only your active deals, the same way the pipeline page does. Archived deals no longer get added into the total, so both pages show the same number.

FIXED

New-lead auto-replies now send on the first try

The instant reply to a new lead no longer intermittently fails on a permissions race and wait for a retry. It reaches the lead right away.

June 22, 2026

SHIPPED

Branded email sending from any address you connect

Send as your real business identity across every brand you run. Replies thread correctly, sends land in your Sent box, and opens are tracked. One inbox, the right name on every message.

SHIPPED

Gmail tracked send from the browser extension

Send a tracked email straight from Gmail and it logs against the contact automatically, with an open pixel and click tracking. The follow-up you were doing in a separate tool now lives next to the deal.

SHIPPED

Self-serve annual billing

Switch between monthly and annual right in the app and pay annually for the discount. No sales call to change how you are billed.

FIXED

Calls, proposals, and email status now show in every inbox view

A Twilio call, a real proposal email, and its open/viewed status all appear in the conversation thread. You can see what the customer actually received and whether they opened it, in one place.

FIXED

Accurate reporting across six dashboard surfaces

Revenue and conversion numbers stopped double-counting and stopped reading from a single channel. The figures on your dashboard now match what actually happened.

IMPROVED

Faster pipeline on mobile

The deal board no longer pulls thousands of store orders into the phone app. Pipeline loads quickly on the iOS app instead of stalling.

IMPROVED

Click attribution on every SMS link

Links sent through sequences, workflows, and manual messages are tracked, so a click lands back on the right contact and deal. You can see which text actually moved someone.

COMING

Continue with Google login

Sign in with your Google account, no separate password to manage. Built and in final review before it opens to everyone.

COMING

Stripe Connect payments for client invoices

Route a payment straight to a client business through its own connected Stripe account. The flow is built and is in legal review before it goes live, so customer money only moves once it is cleared.

June 2026

FIXED

Invoice and pay links locked behind a one-time email code

A customer now verifies with an emailed code before viewing an invoice or pay link. The portal and payment pages are no longer reachable without that check.

FIXED

Closed several server-side request risks across import and tracking

Hardened the brand-kit import, tracking proxy, and webhook test paths so a crafted URL can no longer reach internal services. Routine security work, surfaced here because it protects your data.

FIXED

No more double payouts on a single execute

Tightened the payout path so a retried action cannot pay twice. Money out is now an atomic, idempotent operation.

SHIPPED

Order revenue writes a clean ledger row per paid order

Every paid order from a connected store posts one canonical revenue entry, so totals reconcile instead of drifting.

IMPROVED

Truthful, sharper marketing and feature pages

Reviewed the public pages for claims that ran ahead of the product and corrected them. What the site promises now matches what the app does.

April 27, 2026

SHIPPED

Voice AI agent answering inbound calls 24/7 (HAL persona, ASP first)

A named AI agent answers a dedicated toll-free 24/7 with two-party-consent recording disclosure, looks up live Shopify pricing, drafts a cart and texts the checkout link, books callbacks inside business hours, transfers to a human with a whisper announce, takes messages, and emails plus SMSes the owner a per-call summary.

SHIPPED

Same agent on the chat widget, one voice, one knowledge base

The chat widget uses the same persona, the same 13 tools, and the same KB the phone agent uses. Voice and chat answer with one tone instead of two disconnected bots.

SHIPPED

Custom-build routing instead of refusal

When a caller asks for a non-stock size or thickness, the agent gathers the build details and routes to a human for pricing instead of dead-ending the call.

SHIPPED

Read-the-intent fast lane for ready buyers

Callers who already know what they want skip the discovery script and get a checkout link. Tagged VIP customers skip the AI entirely and ring the owner.

SHIPPED

Auto-merge contact records across phone, email, and Shopify

Identity match on phone, email, or Shopify customer ID consolidates records automatically. A merge-suggestions banner offers one-click resolution for fuzzy matches.

SHIPPED

Shopify customer + order history on the contact timeline

Order history syncs into the contact profile. MMS photo attachments render inline. SMS inbox threads link straight to the full contact record.

SHIPPED

Gap detector that drafts knowledge base articles

Every unanswered question gets logged. When a topic is asked 3+ times in 30 days, Mac Mini Opus drafts a KB article and emails the owner an approve/reject/edit link. The agent learns from what it could not answer.

SHIPPED

Conversation outcome attribution to Shopify orders

Every conversation is tagged won, lost, or pending and matched against Shopify orders. RAG retrieval biases new conversations toward the past conversations that closed sales.

SHIPPED

Tracked SMS links tied to the originating call or chat

Every URL the system sends in SMS is wrapped in a tracked redirect bound to the contact and the conversation that produced it. Click attribution lands back on the deal.

SHIPPED

Per-business primary outbound number, fully data-driven

TrackingNumber and PhoneLine stay in sync automatically. New tenants get a working outbound number with no code changes per business.

FIXED

Inbound SMS replies land in the inbox correctly

Twilio signature verification now works behind the proxy. Replies thread to the right contact instead of disappearing.

FIXED

Live visitor counter accuracy

Killed a SQLite type-drift bug that was producing ghost visitors. The counter now reflects real sessions only.

FIXED

Lead scoring page no longer 500s on orphan records

Records without an associated contact stopped crashing the page.

IMPROVED

Cron jobs for gap digest, conversation outcome attribution, and Shopify customer sync

Scheduled jobs run the learning loop, match conversations to orders, and pull Shopify customers without manual intervention.

IMPROVED

TCPA-compliant SMS opt-out on outbound campaigns

STOP/UNSUB/HELP handling is enforced on every outbound campaign. Opt-outs propagate across the contact record.

IMPROVED

Tenant isolation enforced at the API layer

Every conversation, contact, and tracked link is scoped to its business. Cross-tenant reads are blocked at the API, not just in the UI.

SHIPPED

Native iOS app surface, surfaced on the marketing site (previously shipped)

OneHub360 has a native iOS app, not just a web wrapper. CallKit Call Directory extension shows the matching CRM record on the iPhone lock screen when a contact calls. Lock and Home Screen Widgets put pipeline numbers and next tasks one glance away. Share Extension forwards an email or screenshot from any iOS app straight onto a contact or deal. Contacts sync mirrors OH360 contacts into the iPhone Contacts app. HubSpot does not ship a Call Directory extension. GoHighLevel does not ship a native iOS app.

SHIPPED

Per-tenant custom iOS apps on the same backend (Terrace Cantina is live)

Terrace Cantina runs as a standalone branded iOS app against the OneHub360 multi-tenant backend, built 2026-04-26. ASP Room Visualizer is a separate AR iOS app for dropping virtual acoustic panels in a room. Customers on Scale and above can commission a per-tenant iOS app on the same backend.

April 2026

SHIPPED

/customers/terrace-cantina case study

Real case study showing the AI phone ordering plus Clover POS integration we built for Terrace Cantina restaurant in Oak Brook Terrace.

SHIPPED

/migrate-from-hubspot landing page

Side-by-side feature and price math vs HubSpot. ~$15k/year savings example for a 3-person service business.

IMPROVED

Marketing voice rewrite across /about, /security, /help, /offers/free-website

Pain-first, specific-moments, no-jargon voice. Stripped duplicate nav and footer that predated the shared MarketingNav.

IMPROVED

/features rewritten around buyer pain instead of feature catalog

5 buyer-pain cards replacing the old "feature grid" pattern.

IMPROVED

Homepage hero - vertical-based proof line and service-business positioning promoted

"Trusted by recording studios, print shops, event promoters, and acoustic-panel manufacturers." The "Built for service businesses, not enterprises" card moved to first position.

FIXED

Cookie banner z-index overlap

Cookie consent now sits as a bottom-left card so it does not cover the chat widget bubble in the bottom-right.

SHIPPED

Plan-tier upgrade CTAs at the 403 boundary

When an MCP call hits a tool above the user's plan tier, the response converts the 403 into an in-product upgrade CTA with a deep-link to /settings/billing.

SHIPPED

Customer MCP usage dashboard

/settings/usage shows total calls, calls this month, p95 latency, and plan-tier breakdown.

SHIPPED

Public MCP usage stats for social proof

/api/public-stats/mcp exposes anonymized aggregate stats (rounded tenant counts, total calls, p95 latency) for use on pricing and marketing pages.

SHIPPED

Audit log UI at /settings/audit

KPIs, expandable rows, redact-aware. Customers can see every API and MCP call against their account.

SHIPPED

Idempotency forwarding through MCP

Per-tool synthesized Idempotency-Key (${customerKey}:${toolName}:${callIndex}) prevents duplicate sends on agent retries.

SHIPPED

New mutation tools - update_deal, delete_deal, delete_task

Destructive actions gated by a confirm:true literal flag.

SHIPPED

MCP server v1.0 - Run OneHub360 from Claude or ChatGPT

Hosted Model Context Protocol server at https://onehub360.com/api/mcp. 28 tools (19 read + 9 write incl. destructive) filtered by plan tier. Mint a key in Settings → API Keys, paste a config snippet into your agent, restart. Audit log on every call. Tenant-scoped per key. First SMB CRM platform to ship MCP - same week Salesforce shipped Headless 360.

SHIPPED

API audit log + Idempotency-Key support

Every mutation through /api/v1/* or the MCP is recorded with the API key id, tool name, status, durationMs, and timestamp. Idempotency-Key header on mutations caches the response for 24h: same key + same body replays the cached response, different body returns 409. Prevents duplicate sends on agent retries.

SHIPPED

New v1 send/log routes

POST /api/v1/proposals/[id]/send, POST /api/v1/invoices/[id]/send, POST /api/v1/calls. All confirm-flag-gated for destructive actions (the agent must explicitly pass confirm:true to fire customer-facing emails).

SHIPPED

Connect-to-Claude UX

New panel in Settings → API Keys with the MCP config snippet, copy-snippet button, and plan-tier explainer. One-click setup for any MCP-compatible agent.

SHIPPED

Use-case landing pages

New pages at /use-cases/run-crm-from-claude, /use-cases/send-invoices-from-chatgpt, /use-cases/ai-agent-for-small-business, /use-cases/proposals-from-claude, plus /compare/salesforce-headless-360-alternative.

IMPROVED

Marketing site unification

All 22+ marketing pages now share a single nav and footer (MarketingNav + MarketingFooter). No more page-by-page chrome inconsistency.

SHIPPED

Blog & SEO Content

5 long-form articles published covering CRM, lead management, and competitor comparisons. Accessible at /blog.

SHIPPED

Competitor Comparison Pages

Dedicated landing pages vs GoHighLevel, HubSpot, HoneyBook, Salesforce, and Zoho.

SHIPPED

Marketing Page Overhaul

New hero copy, honest benefit cards replacing fake testimonials, email capture, integrations section, inline dashboard showcase, and mobile nav menu.

SHIPPED

Email Lead Capture

Visitors can submit their email from the landing page. Stored as a contact with source tracking.

IMPROVED

Clover Order Customer Names

Web and phone orders now correctly display customer names from order title and expanded customer data - no more "Walk-in" for named orders.

IMPROVED

Clover Sync Revenue & Activity

Revenue recalculated correctly on sync. Activity feed entries created for all Clover orders.

IMPROVED

Active Carts Widget

Fixed field mismatches (totalPrice, items) and removed a double-division bug that was showing $0.00 cart values.

IMPROVED

Clover Sales Widget

Orders link added on all widget states, not just the loading skeleton.

FIXED

Bot Filter in Activity Feed

Bot emails were slipping through because contact.email was missing from the query select. Also added description-text scanning to catch bots recorded in cart data.

FIXED

Activity Feed Date Sorting

SQLite stored some timestamps as TEXT and others as INTEGER. TEXT sorts after INTEGER regardless of value - causing 5-day-old activity to appear stale. Normalized 2,400+ records to INTEGER epoch ms.

FIXED

Watch Live Centering

rrweb Replayer was missing root container reference and scale-to-fit logic. Fixed with ResizeObserver and proper cleanup on modal close.

FIXED

Heatmap Background

Heatmap page now renders an iframe of the tracked URL as the background instead of a blank canvas.

FIXED

Contact Revenue Aggregation

Contact revenue now correctly sums across Shopify, Clover, POS, and invoice payment sources.

FIXED

Contact Deduplication

Clover sync no longer creates duplicate contacts when the same customer email already exists.

March 2026

SHIPPED

Proposal Pipeline v2.0

Auto-generate room acoustic proposals from form submissions. Inline editing, photo analysis, Dan Morrell signature, and async Mac Mini generation (3-7 min Opus quality).

SHIPPED

Form Automations

Match form submissions to email sequences. Route leads to the right workflow automatically based on form type.

SHIPPED

Chrome Extension v4.0.3 (published to Chrome Web Store)

Gmail sidebar shows the matching OH360 contact, deal pipeline, last touch, and recent activity inside the inbox. Quick-add popup adds a contact, deal, or task from any tab with a per-business selector. Universal sidebar is opt-in and toggleable. Three-keystroke contact search from the popup. Extension ID illefghajalfimobdkcmgmmobgoaggjk. HubSpot has a Gmail integration. GoHighLevel does not.

IMPROVED

Pipeline Board

Won/Lost columns hidden from active board view. Won column retained for drag-to-close; Lost hidden entirely.

IMPROVED

Mobile Responsiveness

Pipeline pages now fully responsive on mobile.

FIXED

Security Hardening

Docker ports bound to localhost, cron auth added, Gmail ingest secured. Cross-tenant data isolation fixed in appointments and tasks APIs.

FIXED

Proposal Form Routing

Proposals only generate for Room Analysis forms, not lead magnets or other form types.

February 2026

SHIPPED

Affiliate Program

Earn up to 30% recurring commissions by referring businesses to OneHub360.

SHIPPED

Email Campaign Compliance

Automatic unsubscribe filtering, CAN-SPAM footer, and List-Unsubscribe header.

IMPROVED

Calendar & Scheduling

Improved event creation, appointment booking dialog, and multi-business support.

FIXED

Task Multi-Tenant Fix

Tasks now correctly scoped to selected business.

IMPROVED

Security Patches

Fixed cross-tenant data isolation in appointments and tasks APIs.

January 2026

SHIPPED

Smart Chat Agent

Automated responses for your live chat widget with knowledge base grounding.

SHIPPED

Gmail Integration

Connect Gmail to sync inbox, send emails as your business, and track opens/clicks.

SHIPPED

Clover POS Import

Import customers from Clover POS directly into your CRM.

IMPROVED

White Label

Custom branding, colors, and domain support for agencies.