Integrations

Website voice widget

Put a voice button on your website. Visitors click it and talk to your AI employee in the browser — or, if you allow it, ask the AI employee to call their phone. One line of HTML, on any site and any domain.

What visitors see

  • A floating button in a corner of the page, with your title and logo or accent colour.
  • If more than one AI employee is published, a short list: Who would you like to talk to?
  • Web Call — the browser asks for microphone access and the conversation starts. Clicking the button again ends the call.
  • Phone Call (only if you turn it on) — the visitor enters their number, ticks I agree to be contacted, and the AI employee calls them straight away.

Add the widget for your workspace

One snippet covers your whole workspace. You choose which AI employees appear in it from the dashboard, without touching the code again.

  1. Publish the AI employees visitors can talk to

    Open System Settings → Website Widget. Under Choose who visitors can talk to, switch on each AI employee you want on your site, or press Publish all. Everything is off by default, so internal and test AI employees stay private.

  2. Copy the snippet

    Under Paste one line on your website, copy the snippet. It contains your workspace's short name in data-workspace:

    index.html
    <script src="https://calling.ubiqproject.com/widget.js" data-workspace="acme-dental" async></script>
  3. Paste it before </body>

    Add it to every page where the button should appear — in your site template, or with your site builder's "custom code" setting. The line never changes when you publish or hide AI employees.

With one published AI employee, the button starts that AI employee directly. With several, visitors pick one from a list. The button shows your workspace name and uses the logo and colour of the first published AI employee (alphabetically).

Nothing appears?

If no AI employee is published, or the workspace name in data-workspace is wrong, the widget doesn't show a button. Your browser's developer console shows a [voice-widget] warning with the reason.

Embed one specific AI employee

To put a single AI employee on a page — say, a sales assistant on your pricing page — open the AI employee, go to the Embed tab, set its look, and copy the snippet shown there. It uses data-agent instead of data-workspace, and works whether or not that AI employee is published in the workspace widget.

pricing.html
<script src="https://calling.ubiqproject.com/widget.js"
  data-agent="3f2b8c1e-7a4d-4e9b-9c55-1d2e3f4a5b6c"
  data-endpoint="https://calling.ubiqproject.com"
  data-title="Talk to Riya"
  data-color="#E5322D"
  data-position="bottom-right"
  data-phone-call="true"
  data-country="+91"
  async></script>

Script attributes

data-workspacestring
Your workspace's short name. Shows every published AI employee. Use this or data-agent.
data-agentstring
The AI employee's ID. Shows only that AI employee.
data-endpointURL
The Daffy Voice server. Defaults to https://calling.ubiqproject.com.
data-titlestring
Button text. Defaults to Talk to agent.
data-logoURL
A small round image shown on the button instead of the status dot.
data-colorcolour
Accent colour of the status dot, e.g. #E5322D.
data-positionstring
bottom-right (default), bottom-left, top-right or top-left.
data-phone-call"true"
Offer the Phone Call option. It also has to be turned on for the AI employee (see below).
data-countrystring
Dial code pre-filled in the phone form. Defaults to +1.

The look attributes (data-title to data-country) apply only with data-agent. If you leave all of them out, the widget loads the look you saved on the Embed tab. The workspace snippet always uses the saved settings.

Let visitors get a phone call

Turn on Phone Call ("Call me") on the AI employee's Embed tab and set a Default country code. Visitors then choose between Web Call and Phone Call.

  • It is off by default for every AI employee. Each request places a real, billable call.
  • The number must be in international format, e.g. +919876543210.
  • Requests are rate-limited: 3 per hour from the same visitor IP address, and 100 per hour per AI employee. Beyond that the visitor sees Too many call requests — please try again later.
  • The call goes out from the AI employee's Twilio number. If it has none, the visitor sees Calling is temporarily unavailable.

Requirements

  • Your page must be served over HTTPS — browsers only allow microphone access on secure pages.
  • The AI employee must be active.

Know who's calling

Web calls reach your AI employee's webhooks like phone calls do. The prefetch webhook receives caller_id=web. See Webhooks.

Next steps