> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to Avoma

The Avoma connector lets your AI agent act in each user's Avoma account. Each user connects their own Avoma access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 45 tools.

**Authentication:** Bearer Token
**Categories:** Transcription, AI, Analytics, Productivity
**Tools:** 45: 32 read, 10 write, 3 destructive
**Users sign in with:** Access token
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=AVOMA)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Avoma connection

   In **AgentKit > Connections**, create an Avoma connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'avoma'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Avoma:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'avoma_meeting_outcomes_list',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "avoma"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize Avoma:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="avoma_meeting_outcomes_list",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user opens the link once and enters their Avoma credentials there. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'avoma_call_get',
  toolInput: {
    external_id: '<external_id>',
  },
  connector: 'avoma',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="avoma_call_get",
    tool_input={
        "external_id": "<external_id>",
    },
    connection_name="avoma",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `avoma_call_get`

Get Call · Read-only

Get a single call record by its external id.
Returns the call's phone numbers, direction, source, recording URL, timing, voicemail/answered flags, CRM associations, and the linked meeting and organization objects.
Use this when you already have a call's external_id; use avoma_calls_list to browse or search calls by date range.
Requires an external_id, typically obtained from avoma_calls_list or the dialer/CRM system that created the call.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `external_id` (`string`, required): Unique id of the call as assigned by the external dialer or CRM system that created it (e.g. HubSpot, Twilio, Zoom). Example: 1234567890

Example input: `{"external_id":"<external_id>"}`

### `avoma_calls_list`

List Calls · Read-only

List calls in the organization within a date range, optionally filtered by call direction.
Returns a paginated list of call records with external id, phone numbers, direction, source, recording URL, timing, voicemail/answered flags, and the linked meeting.
Use avoma_calls_list to browse or search calls by date range; use avoma_call_get to fetch a single call by its external_id.
Requires a from_date and to_date range.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `from_date` (`string`, required): Retrieve calls that started at or after this date-time (UTC), in ISO 8601 format. Example: 2024-01-01T00:00:00Z
- `to_date` (`string`, required): Retrieve calls that started at or before this date-time (UTC), in ISO 8601 format. Example: 2024-01-31T23:59:59Z
- `direction` (`string`, optional): Filter calls by direction: 'inbound' returns only inbound calls, 'outbound' returns only outbound calls. Leave unset to return both. One of: `inbound`, `outbound`.

Example input: `{"from_date":"<from_date>","to_date":"<to_date>"}`

### `avoma_engagement_metrics_list`

List Engagement Metrics · Read-only

List engagement analytics for every user in the organization over a date range.
Returns paginated per-user metrics such as conversations listened, snippets listened, conversations shared and commented, total comments, and listened duration/percentage.
Use this to compare engagement across the whole team; use avoma_user_engagement_list for metrics scoped to one user's participants, or avoma_engagement_summary_get for an aggregated organization-wide total instead of per-user rows.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `from_date` (`string`, required): Start of the date range (inclusive), as an ISO 8601 UTC datetime. Only meetings that started at or after this time are included. Example: 2024-01-01T00:00:00Z
- `to_date` (`string`, required): End of the date range (inclusive), as an ISO 8601 UTC datetime. Only meetings that started at or before this time are included. Example: 2024-01-31T23:59:59Z
- `is_call` (`boolean`, optional): Filter by meeting type: true for voice calls only, false for video meetings only. Leave unset to include both.
- `is_impromptu` (`boolean`, optional): Filter by whether the meeting was unscheduled/ad-hoc: true for impromptu meetings only, false for scheduled meetings only.
- `is_internal` (`boolean`, optional): Filter by attendee composition: true for internal-only meetings (no external attendees), false for meetings with at least one external attendee. Leave unset to include both.
- `meeting_outcome_uuid` (`array`, optional): Restrict results to meetings with one or more specific meeting outcome UUIDs. Each entry is sent as a repeated query parameter. Example: ["9c4b1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10"]
- `meeting_type_uuid` (`array`, optional): Restrict results to meetings with one or more specific meeting type UUIDs. Each entry is sent as a repeated query parameter. Example: ["7f2a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10"]
- `o` (`string`, optional): Field to order results by. Prefix with '-' for descending order. One of: user_email, -user_email, conversations_listened, -conversations_listened, snippets_listened, -snippets_listened, conversations_shared, -conversations_shared, conversations_commented, -conversations_commented, total_comments, -total_comments, conversations_listened_duration, -conversations_listened_duration, conversations_listened_percent, -conversations_listened_percent. Example: -conversations_listened. One of: `user_email`, `-user_email`, `conversations_listened`, `-conversations_listened`, `snippets_listened`, `-snippets_listened`, `conversations_shared`, `-conversations_shared`, `conversations_commented`, `-conversations_commented`, `total_comments`, `-total_comments`, `conversations_listened_duration`, `-conversations_listened_duration`, `conversations_listened_percent`, `-conversations_listened_percent`.
- `page` (`integer`, optional): Page number to retrieve, starting at 1. Defaults to 1. Default: `1`.
- `page_size` (`integer`, optional): Number of user rows to return per page. Must be between 1 and 100. Defaults to 10. Default: `10`.
- `recording_duration__gte` (`number`, optional): Only include meetings whose recording duration is greater than or equal to this many seconds.
- `recording_duration__lte` (`number`, optional): Only include meetings whose recording duration is less than or equal to this many seconds.
- `shared_meetings_only` (`boolean`, optional): If true, only include meetings that were shared with others.
- `user_email` (`array`, optional): Restrict results to one or more specific user email addresses. Each entry is sent as a repeated query parameter. Example: ["rep@company.com"]

Example input: `{"from_date":"<from_date>","to_date":"<to_date>"}`

### `avoma_engagement_summary_get`

Get Engagement Summary · Read-only

Get an aggregated engagement summary across all users in the organization over a date range.
Returns organization-wide totals such as total conversations, shares, and comments, rolled up into a single summary object.
Use this for an overall organization total; use avoma_engagement_metrics_list for a paginated per-user breakdown, or avoma_user_engagement_summary_get for the equivalent summary scoped to one user.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `from_date` (`string`, required): Start of the date range (inclusive), as an ISO 8601 UTC datetime. Only meetings that started at or after this time are included. Example: 2024-01-01T00:00:00Z
- `to_date` (`string`, required): End of the date range (inclusive), as an ISO 8601 UTC datetime. Only meetings that started at or before this time are included. Example: 2024-01-31T23:59:59Z
- `is_call` (`boolean`, optional): Filter by meeting type: true for voice calls only, false for video meetings only. Leave unset to include both.
- `is_impromptu` (`boolean`, optional): Filter by whether the meeting was unscheduled/ad-hoc: true for impromptu meetings only, false for scheduled meetings only.
- `is_internal` (`boolean`, optional): Filter by attendee composition: true for internal-only meetings (no external attendees), false for meetings with at least one external attendee. Leave unset to include both.
- `meeting_outcome_uuid` (`array`, optional): Restrict the summary to meetings with one or more specific meeting outcome UUIDs. Each entry is sent as a repeated query parameter. Example: ["9c4b1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10"]
- `meeting_type_uuid` (`array`, optional): Restrict the summary to meetings with one or more specific meeting type UUIDs. Each entry is sent as a repeated query parameter. Example: ["7f2a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10"]
- `recording_duration__gte` (`number`, optional): Only include meetings whose recording duration is greater than or equal to this many seconds.
- `recording_duration__lte` (`number`, optional): Only include meetings whose recording duration is less than or equal to this many seconds.
- `shared_meetings_only` (`boolean`, optional): If true, only include meetings that were shared with others.
- `user_email` (`array`, optional): Restrict the summary to one or more specific user email addresses. Each entry is sent as a repeated query parameter. Example: ["rep@company.com"]

