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

# Recording

> Call recording for the dialer, plus the Meeting Assistant for video calls.

Custral records conversations from two distinct sources: **calls placed or
received through the dialer** (covered first), and **video meetings joined
by the Meeting Assistant bot** (covered in [Meeting Assistant](#meeting-assistant)).

## Call recording (dialer)

Custral records calls placed or received through the dialer via a live
media stream. That same stream powers **live transcription and AI
features**, so a call that isn't recorded also isn't transcribed.
Recordings and transcripts appear in the Conversation timeline.

### The recording policy

Set the workspace default in **Settings → Phone & SMS → Recording**. There
are three modes:

| Mode                             | What happens                                                    |
| -------------------------------- | --------------------------------------------------------------- |
| **Always record**                | Every call is recorded (and transcribed). This is the default.  |
| **Never record**                 | No call is recorded or transcribed.                             |
| **Record based on caller state** | Recording depends on the US state of the call party. See below. |

<Warning>
  The all-party (two-party) consent state list is a configurable **default, not legal advice**. Recording-consent law is
  nuanced and changes over time. Confirm your obligations with counsel. You are responsible for lawful recording.
</Warning>

### State-based recording

When the mode is **Record based on caller state**, Custral derives the
state of the call party from their phone number (using Twilio's location
data when available, falling back to the area code). You choose:

* **Apply based on**: *Other party's state* (the customer) or *Either
  party's state* (the stricter reading: trigger if your number's state
  **or** the other party's state requires all-party consent).
* **In all-party-consent states**: either **Announce, then record** (play
  a consent notice, then record; keeps transcription and AI working) or
  **Don't record** (no audio is captured for those calls; transcription
  and AI are skipped too).
* **All-party-consent states**: the list of states the rule applies to.
  Defaults to the commonly-cited two-party states; edit as needed.
* **Consent announcement**: the spoken notice played before connecting
  when the action is *Announce*. On inbound calls the caller hears it; on
  outbound calls the called party hears it before the call is bridged.

### Per-number override

A specific number can override the workspace policy. Edit the number under
**My Numbers** and set **Call recording** to *Use workspace default*,
*Always record*, or *Never record*. The override wins over the workspace
default for that line.

### Retention

Recordings are retained according to your storage policy. Custral does not
delete recordings on its own. You can add a workflow that deletes call
recordings on a schedule (for example, 90 days after the call) so retention
matches your policy.

### Transcription

Transcription rides on the recording stream: when a call is recorded it is
transcribed automatically and the transcript appears alongside the
recording in the timeline, with speaker labeling on by default. A call that
the policy does **not** record is therefore not transcribed.

### Access

Recording playback follows the same permissions as the parent Conversation.
Users without access to the Conversation cannot play the recording, even
with a direct link.

## Meeting Assistant

The **Meeting Assistant** is a virtual bot that joins your video calls to
record and transcribe them. It is configured separately from dialer call
recording, in **Settings → Meeting Assistant**.

<Note>
  The Meeting Assistant records **video meetings** (e.g. Zoom, Google Meet) by joining as a participant. Dialer call
  recording (above) is a separate Twilio-backed feature. The two have independent settings.
</Note>

### Configuration

All options live on the **General Settings** tab. Edits are applied with
the **Save Preferences** button at the bottom. They are not saved as you
type.

**Core settings**

| Field                    | Control      | Default                | What it does                                                                                     |
| ------------------------ | ------------ | ---------------------- | ------------------------------------------------------------------------------------------------ |
| Auto-record Meetings     | Toggle       | Off                    | Automatically join and record meetings detected on your calendar.                                |
| Assistant Display Name   | Text         | `Custral AI Assistant` | The name the bot shows in the meeting participant list.                                          |
| Calendars to Auto-Record | Multi-select | All connected          | Restrict auto-recording to specific connected calendars. Leave empty to record from all of them. |

<Note>
  **Calendars to Auto-Record** is disabled and shows "No calendars connected" when you have no calendars linked. Connect
  a calendar first. See [Calendar](/comms/calendar/overview).
</Note>

**Auto-record filters**

These narrow which detected meetings the assistant actually joins.

| Field                      | Control   | Default | What it does                                                                                                   |
| -------------------------- | --------- | ------- | -------------------------------------------------------------------------------------------------------------- |
| External Participants Only | Toggle    | On      | Only record meetings that include someone from outside your organization.                                      |
| Record Only If I Am Host   | Toggle    | Off     | Only join meetings where you are the organizer.                                                                |
| Trigger Keywords           | Tag input | Empty   | Only record meetings whose title or description contains one of these keywords. Empty means no keyword filter. |
| Ignore Keywords            | Tag input | Empty   | Never record meetings whose title or description contains one of these keywords.                               |

**Media settings**

| Toggle        | Default | What it does                |
| ------------- | ------- | --------------------------- |
| Capture Audio | On      | Record the meeting's audio. |
| Capture Video | On      | Record the meeting's video. |

<Tip>
  **Trigger Keywords** and **Ignore Keywords** are matched against the meeting's title and description. To avoid
  ambiguity, keep the two lists from overlapping.
</Tip>

### Turning it on

<Steps>
  <Step title="Connect a calendar">
    Link the calendar whose meetings you want recorded. See [Calendar](/comms/calendar/overview).
  </Step>

  <Step title="Enable auto-record">
    Turn on **Auto-record Meetings**, and optionally restrict it under **Calendars to Auto-Record**.
  </Step>

  <Step title="Tune the filters">
    Set **External Participants Only**, **Record Only If I Am Host**, and your **Trigger / Ignore Keywords** so the bot
    joins only the meetings you want.
  </Step>

  <Step title="Save">
    Click **Save Preferences**. New meetings matching your rules will be joined by the assistant.
  </Step>
</Steps>

## Troubleshooting

| Symptom                                                 | Likely cause                                                                                               | What to check                                                                                                                                     |
| ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| A call wasn't recorded                                  | Policy mode is **Never record**, a per-number override is set to *Never*, or **state-based** suppressed it | Check **Settings → Phone & SMS → Recording**, then the number's **Call recording** override under My Numbers.                                     |
| Transcript / AI missing on a call                       | The call wasn't recorded, transcription rides on the recording stream                                      | If you need transcripts in an all-party state, set the action to **Announce, then record** instead of **Don't record**.                           |
| No consent announcement played                          | Mode isn't state-based, the call's state isn't in the all-party list, or the action is **Don't record**    | Confirm the mode, the **All-party-consent states** list, and that the action is **Announce, then record**.                                        |
| Wrong state detected                                    | Number has a non-geographic / ported area code                                                             | State is derived from the area code (or Twilio location). Use **Either party's state** for a stricter rule, or **Always record** for that number. |
| Outbound callee didn't hear the notice                  | Called an internal client or a non-US number                                                               | The announcement plays to the called party before bridging; it has no state to match for non-US numbers.                                          |
| Meeting Assistant never joins any meeting               | **Auto-record Meetings** is off                                                                            | Enable **Auto-record Meetings** on the General Settings tab and save.                                                                             |
| "Calendars to Auto-Record" is greyed out                | No calendars connected                                                                                     | Connect a calendar first. See [Calendar](/comms/calendar/overview).                                                                               |
| Some meetings are skipped                               | Auto-record filters are excluding them                                                                     | Review **External Participants Only**, **Record Only If I Am Host**, **Trigger Keywords**, and **Ignore Keywords**.                               |
| Only internal meetings are missed                       | **External Participants Only** is on                                                                       | Turn off **External Participants Only** if you also want internal-only meetings recorded.                                                         |
| Meetings you're invited to (but don't host) are skipped | **Record Only If I Am Host** is on                                                                         | Turn off **Record Only If I Am Host** to record meetings where you're a guest.                                                                    |
| Recording has no video (or no audio)                    | **Capture Video** / **Capture Audio** disabled                                                             | Enable the relevant Media Settings toggle and save.                                                                                               |
| Changes don't stick                                     | Preferences weren't saved                                                                                  | Click **Save Preferences** after editing. Settings are not saved automatically.                                                                   |
| Bot shows the wrong name in the call                    | **Assistant Display Name** not updated                                                                     | Set **Assistant Display Name** and save.                                                                                                          |

## Related

<CardGroup cols={1}>
  <Card title="Calendar" icon="calendar-days" href="/comms/calendar/overview">
    Connect and manage the calendars the Meeting Assistant watches.
  </Card>
</CardGroup>


## Related topics

- [The Usage module object](/dev/api-reference/usage-modules.md)
- [Phone & SMS Settings](/blocks/embedded/phone/settings.md)
- [Zoom](/integrations/zoom.md)
- [Google Meet](/integrations/google-meet.md)
- [Microsoft Teams](/integrations/microsoft-teams.md)
