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

# 3C Plus as a data source

> Bring data from 3C Plus to your Lakehouse.

3C Plus is a Brazilian automatic dialer and call center platform. The connector extracts your company's call history, agent login sessions, daily agent productivity per campaign, and scheduled callbacks, along with the setup of your operation: agents, users, teams, campaigns and their mailing lists, qualifications (call outcomes), work breaks, inbound queues, and IVRs. With it you can analyze your campaigns' results and your team's productivity in your Lakehouse.

## Configuring 3C Plus as a Source

In the [Sources](https://app.nekt.ai/sources) tab, click on the "Add source" button located on the top right of your screen. Then, select the 3C Plus option from the list of connectors.

Click **Next** and you'll be prompted to add your access.

### 1. Add account access

3C Plus authenticates with a token. The connector reads 3C Plus reports, which 3C Plus only shares with users that have the **manager** (gestor) role, so the token must belong to a manager. You can use either:

* **A service token** (recommended): in 3C Plus, go to **Configurações > Integração > Tokens de serviço** and create a token with manager permissions.
* **The API token of a manager user**: in 3C Plus, go to **Configurações > Usuários**, open a user with the manager role, and copy the token from the advanced options.

<Warning>A token of an agent, or a service token with the agent role, only reaches one agent's data and is refused by the connector. The API token of a user does not expire on its own, but it stops working if a manager changes it in 3C Plus.</Warning>

The following configurations are available:

* **API Token**: the service token or the manager's API token. Required.

* **Start Date**: the earliest date from which calls, agent logins, agent daily metrics, and scheduled callbacks will be synced. Required. An earlier date makes the first sync longer, mainly for the agent daily metrics, which are read one day per campaign.

* **Include Mailing Data**: also extract, with each call, the contact's data from the mailing list (identifier, phone, and the list's own columns) into the `mailing_data` column. On by default.

* **Lookback Days**: how many days are re-read before the last sync point by the calls, agent logins, and agent daily metrics, to pick up the qualifications, logouts, and totals 3C Plus completes after a record first appears. The default is 1.

* **Time Zone**: the time zone of your 3C Plus account. 3C Plus filters and returns dates in this time zone, and the connector converts them to UTC. The default is America/Sao\_Paulo.

* **Requests Per Minute**: how fast the connector may call 3C Plus. The default is 120.

Once you're done, click **Next**.

### 2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.

> Tip: The stream can be found more easily by typing its name.

Select the streams and click **Next**.

### 3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.