Example input: `{"from_date":"<from_date>","to_date":"<to_date>"}`

### `avoma_meeting_get`

Get Meeting · Read-only

Get a single Avoma meeting by its UUID.
Returns the meeting's subject, schedule, state, organizer and attendees, purpose/outcome, and readiness flags for transcript, audio, video, and notes.
Use this when you already have a meeting UUID; use avoma_meetings_list to search or browse meetings by date range or other criteria.
Requires a meeting uuid, typically obtained from avoma_meetings_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): Unique ID (UUID) of the Avoma meeting to retrieve. Obtain this from avoma_meetings_list or another Avoma tool that returns meeting records. Example: 3c1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10
- `include_crm_associations` (`boolean`, optional): Whether to include the meeting's linked CRM associations (CRM object type and id, e.g. a Salesforce or HubSpot contact, account, or opportunity) in the response. Defaults to false. Default: `false`.

Example input: `{"uuid":"<uuid>"}`

### `avoma_meeting_insights_get`

Get Meeting Insights · Read-only

Get AI-generated insights for a completed meeting: notes, keyword tracking, and speakers.
Returns AI notes (timestamped snippets with note type and speaker), keyword occurrence and popularity data grouped by custom category, and the list of meeting speakers with their rep/customer flag.
Use this after the meeting has finished processing; the meeting's state must be 'completed' or this call fails. Use avoma_meeting_get to check meeting state first.
Requires a meeting_uuid, typically obtained from avoma_meetings_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `meeting_uuid` (`string`, required): Unique ID (UUID) of the meeting to get insights for. Obtain this from avoma_meetings_list or avoma_meeting_get. Example: 3c1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10

Example input: `{"meeting_uuid":"<meeting_uuid>"}`

### `avoma_meeting_outcome_get`

Get Meeting Outcome · Read-only

Get a single Avoma meeting outcome by its uuid.
Returns the outcome's uuid, label, and description.
Use this when you already have a meeting outcome uuid; use avoma_meeting_outcomes_list to browse or search all outcomes.
Requires a meeting outcome uuid, typically obtained from avoma_meeting_outcomes_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): Unique ID (UUID) of the Avoma meeting outcome to retrieve. Obtain this from avoma_meeting_outcomes_list. Example: 9c4b1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10

Example input: `{"uuid":"<uuid>"}`

### `avoma_meeting_outcomes_list`

List Meeting Outcomes · Read-only

List all meeting outcomes configured for your Avoma organization.
Returns each outcome's uuid, label, and description.
Use this to browse outcomes or find a uuid for avoma_meeting_outcome_get, avoma_meeting_outcome_update, or avoma_meeting_outcome_delete.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `avoma_meeting_recording_get`

Get Meeting Recording · Read-only

Get the recording for a specific Avoma meeting by meeting UUID, returning signed download URLs for the audio and video files.
Returns a single recording object: its own recording UUID, the meeting UUID, audio_url, video_url, and the expiry time (valid_till) for those URLs; if the video is still processing, a 202 response is returned with a status message instead of the URLs.
Use avoma_meeting_recording_get when you have a meeting UUID; use avoma_recording_get when you already have the recording's own UUID.
Requires a meeting uuid, typically obtained from avoma_meetings_list or avoma_meeting_get.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `meeting_uuid` (`string`, required): Unique ID (UUID) of the Avoma meeting whose recording should be retrieved. Obtain this from avoma_meetings_list or avoma_meeting_get. Example: 3c1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10

Example input: `{"meeting_uuid":"<meeting_uuid>"}`

### `avoma_meeting_segments_get`

Get Meeting Segments · Read-only

Get the topic/segment breakdown for a meeting, as tracked by Avoma's conversation analytics.
Returns a single object whose keys are segment types (e.g. intro, agenda, demo, pricing, objection, next_steps, overview, pain_point, meeting) and whose values are arrays of [start_seconds, end_seconds] time ranges where that segment occurred in the recording.
Use this to see where in a meeting recording specific conversation topics happened; use avoma_meeting_insights_get for AI notes and keywords instead of topic timing.
Requires a meeting uuid, typically obtained from avoma_meetings_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): Unique ID (UUID) of the meeting to get segments for. Obtain this from avoma_meetings_list or avoma_meeting_get. Example: 3c1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10

Example input: `{"uuid":"<uuid>"}`

### `avoma_meeting_sentiments_list`

List Meeting Sentiments · Read-only

List the sentiment timeline for a meeting, as tracked by Avoma's conversation analytics.
Returns an array of sentiment entries, each with an overall sentiment score and a sentiment_ranges array of {score, time_range} objects showing how sentiment shifted over the recording.
Use this to analyze how positive or negative a conversation was over time; use avoma_meeting_insights_get for AI notes and keywords instead of sentiment.
Requires a meeting_uuid, typically obtained from avoma_meetings_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `meeting_uuid` (`string`, required): Unique ID (UUID) of the meeting to fetch sentiments for. Obtain this from avoma_meetings_list or avoma_meeting_get. Example: 3c1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10

Example input: `{"meeting_uuid":"<meeting_uuid>"}`

### `avoma_meeting_type_get`

Get Meeting Type · Read-only

Get a single Avoma meeting type by its UUID.
Returns the meeting type's uuid, label, and description.
Use this when you already have a meeting type uuid; use avoma_meeting_types_list to browse or find a meeting type uuid first.
Requires a meeting type uuid, typically obtained from avoma_meeting_types_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): Unique ID (UUID) of the Avoma meeting type to retrieve. Obtain this from avoma_meeting_types_list. Example: 9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7

Example input: `{"uuid":"<uuid>"}`

### `avoma_meeting_types_list`

List Meeting Types · Read-only

