{"id":248,"date":"2026-08-12T00:00:00","date_gmt":"2026-08-12T00:00:00","guid":{"rendered":"https:\/\/ryanoccg.com\/blogs\/?p=248"},"modified":"2026-08-12T00:00:00","modified_gmt":"2026-08-12T00:00:00","slug":"customer-status-page-stops-support-calls","status":"publish","type":"post","link":"https:\/\/ryanoccg.com\/blogs\/customer-status-page-stops-support-calls\/","title":{"rendered":"The Status Page That Stops Customers Phoning You"},"content":{"rendered":"<p>\nThe request usually arrives as a complaint about staff. Too much time on the phone, too many interruptions, could we get a chatbot.<\/p>\n<p>Then you look at what the calls are, and they are all the same call. Where is my thing. Is it ready. Has it started yet.<\/p>\n<p>That is not a support problem. It is a visibility problem wearing a support problem&#8217;s clothes, and the fix is usually a customer status page rather than a system.<\/p>\n<h2>Why do customers keep calling for updates?<\/h2>\n<p>Because the information exists and they cannot reach it. Inside your business, the job&#8217;s stage is written down somewhere. From outside, the only interface to that fact is a human who has to be asked. Every call is a customer doing a database lookup by voice.<\/p>\n<p>Nobody set out to build it that way. It happens because the people running the work already know the status, so the absence never shows up from the inside.<\/p>\n<p>The tell is that the calls cluster on the longest jobs. Nobody phones about something they collect the same afternoon. They phone when the thing has been out of sight for four days and silence starts to feel like a problem.<\/p>\n<h2>What the page has to do<\/h2>\n<p>Less than people expect. A customer status page is not a portal and does not need a login, which is the decision that kills most of these projects before they ship.<\/p>\n<p>What it needs is a permanent link, the current stage in plain language, and a sense of what happens next.<\/p>\n<p>That is close to the whole specification.<\/p>\n<p>The plain language part is where these go wrong. Internal stage names leak onto the page, and the customer gets <code>QC2 PENDING<\/code> when what they needed was &#8220;we are checking the finish, then it is ready to collect&#8221;. You are not showing them your pipeline. You are answering the question they would have phoned to ask.<\/p>\n<p>A date helps, even a rough one, as long as it is honest. &#8220;Ready Thursday&#8221; is useful. &#8220;Ready Thursday&#8221; that becomes Monday twice is worse than no date at all, because now the page has taught them not to trust it.<\/p>\n<p>I built one of these into <a href=\"https:\/\/uwrapz.com\/\">Uwrapz<\/a>, a car wrapping workflow platform, as a solo project that reached production in about two months. Vehicles sat in the workshop for days, so the owner fielded the same call constantly. Every job got a status link and a notification when it moved a stage. The owner&#8217;s summary afterwards was that the repeated status calls largely dried up.<\/p>\n<h2>Where the link should live<\/h2>\n<p>Wherever the customer already is. This is the part that decides whether the page gets used or ignored.<\/p>\n<p>For most service businesses that means messaging, because a link sitting in an email from three weeks ago is functionally lost. WhatsApp is the usual destination, and there is a cost quirk worth knowing before you design the flow. As Meta&#8217;s pricing rules stand at the time of writing, utility template messages are free when delivered inside an open customer service window, while marketing templates are charged whatever the timing. Check the current <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/pricing\">WhatsApp Business Platform pricing<\/a> before you build, because these rules move. A status page changes that maths in your favour, because customers who can check things themselves tend to open the conversation themselves. The full breakdown of <a href=\"https:\/\/ryanoccg.com\/blogs\/whatsapp-business-api-cost\/\">what the WhatsApp Business API actually costs to run<\/a> covers the rest of it.<\/p>\n<p>The page and the notification are not alternatives.<\/p>\n<p>The notification is what makes the page get looked at, and the page is what stops the notification from having to explain everything.<\/p>\n<h2>What it costs to build<\/h2>\n<p>Less than a portal, more than a plugin.<\/p>\n<p>The real variable is not the page. It is whether your business already knows, in software, when a job changes stage.<\/p>\n<table>\n<thead>\n<tr>\n<th>What you already have<\/th>\n<th>What the build involves<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Jobs tracked in a system with clear stages<\/td>\n<td>Mostly a public read-only view plus a link. The short version.<\/td>\n<\/tr>\n<tr>\n<td>Jobs tracked in a spreadsheet<\/td>\n<td>Move the stages somewhere queryable first, then the page.<\/td>\n<\/tr>\n<tr>\n<td>Stages that live in people&#8217;s heads<\/td>\n<td>This is the actual project. The page is the easy half.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>That third row is the one that surprises people, and it is the reason quotes for this vary so wildly. If nobody records that a job moved from cutting to fitting, no page can display it. You are not buying a status page at that point. You are buying the discipline of recording stages, and the page is what makes that discipline visible enough to survive.<\/p>\n<p>Worth saying plainly: that is still usually worth doing, because the same record that feeds the page also tells you which stage is quietly eating your week.<\/p>\n<h2>When this is the wrong thing to build<\/h2>\n<p>If jobs finish the same day, skip it. Nobody needs to track a haircut.<\/p>\n<p>If your stages genuinely cannot be predicted, a status page becomes a public log of uncertainty, which is worse than a phone call where a human can add context. Some work is like that. Custom fabrication that depends on a supplier who does not answer emails is not improved by broadcasting the wait.<\/p>\n<p>And if the calls you are getting are not actually status calls, this fixes nothing. Listen to a week of them properly before building anything. If half are people asking for changes or chasing quotes, you have a different problem and a status page just moves it.<\/p>\n<p>The test is simple. If the same question arrives more than a few times a week, and the answer is already written down inside your business, that is a screen you have not built yet.<\/p>\n<p>If that sounds like your week, message me on WhatsApp at <a href=\"https:\/\/wa.me\/60174272807\">+60 17-427 2807<\/a> and I will tell you which of the three rows above you are in before you spend anything.<\/p>\n<h2>FAQ<\/h2>\n<h3>What is a customer status page?<\/h3>\n<p>A public web page showing the current stage of a customer&#8217;s job or order, reachable by a permanent link with no login. It answers the question they would otherwise phone to ask, in plain language rather than internal terminology.<\/p>\n<h3>Does a customer status page need a login?<\/h3>\n<p>Often not, and requiring one is a common reason these projects stall. A long unguessable link per job is enough only when the page shows a stage and a rough date, with no personal details, addresses, amounts, or identity data. Anything beyond that needs proper authentication.<\/p>\n<h3>How much does it cost to build?<\/h3>\n<p>It depends almost entirely on whether your system already records job stages. If it does, this is a small build. If stages currently live in people&#8217;s heads or a spreadsheet, most of the cost is capturing them properly, and the page itself is the cheap part.<\/p>\n<h3>Will it actually reduce support calls?<\/h3>\n<p>It reduces one specific kind: the repeated &#8220;where is my order&#8221; call. It does nothing for change requests, complaints, or quote chasing. Listen to a week of your actual calls before assuming which kind you have.<\/p>\n<h3>Should it send notifications too?<\/h3>\n<p>They work better together. The notification gets the page looked at, and the page means the notification does not have to carry all the detail. Sending updates as utility messages rather than marketing ones also keeps the messaging cost down.<\/p>\n<h3>What if my job stages change often?<\/h3>\n<p>Design the page around a small number of stable stages rather than every internal step. Customers want to know roughly where their job sits and what happens next, not your full process. Fewer, stabler stages age better and need less maintenance.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Most where-is-my-order calls happen because one screen is missing. What a customer status page needs, what it costs to build, and who it does not help.<\/p>\n","protected":false},"author":1,"featured_media":244,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-248","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-automation"],"_links":{"self":[{"href":"https:\/\/ryanoccg.com\/blogs\/wp-json\/wp\/v2\/posts\/248","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ryanoccg.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ryanoccg.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ryanoccg.com\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ryanoccg.com\/blogs\/wp-json\/wp\/v2\/comments?post=248"}],"version-history":[{"count":1,"href":"https:\/\/ryanoccg.com\/blogs\/wp-json\/wp\/v2\/posts\/248\/revisions"}],"predecessor-version":[{"id":249,"href":"https:\/\/ryanoccg.com\/blogs\/wp-json\/wp\/v2\/posts\/248\/revisions\/249"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ryanoccg.com\/blogs\/wp-json\/wp\/v2\/media\/244"}],"wp:attachment":[{"href":"https:\/\/ryanoccg.com\/blogs\/wp-json\/wp\/v2\/media?parent=248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ryanoccg.com\/blogs\/wp-json\/wp\/v2\/categories?post=248"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ryanoccg.com\/blogs\/wp-json\/wp\/v2\/tags?post=248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}