Changelog
What's new in OneHub360. We ship fast.
August 3, 2026
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.
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
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.
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.
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.
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.
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.
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.
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.
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
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
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.
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.
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
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.
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
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.
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.
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
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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
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.
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
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
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.
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.
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.
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.
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.
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.
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.
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
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
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.
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
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.
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.
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
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.
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
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.
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.
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
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.
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.
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.
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
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
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.
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
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.
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
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Live visitor counter accuracy
Killed a SQLite type-drift bug that was producing ghost visitors. The counter now reflects real sessions only.
Lead scoring page no longer 500s on orphan records
Records without an associated contact stopped crashing the page.
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.
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.
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.
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.
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
/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.
/migrate-from-hubspot landing page
Side-by-side feature and price math vs HubSpot. ~$15k/year savings example for a 3-person service business.
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.
/features rewritten around buyer pain instead of feature catalog
5 buyer-pain cards replacing the old "feature grid" pattern.
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.
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.
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.
Customer MCP usage dashboard
/settings/usage shows total calls, calls this month, p95 latency, and plan-tier breakdown.
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.
Audit log UI at /settings/audit
KPIs, expandable rows, redact-aware. Customers can see every API and MCP call against their account.
Idempotency forwarding through MCP
Per-tool synthesized Idempotency-Key (${customerKey}:${toolName}:${callIndex}) prevents duplicate sends on agent retries.
New mutation tools - update_deal, delete_deal, delete_task
Destructive actions gated by a confirm:true literal flag.
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.
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.
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).
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.
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.
Marketing site unification
All 22+ marketing pages now share a single nav and footer (MarketingNav + MarketingFooter). No more page-by-page chrome inconsistency.
Blog & SEO Content
5 long-form articles published covering CRM, lead management, and competitor comparisons. Accessible at /blog.
Competitor Comparison Pages
Dedicated landing pages vs GoHighLevel, HubSpot, HoneyBook, Salesforce, and Zoho.
Marketing Page Overhaul
New hero copy, honest benefit cards replacing fake testimonials, email capture, integrations section, inline dashboard showcase, and mobile nav menu.
Email Lead Capture
Visitors can submit their email from the landing page. Stored as a contact with source tracking.
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.
Clover Sync Revenue & Activity
Revenue recalculated correctly on sync. Activity feed entries created for all Clover orders.
Active Carts Widget
Fixed field mismatches (totalPrice, items) and removed a double-division bug that was showing $0.00 cart values.
Clover Sales Widget
Orders link added on all widget states, not just the loading skeleton.
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.
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.
Watch Live Centering
rrweb Replayer was missing root container reference and scale-to-fit logic. Fixed with ResizeObserver and proper cleanup on modal close.
Heatmap Background
Heatmap page now renders an iframe of the tracked URL as the background instead of a blank canvas.
Contact Revenue Aggregation
Contact revenue now correctly sums across Shopify, Clover, POS, and invoice payment sources.
Contact Deduplication
Clover sync no longer creates duplicate contacts when the same customer email already exists.
March 2026
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).
Form Automations
Match form submissions to email sequences. Route leads to the right workflow automatically based on form type.
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.
Pipeline Board
Won/Lost columns hidden from active board view. Won column retained for drag-to-close; Lost hidden entirely.
Mobile Responsiveness
Pipeline pages now fully responsive on mobile.
Security Hardening
Docker ports bound to localhost, cron auth added, Gmail ingest secured. Cross-tenant data isolation fixed in appointments and tasks APIs.
Proposal Form Routing
Proposals only generate for Room Analysis forms, not lead magnets or other form types.
February 2026
Affiliate Program
Earn up to 30% recurring commissions by referring businesses to OneHub360.
Email Campaign Compliance
Automatic unsubscribe filtering, CAN-SPAM footer, and List-Unsubscribe header.
Calendar & Scheduling
Improved event creation, appointment booking dialog, and multi-business support.
Task Multi-Tenant Fix
Tasks now correctly scoped to selected business.
Security Patches
Fixed cross-tenant data isolation in appointments and tasks APIs.
January 2026
Smart Chat Agent
Automated responses for your live chat widget with knowledge base grounding.
Gmail Integration
Connect Gmail to sync inbox, send emails as your business, and track opens/clicks.
Clover POS Import
Import customers from Clover POS directly into your CRM.
White Label
Custom branding, colors, and domain support for agencies.