v2.147.1
Two words fixed in the new scheduler. The confirm button and the "call booked" message now say the time the way the rest of Hermes does (09-10-26 4:42 PM) instead of a raw computer timestamp, and task rows and reminders name the topic in plain words ("Shipping issue", "Billing & account") rather than the internal shorthand.
v2.147.0
Book a call the way you would book anything else. Scheduling a call or text now opens a real date-and-time picker instead of five canned slots, and "let them pick" mints a link that actually works: the customer opens a clean Flip My Life page, chooses a time in their own time zone, and it lands on the agent's task list. Every booked follow-up now belongs to the person who booked it (or a teammate they choose) and rings them before it is due: a banner at the top of Hermes, a short chime, and a desktop alert when the browser allows it. Text is only offered to customers with a mobile number who said yes to texts.
v2.146.0
The inbox door opens for everyone who has one. Sending a note to a customer's FLIP HQ inbox from the support hub used to fail with "no store account" even when they had one, because the profile never passed the account along. It does now, the full profile gets the same inbox button, and every action on a profile only appears when it is actually possible for that customer — no more offering a subscription credit to someone with no subscription.
v2.145.0
The rewards page tells a subscriber the truth. An active subscriber is FLIP Fam, full stop — but the store's rewards page was still reading an old copy of the tier and telling 898 subscribers they were "FLIP Member" with a "spend more" nudge. It now works out the tier live, the same way the account hub does: an active subscription (or an upcoming order already on file) means FLIP Fam; everyone else sits where their lifetime spend puts them. One rule, every screen. Points and earning are untouched.
v2.144.0
A long email address can no longer break a customer update. The database Hermes runs on allows a search pattern of only 50 characters, and the check that matches a customer by an alternate address wrapped the whole address into one — so any address of 47 or more characters made that update fail, and the store kept retrying until it gave up. That check now uses a plain "contains" lookup with no limit, every search box trims what it sends to the budget, and the test suite enforces the same 50-character rule, so this cannot come back unseen. The new rule immediately caught a second case nobody had reported: the site chat's confirm step, which the same limit would have broken on its first real use. Fixed before it happened.
v2.143.0
A gift is not a refund. When a creator who is also a customer is sent free product, that send no longer counts against their profitability as a customer, and it no longer counts as a "problem solved" replacement for a shipping issue. The two things were always separate; now the numbers say so too.
v2.142.0
Find anyone, see only what a recruiter needs. The affiliate manager's desk gains a Customer search between the VIP list and New messages: type a name or an email and it looks through every customer the store has ever had, not just the top spenders, and shows each one as the same compact card with the same buttons — profile, message, invite, note, call. The full customer-service profile stays out of reach. The little chip strips on that desk no longer show a scrollbar.
v2.141.0
One card per order. A member with bags on different dates now sees each upcoming order as its own card — its date, its bags, its total — instead of every bag piled under the first date; each bag can change its own schedule or all of them together; a reward comes off the bags in the order it applies to and no others; and swapping a flavor keeps the price that member already pays. Found by a support agent walking through her own account, fixed on both sides of the portal in one round.
v2.140.0
One place for a person. From a creator's record the affiliate manager can now open their affiliate profile or message them straight away — a creator who was never a customer gets a record made for them on that press — and from the profile he can add a creator record. The creators list offers the profile and the conversation on every row. Logging a note now asks what happened and keeps what he types, and a separate Log a call button records a call.
v2.139.0
One way to reach a creator, and one desk to do it from. Every message the affiliate manager sends now lands in the creator's FLIP HQ inbox and goes out again by email with a button that brings them back to that inbox to answer, plus a line asking them not to reply by mail. Invitations use the same path. The desk is three sections — a Dashboard with the creators list and the message templates built in, the VIP list, and New messages — the conversation itself offers the templates or a blank page, and the chip strips give a phone a little more room.
v2.138.0
One profile on the affiliates desk, and it is the affiliate one. A View profile button on every VIP card, creator row and conversation opens a pop-up built for the affiliate manager: what someone is worth, how long they have been with you, what they buy, whether they subscribe, where they stand in the funnel, the conversation so far, and whether they are already one of your creators. The full customer-service profile is no longer reachable from that desk, and a VIP card no longer drops you into the inbox.
v2.137.0
The affiliate manager gets a proper inbox — and so does every creator he talks to. Messages between him and the people he is recruiting now live in one place inside the app, and each creator sees the same conversation in their own FLIP HQ account, in a new Affiliate folder they can answer from. Clicking a creator opens that conversation and the few facts that matter for recruiting, instead of the full customer-service profile that was never his job. Creator profiles gained a drop-down that adds someone to his list in one press. And the invitation emails appear in the thread with a note saying replies to those arrive in his own mailbox — the app never pretends to hold half a conversation it cannot see.
v2.136.1
The recruiting desk lost the customer-service clutter — and three colleagues who never existed. Opening it for real turned up three faults in an hour: a small arrow button that, when pressed, squashed each person's name into a single vertical letter; a "Reach out" button that offered support topics and promised to route them to Dana, Miguel and Sasha, none of whom work here (they came from old demo data); and a daily sending limit nobody asked for. The row now carries only what recruiting needs, the limit is gone, and the booking screen no longer names anyone it cannot vouch for.
v2.136.0
Scott can recruit affiliates from the VIP list, by personal email, inside Hermes. A new My creators section on the affiliates desk: pick any top customer, claimed or not, and send them a personal invitation from Scott — three editable templates that fill in the person's name, how long they've been a customer and their orders — with an opt-out line on every mail, a daily limit, and a record of every invite on the customer. Prospect, invited, replied, affiliate or declined, at a glance.
v2.135.0
The "working" card now says "Done". When a longer action finishes, the centred card no longer just disappears: it turns into a green tick with what happened and how long it took, stays a moment, then goes — so nobody is left wondering whether the thing they waited for actually went through.
v2.134.2
The deck tells the truth about its own version. Its opening and closing slides still said v2.54.0 and 323 tests from mid-August while the rows ran to v2.134.1. They now say the current version and test count, and a check in the test suite fails any future release whose deck still carries the old numbers.
v2.134.1
The Portal tab opens fast. Opening the customer-portal dashboard sometimes meant a two-minute wait while the app rebuilt two days of usage figures one row at a time and re-read every order. The figures are now rebuilt in one stroke and refreshed by the half-hourly background job before anyone asks, so the tab reads a ready-made snapshot.
v2.134.0
Refer-a-friend rewards actually pay out now. A check that was supposed to notice when a referred friend placed their first order had been failing quietly on every run since early August, so no advocate had ever received their referral points. The check now works, says plainly why if it ever fails again, and on its first run pays anyone whose friend already ordered.
v2.133.0
Change one box, or every box — the portal can now tell the difference. Behind the scenes, the account portal gained one door that edits the next order: add, remove, swap a flavor or change a quantity, either for just that box or for every box from now on, with an Undo for the one-box kind. A swap for one box charges the subscriber price, never the retail price. And churn on the dashboard now uses Recharge's own definition, so the two never disagree.
v2.132.0
Survey answers become checked, suggested actions. Each answer a member gives is read against what that member actually did in the portal, so the team sees whether a complaint holds up, and gets two or three concrete things to fix, reword, guide or keep — with a Plan / Done / Dismiss switch and the cost shown before it runs.
v2.131.0
A dashboard for the customer portal, counting from the day it went live. A new Portal tab shows who signs in and where they go, what they do for themselves, which flows they abandon, what fails, what members say, where they ask for help, and the business numbers week by week since activation — with a red banner the moment something starts failing.
v2.130.0
The customer portal gets its own report. Insights gains a Customer Portal tile and a full deck: who signs in and what they do for themselves, whether anything is failing, what members say when asked, and how cancellations, churn, orders and support tickets look before and after the launch — every number defined on the last slide.
v2.129.0
The database now has to prove it was built. Months ago a piece of the setup script was skipped in silence: the app built 47 of its 49 tables, every page still looked right, and the only clue was one real person who could never receive their sign-in code. From now on the app counts what it was told to build against what actually exists and refuses to call a half-finished setup a success, naming exactly what is missing. A release check runs the same comparison after every deploy, so a gap is loud instead of invisible. Checked today against the live database: everything it declares is there.
v2.128.0
We counted every doubled message, then stopped showing them. A sweep of all 194,017 stored messages found just five that the app itself had duplicated, on three conversations, two of them real customers — copies of a customer's own words coming back from the help desk, all written before last night's fix closed that door. Everything else that looked doubled was the help desk's own chat wording, which is theirs, not ours. Rather than reach into the record and delete anything, the app now recognises a copy when it reads one, so no conversation shows the same message twice, anywhere, however old it is.
v2.127.0
Every form message is its own thread in your inbox. Send a question through the site's form and it shows up in your FLIP HQ inbox as its own message, marked "Sent · waiting for a reply", instead of being folded into an older conversation. When support answers, the reply lands under that message. Older threads stay readable, and an "Open the latest" button keeps everyone writing in one place — because on the support side it is still one conversation per customer, so nobody can flood the help desk with duplicate tickets.
v2.126.0
Tell us your birthday, see who claimed your link. Members set a birthday month and day in their account so the birthday reward can pay out, and the referral card shows the email each claimed code went to.
v2.125.0
The first real photo taught two more lessons. Tyler sent a form message with a picture: the picture reached the help desk this time, through the signed link the previous release opened, but Hermes and his own account inbox showed the message twice. Two fixes. The piece of the app that stores uploaded files could write them but had never been taught to read them back, so the help desk was only ever handed a link; it is now handed the file itself through the help desk's own upload service, a copy that outlives the link and does not depend on our door. And the doubling came from the mirror: it already knew to skip the copy of a customer's words that comes back from the help desk, but only for conversations that started on the website — and since yesterday a repeat message joins the customer's open conversation wherever it began. Both are fixed: the file store reads, and the mirror skips the echo on every conversation.
v2.124.0
Your points-per-dollar, not the base rate. The "Place an order" reward now shows what your own tier earns — a FLIP Fam member sees 10 per $1, not 5.
v2.123.0
The inbox keeps up, and carries files. Whichever conversation moved last sits on top; photos and PDFs travel both ways. Members can join the text list from inside FLIP HQ and get their points on the spot.
v2.122.0
Referrals you can act on. Each friend shows where they are — claimed, reminded, ordered — with their code, a text/email button from your own phone, and the exact time the next email reminder opens. Inbox messages can carry a picture.
v2.121.0
The founder's letter waits in the inbox, looking like the letter. A member's inbox now holds the pop-up letters with their photo from the first visit on, unread until the pop-up itself has been seen.
v2.120.0
Write to a member's inbox from Hermes. From any customer's panel, send a letter, an update or an offer straight to their FLIP HQ inbox — and an offer can carry a one-time discount code minted for that person alone, so a leaked code is worthless to anyone else.
v2.119.0
An inbox for every member. Hermes now keeps one list of what the brand has said to a member — support replies straight from their own conversations, the founder's letters, and soon offers and updates — with unread counts, read and archive, and a reply box that lands right back on the help-desk conversation.
v2.118.0
Your reward shows in the price. When a reward sits on the next box, FLIP HQ now shows the original price struck through next to what you actually pay — everywhere that order's price appears — because Hermes sends the discount amount along with the total.
v2.117.0
The photo reaches the help desk too. The release two steps back made every stored file visible in Hermes and handed the help desk a link to it — and the help desk showed nothing. Two reasons: the link was unreachable from outside, because the door that serves it had been opened in the test copy of the app and not in the live one, and the help desk only displays files that were uploaded through its own upload endpoint in the first place. Both are fixed. The live app now opens that door, a test makes sure the live and test copies can never disagree about it again, and the message the help desk receives now carries the actual file bytes, uploaded through its own endpoint, so an agent working there sees the customer's photo. If that upload ever fails, the message still goes, the file rides as the signed link instead, and the failure is written on the ticket where someone will see it.
v2.116.0
Buy something once, with your next box. A subscriber can drop a one-time item into their next delivery from FLIP HQ — same box, same date, charged once at the store price — without touching their subscription lines. Hermes reads the price from the store itself and refuses anything the store can't sell right now.
v2.115.0
Cancel or re-address an order yourself — while the warehouse hasn't started on it. From the order page in FLIP HQ a member can now cancel an open order and get the full refund in the same motion, or change where it ships, under exactly the rule the help desk already follows: once the warehouse has picked it up the buttons say so instead of pretending. Every action is checked against who owns the order and written to the customer's activity log with the member named as the one who did it.
v2.114.0
The photo comes through — in both systems. A customer who attached a picture to the website form had it saved on the first day, and then nobody could see it: Hermes only drew pictures that lived on the help desk's servers, other files were not shown at all, and the help desk received a line of text naming the file. Every stored attachment now appears on the conversation in Hermes — pictures inline, other files as small chips that open in a new tab — through a door that requires the same sign-in as the conversation itself. And the copy of the message that goes to the help desk now carries the actual files, delivered through signed, expiring links that only ever hand out the customer's own uploads, so an agent working there sees the photo too.
v2.113.0
The repair passes learn from their first night. Two runs in, the numbers said two things. The refund repair was doing 94 orders a pass and overrunning its time, because it recomputed the customers only after checking the clock; it now fetches four orders at once and keeps the recomputes inside the budget, so a pass covers roughly four times as many. And the subscription repair had started at the wrong end: the oldest "stale" subscriptions turned out to be genuinely active with a failing card, which the help desk already knew, while the recent ones were the real missed cancellations. It now walks newest first, which is where Tyler's own stray subscription was — corrected on the second pass, and it would have been the first.
v2.112.0
The customer profile tells the truth about money and subscriptions. Tyler opened his own profile and found two active subscriptions where he has one, and cancelled orders still showing a price. Neither was a display bug. A subscription that ended in July was still marked active because nothing ever re-checked a subscription that had simply stopped changing — 554 of them across the store. And most refunded orders had never been told how much was refunded, so lifetime spend, which already knows to subtract refunds, had nothing to subtract — 6,469 orders. Two small repair passes now run every half hour: one re-reads every stale subscription from Recharge, the other fetches every amount-less refund from Shopify and recomputes the customer, and each reports how many remain until it reads zero. On the profile, a refunded order now shows its real net with the original struck through, and an order refunded before it ever shipped reads cancelled, not late.
v2.111.0
The first dashboard paint cannot hang. Tyler: “every now and then the screen hangs when trying to load the initial dashboard — sometimes from a refresh.” The account dashboard's first request waited on four upstream reads with no time limit on any of them, then made one more call to Recharge only after all four had answered — so a single slow vendor held the whole page blank until Shopify's proxy gave up. Every one of those reads now has its own time limit and fails honestly with the dashboard's retry card instead of hanging; the Recharge read runs alongside the others instead of after them; and every request writes one timing line naming where the seconds went, so a slow vendor is identified from the log rather than guessed at.
v2.110.0
Referral codes that actually work — and a place to watch them. Tyler tried his own referral code at checkout and it was refused: every friend code sat inside one shared discount that Shopify would only honour once, and that discount was never allowed on subscriptions. Each friend code is now its own discount — one use, one customer, good on one-time and subscription orders alike — and the invitation page's Shop button carries the code straight into the store, so it is applied before the friend ever sees the cart (a Copy button keeps it for later). The rewards dashboard's referral section can now show every friend who claimed a code, whether they have ordered yet, and a Nudge button that sends them one reminder email with their code and the same one-tap link — never before the claim is a day old, never twice in three days, three times at most.
v2.109.0
The name on the email, and nothing behind the curtain. The first real reply through the new form arrived signed “Support Flipmylifenow”, the mailbox's own display name. The Gorgias connection now has a “Sender name customers see” field, and Hermes puts that name on every email it sends; the same name belongs in the help desk's channel settings and on the mailbox itself, so all three agree. The reply also quoted the customer's original message back, footer and all, and that footer mentioned the system by name and said where files were “stored”. It now reads simply as a list of attachments and a reference number, which is what a customer quoting it actually needs.
v2.108.0
One conversation per customer, however many times they write in. A customer who sends a second message through the website while their first is still open no longer starts a second ticket. Their new words are added to the conversation they already have, in Hermes and in the help desk both, they are told the same reference number, and the conversation pops back to the top of the queue as unanswered. Closed conversations stay closed — a fresh question after that is a fresh ticket — and a thread that lives on Messenger or Instagram never absorbs an email. The help desk used to do this merge on its own, a second after Hermes created the ticket, and quietly deleted the copy Hermes was holding, so a reply from Hermes bounced off a ticket that no longer existed. Hermes now does the merge itself, reads the help desk's own merges the right way round, and a reply follows a merged conversation to wherever it went.
v2.107.0
Answers to the new website form now actually leave the building. The contact form went live on the store in the morning, and the first reply sent from Hermes never arrived — while the help desk cheerfully showed it as sent. The cause was a label. Hermes tags a message that came from the website as “contact form”, and when an agent replied, that tag was handed to the help desk as the way to send it. But “contact form” says where a message came from, not how to answer one, so the reply was filed away and no email was ever posted. Replies now go out as email, while conversations that genuinely live on Messenger, Instagram or live chat still answer on their own channel. Exactly one message was ever affected — the test that caught it, sent hours after the form went live and before a single customer had written in.
v2.106.0
The referral invitation gets a proper redesign. When a member shares their referral link, the friend who opens it now lands on a page that looks like the brand — the gold Flip My Life logo, warm cream and gold, and copy that says who sent the gift: “A gift from Chris — you've been invited to FLIP.” The friend enters their first name and their email (not just an email) and their one-time $15-off code appears, with a button straight to the store. There is no code to copy or type any more: the referral is the link, full stop, so the page where a friend used to type a code is gone and simply sends people to the store. Hermes now remembers the friend's first name alongside their email.
v2.105.0
The affiliate programme gets its own place in Hermes. Creator sends — the free product that goes out to creators, athletes and partners — has moved out of Fulfillment and into a new Affiliates section, because that work belongs to the person who runs the affiliate programme, not to the people who pack boxes. Old links to the fulfillment tab still open it, and the fulfillment team keep the desk they have always had. Beside it sits the full VIP list: every one of your best customers, richest first, whether or not somebody has already claimed them — the ordinary VIP list hides the claimed ones, and that is the wrong answer when you are looking for people to invite. You can search it, mark where each person stands (invited, signed up, said no) and filter by that mark, and a click on anyone opens their normal profile, so calls, outcomes, check-ins and notes are logged exactly the way they are logged everywhere else. Hermes also learned a new job title — Affiliate Manager — which an admin can hand out on the Team page.
v2.104.0
The account dashboard's round-8 doors. A friend handed the code from the end of a referral link can now type it in on the store's own referral page, and the dashboard shows both the link and the code. When a member writes a review from the dashboard, Hermes remembers which products they have reviewed. The "VIP tier upgrade" row in ways-to-earn is now what it always was — two spend milestones, 2,500 points at $300 lifetime and 5,000 at $750 — and the dashboard can tell which ones a member has crossed. Subscribers now earn the $300 / $750 spend-milestone bonuses going forward (Tyler, 2026-09-04: forward only, no retroactive grant). The follow-us rows on the dashboard can finally claim their points.
v2.103.0
The summary card at the top of a ticket can drop a wrong outcome too. The remove link that arrived on the tick line now also sits on the outcome rows of the case card above the messages, with the same confirm and the same Undo. Take it off there and the tick line and the Outcome button follow on their own.
v2.102.0
Launch eve for the account dashboard. Your referral link now starts with the store's own address. Returning a reward for points is safe in both directions: the points never come back while the code could still be spent, and a code the store has already lost still pays you back. Changing your sign-in email now asks for a code sent to the new address first. Members with boxes going to more than one address see one card per box and which card pays for each.
v2.101.0
Hermes stops reading the whole warehouse to answer one question. A handful of lookups behind the ticket tiles, the case card and the customer books were reading every shipment and every order in the store each time they ran, which is why the evening felt slow and a few store requests were turned away. Those lookups now go straight to the customer they are about, and three new indexes let the tiles jump to exactly the open tickets they need. Same numbers, same lists, a fraction of the work.
v2.100.0
The new account pages were put through a full adversarial review the same evening and every confirmed finding was fixed: when the store or the subscription system is down the dashboard says so instead of showing an empty page; a support message is never reported as sent unless a ticket really exists; a loading screen can no longer hand you the wrong answer; and a gift recipient at your own address is no longer mistaken for you.
v2.99.0
Recorded the wrong outcome or call? Remove it, and undo if you change your mind. A remove link now sits on every outcome and call log, on the ticket, on the customer's profile and in the activity log. It asks first, then takes the record out of every count and every card at once, and the message that confirms it carries an Undo. The person who recorded it, a lead or an admin can do it; the ticket itself stays exactly as it was.
v2.98.0
The account dashboard now tells your subscription apart from your store account. Addresses show which one your boxes ship to and which one checkout uses for one-time orders — with a tick box to update both at once, so nobody changes one thinking they changed the other. Payment methods open instantly and say plainly which card bills your subscription. Your information now holds first name, last name, email and phone. Customer Support is a message form that gives you a reference number, and the log-out button wears the theme's own colours.
v2.96.1
Outcome chips work end to end again. Tapping a chip on a ticket used to save the outcome and then blank the screen before you could say how it ended. The screen now stays put, shows the tick, and offers the "How did it end?" choices right away.
v2.96.0
Nothing in the account dashboard sends you somewhere else anymore. Your cards on file are listed right there — pick which one your box bills to, or ask for a secure link by email to add a new one (card numbers are never typed into the page). Your shipping address is edited in place and saves straight to your subscription.
stay in HQ
v2.80.0
The account dashboard stopped fibbing about status. A subscriber opening FLIP HQ was being told they were a base-level member who should spend $122 more to move up — when subscribing already puts you at the top tier. The tier is now worked out fresh on every visit from one set of rules, so subscribers see FLIP Fam, full bar, no upsell. And when the subscription service behind the page has an outage, the dashboard now says “we couldn't load your data, try again” instead of quietly pretending you have no subscription.
tier truth
v2.83.0
Voting in the monthly Top Flavor poll now pays 50 real points, the poll follows the calendar instead of being stuck on August, and last month's winner is counted from actual votes. Ratings and notes are now about the products you actually ordered, exclusive content is something the team adds from the theme editor with an unlock date, and every button that talks to the server stays busy until it is really done — no more silent removals.
real votes
v2.82.0
The account dashboard now prices things the way a subscriber pays them: every item in the box picker shows the subscription price, each flavor shows its own picture instead of the spinning all-flavors animation, and the reward on your next order can be removed, swapped or returned for points right from the subscription page. Ways to Earn marks what you have already claimed as done — and says when a yearly one opens again.
subscriber prices
v2.95.0
The half-hourly background run stops crashing, and the Rivo card stops crying wolf. Every half hour Hermes refreshes points from Rivo and re-scores who is at risk. The scoring used to hold every one of 120,000 customers in memory at once and ran out at the top of every hour; it now works in pages and produces exactly the same lists, checked side by side against the old maths. And where one slow answer from Rivo used to fail the whole refresh and turn the Rivo card red, each customer is now looked up on their own terms: a slow one is noted and skipped, the run carries on, and the card goes red only when Rivo is genuinely down.
v2.94.0
The store's front door now runs on Hermes: a contact form, a help center, and a chatbot we own. The contact form creates a real Hermes ticket and, quietly, its twin in Gorgias, so nothing changes for the team until we say so. Every FAQ the store publishes became a help-center article you can edit in Hermes, served on the store's own domain. And the chatbot answers from those articles and, once a customer is signed in, can do the things the account page already allows — skip a box, swap a product, apply rewards — each behind a confirm; anything bigger becomes a ticket for a person, and refunds are never on the table. It runs on our own AI key with the same daily cap and receipt as the card.
v2.93.0
The card can now read the conversation — with a receipt for every call. The problem in one line, the promises an agent made and when they were due, and how the customer's mood moved from first message to last, now come from the company's own AI key. Every call is logged with its cost, there is a daily spending cap you can change, and the one-time pass over the whole open book only runs when an admin presses the button and sees the estimate first. When the key is missing or the cap is hit, the card says so plainly instead of guessing.
v2.92.0
Every ticket now says where it stands — and whether it is stuck. A case strip on each conversation shows the problem, what has been done, the stage it is in (new, waiting on us, waiting on the customer, in progress, resolved) and a STUCK flag with the reason and how long: unanswered past the service window, the customer writing twice with no reply, a promised refund or reship with nothing to show for it, a ticket reopened again and again, or an orphan nobody owns. All of it comes from data Hermes already has, no AI guessing; the wording of the problem and the customer's mood come next. Leads get a Stuck tile, oldest first, and can mark a ticket "not stuck until" a date with a reason. Business hours are yours to set. Underneath, Hermes now hears about every change at Gorgias within minutes and copies conversations three times faster.
v2.91.0
Hermes now keeps its own copy of every conversation. Until now a ticket's messages lived only in Gorgias and were fetched each time someone opened one. Hermes is now copying all fifty-two thousand conversations, messages and internal notes into its own records at a pace Gorgias allows, on its own schedule, and reporting how much of the history agrees. Threads open instantly from that copy, internal notes are shown as notes, and a gauge on the Connections page shows the mirror's progress. This is the first step of running customer service from Hermes itself rather than through Gorgias.
v2.90.0
Every ticket and call now gets an outcome — in one tap. Closing a ticket asks one question, what was this about?, and a single tap on a chip records the answer and closes the ticket. Your last pick is remembered, so most closes are one press of Enter. Calls log the same way — reached, voicemail, no answer — and a voicemail never counts as a real check-in. Tickets closed inside Gorgias land on a catch-up tile so nothing slips through, and admins can rename or add chips in the app without a release. This is the foundation for the weekly customer-service numbers and the department report that follow.
v2.89.1
The loyalty checker got its own slot on the clock. It used to run last in a crowded half-hourly job and twice in one evening never got its turn. It now runs on its own schedule, so the re-reading of copied balances keeps moving, and every scheduled job now records how long each step took so the next slow one is easy to find.
:23 and :53
v2.89.0
The loyalty score now knows which balances Rivo actually confirmed. About a third of the balances behind the previous release's green light had been copied from our own books when members were linked, never read from Rivo. Every balance written from now on carries a label saying where it came from (older ones are assumed Rivo-read), copies count against the score until Rivo confirms them, the checker re-reads up to three hundred of them every half hour, and the "ready to switch Rivo off" checklist shows the pile as a blocker until it is gone. The tile goes honestly red for about a day and then means what it says.
37% → confirmed
v2.88.0
Adding a teammate now actually invites them. Adding someone used to save their account and then show an error, and nothing was ever emailed — the message that failed would have told them to "pick a password" that no longer exists. Now the new person gets an email in the same style as the sign-in code: who added them, which team and areas they have, and the one thing to do — open Hermes, enter this email, a code arrives. The roster confirms the invite went out (or says plainly that it did not, and why), and every row has a ✉ Invite button to send it again.
who · what · how
v2.87.0
The loyalty check stopped grading itself on a sample. The IT page said the points ledger was 95% right and showed red. It was 99.7% right: the checker only ever looked at the first 1,500 mismatches, found every one of them was simply Rivo's daily anniversary bonus waiting for a balance refresh, and then counted the rest it never looked at as failures. It now checks the whole book, spends its Rivo questions on the few members who actually need one, and says plainly what it found — "2,922 catching up · 83 never re-read · 2 open" — instead of "3,003 drifting". It also says, in the same breath, that about 9,700 of those balances were copied from our own books rather than read from Rivo, so nobody mistakes a green light for a Rivo-confirmed one.
95.14% → 99.7%
v2.86.0
The waits that showed nothing now say what they are doing. An outside check of the last release found the buttons that award points to hundreds of customers, change a batch of subscriptions, save a teammate's access or upload reference images all ran in silence — the screen simply did not change until the work finished. Each of those now shows a small centred card naming the job ("Awarding 500 points to 1,240 customers", "Skip next — 3 of 8"), counts where there is a real count, and greys the button so it cannot be pressed twice. Quick actions stay quiet: the card only appears if something is still running after just over half a second. Eleven screens that just said "Loading…" now say what they are loading, the sign-in code email carries the Hermes mark and no longer says "sign-in sign-in", and the report invitation's red button has readable text.
v2.85.1
Sixteen screens were checked to make sure each one says when it is loading. Fifteen already did. The one that did not — switching a category on the at-risk queue — used to leave the old list sitting there in silence; it now says "Loading…" right on the list, and the buttons wait until it lands.
15 of 16 → 16 of 16
v2.85.0
The rule that finally holds: the thing that is waiting shows the wait. No bar, no corner pop-up — each screen says it is loading in its own place, long jobs get a card centred on screen, and the first-open loading screen now wears the Hermes mark instead of the store's.
nothing ambient
v2.84.0
Two things. Hermes's emails now leave from Hermes's own address — name and sender both — and the invitation preview shows the real address it will use rather than a typed-in one. And the thin loading line across the top of the app is gone, replaced by a proper loading screen on first open and a small "Working…" pop-up only when something genuinely takes a while.
no-reply@hermes
v2.81.0
Nobody waits without knowing it any more. One thin bar at the top of the app appears only when something genuinely takes a moment — never for the quick things, never for the quiet background refreshes — and the long jobs show a named card with a live clock. When the app knows how many files it is importing, it says "3 of 7" instead of spinning. And there is a page where you can click every pattern and watch it work.
/progress.html
v2.80.2
Signing out used to leave the app clickable for a second while it worked — you could wander around a session that was already ending. Now a "Signing you out…" screen takes over the moment you click, and if the sign-out fails you are told so and left signed in, instead of being quietly signed back in by a reload.
no wait is silent
v2.80.1
Logging out never quite took: the app cleared its own cookie, but the shared sign-in that every Appolis app uses stayed alive, so a reload quietly signed you straight back in — and the code sign-in never got its turn. Log out now ends both, and the sign-in screen is guaranteed to be the first thing a signed-out person sees.
both cookies gone
v2.79.0
The password is gone. Signing in is now type your email, type the six digits we send you — nothing to remember, nothing to reset. And access stopped being a side effect of which department someone is in: an admin now ticks the areas each person can open, one profile at a time, so somebody in Marketing can run product sends while somebody in Fulfilment cannot.
no passwords
v2.78.0
Adding a teammate was impossible from inside the app — and the fulfilment screen turned out to be guarded only by being hidden. Twelve routes behind it, including the one that ships real product, asked nothing more than “are you signed in”. Fulfilment is now a real access level a person can hold without the page that stores the company's live credentials, and the Team tab finally has an Add person button.
12 routes gated
v2.54.0
The daily report stopped naming customers who were fine. Every loyalty “drifter” it flagged was a measurement artefact, and the arithmetic that proves it settled the bigger question: the ledger is not nearly right, it is right. The at-risk queue also stopped rebuilding itself inside a page load.
59,916 checked · 0 genuine
v2.53.0
The overnight slowdown, root-caused: one query read all 157,468 customer records on every incoming order, to catch the 19 people with a second email address. And every outbound email is now pinned to the support address — return labels had been going out from a login account.
132.7ms → 1.4ms
v2.52.0
Three production faults in one pass: replies to customers were structurally malformed and could fail in an agent's face; the health board pinned red for half a day after a problem had ended; and the loyalty tile read a fake 100% because its excuse window was seven days wide and forgave everyone.
443 failures found
v2.49.0 → v2.51.0
The bulk gifting board: stack conditions, watch the count and the dollar cost move, then award — and a re-run of the same campaign pays nobody twice. Alongside it, Tyler's fifty verdicts on the store's discount codes became data, so a ruling never needs a deploy again.
50 rulings live
v2.48.0 → v2.48.1
“I don't know why everything got broken.” Answered: every fulfilment webhook still pointed at a hostname retired in a rename weeks earlier, so carrier and shipment data had quietly stopped for 17 days. Repaired at both vendors, and the delivery report was caught recording the ship date as the delivery date.
16 webhooks wired
v2.45.0 → v2.47.0
The discount command deck: every code in the store on one screen, sorted into whose it is, with the money it moved. It immediately showed the biggest machinery had never been visible — the automatic volume discounts, one of them with 36,397 uses.
36,397 uses surfaced
v2.41.0
“Was this code spent?” had been unanswerable for subscription orders — Shopify's counter never moves when Recharge bills a charge. Four separate money guards were reading it, each one able to hand a customer the discount and their points back.
4 money guards
v2.39.0
Reward codes became single-use and owned. The pooled design had eight codes sharing a single use: the first customer to check out would have consumed the lot, and the other seven would have failed at the till after paying their points. Caught before it fired.
8 codes, 1 use
v2.29.0 → v2.38.0
Hermes mints the reward codes, and then learned to draw the rewards list the customer sees — because the vendor cannot render a code it did not create, which is exactly how people spent points for codes that appeared nowhere.
9 widget routes
v2.0.0 → v2.5.0
Flip-ready: the switch exists and everything behind it is built. Six days later the readiness gate went green with zero blockers. In the same stretch the storefront, the referral engine and the rewards page all came home, and Hermes got a page inside Shopify admin.
ready: true