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

# Connecting 8×8

> Set up the 8×8 API key and the call-history user that Captivo Link needs to log your 8×8 Work calls.

Captivo Link reads your firm's 8×8 Work calls and logs them in your CRM. To do that it needs two things from your 8×8 account:

1. **An API key**, for recordings, transcripts, AI summaries and contact sync.
2. **A call-history user**: a dedicated 8×8 user whose login Captivo Link uses to read call history. 8×8 only shares call history with a user's login, not with an API key.

Both are set up once, for the whole firm, by an 8×8 admin. Allow about 15 minutes, plus up to an hour for 8×8 to apply the new user's access.

> [!WARNING]
>
> **No calls are logged until the call-history user is in place.** The API key on its own isn't enough. When you add the user later, Captivo Link picks up the previous 24 hours of calls straight away; anything older isn't logged.

***

## Requirements

* **An 8×8 admin** who can create API keys and users in [8×8 Admin Console](https://admin.8x8.com).
* **A spare X Series X4 licence (or higher)** for the call-history user. See [why it needs a licence](#why-does-the-user-need-an-x4-licence).
* **A spare phone number** from your 8×8 account. 8×8 asks for one when you assign the licence; nobody needs to answer it.

***

## Step 1 — Create the API key

> [!NOTE]
>
> If you installed Captivo Link from the **8×8 App Store**, the API key was created for you during the install. Skip to [Step 2](#step-2-create-the-call-history-user).

**1. Open API Keys**

In 8×8 Admin Console, go to [**API Keys**](https://admin.8x8.com/api-access/create) and click **Create App**.

**2. Select the API products**

Name it something like "Captivo Link" and select these products:

| API product | What Captivo Link uses it for |
| - | - |
| **Analytics for 8×8 Work** | Reading your call history. **Required.** |
| **Call recordings & Storage** | Recordings, transcripts and 8×8's AI summaries |
| **Contact Management** and **Contact Search** | Syncing CRM contact names back to 8×8 |

> [!TIP]
>
> If **Call recordings & Storage** isn't listed, ask 8×8 support to enable **Cloud Storage API access** for your account. 8×8 grants it on request. Calls are still logged without it, just without recordings, transcripts or summaries.

**3. Copy the Key and Secret**

Click **Save**. Copy the **Key** and the **Secret**; you'll enter both in Captivo Link.

***

## Step 2 — Create the call-history user

This is an ordinary 8×8 user, **not an admin**, used only by Captivo Link. It doesn't count as a seat in Captivo Link.

**1. Add the user**

In 8×8 Admin Console, go to **Users** and click **Add user**. Name it something like "Captivo Link".

Give it **8×8 authentication**. Single sign-on logins (Microsoft, Google, Okta) may not work.

**2. Assign an X Series licence**

Under **Services and permissions**:

* **Assign a profile policy**: the default is fine.
* **Assign one or more services to user**: choose **X Series - X4** or higher (X6, X8). Don't choose an 8×8 Engage licence; those are for the contact centre.
* **Phone number**: assign any spare number.

Click **Save**.

**3. Give it access to Analytics**

Edit the user again. Scroll to **Analytics for 8×8 Work** and set **Allowed access level** to **Analytics: Supervisor**. Click **Save**.

> [!NOTE]
>
> Don't give the user an admin role. It only needs the licence and the Analytics access level.

**4. Set the password**

If your policy allows:

* **Give it a password that doesn't expire.** Otherwise, update it in Captivo Link when it changes. Captivo Link shows a banner while the login isn't working, and once you enter the new password it logs the calls from the outage, up to 30 days back.
* **Exclude it from account lockout.** Captivo Link retries a refused login only once an hour, so it won't lock the account by itself.

**5. Wait for 8×8 to apply it**

8×8 can take **up to an hour** to apply a new user's licence and Analytics access.

To check, open [analytics.8x8.com](https://analytics.8x8.com) in a private window and sign in as the new user. If you see the reports, it's ready. If you see **"Unauthorized — You don't have access to this service"**, it isn't ready yet, or a setting from the previous steps is missing.

**6. Note the username**

Copy the user's **username** exactly as Admin Console shows it, under the user's name in **Users**. It usually starts with your 8×8 account name, for example `firmname.Captivo.Link`.

***

## Step 3 — Enter the details in Captivo Link

**1. Open Connections**

Sign in to [Captivo Link](https://link.captivolabs.com) and open **Connections**. During first-time setup, the setup page asks for the same details.

**2. Enter the key and login**

Enter the **API key** and **API secret** from Step 1, and the **Service account login** (username) and **Service account password** from Step 2.

If the key is already saved (for example, after an 8×8 App Store install), leave the Key and Secret blank to keep it.

**3. Click Check & save**

Captivo Link checks everything with 8×8 before saving: the key, the products on it, the user's login, and that the user can actually read call records.

> [!TIP]
>
> When everything is in place, **Call logging** shows as ready. Make a test call to or from a number in your CRM: it appears on the **Calls** page within a few minutes.

***

## Changing the key or the login later

* **New API key:** enter the new Key and Secret and leave the login blank. The saved login is kept.
* **New password:** enter the username and the new password, and leave the Key and Secret blank.
* **Removing the connection:** click **Remove** on the 8×8 card. Calls stop being collected straight away.

***

## Troubleshooting

> [accordion] "8×8 didn't accept that login"
>
> 8×8 refused the username or password. Check that:
>
> * the username is copied exactly from Admin Console, including the account-name prefix;
> * the user has **8×8 authentication**, not single sign-on;
> * the account isn't locked after too many attempts.

> [accordion] "This 8×8 user can't read call records yet"
>
> 8×8 accepted the login, but the user can't read call history. Check that the user has:
>
> * an **X Series X4** licence or higher, and
> * **Analytics for 8×8 Work** set to **Analytics: Supervisor**.
>
> If both are set, give 8×8 up to an hour to apply them, then click **Check & save** again. Signing in at [analytics.8x8.com](https://analytics.8x8.com) as the user tells you when it's ready.

> [accordion] "Unauthorized" at analytics.8x8.com
>
> The user doesn't have Analytics access yet. A user with no X Series licence can't get access at all. If the licence and access level are set, wait up to an hour, then try again in a private window so an old session isn't reused.

> [accordion] An 8×8 admin can sign in, but the new user can't
>
> 8×8 admins get Analytics access through their admin role, whatever their own access level says. Testing with an admin login doesn't show whether a regular user is set up correctly. Use the dedicated user, set up as in Step 2, rather than an admin's login.

> [accordion] Calls show without recordings, transcripts or summaries
>
> The API key is missing **Call recordings & Storage**, or 8×8 hasn't enabled Cloud Storage API access for your account. The **Connections** page lists which features are ready and what each one is missing.

***

## Why does the user need an X4 licence?

8×8 only allows call history to be read through a user's login, and only for users with Analytics access. Analytics access needs an X Series licence: a user with no licence can't sign in to Analytics at all. Captivo Link needs the **Analytics: Supervisor** level, which 8×8 only offers on **X4 or higher**.

The user doesn't need a phone, and nobody uses it day to day: only Captivo Link signs in as it.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.