List all meeting types defined for your Avoma organization.
Returns each meeting type's uuid, label, and description.
Use this to browse available meeting types or find a meeting type uuid; use avoma_meeting_type_get to fetch a single meeting type once you have its uuid.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `avoma_meetings_list`

List Meetings · Read-only

List meetings in the organization within a date range, optionally filtered by call type, internal/external attendees, or linked CRM records.
Returns a paginated list of meeting records with subject, schedule, state, organizer, attendees, purpose/outcome, and readiness flags for transcript, audio, video, and notes.
Use avoma_meetings_list to browse or search meetings by date range; use avoma_meeting_get to fetch a single meeting by its UUID.
Requires a from_date and to_date range.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `from_date` (`string`, required): Retrieve meetings that started at or after this date-time (UTC), in ISO 8601 format. Example: 2024-01-01T00:00:00Z
- `to_date` (`string`, required): Retrieve meetings that started at or before this date-time (UTC), in ISO 8601 format. Example: 2024-01-31T23:59:59Z
- `attendee_emails` (`string`, optional): Comma-separated list of attendee email addresses to filter by. Meetings that include any of the listed attendees are returned. Example: john.doe@example.com,kelly@acme.com
- `crm_account_ids` (`string`, optional): Comma-separated list of CRM account external IDs to filter meetings by their linked account.
- `crm_contact_ids` (`string`, optional): Comma-separated list of CRM contact external IDs to filter meetings by their linked contact.
- `crm_lead_ids` (`string`, optional): Comma-separated list of CRM lead external IDs to filter meetings by their linked lead.
- `crm_opportunity_ids` (`string`, optional): Comma-separated list of CRM opportunity external IDs to filter meetings by their linked opportunity/deal.
- `include_crm_associations` (`boolean`, optional): Whether to include each meeting's linked CRM associations (CRM object type and id, e.g. a Salesforce or HubSpot contact, account, or opportunity) in the response. Defaults to false. Default: `false`.
- `is_call` (`boolean`, optional): Filter by meeting type: true returns only voice call meetings, false returns only video call meetings. Leave unset to return both.
- `is_internal` (`boolean`, optional): Filter by attendee composition: true returns only meetings where every attendee is from within the organization, false returns only meetings that include at least one external attendee. Leave unset to return both.
- `o` (`string`, optional): Ordering of the returned meetings by start time. 'start_at' sorts ascending (oldest first), '-start_at' sorts descending (newest first, the default). One of: `start_at`, `-start_at`. Default: `-start_at`.
- `page_size` (`integer`, optional): Number of meeting records to return per page. Maximum 100. Defaults to 10 if not provided. Default: `10`.
- `recording_duration__gte` (`number`, optional): Only return meetings whose recording duration (in seconds) is greater than or equal to this value. Setting this filter excludes meetings without recordings by default. Example: 300 (5 minutes).

Example input: `{"from_date":"<from_date>","to_date":"<to_date>"}`

### `avoma_notes_list`

List Notes · Read-only

List AI-generated meeting notes within a date range, optionally filtered by meeting or smart category.
Returns a paginated list (count, next, previous, results) of note objects, each with its created and modified timestamps and a data field holding the note content in the requested output_format (JSON object, HTML, or Markdown).
Use avoma_notes_list to browse or export meeting notes across a date range, for one meeting, or for one smart category. Use avoma_meeting_insights_get for a single meeting's AI-generated insights in one call.
Requires from_date and to_date; narrow further with meeting_uuid or custom_category.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `from_date` (`string`, required): Return notes for meetings that started at or after this date-time (UTC), in ISO 8601 format. Example: 2024-01-01T00:00:00Z
- `to_date` (`string`, required): Return notes for meetings that started at or before this date-time (UTC), in ISO 8601 format. Example: 2024-01-31T23:59:59Z
- `custom_category` (`string`, optional): Unique ID (UUID) of a smart (custom) category; only notes belonging to this category are returned. Example: 6f9619ff-8b86-d011-b42d-00cf4fc964ff
- `meeting_uuid` (`string`, optional): Unique ID (UUID) of a specific meeting to fetch notes for, narrowing the results to that meeting only. Example: 3c1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10
- `o` (`string`, optional): Ordering field for the results. Prefix with - for descending order. One of start_at, -start_at, modified, -modified. Defaults to -start_at (most recent meeting first). One of: `start_at`, `-start_at`, `modified`, `-modified`. Default: `-start_at`.
- `output_format` (`string`, optional): Format of the returned note content. One of json, html, or markdown. Defaults to json. One of: `json`, `html`, `markdown`. Default: `json`.
- `page_size` (`integer`, optional): Number of notes to return per page (maximum 20). Defaults to 5. Default: `5`.

Example input: `{"from_date":"<from_date>","to_date":"<to_date>"}`

### `avoma_recording_get`

Get Recording · Read-only

Get a single Avoma recording by its own UUID, returning signed download URLs for the audio and video files.
Returns the recording's linked meeting UUID, audio_url, video_url, and the expiry time (valid_till) for those URLs; if the video is still processing, a 202 response is returned with a status message instead of the URLs.
Use avoma_recording_get when you already have a recording UUID; use avoma_meeting_recording_get when you only have the meeting UUID.
Requires a recording uuid, typically obtained from avoma_meeting_recording_get or another Avoma tool that returns recording records.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): Unique ID (UUID) of the Avoma recording to retrieve. Obtain this from avoma_meeting_recording_get or another Avoma tool that returns recording records. Example: 3c1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10

Example input: `{"uuid":"<uuid>"}`

### `avoma_revenue_intel_timeline_details_list`

List Revenue Intelligence Timeline Details · Read-only

[Avoma Beta] List the individual meeting, call, or email records behind a CRM entity's revenue intelligence timeline, filtered by engagement type and optionally by participant or host.
Returns a paginated response with count, next/previous page URLs, total recording duration, and a results array of engagement records (shape varies by object_type).
Use this to drill into the specific records behind an aggregate; use avoma_revenue_intel_timeline_get for the aggregated day/week/month trend instead.
This is an Avoma Beta endpoint (tag "Revenue Intelligence [Beta]") — its parameters and response shape may change upstream without notice.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `object_type` (`string`, required): Type of CRM entity to query. One of: opportunity, account, contact, lead. One of: `opportunity`, `account`, `contact`, `lead`.
- `start_at` (`string`, required): Start of the timeline range, as an ISO 8601 UTC datetime. Example: 2024-01-01T00:00:00Z
- `type` (`string`, required): Type of engagement record to retrieve. One of: meeting, call, email. One of: `meeting`, `call`, `email`.
- `crm_entity_id` (`string`, optional): External ID of the specific CRM entity to filter by (e.g. a Salesforce Opportunity ID). Leave blank to include all entities of the given object_type. Example: 006D000000abcdEFG
- `email` (`string`, optional): Restrict results to records involving this specific participant email address.
- `end_at` (`string`, optional): End of the timeline range, as an ISO 8601 UTC datetime. Defaults to the current time if not provided. Example: 2024-06-30T23:59:59Z
- `host` (`string`, optional): Restrict results by who initiated the engagement. One of: rep, customer. Leave blank to include both. One of: `rep`, `customer`.
- `page` (`integer`, optional): Page number to retrieve, starting at 1. Defaults to 1. Default: `1`.
- `page_size` (`integer`, optional): Number of records to return per page. Must be between 1 and 100. Defaults to 10. Default: `10`.

