> ## Documentation Index
> Fetch the complete documentation index at: https://docs.attention.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Calls

> Search recorded calls and read full details, transcripts, scorecard results, and AI insights.

Calls are the foundation of every other read flow. `search_calls` is the entry point — it scopes results to what your authenticated user can see, supports a wide set of filters (date, rep, team, CRM fields, transcript content), and returns IDs that you can pass to `get_call_details` for a single call or to [`ask_attention`](/mcp/tools/ai-analysis#ask_attention) for batch AI analysis.

<Tip>
  When the user mentions a company name, always run **two** searches in parallel: one filtered by `title`, and one filtered by CRM account name (`crm_field_entity_code="account"`, `crm_field_field_name="Name"`, `crm_field_values=["Acme"]`). Merge and deduplicate the IDs. This catches calls whose title doesn't include the company name but whose linked CRM account does.
</Tip>

## Tools

### search\_calls

<Note>Scope: `mcp:read`.</Note>

Search recorded calls by date, rep, team, keyword, opportunity, CRM field, or transcript content. Results are scoped to calls your user can see.

#### Pagination

<ParamField query="page" type="integer">
  Page number (starts from 1).
</ParamField>

<ParamField query="size" type="integer">
  Number of calls per page. Maximum: 50.
</ParamField>

#### Date range

<ParamField query="from_date" type="string">
  Show calls after this date. Format: `2024-01-01T00:00:00Z`.
</ParamField>

<ParamField query="to_date" type="string">
  Show calls before this date. Format: `2024-12-31T23:59:59Z`.
</ParamField>

#### Owner & team

<ParamField query="rep_email" type="string">
  Filter by call owner email. Useful for admins/managers to view a specific rep's calls. Sales reps already see their team's calls by default.
</ParamField>

<ParamField query="rep_id" type="string">
  Filter by call owner user ID. Alternative to `rep_email`.
</ParamField>

<ParamField query="team_id" type="string">
  Filter by team ID. Results are already scoped to your accessible teams based on your role.
</ParamField>

#### Keyword & participants

<ParamField query="title" type="string">
  Search calls by title keyword.
</ParamField>

<ParamField query="participant_email" type="string">
  Filter by external participant email.
</ParamField>

<ParamField query="transcript_search" type="string">
  Search inside call transcripts for specific words or phrases. Returns calls where the transcript contains the search term, with matched snippets showing who said what.

  **Compatibility:** `transcript_search` cannot be combined with `crm_field_*`, `opportunity_id`, `participant_email`, `rep_email`, `rep_id`, or `title`. It can be combined with `from_date`, `to_date`, `team_id`, and the `hide_*` filters. If you need both, run two searches and cross-reference the IDs.
</ParamField>

#### CRM filters

<ParamField query="opportunity_id" type="string">
  Filter by CRM opportunity/deal ID. The preferred way to find calls linked to a specific opportunity.
</ParamField>

<ParamField query="crm_field_entity_code" type="string">
  CRM entity code (e.g. `opportunity`, `account`, `contact`). Required together with `crm_field_field_name` and `crm_field_values`.
</ParamField>

<ParamField query="crm_field_field_name" type="string">
  CRM field name to match (e.g. `StageName`, `Name`). Required together with `crm_field_entity_code` and `crm_field_values`.
</ParamField>

<ParamField query="crm_field_values" type="array">
  Values to match for the CRM field (OR logic, max 10). Required together with `crm_field_entity_code` and `crm_field_field_name`.
</ParamField>

#### Status filters

These default to safe values; only set them when the user explicitly asks.

<ParamField query="hide_internal" type="boolean">
  Exclude internal-only meetings.
</ParamField>

<ParamField query="hide_non_analyzed" type="boolean">
  Exclude calls that haven't been analyzed.
</ParamField>

<ParamField query="hide_pending" type="boolean">
  Exclude calls that are still pending processing.
</ParamField>

<ParamField query="hide_failed" type="boolean">
  Exclude calls whose processing failed.
</ParamField>

<ParamField query="hide_transcript" type="boolean">
  Exclude calls without a transcript. Defaults to `true` — most assistants only need calls that have transcript data.
</ParamField>

#### Result enrichment

Optional flags that add detail to each result. Only set when the user has asked for that detail; they make responses larger.

<ParamField query="include_internal_participants" type="boolean">
  Include the reps (internal participants) in each call's participants list.
</ParamField>

<ParamField query="include_zoom_metadata" type="boolean">
  Include Zoom-specific metadata (meeting IDs, etc).
</ParamField>

<ParamField query="include_import_metadata" type="boolean">
  Include import metadata (when the call was imported from another source).
</ParamField>

<ParamField query="with_crm_records" type="boolean">
  Include linked CRM records (deals, accounts).
</ParamField>

<ParamField query="with_intelligence_items" type="boolean">
  Include AI-extracted insights (intelligence item values).
</ParamField>

**Returns:** A Markdown list of matching calls — title, date, rep, participants, score, and ID — with pagination context. When `transcript_search` is used, results also include the matched transcript snippets.

**Example prompt:** *"Find all calls discussing pricing in the last 30 days from the Enterprise team."*

***

### get\_call\_details

<Note>Scope: `mcp:read`.</Note>

Get details for a single call: full transcript, scorecard results, AI-extracted insights, participants, and CRM linkage. Use this when the user asks to read or see the transcript. For analysis across multiple calls, use [`ask_attention`](/mcp/tools/ai-analysis#ask_attention) instead — it's an order of magnitude more efficient than calling `get_call_details` in a loop.

<ParamField query="id" type="string" required>
  The call ID, returned by `search_calls`.
</ParamField>

<ParamField query="detailed_transcript" type="boolean">
  When `true`, returns a structured transcript with speaker names and timestamps. When `false` (default), returns the simple text transcript.
</ParamField>

**Returns:** A Markdown document with the call's title, date, participants, score, transcript, and AI-extracted insights.

**Example prompt:** *"Show me the full transcript of my call with Acme yesterday, with speaker names and timestamps."*
