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

# Call Recording and CRM Integration in 3CX: Setup Guide

> Enable per-extension call recording with cloud storage sync, and connect 3CX to your CRM for screen pops, automatic call logging, and caller ID lookup.

Two of the most valuable capabilities in 3CX for customer-facing businesses are call recording and CRM integration. Call recording gives your team a reliable audit trail of every conversation — essential for quality assurance, dispute resolution, and compliance. CRM integration goes further, surfacing caller information the moment a call arrives and automatically logging every interaction into your contact records. Together, they transform your phone system from a simple communication tool into a core part of your customer relationship workflow.

***

## Call Recording

### Enabling Recording for an Extension

You can configure call recording individually per extension, giving you granular control over which agents or departments are recorded.

<Steps>
  <Step title="Open Extension Settings">
    In the 3CX Management Console, navigate to **Extensions** in the left sidebar and click on the extension you want to configure.
  </Step>

  <Step title="Go to Forwarding Rules">
    Select the **Forwarding Rules** tab within the extension settings panel.
  </Step>

  <Step title="Set the Recording Mode">
    Locate the **Record Calls** dropdown and select your preferred mode:

    | Mode          | Behavior                                                                               |
    | ------------- | -------------------------------------------------------------------------------------- |
    | **Always**    | Every call on this extension is automatically recorded — inbound and outbound.         |
    | **On Demand** | Recording is off by default; the agent activates it by pressing a key during the call. |
    | **External**  | Recording is handled by an external call recording system via SIPREC.                  |
    | **Off**       | No recording on this extension.                                                        |

    <Tip>
      Use **Always** for sales and support queues where full compliance coverage is required. Use **On Demand** for executive extensions where selective recording is preferred.
    </Tip>
  </Step>

  <Step title="Save and Test">
    Click **Save** and place a test call from the extension. After hanging up, verify the recording appears under **Reports > Call Logs** with an audio playback icon.
  </Step>
</Steps>

### Recording Storage Options

By default, 3CX stores recordings on the local server disk. For long-term retention, high-volume environments, or disaster recovery purposes, you should sync recordings to a cloud storage bucket.

Navigate to **Settings > Recording** to configure storage:

| Storage Option    | Description                                                                                |
| ----------------- | ------------------------------------------------------------------------------------------ |
| **Local Storage** | Recordings saved directly to the server disk. Simple, no extra cost. Limited by disk size. |
| **AWS S3**        | Sync to Amazon S3. Ideal if your team already uses AWS infrastructure.                     |
| **Backblaze B2**  | Low-cost S3-compatible object storage. Good value for high-volume recording archives.      |
| **Wasabi**        | S3-compatible, no egress fees. Recommended for frequent playback of stored recordings.     |

<Note>
  Any S3-compatible storage bucket works with 3CX's cloud sync — not just the three listed above. You will need your bucket name, region, access key ID, and secret access key from your storage provider.
</Note>

<Warning>
  Local storage is not a substitute for a backup strategy. If your server disk fails without a cloud sync configured, recordings are permanently lost. Enable cloud storage sync before your system goes into production.
</Warning>

***

## CRM Integration

Connecting 3CX to your CRM enables two powerful capabilities: **Screen Pops** (the caller's CRM record opens automatically when their call arrives) and **Call Logging** (every call is recorded as an activity in the CRM with duration, direction, and a link to the recording).

### Supported CRM Platforms

* **Bitrix24** — Deep integration with click-to-call and deal card logging. See the [Bitrix24 Integration guide](/3cx/bitrix24-integration) for a dedicated walkthrough.
* **Salesforce** — Enterprise CRM integration with lead, contact, and opportunity logging.
* **HubSpot** — Inbound-focused CRM with timeline activity logging and contact matching.

### Setting Up CRM Integration

<Steps>
  <Step title="Open CRM Integration Settings">
    In the Management Console, navigate to **Settings > CRM Integration**. You will see a list of supported CRM platforms with toggle switches.
  </Step>

  <Step title="Enable Your CRM">
    Click the toggle next to your CRM (e.g., HubSpot or Salesforce) to enable it. A configuration panel expands below.
  </Step>

  <Step title="Enter Your CRM Credentials">
    Provide the required connection details:

    | Field               | Description                                                           |
    | ------------------- | --------------------------------------------------------------------- |
    | **CRM URL**         | Your CRM instance URL (e.g., `https://yourcompany.salesforce.com`)    |
    | **API Key / Token** | The API key or OAuth token generated in your CRM's developer settings |

    <Tip>
      In Salesforce, generate a Connected App with the `api` and `refresh_token` OAuth scopes. In HubSpot, create a Private App token with CRM read/write permissions. Each CRM's help documentation explains where to find or generate these credentials.
    </Tip>
  </Step>

  <Step title="Map Caller Fields">
    Use the **Field Mapping** section to tell 3CX which CRM fields to use when matching an incoming caller:

    | 3CX Field                        | CRM Field                           |
    | -------------------------------- | ----------------------------------- |
    | Caller Phone Number              | Contact: Phone / Mobile             |
    | Caller Name (if SIP provides it) | Contact: Full Name                  |
    | Call Duration                    | Activity: Duration                  |
    | Call Direction                   | Activity: Type (Inbound / Outbound) |

    Accurate field mapping ensures screen pops open the correct contact record even when callers dial from mobile numbers stored in different formats (e.g., `+855`, `0`, or `855` prefix variants).
  </Step>

  <Step title="Test the Integration">
    Save your settings and ask a colleague to call one of your DID numbers from a phone number that exists in your CRM as a contact. The contact's record should pop up on the answering agent's screen within 1–2 seconds of the call arriving.

    Check **Settings > CRM Integration > Logs** if the screen pop does not appear — the log will show whether the lookup succeeded or returned no match.
  </Step>
</Steps>

<Info>
  Screen pops work for agents using the **3CX Web Client** or the **3CX Windows/Mac desktop app**. Agents on the mobile app will see the caller's CRM contact name displayed on the incoming call notification if the number matches a CRM record.
</Info>
