Call me back button for your website
They asked for a call.
Ring before they forget why.
A call me back button is a short form, usually a name, a phone number and a good time to ring, that turns “I’d rather talk” into a phone call you make later. To add one, put a callback form or widget on every page with one script tag in your site’s head, ask for as little as you can, note the caller’s time zone, and say on the button how soon you will ring. Below: when it beats chat or a phone number, what to ask, a planner for a promise you can keep, and the install steps for WordPress, Shopify, Wix, Squarespace and Webflow.
By the Builderify team
When a callback request beats
live chat, a phone number or a form.
A callback wins when the answer needs a conversation and nobody can pick up right now. It loses when the visitor needs help this minute, or when you cannot ring back soon enough to keep the promise on the button.
| Question | Phone number | Call me back button | Live chat | Contact form |
|---|---|---|---|---|
| Best for | Urgent jobs, when someone is always free to answer | Questions that need a conversation, when nobody can pick up now | Quick questions, while the visitor is still on the page | Detailed requests and attachments, with no time pressure |
| What the visitor does | Dials, then waits on hold or reaches voicemail | Leaves a name, a number and a time, then gets on with their day | Types, then waits for a reply in the window | Writes it all out, then waits for an email |
| What it needs from you | Someone on the line during opening hours | Someone working the queue, and a promise you keep | Someone watching while visitors are on the site | Someone checking the inbox |
| Where it goes wrong | Out of hours it rings an empty room | A late or forgotten callback is worse than no button | Out of hours a chat becomes an email anyway | Long forms get abandoned halfway |
- The honest answer is “it depends”: quotes, insurance, finance, a treatment plan, a B2B demo.
- You are on a roof, under a sink or with a patient, and cannot answer the phone live.
- Your customers would rather talk than type, and the next step is a conversation anyway.
- People find you in the evening or at the weekend, when nobody is at the desk.
- It is an emergency. A burst pipe should not wait in a queue: show the number, and for anything dangerous, the emergency services.
- The question fits in one line. An FAQ or live chat answers it while they are still on the page.
- Nobody can ring back within a working day. Then a form with an honest reply time is kinder.
- Your callers are in countries you cannot, or should not, phone.
Most sites end up with two or three of these side by side, and that is fine: a number for the urgent, a callback for the considered, chat for the quick. If you are weighing chat tools as well, our comparison of free live chat plans sets out the seats, chat limits and branding on each.
What a callback request form
should ask, and what it shouldn’t.
Ask for a name and a number, and offer a best time as a choice. That is the whole form. Everything else can wait for the call, which is the point of having one.
Every extra field is one more thing to answer before anything happens, and on a phone each one is a tap, a keyboard and a scroll. Fewer fields also means less personal data to look after: the UK GDPR says you should not hold more than you need for your purpose.
Two details make the number usable. Use type="tel" with autocomplete="tel", so phones show the dial pad and can fill it in, and show an example with the country code. And record the caller’s time zone without asking: the browser already knows it.
<form action="YOUR-FORM-ENDPOINT" method="post">
<label for="cb-name">Your name</label>
<input id="cb-name" name="name" autocomplete="name" required>
<label for="cb-phone">Phone number</label>
<input id="cb-phone" name="phone" type="tel" autocomplete="tel"
placeholder="+44 7700 900123" required>
<fieldset>
<legend>Best time to call (optional)</legend>
<label><input type="radio" name="when" value="morning"> Morning</label>
<label><input type="radio" name="when" value="afternoon"> Afternoon</label>
<label><input type="radio" name="when" value="evening"> Evening</label>
</fieldset>
<input type="hidden" name="timezone" id="cb-tz">
<button type="submit">Call me back</button>
<p>We only use your number to call you about this request.</p>
</form>
<script>
document.getElementById('cb-tz').value =
Intl.DateTimeFormat().resolvedOptions().timeZone;
</script>
Point action at whatever receives your forms. The two lines of script fill in the visitor’s time zone, such as Europe/London, so you know what “afternoon” means to them.
How fast to call back,
and what to promise on the button.
Call back as fast as you promised, and promise only what your hours allow. Enter your opening hours, where you and your callers are, and how many requests and people you have. The planner works out a typical week and writes the line for your button.
The planner assumes requests arrive evenly from 08:00 to 22:00 in your callers’ time, and that “minutes a call” includes notes and the odd retry. Time zones use standard (winter) offsets; daylight saving shifts them by an hour for part of the year.
“We call back within 6 working hours”
Mon–Fri 09:00–17:00, London time
With 1 person clearing about 4 callbacks an hour, 83% of requests are called within 2 working hours. The slowest takes 4 h 17 min of opening hours, so promise 6 working hours, or add hours or a person.
Promise in working hours, and show the hours
A request left at 21:00 on a Friday is not late on Monday at 09:30 if the button said “within 2 working hours, Mon–Fri 9–5”. It is late if the button said “within 2 hours”. Put the hours and your time zone next to the promise.
Monday morning is the real test
The weekend’s requests are all waiting when you open, and the ones that arrive on Monday join the back of that queue. If the promise breaks anywhere, it usually breaks there. Add a person for the first hours of the week, or start earlier.
Their afternoon, your evening
When callers are in another time zone, their “afternoon” may be your evening. Store the time zone with each request, read the window in their time, and set the planner’s second zone to see how the queue moves.
How fast is fast enough? There is no universal number worth quoting, and the figures that circulate rarely come with a source. The useful rule is simpler: ring within the time you put on the button, and within the window the caller chose. A request that is called late, or not at all, does more harm than having no button.
How to add a callback request form
to WordPress, Shopify, Wix and the rest.
A callback widget installs like any other: one script tag in the <head> of every page, pasted once. After that the button, the form and the wording are changed from the tool’s dashboard, not your theme.
Add a call me back button on WordPress
- 1 Install a header-and-footer code plugin such as WPCode from the plugin directory.
- 2 Open Code Snippets › Header & Footer and paste the script tag into the Header box.
-
3
Save. Prefer no plugin? Paste it before
</head>in your theme’sheader.php, in a child theme so an update does not remove it.
Add a call me back button on Shopify
- 1 Duplicate your live theme first: Shopify warns that code edits can be lost when a theme updates.
- 2 Go to Online Store › Themes, open the … menu beside the current theme and choose Edit code.
-
3
Open
layout/theme.liquid, paste the script tag just before</head>, and save.
Add a call me back button on Wix
- 1 The site has to be published and have a connected domain before Wix allows custom code.
- 2 Go to Settings › Custom Code (under Development & integrations) and click + Add Custom Code.
- 3 Paste the tag, give it a name, choose All pages and Head, then Apply.
Add a call me back button on Squarespace
- 1 Go to Pages › Custom Code › Code Injection. On version 7.0 it is under Website Tools › Code Injection.
-
2
Paste the tag into the Header field, which Squarespace injects into the
<head>of every page, and save. - 3 Code injection is available on the Core, Plus and Advanced plans and some legacy plans, not on Personal.
Add a call me back button on Webflow
- 1 Open Site settings › Custom code.
- 2 Paste the tag into Head code and click Save changes, then publish the site.
- 3 Site-wide custom code needs an active Site plan, or a Core, Growth, Agency or Freelancer Workspace.
Add a call me back button on Plain HTML
-
1
Paste the tag just before
</head>. - 2 If your pages share a header include, put it there once; otherwise add it to every page that should show the button.
- 3 Upload the changed files and reload a page to check the button appears.
Then open your site on a phone, tap the button, and send yourself a test request before you tell anyone it is there.
Add a tap-to-call link for mobile, too
A tel: link turns your number into something a phone can dial with one tap. Put the full international number in the link, starting with + and the country code and without the leading zero, so it works from any phone; write it however you like in the visible text.
The two do different jobs. The link is for people who want to talk now, while you are open. The callback button is for everyone else, including the visitor at 22:00 who would otherwise ring an empty office.
<a href="tel:+442079460123">Call us: 020 7946 0123</a>
- On a phone, tapping it hands the number to the dialler. On a computer it may open a calling app, or do nothing useful, so do not make it the only way in.
- Out of hours, say so next to the number, and point to the callback button instead.
A callback button and a queue,
from one script tag.
In Builderify, Callbacks is a block you add to the floating bubble, beside live chat, an FAQ or anything else you put there. Installed once on WordPress, Shopify, Wix, Squarespace, Webflow, Framer or plain HTML, it works like this:
-
01
The formName and phone number are required. Email is optional and can be switched off; “What’s it about?” is off until you switch it on. Visitors can pick a day, up to 14 days ahead by default, and morning, afternoon or evening, or leave both blank for “as soon as possible”.
-
02
Their time zone, without askingThe widget reads the visitor’s time zone from their browser and stores it with the request, so the queue shows Europe/Madrid next to “Evening”.
-
03
A queue in orderWaiting requests come first, oldest at the top. Each one is Waiting, Called, No answer or Closed, with your notes, and the time of the first call attempt is recorded. Requests whose chosen day has passed are counted as past their window.
-
04
Every caller is a leadEach request is also added to the leads list you chose for the block, phone-only callers included. If they gave an email, they get a confirmation email first, and nothing from a campaign or sequence reaches them until they confirm.
-
05
Tap to call from the queueNumbers in the dashboard are
tel:links, so on a phone “Call now” dials straight from the request.
There is no rate for a callback request on the rate card; what draws credits is page loads with the widget on them. Every account gets 250 free credits a month, and one-time packs start at $9 and never expire. The bubble shows “Powered by Builderify”; removing it costs 1,500 credits, once per website.
What it does not do
The callback block stays available around the clock; it does not switch itself off outside your hours. That is usually what you want, but it means the promise on your button has to cover nights and weekends, which is what the planner above is for. The welcome text above the form is yours to write, so put the promise and your hours there.
Getting told about new requests
Each request appears in the website’s activity feed as “asked for a callback”, with the number and window, and the feed can be mirrored to a Telegram chat you connect. When a call needs a fixed slot instead of a window, Bookings is the sibling block, and Live Chat covers the visitors who would rather type.
Consent and privacy basics
for a callback request form.
A callback request is a person asking you to phone them about one thing. Use it for that, keep only what the call needs, and do not stretch it into permission for anything else. This is general information, not legal advice for your business.
Asking for everything “in case”.
Collect what the call needs and no more. The UK GDPR’s data minimisation principle says personal data should be “adequate, relevant and limited to what is necessary” for its purpose, and the ICO puts it plainly: “You should not have more personal data than you need to achieve your purpose.”
Treating the request as consent to market.
Under the UK and EU GDPR, processing is lawful where it is needed “to take steps at the request of the data subject prior to entering into a contract” (Article 6(1)(b)); the ICO’s example is someone asking for a quote. That covers the call they asked for. Newsletters and later sales calls are a separate question, and in the UK the ICO says unsolicited marketing calls to numbers on the TPS are not allowed “unless the person has specifically consented to your calls”.
Saying nothing about what happens to the number.
Put one line under the button, such as “We only use your number to call you about this request”, and link your privacy notice. If the same form also signs people up to anything, make that a separate, unticked choice.
Keeping every request forever.
Decide how long a closed request is kept, and delete or close old ones on that schedule. A queue of last year’s phone numbers is a risk with no use.
Ringing a “no answer” ten times.
Try again inside the window they chose, leave a short message saying who you are and which request you are calling about, then use email if they gave one. After that, close it.
Call me back buttons, before you ask.
A name, a phone number and a best time to ring, offered as a choice such as morning, afternoon or evening. Make what it is about and an email optional, and leave anything else for the call itself. Fewer fields are quicker on a phone and mean less personal data to look after.
Paste the tool's script tag into the head of every page once: through a header-and-footer plugin such as WPCode on WordPress, in layout/theme.liquid just before the closing head tag on Shopify, or under Settings, Custom Code with All pages and Head on Wix. Wix needs a published site with a connected domain before it allows custom code.
Within the time you promised on the button, and within the window the caller picked. Promise in working hours and show your hours and time zone, so a request left on Friday night is not late on Monday morning. The desk planner on this page works out a promise your hours and staff can keep.
It is better when the answer needs a conversation and nobody can pick up right now, for example quotes, insurance or a treatment plan. Live chat is better for quick questions while the visitor is still on the page. Many sites offer both, plus a tap-to-call number for urgent calls.
Treat a callback request as permission for the call they asked for, about what they asked about. A newsletter or later sales calls need their own consent, so offer that as a separate, unticked choice. In Builderify, callers who leave an email get a confirmation email first, and nothing from a campaign or sequence reaches them until they confirm.
Sources
- ICO Lawful basis: contract, including steps before a contract
- ICO Principle (c): data minimisation
- ICO Telephone marketing under PECR
- EUR-Lex Regulation (EU) 2016/679 (GDPR), Articles 5 and 6
- MDN The <a> element: linking to telephone numbers
- IETF RFC 3966: The tel URI for telephone numbers
- MDN HTML attribute: autocomplete
- MDN Intl.DateTimeFormat: resolvedOptions()
- Shopify Help Center Editing theme code
- Squarespace Help Customize parts of your site with code injection
- Wix Help Center Embedding custom code on your site
- Webflow Help Center Custom code in head and body tags
- WordPress.org WPCode: insert headers and footers
Stop losing the visitors
you already paid for.
More leads from the traffic you already have, and follow-up that sends itself. Free to start. No card, no monthly fee.