Avoma

Live

BEARER TOKEN

MEETING NOTES

Transcription

Read Avoma meeting notes and transcripts with a bearer token, scoped to the signed-in user.

  • Per-user credentials. each call uses the actual user's Avoma bearer token, never a shared bot.
  • Encrypted per-tenant vault. AES-256, resolved at request time, never in LLM context.
  • Scoped before every call. pre-call scope check, 90-day SIEM-exportable audit chain.
Avoma
agent · Acme Q3
Run
Which discovery calls last week have Avoma notes I can review?
S
avoma_meetings_list
94ms
Avoma agent
7 meetings since Sep 15. Acme discovery 41m, Globex pricing 27m, Initech demo 33m. Acme has no next-step note yet.
Sources: 7 meetings, 4 reps, Sep 15 to Sep 21
avoma
7 meetings
18:29
Message Claude...

Tools your meeting agent reaches for on Avoma, scoped per user.

CALL ANY TOOL
List Avoma meeting notes, transcripts, scorecards, and recordings with a bearer token, scoped per user.
avoma_call_create
Create Call
Ingest a call record into Avoma from an external dialer or CRM system, so Avoma can process its recording.
Parameters
Name
Type
Required
Description
direction
string
Required
Direction of the call: 'Inbound' or 'Outbound'.
external_id
string
Required
Unique id of the call from the external dialer/CRM system (e.g. HubSpot, Twilio, Zoom). Combined with 'source', this must be unique per organization: creating a call with a duplicate external_id/source pair fails. Example: 1234567890
frm
string
Required
Phone number the call was made from, in E.164-like format. Example: +11234567890
participants
array
Required
List of participants on the call. Put the prospect or lead the call was with first: Avoma uses the first entry to build the call's subject. Each participant needs an email, and may include a name and CRM associations. Example: [{"email": "prospect@customer.com", "name": "Jane Prospect"}]
recording_url
string
Required
Publicly reachable URL of the call recording. Avoma downloads the audio from this URL to transcribe and process the call, so it must be accessible without additional authentication. Example: https://example.com/recording.mp3
source
string
Required
Lowercase string identifying the dialer/system the call came from, e.g. zoom, zoomphone, twilio, phoneburner, ringcentral, aircall. Combined with 'external_id', this must be unique per organization.
start_at
string
Required
Start time of the call, as an ISO 8601 date-time. Example: 2024-01-15T14:30:00Z
to
string
Required
Phone number the call was made to, in E.164-like format. Example: +12234567890
user_email
string
Required
Email of the Avoma user who made or received the call. This must be an existing, active Avoma user in your organization with the dialer feature enabled: their license is used to process the call. Example: rep@company.com
additional_details
string
Optional
Additional metadata about the call, as a JSON-encoded string.
answered
boolean
Optional
Whether the call was answered.
crm_association
array
Optional
CRM records linked to this call as a whole (e.g. a Salesforce or HubSpot contact, account, or opportunity). Example: [{"crm_obj_id": "30447071570", "crm_obj_type": "account"}]
end_at
string
Optional
End time of the call, as an ISO 8601 date-time.
frm_name
string
Optional
Name of the caller who made the call.
is_voicemail
boolean
Optional
Whether this call is a voicemail. Defaults to false.
to_name
string
Optional
Name of the person the call was made to.
avoma_call_get
Get Call
avoma_call_update
Update Call
avoma_calls_list
List Calls
avoma_engagement_metrics_list
List Engagement Metrics
avoma_engagement_summary_get
Get Engagement Summary
avoma_meeting_drop
Drop Meeting
avoma_meeting_get
Get Meeting
avoma_meeting_insights_get
Get Meeting Insights
avoma_meeting_outcome_create
Create Meeting Outcome
avoma_meeting_outcome_delete
Delete Meeting Outcome
avoma_meeting_outcome_get
Get Meeting Outcome
avoma_meeting_outcome_update
Update Meeting Outcome
avoma_meeting_outcomes_list
List Meeting Outcomes
avoma_meeting_recording_get
Get Meeting Recording
avoma_meeting_segments_get
Get Meeting Segments
avoma_meeting_sentiments_list
List Meeting Sentiments
avoma_meeting_type_create
Create Meeting Type
avoma_meeting_type_delete
Delete Meeting Type
avoma_meeting_type_get
Get Meeting Type
avoma_meeting_type_update
Update Meeting Type
avoma_meeting_types_list
List Meeting Types
avoma_meetings_list
List Meetings
avoma_notes_list
List Notes
avoma_recording_get
Get Recording
avoma_revenue_intel_timeline_details_list
List Revenue Intelligence Timeline Details
avoma_revenue_intel_timeline_get
Get Revenue Intelligence Timeline
avoma_scorecard_evaluations_list
List Scorecard Evaluations
avoma_scorecard_get
Get Scorecard
avoma_scorecards_list
List Scorecards
avoma_smart_categories_list
List Smart Categories
avoma_smart_category_create
Create Smart Category
avoma_smart_category_get
Get Smart Category
avoma_smart_category_update
Update Smart Category
avoma_snippets_list
List Snippets
avoma_template_create
Create Template
avoma_template_get
Get Template
avoma_template_update
Update Template
avoma_templates_list
List Templates
avoma_transcription_get
Get Transcription
avoma_transcriptions_list
List Transcriptions
avoma_user_engagement_list
List User Engagement
avoma_user_engagement_summary_get
Get User Engagement Summary
avoma_user_get
Get User
avoma_users_list
List Users
Build your Agent
Same bearer token vault and scoped tool list across LangChain, OpenAI, Anthropic, and Google ADK.
Python · LlamaIndex
import { ScalekitClient } from \"@scalekit-sdk/node\";
import { DynamicStructuredTool } from \"@langchain/core/tools\";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools(\"user_123\", {
filter: { connectionNames: [\"avoma\"], toolNames: [
\"avoma_meetings_list\",
\"avoma_transcription_get\",
\"avoma_notes_list\",
]}, pageSize: 100,
});
import OpenAI from \"openai\";
import { ScalekitClient } from \"@scalekit-sdk/node\";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools(\"user_123\", {
filter: { connectionNames: [\"avoma\"], toolNames: [
\"avoma_meetings_list\",
\"avoma_transcription_get\",
\"avoma_notes_list\",
]}, pageSize: 100,
});
const openai = new OpenAI();
import Anthropic from \"@anthropic-ai/sdk\";
import { ScalekitClient } from \"@scalekit-sdk/node\";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools(\"user_123\", {
filter: { connectionNames: [\"avoma\"], toolNames: [
\"avoma_meetings_list\",
\"avoma_transcription_get\",
\"avoma_notes_list\",
]}, pageSize: 100,
});
const anthropic = new Anthropic();
import { ScalekitClient } from \"@scalekit-sdk/node\";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools(\"user_123\", {
filter: { connectionNames: [\"avoma\"], toolNames: [
\"avoma_meetings_list\",
\"avoma_transcription_get\",
\"avoma_notes_list\",
]}, pageSize: 100,
});
Try these prompts
Copy a prompt into your agent. Each one maps to Avoma meeting notes for the signed-in user.
Coaching and next steps
Copy the prompt
Copied
Which discovery calls last week have Avoma notes I can review?
Copy the prompt
Copied
Summarize talk ratio and questions asked on the last Acme meeting.
Copy the prompt
Copied
What scorecard evaluations ran on yesterday's Globex call?
Transcripts and recall
Copy the prompt
Copied
Pull the transcript for yesterday's Globex pricing call.
Copy the prompt
Copied
What did the buyer say about budget on the Initech meeting?
Copy the prompt
Copied
List Avoma meetings from the last 14 days.
Notes and snippets
Copy the prompt
Copied
Show AI notes from the last Acme discovery meeting.
Copy the prompt
Copied
Which snippets were saved from the Umratech call?
Copy the prompt
Copied
Get the recording URL for the latest Initech demo.
SEE HOW AUTH WORKS
Your users connect once. Their Avoma bearer tokens stay vaulted, every call is checked, and every action is logged.
1
Authorize
Your user connects
Avoma
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
Avoma
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
Avoma
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
Avoma
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
Reuse the same per-user bearer token vault and audit chain on other call intelligence and CRM connectors.
No items found.
Test other agents
Reuse the same per-user bearer token vault and audit chain on other call intelligence and CRM connectors.
No items found.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
01.
Shared tokens break per-user analytics
A shared Avoma bearer token makes every transcript lookup look like a bot. Scalekit resolves the credential of the actual user who triggered the agent, never a shared bot.
// shared key
audit → bot_acct

// scalekit
audit → user_abc ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
Avoma today. Others tomorrow.
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Does the agent access Avoma as the user or a shared key?
Per-user resolution. Each tool call uses the signed-in user's Avoma bearer token, so meeting notes and transcripts attribute to that user in the audit log.
Where is the Avoma token stored?
In Scalekit's AES-256 vault, namespaced per tenant. You revoke access from one dashboard without rotating a shared secret across every agent.
Can I limit what the agent does in Avoma?
Yes. Filter tool names in listScopedTools (for example avoma_meetings_list only) and Scalekit checks that scope before the API call.
What happens when a user revokes access?
The next Avoma tool call fails closed for that user. Other users and other connectors are unaffected. The revoke is logged.
Does the agent see every recording in the workspace?
Only the meeting notes and recordings the authorized Avoma bearer token can already read. Scalekit does not broaden that access; it vaults and scopes the existing token.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""avoma"": {
""url"": ""https://mcp.scalekit.com/avoma"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.avoma]
url = ""https://mcp.scalekit.com/avoma""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""avoma"": {
""url"": ""https://mcp.scalekit.com/avoma"",
""type"": ""http""
}
}
}