Web widget · embeddable voice + chat
Drop 2 lines of JS on any site. Users click → talk to your agent via browser mic (WebRTC) or text. ● LIVE on 4 domains · 1,284 sessions / 30d
Sessions · 30d
1,284
↑ 28%
Avg session
1m 42s
+12s vs prior
Booked
148
11.5% convert
Escalated to call
62
4.8% of sessions
Load impact
42kb
async · 0 blocking
Configure
auto-saves · v12Appearance
Behavior
Install
Agent
Theme
Position
✓
Behavior
Auto-open on scroll 70%after 5s idle
Pulse ringattract first-time visitors
Proactive message"Need help booking?"
Show on mobilehide below 640px if off
Business hours only9 AM–6 PM local
Channels
Voice via micWebRTC · 285ms cold
Text chatno mic required
Schedule a calldial out to their number
Leave a messageafter hours fallback
Domain allow-list
3 domains · HMAC token required
Modern dentistry without the hassle.
Book your next cleaning, filling, or consultation online in under 2 minutes. Or tap the assistant bubble and talk to Sofia.
Book online
Our services
Sofia
● online · responds in < 2s
✕
Hi, how can I help?
Book an appointment, ask about services, or just chat — I can answer in text or voice.
Book an appointment
What services do you offer?
Talk to Sofia (voice)
Powered by jvapi · SOC 2 · GDPR
Talk to Sofia
HTML
React
Vue
WordPress
GTM
<!-- Paste before </body> on every page -->
<script
src="https://cdn.jvapi.com/widget/v1.js"
data-site-id="site_8a4e9b"
data-agent="sofia-booking"
data-color="amber"
data-position="bottom-right"
data-auto-open="scroll:70"
async></script>
Install in 3 steps
1
Copy the snippet. Paste it before
</body> on every page you want the widget visible.2
Allow-list your domain. We enforce HMAC + referrer check to stop widget theft. Add
acmedental.com above.3
Test live. Load the domain — our checker confirms the script loaded, mic permission flow, and the agent responded. Failed checks show exact fix.
Load & bundle
42 kb gzipped
0 render-blocking
async defer
0 cookies