Example input: `{"object_type":"opportunity","start_at":"<start_at>","type":"meeting"}`

### `avoma_revenue_intel_timeline_get`

Get Revenue Intelligence Timeline · Read-only

[Avoma Beta] Get aggregated timeline engagement metrics for a CRM entity (opportunity, account, contact, or lead), bucketed by day, week, or month.
Returns time series arrays of [timestamp, value] pairs for rep and customer meeting/call time and counts, unrecorded meeting/call counts, and rep/customer email counts, aggregated by the chosen interval.
Use this for a chart-ready aggregated trend; use avoma_revenue_intel_timeline_details_list for the individual paginated meeting, call, or email records behind the aggregate.
This is an Avoma Beta endpoint (tag "Revenue Intelligence [Beta]") — its parameters and response shape may change upstream without notice.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `object_type` (`string`, required): Type of CRM entity to query the timeline for. One of: opportunity, account, contact, lead. One of: `opportunity`, `account`, `contact`, `lead`.
- `start_at` (`string`, required): Start of the timeline range, as an ISO 8601 UTC datetime. Example: 2024-01-01T00:00:00Z
- `crm_entity_id` (`string`, optional): External ID of the specific CRM entity to filter by (e.g. a Salesforce Opportunity ID). Leave blank to aggregate across all entities of the given object_type. Example: 006D000000abcdEFG
- `date_interval` (`string`, optional): Time bucket used to aggregate the timeline data. One of: day, week, month. Defaults to day. One of: `day`, `week`, `month`. Default: `day`.
- `end_at` (`string`, optional): End of the timeline range, as an ISO 8601 UTC datetime. Defaults to the current time if not provided. Example: 2024-06-30T23:59:59Z

Example input: `{"object_type":"opportunity","start_at":"<start_at>"}`

### `avoma_scorecard_evaluations_list`

List Scorecard Evaluations · Read-only

List completed scorecard evaluations for meetings in your Avoma organization, optionally filtered by date range, scorecard template, meeting, or evaluator.
Returns a paginated list of evaluations, each with its scorecard template name/uuid, the associated meeting, the evaluator, and the per-question answers with justifications.
Use this to review coaching scores; use avoma_scorecards_list or avoma_scorecard_get to see the questions a scorecard evaluates.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `from_date` (`string`, optional): Start of the date range (UTC), as an ISO 8601 datetime. Only scorecard evaluations for meetings on or after this time are included. Example: 2024-01-01T00:00:00Z
- `meeting_uuid` (`string`, optional): UUID of a single meeting to fetch scorecard evaluations for. Obtain this from avoma_meeting_get or avoma_meetings_list. Example: 3c1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10
- `page_size` (`integer`, optional): Number of scorecard evaluations to return per page, up to 100. Defaults to 10. Default: `10`.
- `scorecard_uuids` (`array`, optional): Restrict results to evaluations completed against one or more specific scorecard template UUIDs (from avoma_scorecards_list). Each entry is sent as a repeated query parameter. Example: ["4f1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10"]
- `to_date` (`string`, optional): End of the date range (UTC), as an ISO 8601 datetime. Only scorecard evaluations for meetings on or before this time are included. Example: 2024-01-31T23:59:59Z
- `user_emails` (`array`, optional): Restrict results to evaluations completed for one or more specific user email addresses. Each entry is sent as a repeated query parameter. Example: ["rep@company.com"]

Example input: `{}`

### `avoma_scorecard_get`

Get Scorecard · Read-only

Get a single Avoma scorecard template by its uuid.
Returns the template's uuid, name, description, AI flag, creator/last modifier, and its full list of questions with their type and answer choices.
Use this when you already have a scorecard uuid; use avoma_scorecards_list to browse all templates.
Requires a scorecard uuid, typically obtained from avoma_scorecards_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): Unique ID (UUID) of the Avoma scorecard template to retrieve. Obtain this from avoma_scorecards_list. Example: 4f1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10

Example input: `{"uuid":"<uuid>"}`

### `avoma_scorecards_list`

List Scorecards · Read-only

List all scorecard templates available in your Avoma organization, used for call and meeting coaching.
Returns each template's uuid, name, description, AI flag, creator/last modifier, and its full list of questions with their type and answer choices.
Use this to browse available coaching scorecards or find a uuid for avoma_scorecard_get.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `avoma_smart_categories_list`

List Smart Categories · Read-only

List all smart (custom) categories defined in the organization, used to tag and organize AI-generated meeting notes.
Returns a paginated list (count, next, previous, results) of smart category objects, each with its uuid, name, key, is_default flag, tracked keywords, prompts, and notes settings.
Use avoma_smart_categories_list to browse or look up a category's uuid before filtering avoma_notes_list by custom_category. Use avoma_smart_category_get once you have a specific category's uuid.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `o` (`string`, optional): Ordering field for the results. Prefix with - for descending order. One of start_at, -start_at, modified, -modified, name, -name, background_color, -background_color. Defaults to -start_at. One of: `start_at`, `-start_at`, `modified`, `-modified`, `name`, `-name`, `background_color`, `-background_color`. Default: `-start_at`.

Example input: `{}`

### `avoma_smart_category_get`

Get Smart Category · Read-only

Get a single Avoma smart (custom) category by its UUID.
Returns the category's uuid, name, key, is_default flag, tracked keywords (with labels and variations), prompts (with labels and variations), and its notes settings (augmented/keyword/prompt notes toggles and prompt extraction options).
Use avoma_smart_category_get when you already have a smart category's uuid; use avoma_smart_categories_list to browse categories or look up the uuid first.
Requires a smart category uuid, typically obtained from avoma_smart_categories_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): Unique ID (UUID) of the Avoma smart category to retrieve. Obtain this from avoma_smart_categories_list. Example: 6f9619ff-8b86-d011-b42d-00cf4fc964ff

Example input: `{"uuid":"<uuid>"}`

### `avoma_snippets_list`

List Snippets · Read-only

