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

# XCALLY

> Work with Rulebase to set up XCALLY, send call recordings to the upload API, and confirm Rulebase is receiving them.

Rulebase provisions the XCALLY connection for you, and recordings are pushed to Rulebase rather than pulled from XCALLY, so there is no **Add** button next to **XCALLY** in **Settings** > **Integrations**. Your side of the work is sending each call recording, with its metadata, to the Rulebase conversation upload API.

## Prerequisites

* Your Rulebase account team must set up the XCALLY connection.
* You need someone who can configure recording exports in XCALLY, whether that is your team or the partner who manages your XCALLY instance.
* A Rulebase API key for the upload requests, which you can create in [Settings > Connections](https://app.rulebase.co/settings/connections).
* You must have the Administrator role in Rulebase.

## Installation

### Step 1: ask Rulebase to set up XCALLY

Contact your Rulebase account team. Setup goes faster if you already know:

* Which XCALLY instance and which queues or call types should be sent to Rulebase
* Whether recordings will be sent one at a time, or batched as archives
* How your agents are identified in XCALLY, and whether that identifier is the same email address used on their Rulebase employee record
* The timezone your XCALLY timestamps are recorded in

Rulebase confirms when the connection is active. Nothing arrives until recordings start being sent.

### Step 2: send recordings

Recordings go to the conversation upload API with the source `xcally`, either as a direct upload of a single recording or through the presigned URL workflow for archives. [Uploading conversations](/guides/uploads/conversations) has the endpoints, the metadata schema, and the archive layout.

Each recording needs metadata alongside the audio: a unique call ID, the call type (`inbound`, `outbound`, or `dialer`), the agent's email, the calling and called numbers, and when the call was recorded. Recorded timestamps are read in your organization's timezone, so a mismatch there shifts every call in your reporting.

## What each recording becomes

One recording becomes one conversation in Rulebase, holding a single call:

* The call carries its direction, the customer's phone number, and the audio, which Rulebase transcribes for scoring and search. GSM recordings are converted before transcription.
* The agent's email is matched to a Rulebase employee, which attributes the call for QA. An email that does not match an existing employee creates a new one.
* The customer's number becomes a Rulebase customer. On inbound calls that is the caller; on outbound and dialer calls it is the number dialed.
* Handling time is taken from the length of the audio, and the conversation is recorded as resolved at the time of the call.

## Confirm it is working

Open **Settings** > **Integrations** and find **XCALLY**. A connection appears with **Last synced on** and a timestamp once Rulebase starts receiving uploads. For more detail, open the **...** menu on that connection and choose **View activity**, which lists the upload requests Rulebase has received, newest first, and can be filtered by date.

To check specific calls, list your uploads through the API and read each upload's status. See [Confirm received uploads](/guides/uploads/confirm-received-uploads).
