Guides
Talk by voice
Let the people signed in to your app talk to one of your account's agents. It greets them by name and knows the recent records they can see, and nothing more.
A Talk button in your app opens a voice call with one of your account's agents. The agent greets the person by name, answers from your Knowledge, and, when the app's assistant is set up, knows the 10 most recent conversations the person can see in the app.
Voice needs Agents in your app on the account (Support Plus and above) and an app (Pro and above).
1. Set it up
- An agent. In the hub, Agents: make or pick one, switch on In your app, and make your changes live.
- List your app's address on the agent, under Where your app runs. The talk widget only appears on a listed address.
- Pick it for the app. On the app's page (Website, Apps, then the app), choose the agent under Talk by voice. Or ask Claude Code:
awesomate_crm_apps,updatewithvoice_agent_id.
2. Add the button
Load the hub's widget, then mount it with the agent the app names:
<script src="https://hub.awesomate.ai/widget/v1/agent-widget.js" defer></script>
<div id="talk"></div>const agentId = await app.voiceAgent(); // null when the app has no voice agent
if (agentId) {
await AwesomateAgent.mount({
agentId,
session: () => app.voiceSession(),
target: '#talk',
label: 'Talk to Bree',
});
}The page never chooses the agent. voiceSession() asks the hub for a call with the agent the app names, as the signed-in person, and the widget handles the microphone, the call and the captions.
What the agent knows
- Who they are: their first name, from the contact linked to them.
- Their recent records: the 10 newest records of the kind the app's assistant answers in that this person can read, and only the fields marked readable by AI. A customer gets their own jobs; staff get what their rule allows. With no assistant set up, the agent knows only their name.
- Your Knowledge: the same answers as any of your agent's channels.
The brief is read when the call connects, as the person, and kept only for the call. If the app is switched to another agent before the call connects, the agent gets no brief.
Limits
| One call | up to 10 minutes |
| One person | 30 minutes a day |
| Starting calls | 20 per 10 minutes per person |
When a call is refused
voiceSession() throws an AwesomateError. Its serverCode says why and its personMessage is a sentence for the person, which the widget shows for you:
serverCode |
Means |
|---|---|
no_voice_agent |
The app has no voice agent picked. |
plan_required |
The account's plan does not include Agents in your app. |
consent_required |
The account's Knowledge is not allowed to use its content. |
person_daily |
This person has used today's voice time. |
agent_daily |
The agent has used today's voice time. |