* **Layer**: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
* **Folder**: a folder can be created inside the selected layer to group all tables being created from this new data source.
* **Table name**: we suggest a name, but feel free to customize it. You have the option to add a **prefix** to all tables at once and make this process faster!
* **Sync Type**: Calls, Agent Login History, and Agent Metrics Daily support INCREMENTAL. The other streams are FULL\_TABLE. Read more about Sync Types [here](https://docs.nekt.com/get-started/core-concepts/types-of-sync).

Once you are done configuring, click **Next**.

### 4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters.

To define your [Trigger](https://docs.nekt.com/get-started/core-concepts/triggers), consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times).

Optionally, you can define some additional settings:

* Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource [here](https://docs.nekt.com/get-started/core-concepts/resource-control).
* Determine when to execute an **Additional [Full Sync](https://docs.nekt.com/get-started/core-concepts/types-of-sync#additional-full-sync)**. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.

Once you are ready, click **Next** to finalize the setup.

### 5. Check your new source

You can view your new source on the [Sources](https://app.nekt.ai/sources) page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.

<Warning>For you to be able to see it on your [Catalog](https://app.nekt.ai/catalog), you need at least one successful source run.</Warning>

# Streams and Fields

Below you'll find all available data streams from 3C Plus and their corresponding fields. API reference: [3C Plus API](https://api-docs.3c.plus).

<Note>3C Plus sends dates in your account's time zone; the connector converts every timestamp to UTC. Durations come as text (`HH:MM:SS`) and also as a number of seconds in the `_seconds` columns. Lists and objects (mailing data, feedback, settings, team members) are stored as JSON text.</Note>

<AccordionGroup>
  <Accordion title="Calls">
    Call history report of the company, one row per call (`GET /calls`). Read day by day in the account's time zone; the last **Lookback Days** are re-read on every sync, because 3C Plus completes a call (qualification, feedback) after it first appears.

    Primary key: `id`

    | Field                              | Type     | Description                                                                                                                             |
    | :--------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------- |
    | `id`                               | String   | Unique identifier of the call.                                                                                                          |
    | `sid`                              | String   | Human-readable identifier of the call, unique per call.                                                                                 |
    | `call_date`                        | Datetime | Timestamp of the call (UTC), used as the incremental replication key.                                                                   |
    | `campaign_id`                      | Integer  | Campaign the call belongs to.                                                                                                           |
    | `campaign`                         | String   | Name of the campaign.                                                                                                                   |
    | `list`                             | String   | Name of the mailing list the number came from.                                                                                          |
    | `list_id`                          | Integer  | Mailing list the number came from.                                                                                                      |
    | `queue_name`                       | String   | Name of the receptive queue, for inbound calls.                                                                                         |
    | `number`                           | String   | Phone number called.                                                                                                                    |
    | `phone`                            | String   | Phone number of the contact, when sent separately.                                                                                      |
    | `phone_type`                       | String   | Type of the phone: mobile or landline.                                                                                                  |
    | `identifier`                       | String   | Identifier of the contact in the mailing list.                                                                                          |
    | `mode`                             | String   | Dialing mode of the call.                                                                                                               |
    | `has_agent`                        | Boolean  | Whether the call reached an agent.                                                                                                      |
    | `agent_id`                         | Integer  | Agent who handled the call.                                                                                                             |
    | `agent`                            | String   | Name of the agent who handled the call.                                                                                                 |
    | `qualification_id`                 | Integer  | Qualification (call outcome) given.                                                                                                     |
    | `qualification`                    | String   | Qualification (call outcome) given: its name, or its id on older payloads.                                                              |
    | `qualification_note`               | String   | Note the agent left when qualifying.                                                                                                    |
    | `behavior`                         | Integer  | Behavior code of the qualification.                                                                                                     |
    | `readable_behavior_text`           | String   | Readable behavior of the qualification.                                                                                                 |
    | `is_dmc`                           | Boolean  | Whether the call was a decision maker contact (DMC).                                                                                    |
    | `status_id`                        | String   | Status code of the call.                                                                                                                |
    | `readable_status_text`             | String   | Readable status of the call.                                                                                                            |
    | `readable_amd_status_text`         | String   | Answering machine detection result.                                                                                                     |
    | `hangup_cause`                     | String   | Hangup cause code.                                                                                                                      |
    | `readable_hangup_cause_text`       | String   | Readable hangup cause.                                                                                                                  |
    | `ended_by_agent`                   | Boolean  | Whether the agent ended the call.                                                                                                       |
    | `speaking_time`                    | String   | Time spent speaking (HH:MM:SS).                                                                                                         |
    | `speaking_time_seconds`            | Integer  | Time spent speaking, in seconds.                                                                                                        |
    | `speaking_with_agent_time`         | String   | Time the contact spoke with the agent (HH:MM:SS).                                                                                       |
    | `speaking_with_agent_time_seconds` | Integer  | Time the contact spoke with the agent, in seconds.                                                                                      |
    | `acw_time`                         | String   | After-call work time of the agent (HH:MM:SS).                                                                                           |
    | `acw_time_seconds`                 | Integer  | After-call work time, in seconds.                                                                                                       |
    | `ivr_time`                         | String   | Time spent in the IVR (HH:MM:SS).                                                                                                       |
    | `ivr_time_seconds`                 | Integer  | Time spent in the IVR, in seconds.                                                                                                      |
    | `billed_time`                      | String   | Billed time of the call (HH:MM:SS).                                                                                                     |
    | `billed_time_seconds`              | Integer  | Billed time of the call, in seconds.                                                                                                    |
    | `billed_value`                     | Number   | Billed value of the call (BRL).                                                                                                         |
    | `route_id`                         | Integer  | Telephony route used by the call.                                                                                                       |
    | `route_name`                       | String   | Name of the telephony route.                                                                                                            |
    | `route_host`                       | String   | Host of the telephony route.                                                                                                            |
    | `recorded`                         | Boolean  | Whether the call was recorded.                                                                                                          |
    | `recording`                        | String   | API URL of the call recording.                                                                                                          |
    | `recording_amd`                    | String   | API URL of the AMD recording.                                                                                                           |
    | `recording_transfer`               | String   | API URL of the transfer recording.                                                                                                      |
    | `recording_consult`                | String   | API URL of the consult recording.                                                                                                       |
    | `is_transferred`                   | Boolean  | Whether the call was transferred.                                                                                                       |
    | `is_transfer`                      | Boolean  | Whether the call is a transfer.                                                                                                         |
    | `is_consult`                       | Boolean  | Whether the call is a consult (warm transfer).                                                                                          |
    | `parent`                           | String   | API URL of the parent call (transfers and consults).                                                                                    |
    | `parent_id`                        | String   | Identifier of the parent call.                                                                                                          |
    | `transfer`                         | String   | API URL of the transfer call.                                                                                                           |
    | `transfer_id`                      | String   | Identifier of the transfer call.                                                                                                        |
    | `consult`                          | String   | API URL of the consult call.                                                                                                            |
    | `consult_id`                       | String   | Identifier of the consult call.                                                                                                         |
    | `consults`                         | String   | Consults generated by the call (JSON array).                                                                                            |
    | `consult_ids`                      | String   | Identifiers of the consults (JSON).                                                                                                     |
    | `mailing_data`                     | String   | Contact data from the mailing list: identifier, phone and the list's own columns (JSON object). Empty when Include Mailing Data is off. |
    | `feedback`                         | String   | Manager feedback given on the call (JSON object).                                                                                       |
    | `additional_fields`                | String   | Fields 3C Plus returned that have no column of their own (JSON object).                                                                 |
  </Accordion>

  <Accordion title="Agent Login History">
    Login sessions of agents in campaigns (`GET /agents/login_history`). A session that is still open has no logout yet and is completed by a later sync.

    Primary key: `row_key`

    | Field              | Type     | Description                                                                   |
    | :----------------- | :------- | :---------------------------------------------------------------------------- |
    | `row_key`          | String   | Surrogate key of the session: a hash of agent, campaign and login time.       |
    | `login_at`         | Datetime | Timestamp the agent logged in (UTC), used as the incremental replication key. |
    | `logout_at`        | Datetime | Timestamp the agent logged out (UTC).                                         |
    | `is_logged_in`     | Boolean  | Whether the session was still open when read.                                 |
    | `duration_seconds` | Integer  | Length of the session, in seconds.                                            |
    | `agent_id`         | Integer  | Agent of the session.                                                         |
    | `agent_name`       | String   | Name of the agent.                                                            |
    | `campaign_id`      | Integer  | Campaign the agent logged into.                                               |
    | `campaign_name`    | String   | Name of the campaign.                                                         |
  </Accordion>

  <Accordion title="Agent Metrics Daily">
    Productivity totals of each agent in each campaign per day (`GET /campaigns/{id}/agents/metrics/total`, read one day at a time). Agents without any activity on a day are left out.

    Primary key: `campaign_id`, `agent_id`, `date`

    | Field                               | Type    | Description                                                                      |
    | :---------------------------------- | :------ | :------------------------------------------------------------------------------- |
    | `campaign_id`                       | Integer | Campaign of the metrics.                                                         |
    | `agent_id`                          | Integer | Agent of the metrics.                                                            |
    | `date`                              | Date    | Day of the metrics (account time zone), used as the incremental replication key. |
    | `agent_name`                        | String  | Name of the agent.                                                               |
    | `total_calls`                       | Integer | Total calls of the agent on the day.                                             |
    | `calls`                             | Integer | Calls dialed by the dialer to the agent.                                         |
    | `manual_calls`                      | Integer | Manual calls made by the agent.                                                  |
    | `manual_calls_acw`                  | Integer | Manual calls made during after-call work.                                        |
    | `manual_calls_made`                 | Integer | Calls made in manual mode.                                                       |
    | `manual_calls_answered`             | Integer | Manual-mode calls that were answered.                                            |
    | `manual_calls_acw_made`             | Integer | Calls made in manual after-call work.                                            |
    | `manual_calls_acw_answered`         | Integer | Manual after-call work calls that were answered.                                 |
    | `speaking`                          | String  | Time spent speaking (HH:MM:SS).                                                  |
    | `speaking_seconds`                  | Integer | Time spent speaking, in seconds.                                                 |
    | `average`                           | String  | Average time logged in (HH:MM:SS).                                               |
    | `average_seconds`                   | Integer | Average time logged in, in seconds.                                              |
    | `idle`                              | String  | Time spent idle (HH:MM:SS).                                                      |
    | `idle_seconds`                      | Integer | Time spent idle, in seconds.                                                     |
    | `acw`                               | String  | Time spent in after-call work (HH:MM:SS).                                        |
    | `acw_seconds`                       | Integer | Time spent in after-call work, in seconds.                                       |
    | `manual`                            | String  | Time spent in manual mode (HH:MM:SS).                                            |
    | `manual_seconds`                    | Integer | Time spent in manual mode, in seconds.                                           |
    | `manual_acw`                        | String  | After-call work time in manual mode (HH:MM:SS).                                  |
    | `manual_acw_seconds`                | Integer | After-call work time in manual mode, in seconds.                                 |
    | `manual_calls_calling`              | String  | Time calling in manual mode (HH:MM:SS).                                          |
    | `manual_calls_calling_seconds`      | Integer | Time calling in manual mode, in seconds.                                         |
    | `manual_calls_speaking`             | String  | Time speaking in manual mode (HH:MM:SS).                                         |
    | `manual_calls_speaking_seconds`     | Integer | Time speaking in manual mode, in seconds.                                        |
    | `manual_calls_acw_calling`          | String  | Time calling during manual after-call work (HH:MM:SS).                           |
    | `manual_calls_acw_calling_seconds`  | Integer | Time calling during manual after-call work, in seconds.                          |
    | `manual_calls_acw_speaking`         | String  | Time speaking during manual after-call work (HH:MM:SS).                          |
    | `manual_calls_acw_speaking_seconds` | Integer | Time speaking during manual after-call work, in seconds.                         |
  </Accordion>

  <Accordion title="Schedules">
    Scheduled callbacks (`GET /schedules`), from the **Start Date** to one year ahead, so pending callbacks are included. Refreshed in full on every sync, since a schedule's status changes after it is created.

    Primary key: `id`

    | Field           | Type     | Description                                                                    |
    | :-------------- | :------- | :----------------------------------------------------------------------------- |
    | `id`            | String   | Unique identifier of the schedule.                                             |
    | `date`          | Datetime | Timestamp the callback is scheduled for (UTC).                                 |
    | `phone`         | String   | Phone number to call back.                                                     |
    | `note`          | String   | Note left on the schedule.                                                     |
    | `status`        | String   | Status of the schedule (e.g. pending).                                         |
    | `agent_id`      | Integer  | Agent the callback is assigned to.                                             |
    | `agent_name`    | String   | Name of the agent.                                                             |
    | `campaign_id`   | Integer  | Campaign of the callback.                                                      |
    | `campaign_name` | String   | Name of the campaign.                                                          |
    | `mailing_data`  | String   | Contact data from the mailing list, with the list's own columns (JSON object). |
  </Accordion>

  <Accordion title="Agents">
    Agents of the company, active and inactive (`GET /agents`).

    Primary key: `id`

    | Field              | Type    | Description                                                      |
    | :----------------- | :------ | :--------------------------------------------------------------- |
    | `id`               | Integer | Unique identifier of the agent.                                  |
    | `name`             | String  | Name of the agent.                                               |
    | `active`           | Boolean | Whether the agent is active.                                     |
    | `extension_id`     | Integer | Identifier of the agent's telephony extension.                   |
    | `extension_number` | Integer | Extension number the agent uses in the 3C Plus telephony system. |
    | `extension_type`   | String  | Type of the extension.                                           |
    | `profile_url`      | String  | API URL of the agent's profile.                                  |
  </Accordion>

  <Accordion title="Users">
    Users of the company, active and inactive: managers, supervisors, and agents (`GET /users`). The API token, extension password, and confirmation code 3C Plus keeps for each user are never extracted.

    Primary key: `id`

    | Field                | Type     | Description                                                                       |
    | :------------------- | :------- | :-------------------------------------------------------------------------------- |
    | `id`                 | Integer  | Unique identifier of the user.                                                    |
    | `name`               | String   | Name of the user.                                                                 |
    | `email`              | String   | Email address of the user.                                                        |
    | `active`             | Boolean  | Whether the user is active.                                                       |
    | `confirmed`          | Boolean  | Whether the user confirmed the account.                                           |
    | `telephony_id`       | String   | Identifier of the user in the telephony system.                                   |
    | `webphone`           | Boolean  | Whether the user has access to the web phone.                                     |
    | `user_document`      | String   | Document (CPF) of the user.                                                       |
    | `last_login`         | Datetime | Timestamp of the user's last login (UTC).                                         |
    | `role_id`            | Integer  | Identifier of the user's role.                                                    |
    | `role_name`          | String   | Internal name of the role (e.g. agent, manager).                                  |
    | `role_readable_name` | String   | Display name of the role.                                                         |
    | `extension_id`       | Integer  | Identifier of the user's extension.                                               |
    | `extension_number`   | Integer  | Extension number of the user.                                                     |
    | `extension_type`     | String   | Type of the extension.                                                            |
    | `team_ids`           | Array    | Identifiers of the teams the user belongs to.                                     |
    | `settings`           | String   | User preferences: time zone, language, date and hour formats (JSON object).       |
    | `teams`              | String   | Teams the user belongs to (JSON array).                                           |
    | `campaigns`          | String   | Campaigns the user takes part in (JSON array).                                    |
    | `receptive_queues`   | String   | Receptive queues the user answers (JSON array).                                   |
    | `user_updated_data`  | String   | Additional profile data 3C Plus keeps for the user, when available (JSON object). |
    | `created_at`         | Datetime | Timestamp the user was created (UTC).                                             |
    | `updated_at`         | Datetime | Timestamp of the user's last update (UTC).                                        |
  </Accordion>

  <Accordion title="Teams">
    Teams of agents and their supervisors (`GET /teams`).

    Primary key: `id`

    | Field                            | Type    | Description                                      |
    | :------------------------------- | :------ | :----------------------------------------------- |
    | `id`                             | Integer | Unique identifier of the team.                   |
    | `name`                           | String  | Name of the team.                                |
    | `color`                          | String  | Color of the team (hex).                         |
    | `whatsapp`                       | Boolean | Whether the team uses the WhatsApp integration.  |
    | `qualification_list_id`          | Integer | Qualification list used by the team.             |
    | `whatsapp_quick_message_list_id` | Integer | Quick message list used by the team on WhatsApp. |
    | `agent_ids`                      | Array   | Identifiers of the team's agents.                |
    | `supervisor_ids`                 | Array   | Identifiers of the team's supervisors.           |
    | `agents`                         | String  | Agents of the team (JSON array).                 |
    | `supervisor`                     | String  | Supervisors of the team (JSON array).            |
  </Accordion>

  <Accordion title="Campaigns">
    Dialer campaigns, running and paused (`GET /campaigns`).

    Primary key: `id`

    | Field                         | Type    | Description                                                                 |
    | :---------------------------- | :------ | :-------------------------------------------------------------------------- |
    | `id`                          | Integer | Unique identifier of the campaign.                                          |
    | `name`                        | String  | Name of the campaign.                                                       |
    | `start_time`                  | String  | Time of day the campaign starts dialing.                                    |
    | `end_time`                    | String  | Time of day the campaign stops dialing.                                     |
    | `paused`                      | Boolean | Whether the campaign is paused.                                             |
    | `is_on_active_time`           | Boolean | Whether the campaign is inside its active hours.                            |
    | `is_predictive`               | Boolean | Whether the campaign uses the predictive dialer.                            |
    | `allows_manual`               | Boolean | Whether agents can dial manually.                                           |
    | `amd_enabled`                 | Boolean | Whether answering machine detection (AMD) is enabled.                       |
    | `acw_timeout`                 | Integer | After-call work (ACW) timeout in seconds; 0 means no timeout.               |
    | `limit_call_time`             | Integer | Maximum call duration in seconds.                                           |
    | `limit_call_per_agent`        | Number  | Call limit per agent.                                                       |
    | `exit_manual_mode`            | Integer | Seconds before an agent leaves manual mode.                                 |
    | `caller_id`                   | String  | Caller ID shown on outbound calls.                                          |
    | `asr`                         | Number  | Answer-seizure ratio (ASR) configured for the campaign.                     |
    | `ura_limit`                   | Integer | Limit of calls held in the IVR (URA).                                       |
    | `active_list_notify`          | Boolean | Whether to notify when a mailing list is active.                            |
    | `copy_identifier`             | Boolean | Whether the connected call's identifier is copied.                          |
    | `ivr_after_call_id`           | Integer | IVR played after the call.                                                  |
    | `route_limit_exceeded`        | Boolean | Whether the route limit was exceeded.                                       |
    | `route_landline_id`           | Integer | Route used for landline calls.                                              |
    | `route_mobile_id`             | Integer | Route used for mobile calls.                                                |
    | `route_group_landline_id`     | Integer | Route group used for landline calls.                                        |
    | `route_group_mobile_id`       | Integer | Route group used for mobile calls.                                          |
    | `filter_calls`                | Boolean | Whether call filtering is enabled.                                          |
    | `should_complete_failed_call` | Boolean | Whether failed calls are marked as completed.                               |
    | `update_mailing_data`         | Boolean | Whether mailing data is updated during calls.                               |
    | `company_id`                  | Integer | Identifier of the 3C Plus company.                                          |
    | `extension_id`                | Integer | Identifier of the campaign's extension.                                     |
    | `extension_number`            | Integer | Extension number of the campaign.                                           |
    | `work_break_group_id`         | Integer | Work break group used by the campaign.                                      |
    | `work_break_group_name`       | String  | Name of the work break group.                                               |
    | `dialer_settings`             | String  | Dialer configuration (JSON object).                                         |
    | `route_landline`              | String  | Landline route details (JSON object).                                       |
    | `route_mobile`                | String  | Mobile route details (JSON object).                                         |
    | `campaign_information`        | String  | Runtime counters 3C Plus attaches to the campaign, when sent (JSON object). |
  </Accordion>

  <Accordion title="Campaign Mailing Lists">
    Mailing lists of each campaign with their dialing progress (`GET /campaigns/{id}/lists`).

    Primary key: `campaign_id`, `id`

    | Field                  | Type     | Description                                    |
    | :--------------------- | :------- | :--------------------------------------------- |
    | `campaign_id`          | Integer  | Campaign the list belongs to.                  |
    | `id`                   | Integer  | Unique identifier of the mailing list.         |
    | `name`                 | String   | Name of the mailing list.                      |
    | `total`                | Integer  | Total phones in the list.                      |
    | `dial`                 | Integer  | Phones still to dial.                          |
    | `redial`               | Integer  | Phones to redial.                              |
    | `dialed`               | Integer  | Phones already dialed.                         |
    | `dialed_percentage`    | Number   | Percentage of the phones already dialed.       |
    | `completed`            | Integer  | Calls completed on the list.                   |
    | `completed_percentage` | Number   | Percentage of completed calls.                 |
    | `answered`             | Integer  | Calls answered on the list.                    |
    | `answered_percentage`  | Number   | Percentage of answered calls.                  |
    | `abandoned`            | Integer  | Calls abandoned on the list.                   |
    | `asr`                  | Number   | Answer-seizure ratio (ASR) of the list.        |
    | `asr_percentage`       | Number   | ASR of the list as a percentage.               |
    | `weight`               | Integer  | Weight of the list in the campaign.            |
    | `weight_percentage`    | Number   | Weight of the list as a percentage.            |
    | `dial_percentage`      | Number   | Share of the campaign's dialing on the list.   |
    | `redial_percentage`    | Number   | Share of the campaign's redialing on the list. |
    | `created_at`           | Datetime | Timestamp the list was created (UTC).          |
  </Accordion>

  <Accordion title="Qualification Lists">
    Lists of qualifications (call outcomes) (`GET /qualification_lists`).

    Primary key: `id`

    | Field          | Type    | Description                                  |
    | :------------- | :------ | :------------------------------------------- |
    | `id`           | Integer | Unique identifier of the qualification list. |
    | `name`         | String  | Name of the qualification list.              |
    | `type`         | Integer | Type of the qualification list.              |
    | `campaign_ids` | Array   | Campaigns that use the list.                 |
    | `campaigns`    | String  | Campaigns that use the list (JSON array).    |
  </Accordion>

  <Accordion title="Qualifications">
    Qualifications (call outcomes) of each list (`GET /qualification_lists/{id}/qualifications`).

    Primary key: `qualification_list_id`, `id`

    | Field                              | Type    | Description                                                |
    | :--------------------------------- | :------ | :--------------------------------------------------------- |
    | `qualification_list_id`            | Integer | Qualification list the qualification belongs to.           |
    | `id`                               | Integer | Unique identifier of the qualification.                    |
    | `name`                             | String  | Name of the qualification (call outcome).                  |
    | `behavior`                         | Integer | Behavior code of the qualification.                        |
    | `readable_behavior`                | String  | Readable description of the behavior.                      |
    | `color`                            | String  | Color of the qualification (hex).                          |
    | `emoji`                            | String  | Emoji of the qualification.                                |
    | `conversion`                       | Boolean | Whether the qualification counts as a conversion.          |
    | `dmc`                              | Boolean | Whether it counts as a decision maker contact (DMC).       |
    | `unknown`                          | Boolean | Whether it marks the contact as unknown.                   |
    | `allow_schedule`                   | Boolean | Whether a callback can be scheduled.                       |
    | `allow_schedule_to_another_number` | Boolean | Whether a callback can be scheduled to a different number. |
    | `should_insert_blacklist`          | Boolean | Whether the number is added to the blacklist.              |
    | `blacklist_blocking_days`          | Integer | Days the number stays blacklisted.                         |
    | `days_limit`                       | Integer | Days limit to schedule a callback.                         |
    | `campaign_id`                      | Integer | Campaign the qualification is tied to, if any.             |
  </Accordion>

  <Accordion title="Work Break Groups">
    Groups of pause types (`GET /work_break_group`).

    Primary key: `id`

    | Field  | Type    | Description                                |
    | :----- | :------ | :----------------------------------------- |
    | `id`   | Integer | Unique identifier of the work break group. |
    | `name` | String  | Name of the work break group.              |
  </Accordion>

  <Accordion title="Work Break Intervals">
    Pause types of each work break group (`GET /work_break_group/{id}/intervals`).

    Primary key: `work_break_group_id`, `id`

    | Field                 | Type    | Description                                 |
    | :-------------------- | :------ | :------------------------------------------ |
    | `work_break_group_id` | Integer | Work break group of the interval.           |
    | `id`                  | Integer | Unique identifier of the interval.          |
    | `name`                | String  | Name of the pause (e.g. lunch, bathroom).   |
    | `minutes`             | Integer | Duration allowed for the pause, in minutes. |
    | `color`               | String  | Color of the interval (hex).                |
  </Accordion>

  <Accordion title="Receptive Queues">
    Inbound queues (`GET /receptive_queues`). Skipped when the account does not use inbound calls.

    Primary key: `id`

    | Field                   | Type    | Description                                    |
    | :---------------------- | :------ | :--------------------------------------------- |
    | `id`                    | Integer | Unique identifier of the queue.                |
    | `name`                  | String  | Name of the queue.                             |
    | `wait_time`             | Integer | Maximum waiting time in the queue, in seconds. |
    | `acw_timeout`           | Integer | After-call work timeout, in seconds.           |
    | `priority`              | Integer | Priority of the queue.                         |
    | `qualification_list_id` | Integer | Qualification list used by the queue.          |
    | `audio_path`            | String  | Path of the queue's audio.                     |
    | `limit_call_time`       | Integer | Maximum call duration, in seconds.             |
    | `ivr_after_call_id`     | Integer | IVR played after the call.                     |
    | `extension_id`          | Integer | Identifier of the queue's extension.           |
    | `extension_number`      | Integer | Extension number of the queue.                 |
    | `agent_ids`             | Array   | Agents that answer the queue.                  |
    | `agents`                | String  | Agents that answer the queue (JSON array).     |
  </Accordion>

  <Accordion title="Receptive IVRs">
    Inbound IVRs (`GET /receptive_ivr`). Skipped when the account does not use inbound calls.

    Primary key: `id`

    | Field                 | Type    | Description                            |
    | :-------------------- | :------ | :------------------------------------- |
    | `id`                  | Integer | Unique identifier of the IVR.          |
    | `name`                | String  | Name of the IVR.                       |
    | `timeout`             | Integer | Timeout of the IVR, in seconds.        |
    | `original_audio_name` | String  | Original name of the IVR's audio file. |
    | `audio_path`          | String  | API path of the IVR's audio.           |
    | `redirect_id`         | String  | Destination the IVR redirects to.      |
  </Accordion>

  <Accordion title="Tags">
    Tags of the company (`GET /tags`). Skipped when not available for the account.

    Primary key: `id`

    | Field   | Type    | Description                   |
    | :------ | :------ | :---------------------------- |
    | `id`    | Integer | Unique identifier of the tag. |
    | `name`  | String  | Name of the tag.              |
    | `color` | String  | Color of the tag (hex).       |
  </Accordion>

  <Accordion title="SMS Mailing Lists">
    SMS mailing lists and their sending progress (`GET /mailing_list_sms`). Skipped when the account does not use SMS.

    Primary key: `id`

    | Field           | Type     | Description                                   |
    | :-------------- | :------- | :-------------------------------------------- |
    | `id`            | Integer  | Unique identifier of the SMS mailing list.    |
    | `name`          | String   | Name of the SMS mailing list.                 |
    | `original_name` | String   | Name of the file the list was imported from.  |
    | `company_id`    | Integer  | Identifier of the 3C Plus company.            |
    | `message`       | String   | Text of the SMS sent to the list.             |
    | `schedule`      | Datetime | Timestamp the sending is scheduled for (UTC). |
    | `status`        | Integer  | Status code of the list.                      |
    | `paused`        | Boolean  | Whether the sending is paused.                |
    | `importing`     | Boolean  | Whether the list is still being imported.     |
    | `total`         | Integer  | Total contacts in the list.                   |
    | `sent`          | Integer  | Messages sent.                                |
    | `success`       | Integer  | Messages delivered successfully.              |
    | `failure`       | Integer  | Messages that failed.                         |
    | `not_sent`      | Integer  | Messages not sent yet.                        |
    | `created_at`    | Datetime | Timestamp the list was created (UTC).         |
  </Accordion>
</AccordionGroup>
