The Edesy click-to-call widget puts a call button on your website. A visitor clicks it, enters their phone number (and name, if you ask for it) and requests a callback. Edesy calls your team first. When someone answers, Edesy calls the visitor and bridges the two calls. You embed it with one script tag that carries your widget ID.
Facts#
| Item | Value |
|---|---|
| Embed | One <script> tag with data-widget-id |
| Visitor enters | Phone number, optional name |
| Call order | Your team first, then the visitor, then bridged |
| Options | Position, colour, greeting, button text, offline message, business hours with timezone, allowed domains and countries, daily and concurrent call limits |
| Tracking | Impressions, clicks, calls initiated and connected; page URL and referrer on each call |
1. Create a widget#
In the widget settings, give the widget a name and set:
- Target: your team's phone number, which is called first.
- Look: position (bottom right, bottom left, top right, top left), primary colour, greeting message and button text.
- Availability: business hours and allowed domains.
- Limits: maximum concurrent calls (1 to 100, default 5) and daily calls (1 to 10,000, default 100).
2. Copy the embed code#
The widget's page shows its embed code with your widget ID filled in. It looks like this:
<script src="WIDGET_SCRIPT_URL" data-widget-id="YOUR_WIDGET_ID" async></script>
Paste it before </body> on every page where the button should appear. Copy the exact snippet from your widget page rather than typing the URL.
Optional attributes#
| Attribute | Description |
|---|---|
data-position |
Override the position: bottom_right, bottom_left, top_right or top_left |
data-z-index |
Stacking order, if the button hides behind other elements on your site |
3. Control it from JavaScript (optional)#
The script exposes window.ClickToCallWidget with getWidget(id), destroyWidget(id) and destroyAll(). A widget instance has open(), close(), getState() and getSession().
const w = window.ClickToCallWidget.getWidget("YOUR_WIDGET_ID");
document.querySelector("#talk-to-sales").onclick = () => w.open();
How a call flows#
- Visitor requests a call. They enter their number in the widget form.
- Checks run. The widget must be active, within business hours, under its call limits and, if set, on an allowed domain and country.
- Your team rings. Edesy calls the target number.
- Visitor rings. When your team answers, Edesy calls the visitor.
- Bridged. Both are connected and the widget shows a call timer. The widget follows status until the call ends.
FAQ#
Who is called first, my team or the visitor?#
Your team. The visitor is called only after someone on your team answers, so visitors are not left waiting on an unanswered line.
What does the visitor see if nobody answers?#
"Our team is currently busy. Please try again later."
What if the visitor does not pick up?#
The widget shows "We couldn't reach you. Please check your phone."
Can I ask for the visitor's name?#
Yes. The widget form has an optional name field next to the phone number.
Can I open the widget from my own button?#
Yes. Call getWidget("YOUR_WIDGET_ID").open() from your button's click handler.
Can I pause the widget without removing the code?#
Yes. Set the widget status to paused. A paused widget does not show its button.
Does the widget work on any website builder?#
Yes, on any site where you can add a script tag, including WordPress and custom-HTML blocks.
Which numbers can visitors enter?#
Countries are limited by the widget's allowed-countries setting, which defaults to India. Visitors enter their number with the +91 prefix.