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

# Audience Call QA

> Use per-contact call quality averages in Audience, segments, History, REST and MCP.

Audience's filter builder narrows your contact list by status, channel, tags, source, custom attributes, and per-contact Call QA score — save any combination as a reusable segment.

Audience represents a contact, while History represents that contact's individual interactions across calls, messaging and email. A contact can therefore have many History rows but only one Audience row.

## Filter builder and saved segments

Select **Filter** above the Audience table to combine conditions in one visual
filter builder. Conditions are ANDed; multiple values inside Status,
Channel, Source, Tags or AMD result are ORed. Available conditions are:

* contact search, display status, campaign and DNC
* channel and Call QA
* contact source and tags
* created-date and call-attempt ranges
* last AMD result
* workspace-defined custom attributes

The list updates while conditions change. Select **Save as segment** to store the
current definition as a dynamic segment. A segment stores the filters, not a
snapshot of contacts, so campaign assignment always resolves the latest matches.

For **DNC**, choose **is** to include only contacts on the block list or
**is not** to exclude them. In REST and MCP filters this is represented as
`dnc: true` and `dnc: false`; omitting `dnc` leaves the list unfiltered.

## Contact tags

Add workspace-specific tags when creating a contact, or open **Manage Contact →
Tags** to edit them later. Enter one tag at a time or paste comma-separated tags.
Tags are normalized to lowercase, deduplicated, and limited to 32 tags with 40
characters each. CSV imports can map a comma- or semicolon-separated column to
**Tags**. CRM Sync can map a CRM label/tag field to the same destination; synced
tags merge with manual tags instead of replacing them.

Use the **Tags** filter to find any contact containing one of the selected tags,
then save the definition as a reusable segment. API clients can create an
unassigned tagged contact with `POST /leads`; MCP clients can use
`create_audience_contact`. To attach an existing contact's phone, email, or
channel identity to another contact, use `POST /leads/{id}/merge` or MCP
`merge_audience_contacts` — this is explicit and never happens on PATCH.

## Call QA average

The **Call QA** value is the average QA score for the selected contact and period:

* 7, 30 or 90 days, or all time
* default: 90 days
* every call counts once
* calls without a score are excluded
* messaging and email remain in the shared timeline but are not scored in this phase

The value measures assistant performance in calls. It is not a lead-quality score. The number of scored calls is shown next to the average; the contact drawer additionally shows pass rate and the latest score.

## Dynamic QA segments

Enable **QA filter** in Audience, select a period and optionally set a minimum average, maximum average or minimum number of scored calls. Saving the current filters creates a dynamic segment.

```json theme={null}
{
  "qa": {
    "window": 90,
    "average_score_min": 80,
    "min_scored_calls": 3
  }
}
```

Contacts without scored calls do not match a QA segment. When `min_scored_calls` is omitted, at least one scored call is required. Segment membership is recalculated whenever the segment is resolved, including campaign assignment.

Creating or changing a QA segment requires the **[AI QA scorecards](/assistants/analysis#ai-qa-scorecards)** plan feature. Existing saved segments remain readable and resolvable after a downgrade.

## Dynamic channel segments

Use the **Channel** filter to select contacts that have linked activity or a channel profile. Supported values are calls, SMS, email, WhatsApp, Telegram, Slack, Messenger, Microsoft Teams, Discord, Google Chat, X, Freshdesk, Gmail, Outlook, Zendesk, ServiceNow, Intercom, Zoho Mail, AgentMail, Instagram, and Zulip.

```json theme={null}
{
  "channels": ["whatsapp", "messenger"]
}
```

Multiple channel values are ORed: the example matches contacts with WhatsApp **or** Messenger. Channel criteria are ANDed with search, status, campaign, DNC, source, tags, date, attempts, AMD, attributes and Call QA. Membership is recalculated whenever the segment is opened or assigned to a [campaign](/campaigns/overview).

## Unified contact history

Use **View all history** in the contact drawer to open History for that contact. Calls, messaging conversations, and email threads are included. Email appears once per thread rather than once per message.

API clients can use `GET /api/v1/leads`, `GET /api/v1/history?lead_id=...`, and the segment endpoints. MCP clients can use `list_audience_contacts`, `list_history` with `lead_id`, and the segment tools.