List meeting snippets (short AI-generated or user-created highlight clips) for one meeting, or across the organization within a date range.
Returns a paginated list (count, next, previous, results) of snippet objects with their timestamps, titles, and descriptions.
Use avoma_snippets_list with meeting_uuid to get all snippets for one meeting, or with from_date and to_date (max 180-day span) to browse snippets organization-wide; filter by is_ai_generated to separate AI-made highlights from user-created ones.
Provide either meeting_uuid, or both from_date and to_date.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `from_date` (`string`, optional): Return snippets for meetings that started at or after this date-time (UTC), in ISO 8601 format. Required together with to_date when meeting_uuid is not provided; the range cannot exceed 180 days. Example: 2024-01-01T00:00:00Z
- `is_ai_generated` (`boolean`, optional): Filter snippets by their source. true returns only AI-generated snippets, false returns only user-created snippets, and omitting this field returns both.
- `meeting_uuid` (`string`, optional): Unique ID (UUID) of a specific meeting to fetch snippets for. Either this or both from_date and to_date must be provided. Example: 3c1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10
- `page` (`integer`, optional): Page number for pagination, between 1 and 100.
- `page_size` (`integer`, optional): Number of snippets to return per page (maximum 100). Defaults to 10. Default: `10`.
- `to_date` (`string`, optional): Return snippets for meetings that started at or before this date-time (UTC), in ISO 8601 format. Required together with from_date when meeting_uuid is not provided; the range cannot exceed 180 days. Example: 2024-01-31T23:59:59Z

Example input: `{}`

### `avoma_template_get`

Get Template · Read-only

Get a single Avoma note-taking template by its UUID.
Returns the template's name, owner email, privacy setting, associated meeting types, default flag, and text_slate content structure.
Use this when you already have a template uuid; use avoma_templates_list to browse or find a template uuid first.
Requires a template uuid, typically obtained from avoma_templates_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): Unique ID (UUID) of the Avoma template to retrieve. Obtain this from avoma_templates_list. Example: 3c1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10

Example input: `{"uuid":"<uuid>"}`

### `avoma_templates_list`

List Templates · Read-only

List all note-taking templates defined for your Avoma organization.
Returns each template's uuid, name, owner email, privacy setting, associated meeting types, default flag, and text_slate content structure.
Use this to browse available templates or find a template uuid; use avoma_template_get to fetch a single template's full detail once you have its uuid.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `avoma_transcription_get`

Get Transcription · Read-only

Get a single Avoma transcription by its own UUID.
Returns the transcription's meeting_uuid, a signed transcription_vtt_url, the speakers array (id, name, email, is_rep), and the transcript array (per-paragraph text with speaker_id and word timestamps).
Use avoma_transcription_get when you already have a transcription's own uuid; use avoma_transcriptions_list to browse transcriptions by date range or to fetch one directly by meeting_uuid.
Requires a transcription uuid, typically obtained from avoma_transcriptions_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): Unique ID (UUID) of the Avoma transcription to retrieve. Obtain this from avoma_transcriptions_list. Example: 095be615-a8ad-4c33-8e9c-c7612fbf6c9f

Example input: `{"uuid":"<uuid>"}`

### `avoma_transcriptions_list`

List Transcriptions · Read-only

List Avoma meeting transcriptions within a date range, or fetch a single meeting's transcription directly by meeting UUID.
Returns, per meeting, the transcription uuid, meeting_uuid, a signed transcription_vtt_url, the speakers array (id, name, email, is_rep), and the transcript array (per-paragraph text with speaker_id and word timestamps). When meeting_uuid is provided the response is that meeting's transcription; otherwise it is a paginated list (count, next, previous, results).
Use avoma_transcriptions_list to browse or filter transcriptions by date range, attendee, or CRM association, or to fetch one meeting's transcription by meeting_uuid. Use avoma_transcription_get when you already have a transcription's own uuid.
Either meeting_uuid, or both from_date and to_date, must be provided.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `attendee_emails` (`string`, optional): Comma-separated list of attendee email addresses to filter meetings by; meetings with any of these attendees are returned. Example: john.doe@example.com,kelly@acme.com
- `crm_account_ids` (`string`, optional): Comma-separated list of CRM account external IDs to filter transcriptions by.
- `crm_contact_ids` (`string`, optional): Comma-separated list of CRM contact external IDs to filter transcriptions by.
- `crm_lead_ids` (`string`, optional): Comma-separated list of CRM lead external IDs to filter transcriptions by.
- `crm_opportunity_ids` (`string`, optional): Comma-separated list of CRM opportunity external IDs to filter transcriptions by.
- `from_date` (`string`, optional): Return transcriptions for meetings that started at or after this date-time (UTC), in ISO 8601 format. Required together with to_date when meeting_uuid is not provided; ignored (may be omitted) when meeting_uuid is set. Example: 2024-01-01T00:00:00Z
- `meeting_uuid` (`string`, optional): Unique ID (UUID) of a specific meeting whose transcription should be returned directly, bypassing pagination and the date-range filters. Example: 3c1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10
- `page` (`integer`, optional): Page number for pagination. Only used when meeting_uuid is not provided. Starts at 1.
- `page_size` (`integer`, optional): Number of transcriptions to return per page (maximum 100). Only used when meeting_uuid is not provided.
- `to_date` (`string`, optional): Return transcriptions for meetings that started at or before this date-time (UTC), in ISO 8601 format. Required together with from_date when meeting_uuid is not provided; ignored (may be omitted) when meeting_uuid is set. Example: 2024-01-31T23:59:59Z

Example input: `{}`

### `avoma_user_engagement_list`

List User Engagement · Read-only

