Floating Contact Button Widget
Pin one round contact button to the corner of every page. A tap unfolds a short stack of labelled actions - call, WhatsApp, email, Telegram, Messenger, text, directions, your contact form and your booking page - so a visitor picks the channel they actually use instead of hunting through your footer.
Live preview
Under the widget on your page: Powered by A2Z Tools
Embed code
Fill in the required fields above - until then this code shows nothing on your site.
<div data-a2z-kit="floating-contact-button" data-actions="phone,whatsapp,email"></div> <script async src="https://a2z.tools/embed/kit.js" referrerpolicy="no-referrer"></script>
One small script from A2Z draws the component on your page inside its own Shadow DOM. It loads no social-network or tracking scripts and sets no cookies. How the A2Z kit works.
Works with
How it works
The kit script draws the button inside a Shadow DOM fixed to the bottom-right or bottom-left corner, offset by the pixels you choose and lifted above the iPhone home indicator with env(safe-area-inset-bottom). Each action you list is built only if its value passes a check: a phone number must reduce to 5-16 digits with an optional leading plus once spaces, dots, dashes and brackets are removed, and becomes tel:+15550100123; WhatsApp needs a country code and becomes https://wa.me/15550100123 with your prefilled message percent-encoded; Telegram takes a 5-32 character public username for https://t.me/name; Messenger takes your Facebook Page username for an m.me link; email becomes mailto: with an encoded subject; Directions opens the Google Maps URLs API, Apple Maps, or a two-line menu offering both. An action whose value fails is left out - the stack never shows a dead link. Opening the stack sets aria-expanded, moves keyboard focus to the first action and keeps every label visible beside its icon; Escape or a tap outside closes it and returns focus to the button. The optional greeting bubble and availability line are your own words - nothing is computed, and no 'agent is typing' animation is ever shown.
Method
- Phone: strip spaces . - ( ), require ^\+?[0-9]{5,16}$, link tel:<digits>; the number is displayed as you typed it
- WhatsApp: digits only, a leading + or 00 dropped, first digit 1-9, 7-15 digits -> https://wa.me/<digits>?text=<encoded message>
- Telegram: https://t.me/<username>, username ^[A-Za-z0-9_]{5,32}$; Messenger: https://m.me/<Page username>
- Email: mailto:<address>?subject=<encoded>&body=<encoded>; SMS: sms:<digits>?&body=<encoded>
- Directions: https://www.google.com/maps/dir/?api=1&destination=<encoded address or lat,lng> or https://maps.apple.com/?daddr=<encoded>
- Encoding: encodeURIComponent plus ! ' ( ) *, so quotes, & ? and # in a message can never break a link
Worked examples
A cafe's three actions
Inputs: actions phone,whatsapp,maps; phone +1 (555) 010-0123; message Hi! Is there a table for 4 at 7:30?; address 14 Mill Lane, Northside
Result: Call us -> tel:+15550100123 | WhatsApp -> https://wa.me/15550100123?text=Hi%21%20Is%20there%20a%20table%20for%204%20at%207%3A30%3F | Get directions -> https://www.google.com/maps/dir/?api=1&destination=14%20Mill%20Lane%2C%20Northside
The phone number is reused for WhatsApp because no separate WhatsApp number was given; the question mark and colon are encoded so the message arrives intact.
A value that fails its check
Inputs: actions phone,whatsapp,telegram; phone 020 7946 0000; telegram @abc
Result: Call us -> tel:02079460000 (WhatsApp and Telegram are left out)
020 7946 0000 is a valid number to dial in the UK but has no country code for WhatsApp, and abc is shorter than Telegram's five-character minimum.
Directions with a choice of maps
Inputs: actions maps; provider ask; address 51.5007,-0.1246
Result: Google Maps -> https://www.google.com/maps/dir/?api=1&destination=51.5007%2C-0.1246 | Apple Maps -> https://maps.apple.com/?daddr=51.5007%2C-0.1246
Coordinates are accepted only inside latitude -90..90 and longitude -180..180; the comma is percent-encoded.
Limitations
- It opens the visitor's own apps; it cannot place a call, send a message or tell whether you are online.
- SMS and phone actions need a device that can call or text; on a desktop computer they open whatever app is registered (or nothing).
- Messenger opens a conversation through an m.me link, so it needs the username of your Facebook Page.
- The greeting bubble's 'closed' state lasts for the browser tab only, by design.
Where publishers use it
- A dental practice that takes bookings by phone and by an online form, wanting both one tap away on every treatment page without a heavy live-chat script
- A cafe or small restaurant offering Call, WhatsApp and Directions from its menu pages, with a greeting that says when the kitchen answers messages
- A tradesperson's site whose visitors mostly arrive on phones from local search and need the call action and the WhatsApp action side by side
- A consultancy that prefers email and a booking calendar, with Messenger offered for visitors who found it through its Facebook Page
Questions
Is this a live chat?
No. It is a launcher for channels you already answer - your phone, WhatsApp, inbox, Telegram or Messenger. Nothing is typed into the page and nothing reaches A2Z; the visitor's own app opens with your details filled in. That is why there is no 'online now' dot or typing indicator: the widget cannot know whether you are available, so the availability line is simply the sentence you write.
Which actions appear if a value is wrong?
Only the ones that pass their check. A WhatsApp number written as 020 7946 0123 (no country code), a Telegram name of four characters or an email without a domain is dropped silently on your live page, and the builder preview tells you which field to fix. The remaining actions keep their order.
Will it cover content on a phone?
The closed button is a single 56 px circle (48 or 64 px if you prefer) in a corner, above the safe area. The open stack is at most 300 px wide, scrolls inside itself if a short screen needs it, and closes with Escape, a second tap on the button or a tap anywhere else on the page.
Can visitors choose Google Maps or Apple Maps?
Yes. Set Directions to Ask and the Directions action opens a two-line menu: Google Maps (the documented Maps URLs API) or Apple Maps. Choose Google or Apple instead to send everyone straight to one of them. Coordinates such as 51.5007,-0.1246 are accepted when they fall inside -90..90 and -180..180.
Can I rename the actions or write them in another language?
Yes. The Button names box takes one 'action | name' line each - phone | Appelez-nous, maps | Nous trouver - and those names appear beside the icons. They are shown as plain text, never as HTML.
Sources
- How to use click to chat - WhatsApp Help Center . https://wa.me/<number>?text=<URL-encoded text>; full international number without + or leading zeros
- Deep links: public usernames - Telegram APIs . https://t.me/<username> opens a chat with a public user, bot or channel
- m.me links - Meta for Developers - Messenger Platform . https://m.me/<PAGE-NAME> opens a conversation with a Page
- Get started with Maps URLs - Google for Developers . Directions action: https://www.google.com/maps/dir/?api=1&destination=
- Map Links - Apple Developer (Apple URL Scheme Reference) . daddr = destination address
- RFC 3966: The tel URI for Telephone Numbers - IETF . visual separators carry no meaning; global numbers start with +
Cite or recommend this tool
If you reference this tool in an article, course or documentation, these formats are ready to copy. They are optional - nothing is added to your site unless you paste it.
A2Z Tools Floating Contact Button https://a2z.tools/embed/floating-contact-button
<a href="https://a2z.tools/embed/floating-contact-button">A2Z Tools Floating Contact Button</a>
[A2Z Tools Floating Contact Button](https://a2z.tools/embed/floating-contact-button)
Floating Contact Button by A2Z Tools - https://a2z.tools/embed/floating-contact-button
Related widgets
-
A green WhatsApp bubble in the corner that opens a chat with your number and a ready-written first message.
-
A bottom bar for phones with up to five big actions: call, WhatsApp, directions, share, book.
-
One large click-to-call button, optionally showing the number, your opening hours and a text link.
-
Large Call, Text, Email, WhatsApp and custom-link tap targets in a stack, row or pill bar.
-
A digital business card with call, email, website and directions buttons plus a .vcf contact download.
-
A scroll-to-top button that waits until readers scroll, with a progress ring and keyboard-friendly focus.