Web Embed
Someone lands on your site at 9pm, doesn't want to call, and leaves. Web Embed puts a button in the corner of every page that takes their number in about ten seconds — then your agent texts them straight back and books the job over SMS.
It isn't a live chat. The visitor doesn't type back and forth with anyone on your website. They give you a name and a mobile number, tick the consent box, and the conversation moves to text. Worth knowing before you set expectations with your team — nobody has to sit and watch a chat window.
Two things to know first
Turning it on isn't installing it. The page says so plainly: "Your widget won't appear on your website until you add this snippet to it — turning it Active here only makes it ready to install." Somebody has to paste a line of code onto your site.
You get one widget for the whole account. Same branding, same snippet, every site you run. If you have several domains you list them all on the allowlist — but they all get the same widget.
Setting it up
Go to Integrations and click the Web Embed tile. There's a live preview beside the form, so you can watch the widget change as you fill it in.
Brand — "How the widget introduces you to visitors." Set Brand name, upload a Logo (JPG or PNG, cropped to a circle), and pick a Primary color.
Launcher — "The button visitors tap to open the chat." Set the Launcher copy and choose Bottom right or Bottom left.
Messaging — the Modal headline, Modal subhead and CTA label the visitor reads inside the panel.
Visitor details — whether to ask what they need, and how. Choice buttons gives them up to six options to tap; Short text box lets them type up to 200 characters.
Trust signals — optional Rating, Reviews and Neighbors counts shown in the panel header.
Legal & security — your Terms & conditions URL, Privacy policy URL and Origin allowlist. All three are required.
Service area routing — optional. Turn on ZIP routing to send visitors to the right region and show everyone else an out-of-area message instead of the form.
Click Create widget. After that the button reads Save changes.
Eight fields are required before it'll save: brand name, launcher copy, modal headline, modal subhead, CTA label, both consent URLs, and at least one allowed domain.
Putting it on your website
Once it's saved, a banner appears reading Last step: add the widget to your website, with your snippet and instructions:
Copy the snippet — it's a single
<script>tag carrying your account's key.Paste it just before the closing
</body>tag on every page of your website.The widget appears within a minute.
Somebody else doing the install? Use Share directions with them — it copies the snippet plus a link to the install guide in one message you can send your web person.
Changes take up to a minute to reach live visitors. Edit your copy, save, then give it sixty seconds before deciding it didn't work.
You can open the widget from your own buttons. Add
data-upsmith-widget-open="true"to any link or button on your site and clicking it pops the widget open — handy on a "Schedule Service" call to action you already have.
The allowlist is not optional
The Origin allowlist is the list of domains the widget is allowed to load on. Type a domain and press Enter to add it. "The widget only loads on domains listed here."
Get this wrong and the widget silently doesn't appear. No error on the page, nothing for the visitor to see — it just isn't there. This is the first thing to check when an install "doesn't work".
Wildcards work, a bare asterisk doesn't.
*.yourdomain.comis fine and covers your subdomains. A lone*is rejected.List your staging site too if you want to test there before going live.
What a visitor sees
A pill in the corner of the page — or, on a phone, a full-width bar across the bottom, because a corner pill is easy to miss on mobile. Tapping it opens a panel with:
Your name, logo and a status line. By default that line reads "Replies by text in seconds" with a green dot. Set it to something you can actually honour.
Name — optional.
Mobile — required, and formatted as they type.
ZIP code — only if you've turned ZIP routing on, and then it's required.
What they need — marked · optional. Out of the box the choices are Book an appointment, Get a free estimate, Ask about pricing and Something else.
A consent tick box they have to tick before the button works.
On submit they see "You're all set" and "We'll text you shortly.", and the panel closes itself a few seconds later.
There's no email field. The widget collects a phone number, because texting them is the whole point. If you need an email address, that's a job for your own form — see Booking Form.
The consent text you can't change
Every submission carries a required SMS disclosure with your business name in it — message frequency, standard rates, reply STOP to opt out, and an explicit promise that mobile information isn't shared with third parties for marketing. That wording is fixed and it stays visible.
The Additional opt-in copy field adds your own sentence after it, never instead of it. The field's own helper says as much: "The required SMS disclosure always remains visible." This is what keeps your texting compliant, so it isn't up for editing — by you or by us.
Where the lead goes
It becomes a real lead and your lead responder texts them. Same agent, same follow-up cadence as any other lead source.
It shows up in Conversations with the source Web Widget, wearing the UpSmith bolt, and it's a filter option in the Source dropdown.
Your agent opens knowing where they came from — that they submitted a request through your website, plus whatever they picked or typed in the "what do you need" box.
You can take over any time. Open the conversation, click Take over, and reply yourself exactly as you would on any text thread.
Marketing attribution rides along. UTM tags, Google and Facebook click ids, the landing page and the referrer are captured when the visitor arrives and stay with them across your site, so a lead that started on an ad still says so when they submit three pages later.
Same number twice in one day is one lead. A repeat submission from the same mobile on the same day collapses into the existing lead rather than starting a second conversation. A fresh enquiry tomorrow is a new lead.
Turning it off
The button at the top of the settings page reads Disable when the widget is live and Enable when it isn't. Disabling stops the widget appearing on your site within about a minute — you don't have to touch your website.
Two things to know: the status on the settings page reads Active or Disabled, while the tile back on the Integrations page reads Connected or Not Connected — same thing, different words. And disabling Web Embed also switches off Booking Form, because they share one key.
Troubleshooting
The widget doesn't appear on your site. Work through it in this order: is the snippet actually on the page (view source and search for widget.js); is the domain on your Origin allowlist, exactly as the browser shows it; is the widget Active; and has it been more than a minute. Any of those four failing gives you the same symptom — nothing at all.
It works on your main site but not your landing pages. Different domain, and it isn't on the allowlist. Add it.
The snippet is on the page but you still see nothing. Some caching and optimiser plugins strip data- attributes off script tags. If yours does, tell whoever installed it — the key can be passed on the script URL instead.
Your logo doesn't show. It has to be reachable over https://. If it fails to load, the widget quietly falls back to the UpSmith mark rather than showing a broken image.
A visitor says the button wouldn't submit. It stays greyed out until there's a full ten-digit mobile number, the consent box is ticked, and — if ZIP routing is on — a five-digit ZIP. There's no message explaining which one is missing, which is worth knowing before you go looking for a bug.
Someone submitted but no lead appeared. If ZIP routing is on and they were outside your service area, they saw "We're not in your area yet" and no lead was created — that's deliberate. Otherwise check Conversations filtered to the Web Widget source before assuming it was lost.
You want it to stop taking submissions overnight. There's no hours setting on the widget — it's available whenever your site is. When your agent replies is a separate matter, set on the agent rather than here.
Common questions
Can visitors chat with the agent on the page? No. They leave a number and the conversation happens over text. There's no message thread in the widget.
Can they send a photo of the broken unit? Not through the widget. Once your agent is texting them, that's a normal SMS conversation.
Can I have a different widget on two different websites? Not today — one widget per account, though it can run on as many domains as you list. If you need genuinely different branding per site, email support@upsmith.com and tell us — how often it comes up is what moves it up the list.
Do I need a developer? To set it up, no. To paste one line into your website's template, probably — that's what Share directions with them is for.
Will the preview send a real text? No. The preview on the settings page is a mock-up; submitting in it fires nothing.
Does ZIP routing replace my Service Area settings? No. ZIP routing decides which region a website visitor is sent to. Whether you serve an address at all is set in Settings → Service Area.
Where to go next
Booking Form — sending your own website form to UpSmith instead of using the widget
Lenny — Leads Responder — the agent that texts these people back
Working Your Conversations Inbox — where these conversations land
Lead Source Integrations — every way leads reach UpSmith