List participant-level engagement metrics for one specific user over a date range.
Returns paginated rows showing that user's interaction with each participant: conversations listened, snippets listened, conversations shared and commented, total comments, average playback speed, and listened duration/percentage.
Use this to drill into a single user's activity by participant; use avoma_engagement_metrics_list for a per-user breakdown across the whole organization instead.
Requires a user uuid, typically obtained from avoma_users_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `from_date` (`string`, required): Start of the date range (inclusive), as an ISO 8601 UTC datetime. Only meetings that started at or after this time are included. Example: 2024-01-01T00:00:00Z
- `to_date` (`string`, required): End of the date range (inclusive), as an ISO 8601 UTC datetime. Only meetings that started at or before this time are included. Example: 2024-01-31T23:59:59Z
- `user_uuid` (`string`, required): UUID of the Avoma user to get engagement metrics for. Obtain this from avoma_users_list. Example: 3c1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10
- `is_call` (`boolean`, optional): Filter by meeting type: true for voice calls only, false for video meetings only. Leave unset to include both.
- `is_impromptu` (`boolean`, optional): Filter by whether the meeting was unscheduled/ad-hoc: true for impromptu meetings only, false for scheduled meetings only.
- `is_internal` (`boolean`, optional): Filter by attendee composition: true for internal-only meetings (no external attendees), false for meetings with at least one external attendee. Leave unset to include both.
- `meeting_outcome_uuid` (`array`, optional): Restrict results to meetings with one or more specific meeting outcome UUIDs. Each entry is sent as a repeated query parameter. Example: ["9c4b1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10"]
- `meeting_type_uuid` (`array`, optional): Restrict results to meetings with one or more specific meeting type UUIDs. Each entry is sent as a repeated query parameter. Example: ["7f2a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10"]
- `o` (`string`, optional): Field to order results by. Prefix with '-' for descending order. One of: participant_email, -participant_email, conversations_listened, -conversations_listened, snippets_listened, -snippets_listened, conversations_shared, -conversations_shared, conversations_commented, -conversations_commented, total_comments, -total_comments, avg_playback_speed, -avg_playback_speed, conversations_listened_duration, -conversations_listened_duration, conversations_listened_percent, -conversations_listened_percent. Example: -conversations_listened. One of: `participant_email`, `-participant_email`, `conversations_listened`, `-conversations_listened`, `snippets_listened`, `-snippets_listened`, `conversations_shared`, `-conversations_shared`, `conversations_commented`, `-conversations_commented`, `total_comments`, `-total_comments`, `avg_playback_speed`, `-avg_playback_speed`, `conversations_listened_duration`, `-conversations_listened_duration`, `conversations_listened_percent`, `-conversations_listened_percent`.
- `page` (`integer`, optional): Page number to retrieve, starting at 1. Defaults to 1. Default: `1`.
- `page_size` (`integer`, optional): Number of participant rows to return per page. Must be between 1 and 100. Defaults to 10. Default: `10`.
- `participant_email` (`array`, optional): Restrict results to one or more specific participant email addresses. Each entry is sent as a repeated query parameter. Example: ["customer@example.com"]
- `recording_duration__gte` (`number`, optional): Only include meetings whose recording duration is greater than or equal to this many seconds.
- `recording_duration__lte` (`number`, optional): Only include meetings whose recording duration is less than or equal to this many seconds.
- `shared_meetings_only` (`boolean`, optional): If true, only include meetings that were shared with others.

Example input: `{"from_date":"<from_date>","to_date":"<to_date>","user_uuid":"<user_uuid>"}`

### `avoma_user_engagement_summary_get`

Get User Engagement Summary · Read-only

Get an aggregated engagement summary for one specific user's participants over a date range.
Returns summary statistics showing how that user engaged across all of their participants, rolled up into a single summary object.
Use this for one user's overall total; use avoma_user_engagement_list for a paginated per-participant breakdown, or avoma_engagement_summary_get for the equivalent summary across the whole organization.
Requires a user uuid, typically obtained from avoma_users_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `from_date` (`string`, required): Start of the date range (inclusive), as an ISO 8601 UTC datetime. Only meetings that started at or after this time are included. Example: 2024-01-01T00:00:00Z
- `to_date` (`string`, required): End of the date range (inclusive), as an ISO 8601 UTC datetime. Only meetings that started at or before this time are included. Example: 2024-01-31T23:59:59Z
- `user_uuid` (`string`, required): UUID of the Avoma user to get the participant engagement summary for. Obtain this from avoma_users_list. Example: 3c1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10
- `is_call` (`boolean`, optional): Filter by meeting type: true for voice calls only, false for video meetings only. Leave unset to include both.
- `is_impromptu` (`boolean`, optional): Filter by whether the meeting was unscheduled/ad-hoc: true for impromptu meetings only, false for scheduled meetings only.
- `is_internal` (`boolean`, optional): Filter by attendee composition: true for internal-only meetings (no external attendees), false for meetings with at least one external attendee. Leave unset to include both.
- `meeting_outcome_uuid` (`array`, optional): Restrict the summary to meetings with one or more specific meeting outcome UUIDs. Each entry is sent as a repeated query parameter. Example: ["9c4b1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10"]
- `meeting_type_uuid` (`array`, optional): Restrict the summary to meetings with one or more specific meeting type UUIDs. Each entry is sent as a repeated query parameter. Example: ["7f2a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10"]
- `participant_email` (`array`, optional): Restrict the summary to one or more specific participant email addresses. Each entry is sent as a repeated query parameter. Example: ["customer@example.com"]
- `recording_duration__gte` (`number`, optional): Only include meetings whose recording duration is greater than or equal to this many seconds.
- `recording_duration__lte` (`number`, optional): Only include meetings whose recording duration is less than or equal to this many seconds.
- `shared_meetings_only` (`boolean`, optional): If true, only include meetings that were shared with others.

Example input: `{"from_date":"<from_date>","to_date":"<to_date>","user_uuid":"<user_uuid>"}`

### `avoma_user_get`

Get User · Read-only

Get a single Avoma user by their UUID.
Returns the user's first and last name, email, active status, role (name, display name, role type), position, status, and teams.
Use this when you already have a user UUID; use avoma_users_list to browse all users and find a UUID.
Requires a user uuid, typically obtained from avoma_users_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): Unique ID (UUID) of the Avoma user to retrieve. Obtain this from avoma_users_list. Example: 3c1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10

Example input: `{"uuid":"<uuid>"}`

### `avoma_users_list`

List Users · Read-only

List all users in the Avoma organization.
Returns each user's uuid, first and last name, email, active status, role (name, display name, role type), position, status, and teams.
Use this to browse the organization's users, or to find a user's uuid for avoma_user_get or the per-user engagement tools.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `avoma_call_create`

Create Call · Write

Ingest a call record into Avoma from an external dialer or CRM system, so Avoma can process its recording.
Creates and returns a call record with its processing state; Avoma downloads the recording from the given URL and processes it like a meeting.
Use avoma_call_create when a call happened outside Avoma (e.g. in HubSpot, Twilio, RingCentral) and you want Avoma to transcribe and analyze it; use avoma_call_update to change an existing call's metadata afterward.
Requires an Avoma user's email (whose license processes the call) and a publicly downloadable recording_url.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `direction` (`string`, required): Direction of the call: 'Inbound' or 'Outbound'. One of: `Inbound`, `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. Default: `false`.
- `to_name` (`string`, optional): Name of the person the call was made to.

Example input: `{"direction":"Inbound","external_id":"<external_id>","frm":"<frm>","participants":[{"email":"prospect@customer.com","name":"Jane Prospect"}],"recording_url":"<recording_url>","source":"<source>","start_at":"<start_at>","to":"<to>","user_email":"<user_email>"}`

### `avoma_call_update`

Update Call · Write

