im·a·cto

From the log

Back to the log

The Familiar Route

If you're not getting traction, change the channel. The surface itself, ahead of the copy and the funnel and the button. What I learned watching customers walk through a front door I hadn't built yet.

There is a row in my customers table with no name on it. Where the name goes, it says SMS lead +1727…. The email column is null. Attached to it is exactly one message, sent on a Thursday afternoon: Hello I would like to hear about this company.

That person never opened the website I had just spent weeks rebuilding.

I own WiFi Without Walls. It rents Starlink kits, and I’ve written about rebuilding its platform: the scheduled jobs, the sign-in page that has to live on the dish because the customer has no internet yet. That rebuild relaunched in July. Orders went up sharply. And over half of them arrived as text messages.

I did not run a clean experiment. The site got better at the same time the text line opened, both things moved, and I can’t hand you a coefficient. The database can’t hand you one either: there is no column on an order recording which door it came through. What the schema does record is where the customer came from, and the list of possible values turned out to be the whole story. inbound_sms. inbound_whatsapp. inbound_voice. Or null.

Null means the website.

the line that answers with a text

Some people search “starlink rental denver” and never click anything. They call the number in the result.

For the first stretch after relaunch, calling that number didn’t ring a phone anywhere. The carrier sent a text back, the caller replied, and their reply landed in an agent that sells. The entire transaction happened in a thread that the customer opened by dialing. Six days after the storefront shipped, the calls-to-action on the site changed from book now to call or text, with an sms: link, because that’s what people were already doing.

There’s a live voice agent on the line now. She has a kill switch, and I wrote what she says when it’s off: “Sorry, I can’t help with that over the phone right now. Text this number and I’ll help you there.”

The fallback for the telephone is a text message. When I built the failure path I routed it to the channel that actually works, and I didn’t notice at the time that I was admitting something.

what they were actually asking for

Put yourself in it. You have a trip in eleven days and exactly one question: will this thing work where I’m going, and can I get it by Friday.

The website can answer that. It takes a date picker, a product page, a coverage explainer, and four clicks, and at the end of it you have found the answer yourself. The thread answers it in one sentence you already know how to type, and you can send that sentence from a parking lot.

I almost described this as wanting a human, and then I went and read the transcripts, and it isn’t true. Nobody asked whether the thing on the other end was a person. They asked whether it could get them a dish by Friday.

There’s a version of this that flatters me, and it’s the version where the customer weighed two options and mine lost on the merits. Nobody weighed anything. People take the route they already know. You will drive the familiar way across town for years while a faster way sits one street over, and you’ll do it because the familiar route costs you nothing to think about.

Sometimes that route really is better. Sometimes it’s worse and you never find out, because nothing about driving it tells you what the other one would have been. And sometimes, which is what I think happened here, it’s just different. A text thread is a different interface from a booking form, and it’s the one already open on the phone.

A website makes the customer run the query. A thread lets them state the intent.
One of those is work you’re asking a stranger to do before they’ve given you a dollar.

That’s the part I had backwards, and I don’t think I’m alone in it. For twenty years the site was the front door and everything else was support. Intake was a page, and the page was the product’s face. Every other surface existed to handle people after they’d been through it.

So when orders are flat, the instinct is to work the page. Rewrite the hero. Move the button. Cut a step out of checkout. All of that is real work and some of it helps, and all of it assumes the customer is standing in front of the door you built, hesitating. Sometimes the customer is somewhere else entirely, asking somebody who answers.

Rejected is the wrong word for it, and it credits them with a decision they never made. Put five doors in front of me and I’ll walk through one. I haven’t refused the other four. I never opened them. I don’t know what was behind them, I never will, and I’m not withholding anything from you by walking through the one I took.

Which means the door nobody opens never files a complaint. No one writes in to say your checkout had too many steps, because they never reached your checkout, and everybody who did reach it is a person it already worked for. The feedback sitting in your inbox is a survey of the survivors.

the reason this advice is finally cheap

Telling a small company to be in five channels used to be a joke. Each one meant an inbox, and an inbox means a person, and a person means someone watching a screen at 9pm on a Sunday so a rental question doesn’t go cold overnight. That’s a hiring plan wearing a channel strategy’s clothes.

Volume is free now, and this is where that actually cashes out. The text channels here run one agent, and when WhatsApp came online it got wired into that same runtime rather than a second one. Voice is genuinely separate, a different agent on a different stack, and that’s a real cost I’m paying rather than a detail I’ll smooth over. But the shape holds: a channel stopped being a department and became a webhook.

The whole arc took about ten weeks. Storefront in mid-July. Inbound text three days later. The agent behind it a few weeks after that. WhatsApp in late August. The voice line in early September. Five front doors, and the only one I designed on purpose at the start is the one most people never opened.

perseverance is about the destination

One of the things I say constantly is that perseverance is the key to success. This post reads like the opposite of that, and I’ve been sitting with the contradiction.

Perseverance is about the destination, and the road is a detail. You can abandon a channel and still want exactly the thing you wanted before, and people conflate those two all the time, usually right before they spend a year grinding on a surface their customer never opened.

It’s the same shape as knowing whether you’re in a move-fast problem or a build-the-tracks problem. Both instincts are correct. The skill is the diagnosis, and the diagnosis here is not subtle. No traction is a measurement. Silence is data, and if you read it as a test of your character you’ll answer it by pushing harder in the same place, which turns a cheap experiment into an expensive one.

the next door doesn’t have a person behind it

The thing I didn’t see coming is that customers are starting to show up with their own agents.

I mean a person who asked their assistant to sort out connectivity for a trip, and the assistant is the one that arrives at my site. When that happens, every optimization aimed at a human eye is worth nothing. It cannot be persuaded by a hero image. It wants to know what it can do here.

So the site tells it. Every customer workflow is registered into the page as tools an agent can call: list the rentals, check whether the dates are open, price it, start the checkout, top up data mid-trip, extend the rental, troubleshoot the dish. Twenty-seven of them, running under Chrome’s origin trial for the standard. A visitor’s agent can read that list and act on it without parsing a single one of my carefully argued paragraphs.

I have no idea yet whether that channel produces a dollar. It’s the newest door and it’s a bet. But it is the same bet I keep being handed by this business, which is that I don’t get to pick where the customer stands when they ask.

You don’t get a vote. You get to find out which room they’re already in, and go stand in it, and the cost of standing in one more room dropped further this year than it has in my entire career.

So if the number isn’t moving, before you rewrite the page again: when was the last time someone reached you somewhere you didn’t build?

Written with Claude Opus 5, and said so. WiFi Without Walls is a company I own. The channel timeline, the agent architecture, and the tool surface here come from its own repository and its live site. The order split is my read as the owner: the schema records how a customer first reached us, not which channel closed the sale.