Update metadata on an existing call record after Avoma has finished processing it.
Returns the updated call record; only call-specific metadata fields can be changed (identifiers, timing, recording, and processing state cannot be changed).
Use avoma_call_update to correct or enrich a call's details (names, voicemail/answered flags, meeting subject/type/outcome, CRM associations) after avoma_call_create; use avoma_call_get to check a call's current state first.
Requires the call's external_id, and at least one field to update.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `external_id` (`string`, required): Unique id of the call to update, as assigned by the external dialer/CRM system that created it. Example: 1234567890
- `additional_details` (`string`, optional): Additional call metadata, as a JSON-encoded string. At least one updatable field must be provided in the request.
- `answered` (`boolean`, optional): Whether the call was answered. At least one updatable field must be provided in the request.
- `crm_association` (`array`, optional): CRM records to link to this call (e.g. a Salesforce or HubSpot contact, account, or opportunity). At least one updatable field must be provided in the request. Example: [{"crm_obj_id": "30447071570", "crm_obj_type": "account"}]
- `frm_name` (`string`, optional): Name of the caller (the 'from' participant). At least one updatable field must be provided in the request.
- `is_voicemail` (`boolean`, optional): Whether the call is a voicemail. At least one updatable field must be provided in the request.
- `meeting_outcome_uuid` (`string`, optional): UUID of the meeting outcome to associate with this call's meeting. At least one updatable field must be provided in the request.
- `meeting_purpose_uuid` (`string`, optional): UUID of the meeting purpose/type to associate with this call's meeting. At least one updatable field must be provided in the request.
- `subject` (`string`, optional): Subject/topic of the meeting associated with this call. At least one updatable field must be provided in the request.
- `to_name` (`string`, optional): Name of the callee (the 'to' participant). At least one updatable field must be provided in the request.

Example input: `{"external_id":"<external_id>"}`

### `avoma_meeting_outcome_create`

Create Meeting Outcome · Write

Create a new meeting outcome for your Avoma organization.
Returns the created outcome's uuid, label, and description.
Use this to define a new outcome label (e.g. Qualified, Not Interested) that meetings can later be tagged with.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `description` (`string`, required): Longer description explaining what this meeting outcome means. Example: Lead is qualified and ready for next steps
- `label` (`string`, required): Short name/label for the meeting outcome, up to 64 characters. Must be unique within your organization. Example: Qualified

Example input: `{"description":"<description>","label":"<label>"}`

### `avoma_meeting_outcome_update`

Update Meeting Outcome · Write

Update an existing Avoma meeting outcome's label and/or description.
Returns the updated outcome's uuid, label, and description.
Use this to rename an outcome or change its description; provide only the fields you want to change.
Requires a meeting outcome uuid, typically obtained from avoma_meeting_outcomes_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): Unique ID (UUID) of the Avoma meeting outcome to update. Obtain this from avoma_meeting_outcomes_list. Example: 9c4b1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10
- `description` (`string`, optional): New description for the meeting outcome. Omit to leave the current description unchanged. Provide at least one of label or description. Example: Lead is qualified and ready for next steps
- `label` (`string`, optional): New short name/label for the meeting outcome, up to 64 characters. Omit to leave the current label unchanged. Provide at least one of label or description. Example: Qualified

Example input: `{"uuid":"<uuid>"}`

### `avoma_meeting_type_create`

Create Meeting Type · Write

Create a new meeting type for your Avoma organization.
Returns the created meeting type with its uuid, label, and description.
Use this to add a new category of meeting (e.g. Discovery Call, QBR); use avoma_meeting_type_update to change an existing one instead.
The label must be unique within your organization — Avoma rejects a duplicate label.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `description` (`string`, required): Description of the meeting type, explaining when it should be used. Example: Initial discovery call with potential customers
- `label` (`string`, required): Label/name of the meeting type. Must be unique within your organization, up to 64 characters. Example: Discovery Call

Example input: `{"description":"<description>","label":"<label>"}`

### `avoma_meeting_type_update`

Update Meeting Type · Write

Update the label and/or description of an existing Avoma meeting type.
Returns the updated meeting type with its uuid, label, and description.
Use this to rename a meeting type or change its description; use avoma_meeting_type_create to add a new one instead.
Requires a meeting type uuid, typically obtained from avoma_meeting_types_list. You can supply just label, just description, or both.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): Unique ID (UUID) of the Avoma meeting type to update. Obtain this from avoma_meeting_types_list. Example: 9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7
- `description` (`string`, optional): New description for the meeting type. Leave unset to keep the current description. Example: Initial discovery call with potential customers
- `label` (`string`, optional): New label/name for the meeting type. Must be unique within your organization, up to 64 characters. Leave unset to keep the current label. Example: Discovery Call

Example input: `{"uuid":"<uuid>"}`

### `avoma_smart_category_create`

Create Smart Category · Write

Create a new smart (custom) category in Avoma, defining the keywords and prompts used to tag and generate AI notes for meetings.
Returns the created smart category object, including its generated uuid, name, keywords, prompts, and settings.
Use avoma_smart_category_create to set up a new tracking category (e.g. competitor mentions or a discovery question) before it starts appearing in avoma_smart_categories_list and avoma_notes_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `keywords` (`array`, required): Keywords or phrases Avoma should listen for in meetings to trigger this category. Example: ["competitor", "pricing comparison"]
- `name` (`string`, required): Name of the new smart category, shown in the Avoma UI and in notes tagged with it. Example: Competitor Mentions
- `prompts` (`array`, required): Prompt questions Avoma should use to extract and summarize relevant content for this category. Example: ["How did you hear about us"]
- `aug_notes_enabled` (`boolean`, optional): Whether to enable augmented notes (bookmark plus the surrounding transcript snippet) for this category. Defaults to the API's own default when omitted.
- `keyword_notes_enabled` (`boolean`, optional): Whether to enable keyword-based notes for this category. Defaults to the API's own default when omitted.
- `prompt_extract_length` (`string`, optional): How much surrounding context to extract around a matched prompt. One of short, medium, or long. One of: `short`, `medium`, `long`.
- `prompt_extract_strategy` (`string`, optional): Where the relevant answer typically appears relative to the matched prompt. One of after, before, or contains. One of: `after`, `before`, `contains`.

Example input: `{"keywords":["competitor","pricing comparison"],"name":"<name>","prompts":["How did you hear about us"]}`

### `avoma_smart_category_update`

Update Smart Category · Write

Update the keywords, prompts, or extraction settings of an existing Avoma smart category.
Returns the updated smart category with its name, settings, prompts, and keywords.
Use this to tune what a smart category detects in meetings; use a smart category create/list tool to obtain a uuid or make a new category instead.
Requires a smart category uuid, typically obtained by listing or creating smart categories in Avoma.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): Unique ID (UUID) of the Avoma smart category to update. Example: edf84cad-6301-475b-9dfb-14d1d7302778
- `keywords` (`array`, optional): Replacement list of keyword strings this smart category should match in meeting transcripts. Leave unset to keep the existing keywords. Example: ["pricing", "discount", "contract renewal"]
- `prompts` (`array`, optional): Replacement list of AI prompt strings used to detect and summarize this smart category in meetings. Leave unset to keep the existing prompts. Example: ["Did the customer mention budget constraints?"]
- `settings` (`object`, optional): Object controlling how this smart category extracts and displays matched content. Set aug_notes_enabled to true to also surface bookmarked/highlighted transcript snippets, and keyword_notes_enabled to true to generate notes purely from keyword matches. prompt_extract_length controls how much surrounding text each extract includes (short, medium, or long); prompt_extract_strategy controls whether the extract is taken from before, after, or around (contains) the matched text. Example: {"aug_notes_enabled": true, "keyword_notes_enabled": false, "prompt_extract_length": "medium", "prompt_extract_strategy": "contains"}

Example input: `{"uuid":"<uuid>"}`

### `avoma_template_create`

Create Template · Write

Create a new note-taking template in Avoma, linked to one or more meeting types and custom categories.
Returns the created template with its uuid, name, owner email, privacy setting, associated meeting types, default flag, and text_slate content structure.
Use this to define a new reusable notes template; use avoma_template_update to modify an existing one instead.
Requires at least one custom category uuid and one meeting type uuid, typically obtained from a smart category list/create tool and avoma_meeting_types_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `categories` (`array`, required): List of custom smart category UUIDs this template should include as note sections. Example: ["edf84cad-6301-475b-9dfb-14d1d7302778", "92bdf3d1-34dc-4aa2-aa90-737ef3ff4bca"]
- `meeting_type_uuids` (`array`, required): List of meeting type UUIDs this template applies to, obtained from avoma_meeting_types_list. Example: ["9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7", "b321142f-8084-4c69-a04f-0049f36cad9d"]
- `name` (`string`, required): Name of the new template. Example: Discovery Call Notes
- `email` (`string`, optional): Email of the user this template should be associated with. If the email belongs to a user in your organization, the template is associated with that user; otherwise it is associated with the oldest admin user. Example: rep@company.com
- `is_default` (`boolean`, optional): Whether this template should be the default template for its associated meeting types. Defaults to Avoma's own default (false) when omitted.
- `privacy` (`string`, optional): Visibility of the template. 'private' restricts it to the owner; 'organization' makes it available to the whole organization. Example: organization. One of: `private`, `organization`.

Example input: `{"categories":["edf84cad-6301-475b-9dfb-14d1d7302778","92bdf3d1-34dc-4aa2-aa90-737ef3ff4bca"],"meeting_type_uuids":["9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7","b321142f-8084-4c69-a04f-0049f36cad9d"],"name":"<name>"}`

### `avoma_template_update`

Update Template · Write

Replace an existing Avoma note-taking template's name, categories, and meeting type associations.
Returns the updated template with its uuid, name, owner email, privacy setting, associated meeting types, default flag, and text_slate content structure.
Use this to fully replace a template's name, categories, and meeting types; use avoma_smart_category_update for a smart category's own settings instead.
This is a full replace (PUT) — name, categories, and meeting_type_uuids must all be supplied even if unchanged. Requires a template uuid, typically obtained from avoma_templates_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `categories` (`array`, required): List of custom smart category UUIDs this template should include as note sections. This full replace requires the complete list even if unchanged. Example: ["edf84cad-6301-475b-9dfb-14d1d7302778", "92bdf3d1-34dc-4aa2-aa90-737ef3ff4bca"]
- `meeting_type_uuids` (`array`, required): List of meeting type UUIDs this template applies to, obtained from avoma_meeting_types_list. This full replace requires the complete list even if unchanged. Example: ["9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7", "b321142f-8084-4c69-a04f-0049f36cad9d"]
- `name` (`string`, required): Name of the template. This full replace requires the name even if it isn't changing. Example: Discovery Call Notes
- `uuid` (`string`, required): Unique ID (UUID) of the Avoma template to update. Obtain this from avoma_templates_list. Example: 3c1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10
- `email` (`string`, optional): Email of the user this template should be associated with. If the email belongs to a user in your organization, the template is associated with that user; otherwise it is associated with the oldest admin user. Example: rep@company.com
- `is_default` (`boolean`, optional): Whether this template should be the default template for its associated meeting types.
- `privacy` (`string`, optional): Visibility of the template. 'private' restricts it to the owner; 'organization' makes it available to the whole organization. Example: organization. One of: `private`, `organization`.

Example input: `{"categories":["edf84cad-6301-475b-9dfb-14d1d7302778","92bdf3d1-34dc-4aa2-aa90-737ef3ff4bca"],"meeting_type_uuids":["9d9fb43b-5aa1-49dd-a29d-2adf4497bfb7","b321142f-8084-4c69-a04f-0049f36cad9d"],"name":"<name>","uuid":"<uuid>"}`

### `avoma_meeting_drop`

Drop Meeting · Destructive

Remove Avoma's notetaking bot from an in-progress meeting, stopping it from recording further.
Returns an acknowledgement message that the drop request was accepted; the bot must currently be in the meeting or this call fails.
Use this to stop Avoma recording a meeting that is still happening, e.g. for a portion the customer wants off the record. This does not cancel or delete the meeting, and any portion already recorded is kept.
Requires the meeting's uuid, typically obtained from avoma_meetings_list, for a meeting that is currently in progress with the bot present.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `uuid` (`string`, required): Unique ID (UUID) of the in-progress meeting to drop the Avoma bot from. Obtain this from avoma_meetings_list or avoma_meeting_get. Example: 3c1a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10

Example input: `{"uuid":"<uuid>"}`

### `avoma_meeting_outcome_delete`

Delete Meeting Outcome · Destructive

Delete a meeting outcome from your Avoma organization by its uuid.
Returns no content on success.
Use this to permanently remove an outcome; the action cannot be undone and may affect meetings that reference it.
Requires a meeting outcome uuid, typically obtained from avoma_meeting_outcomes_list.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): Unique ID (UUID) of the Avoma meeting outcome to delete. Obtain this from avoma_meeting_outcomes_list. Example: 9c4b1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10

Example input: `{"uuid":"<uuid>"}`

### `avoma_meeting_type_delete`

Delete Meeting Type · Destructive

Delete a meeting type from your Avoma organization by its UUID.
Returns no content on success.
Use this to permanently remove a meeting type; the action cannot be undone.
Requires a meeting type uuid, typically obtained from a list or get call for meeting types.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `uuid` (`string`, required): Unique ID (UUID) of the Avoma meeting type to delete. Obtain this from a list or get call for meeting types. Example: 8b2a1e2e-4b8a-4b6b-9b1a-2f6a7e1c9d10

Example input: `{"uuid":"<uuid>"}`

## Related

Other Transcription connectors ([all 26](/agentkit/connectors/?category=transcription)):

- [Chorus](/agentkit/connectors/chorus/): Scalekit connector, Username and password, 9 tools
- [Diarize](/agentkit/connectors/diarize/): Scalekit connector, Access token, 3 tools
- [Gong](/agentkit/connectors/gong/): Scalekit connector, OAuth, 49 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
