Skip to main content

Chorus.ai

Chorus.ai is a conversation intelligence platform from ZoomInfo that records, transcribes, and analyzes sales calls, meetings, and emails. It captures customer-facing conversations, surfaces AI-driven insights and keyword trackers, and powers coaching workflows through scorecards, moments, and call analytics. This connector lets Nexla ingest Chorus.ai conversations, transcripts, engagements, users, teams, scorecards, trackers, moments, and call analytics for downstream reporting, revenue intelligence, and data warehousing.

Chorus.ai icon

Power end-to-end data operations for your Chorus.ai API with Nexla. Our bi-directional Chorus.ai connector is purpose-built for Chorus.ai, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Chorus.ai or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Chorus.ai workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

The Chorus.ai API authenticates each request with a personal API token that is generated from within the Chorus.ai application. Before creating a credential in Nexla, generate an API token and confirm that your Chorus.ai role is permitted to access the API.

Account and Role Requirements

Chorus.ai is part of ZoomInfo. To generate and use an API token, the following requirements must be met:

  • You must have an active Chorus.ai account with sign-in access to your organization's Chorus.ai portal.

  • Your Chorus.ai role must be permitted to access the Chorus API. API access is controlled through your organization's roles and permissions settings, and generating a token typically requires administrator-level permissions. A Chorus.ai administrator can enable API access for your role if it is not already permitted.

API tokens are issued per user, and each token inherits the data access of the user who created it. Generate the token from a user account whose visibility covers all of the conversations, teams, and analytics you intend to ingest into Nexla.

Generate a Chorus.ai API Token

  1. Sign in to your Chorus.ai portal at https://chorus.ai.

  2. Navigate to Settings > Personal Settings.

  3. Locate the API Access section on the Personal Settings page.

  4. Click Generate API Token to create a new token.

  5. Copy the generated token immediately and store it securely.

    Important

    The API token is displayed only once at the time of generation and cannot be viewed again. If the token is lost, you must deactivate the existing token and generate a new one.

For complete information about the Chorus.ai API and token management, refer to the Chorus API documentation.

Authenticate

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Chorus.ai uses a single authentication method: a personal API token that Nexla sends in the Authorization request header on every API call. Unlike many APIs, Chorus.ai expects the raw token value with no Bearer prefix. Enter the API token generated from your Chorus.ai Personal Settings page in the API Token field. This token authenticates Nexla with the Chorus.ai API and grants access to the conversations, engagements, users, and analytics that the issuing user can view.

    The API token is a secret credential. It is stored securely by Nexla and is masked after entry. Treat it like a password, and rotate it from your Chorus.ai Personal Settings page if it is ever exposed.

    Nexla validates the credential against the Chorus.ai https://chorus.ai/api/v1/me endpoint when it is saved, confirming that the token is valid and that the authenticated user can be retrieved.

  4. Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Chorus.ai connector tile, then select the credential that will be used to connect to the Chorus.ai instance, and click Next; or, create a new Chorus.ai credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Chorus.ai endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.

Get Conversations

This endpoint retrieves recorded conversations—calls and meetings—from your Chorus.ai organization, filtered by a date range. Use it to ingest the full catalog of conversations for revenue intelligence, reporting, or pipeline analysis. Results are paginated automatically, and Nexla follows the next-page link until all matching conversations are retrieved.

  • Enter the start of the date range in the From Date field as an ISO 8601 datetime (for example, 2024-01-01T00:00:00Z). This field is optional and defaults to {now-30}, which resolves to 30 days before the current date.
  • Enter the end of the date range in the To Date field as an ISO 8601 datetime (for example, 2024-12-31T23:59:59Z). This field is optional and defaults to {now}, the current date.

The {now} and {now-30} values are Nexla date/time macros that are converted to actual datetimes when the flow runs, making it easy to ingest a rolling window of recent conversations on each scheduled run.

Get Conversation by ID

This endpoint fetches the full details of a single conversation, including the transcript, AI insights, participants, deal information, and recording metadata. Use it when you need the complete record for a specific call or meeting.

  • Enter the unique identifier of the conversation to retrieve in the Conversation ID field. This field is required. Conversation IDs can be obtained from the Get Conversations endpoint.

To ingest details for many conversations, first run the Get Conversations endpoint to collect conversation IDs, then reference those IDs in this endpoint—optionally using a lookup-based macro to drive the requests dynamically.

Get Users

This endpoint retrieves all users in your Chorus.ai organization, including each user's email, name, role, team, and activity metrics. Use it to build a roster of users for joining against conversation, engagement, and scorecard data.

  • This endpoint requires no additional configuration beyond selecting the template. Results are paginated automatically using a continuation key, and Nexla retrieves all pages.

This endpoint uses the Chorus.ai v3 API and returns users under the users array in the response.

Get Engagements

This endpoint retrieves call and meeting engagements from the Chorus.ai v3 API, filtered by a date range. Engagements represent customer-facing activity and can be filtered by participant, team, type, and tracker keyword matches. Use it for engagement-level analytics across your organization.

  • Enter the start of the date range in the From Date (Epoch Seconds) field as a Unix epoch timestamp in seconds. This field is optional and defaults to {now-30}, which resolves to 30 days ago.
  • Enter the end of the date range in the To Date (Epoch Seconds) field as a Unix epoch timestamp in seconds. This field is optional and defaults to {now}, the current date.

Unlike the conversation endpoints, the engagements endpoint expects dates as Unix epoch seconds rather than ISO 8601 datetimes. Results are paginated automatically using a continuation key.

Get Scorecards

This endpoint retrieves AI-assisted and manual coaching scorecards, including scores, reviewers, recipients, the associated initiative, and submission status. Use it to analyze coaching activity and rep performance across your organization.

  • Use the Filter: Submitted Only field to control which scorecards are returned. When set to true, only submitted scorecards are returned; leave it as the default false to return all scorecards.
  • Enter an initiative (coaching template) identifier in the Filter: Initiative ID field to return only scorecards for a specific initiative. This field is optional. Initiative IDs can be obtained from the Get Initiatives endpoint.

Results are paginated automatically. To narrow results to a specific coaching program, combine this endpoint with the Get Initiatives endpoint to look up the relevant initiative ID.

Get Moments

This endpoint retrieves highlighted AI moments—key call clips shared within your organization—along with account, opportunity, and creator context. Use it to track which call highlights are being shared and the deals they relate to.

  • Enter the start of the shared-on date range in the Shared On Start (ISO 8601) field (for example, 2024-01-01T00:00:00Z). This field is optional and defaults to {now-30}.
  • Enter the end of the shared-on date range in the Shared On End (ISO 8601) field (for example, 2024-12-31T23:59:59Z). This field is optional and defaults to {now}.

The date range filters moments by the date they were shared in Chorus.ai, not by the date of the underlying conversation.

Get Playlists

This endpoint retrieves all curated call playlists used for coaching and onboarding, including each playlist's name, owner, path, and subscription metadata. Use it to catalog the coaching content available in your organization.

  • This endpoint requires no additional configuration beyond selecting the template. It returns all playlists accessible to the authenticated user.

Playlists organize curated conversations for training and enablement. Pair this endpoint with conversation data to understand which calls are being used for coaching.

Get Trackers

This endpoint retrieves all AI keyword trackers configured in your organization. Trackers are topic detectors for competitors, objections, pricing, and custom keyword groups that Chorus.ai applies to conversations. Use it to ingest your tracker configuration for reporting on keyword mentions.

  • This endpoint requires no additional configuration beyond selecting the template. It returns all trackers defined in your organization.

Tracker IDs and names retrieved here can be used to interpret tracker keyword matches that appear in the conversation and engagement endpoints.

Get Initiatives

This endpoint retrieves all coaching initiatives—scorecard templates—including their criteria, scoring structure, and associated team assignments. Use it to understand the coaching programs in your organization and to resolve initiative IDs for the Get Scorecards endpoint.

  • This endpoint requires no additional configuration beyond selecting the template. It returns all initiatives defined in your organization.

Initiatives define the scoring criteria used to evaluate calls. Use the initiative IDs returned here to filter scorecards by a specific coaching program.

Get Teams

This endpoint retrieves all teams in your Chorus.ai organization, including team name, members, managers, and hierarchy. Use it to support performance reporting that rolls conversation and scorecard metrics up to the team level.

  • This endpoint requires no additional configuration beyond selecting the template. It uses the Chorus.ai v3 API and returns teams under the teams array.

Combine team data with the Get Users endpoint to map users to their teams and managers for organizational reporting.

Get Call Stats (Analytics)

This endpoint retrieves aggregated AI call analytics for a date range, including talk-to-listen ratios, monologue duration, filler words, question rates, and next-steps adherence. Use it for trend reporting and coaching insights across your organization.

  • Enter the start of the analytics date range in the From Date (ISO 8601) field (for example, 2024-01-01T00:00:00Z). This field is optional and defaults to {now-30}.
  • Enter the end of the analytics date range in the To Date (ISO 8601) field (for example, 2024-12-31T23:59:59Z). This field is optional and defaults to {now}.

Call stats are aggregated metrics rather than individual conversation records, making this endpoint well suited for dashboards that track coaching KPIs over time.

Get Emails

This endpoint retrieves emails tracked by Chorus.ai, filtered by a sent date range. Returned emails can include sender, participants, subject, and thread information. Use it to bring email engagement into the same dataset as calls and meetings.

  • Enter the start of the sent date range in the Sent At Start (ISO 8601) field (for example, 2024-01-01T00:00:00Z). This field is optional and defaults to {now-30}.
  • Enter the end of the sent date range in the Sent At End (ISO 8601) field (for example, 2024-12-31T23:59:59Z). This field is optional and defaults to {now}.

Results are paginated automatically, and Nexla follows the next-page link until all matching emails within the date range are retrieved.

Get Email by ID

This endpoint retrieves a single tracked email by its identifier, with full details including the associated account, deal, owner, content, participants, and status. Use it when you need the complete record for a specific email.

  • Enter the unique identifier of the email record to retrieve in the Email ID field. This field is required. Email IDs can be obtained from the Get Emails endpoint.

Run the Get Emails endpoint first to collect email IDs, then reference those IDs in this endpoint to ingest full email details.

Get Email Thread Details

This endpoint retrieves metadata for a specific tracked email thread, including its privacy status, deletion information, and associated participants. Use it to understand the context and access controls of an email thread.

  • Enter the unique identifier of the email thread to retrieve in the Email Thread ID field. This field is required.

Email thread metadata is useful for compliance and privacy reporting, as it indicates whether a thread is private or has been deleted.

Get Saved Searches

This endpoint retrieves all saved conversation searches for the authenticated user, including their filters and default status. Use it to understand the search workflows configured for pipeline and conversation review.

  • This endpoint requires no additional configuration beyond selecting the template. It returns the saved searches belonging to the user associated with the credential's API token.

Saved searches are scoped to the authenticated user, so the results reflect the searches created by the user who generated the API token used in the credential.

Get Live Conversation

This endpoint fetches details of an in-progress live conversation by meeting UUID, including participants, recording status, and account context. Use it to monitor active meetings in near real time.

  • Enter the UUID of the live meeting to fetch in the Meeting UUID field. This field is required. The meeting UUID is typically available from the calendar invite or the video conferencing platform hosting the meeting.

This endpoint returns data only while a conversation is actively being recorded. Once a meeting ends, use the Get Conversations or Get Conversation by ID endpoints to retrieve the completed recording and transcript.

Get Current User

This endpoint retrieves the profile details for the user associated with the credential's API token, including access level, email, name, role, and team memberships. Use it to confirm the identity and permissions tied to the credential.

  • This endpoint requires no additional configuration beyond selecting the template. It returns the profile of the authenticated user.

This is the same endpoint Nexla uses to validate the credential when it is saved, making it a quick way to confirm that an API token is working as expected.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Chorus.ai data sources can also be manually configured to ingest data from any valid Chorus.ai API endpoint, including endpoints not covered by the pre-built templates, chained API calls — for example, running Get Conversations to collect conversation IDs and then calling Get Conversation by ID for each — or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

Chorus.ai data retrieval endpoints use the GET method. The v1 API is rooted at https://chorus.ai/api/v1/ (for example, https://chorus.ai/api/v1/conversations) and expects ISO 8601 datetimes for date/time macros, while the v3 API is rooted at https://chorus.ai/v3/ (for example, https://chorus.ai/v3/engagements) and expects Unix epoch seconds instead.

Chorus.ai v1 list endpoints return records inside a top-level data array, so set the Path to Data to $.data[*]; the v3 API returns users and teams under the users and teams arrays respectively. Chorus.ai list responses also include pagination links and continuation keys outside the main data array, which can be captured with the Path to Metadata in Response field if needed.

For request headers, the v1 API expects Accept: application/vnd.api+json, while the v3 API expects Accept: application/json along with x-al-version: 2. You do not need to add the Authorization header — it is handled automatically by Nexla based on your credential configuration.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Chorus.ai data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the Chorus.ai destination, and select the Send to Destination option from the menu. Select the Chorus.ai connector from the list of available destination connectors, then select the credential that will be used to connect to the Chorus.ai organization, and click Next; or, create a new Chorus.ai credential for use in this flow.

Manual configuration

Chorus.ai destinations can be manually configured to send data to any valid Chorus.ai API endpoint — the Chorus.ai API supports actions such as uploading new recordings and deleting existing ones. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

Select the API method appropriate to the operation — for example, POST to create a new resource or DELETE to remove one. Chorus.ai API endpoints expect JSON request bodies. For update or delete operations, include the ID of the object to be modified at the end of the URL — for example, https://chorus.ai/api/v1/conversations/{conversation_id}.

For request headers, the v1 API expects Accept: application/vnd.api+json, while the v3 API expects Accept: application/json along with x-al-version: 2. You do not need to add the Authorization header — it is handled automatically by Nexla based on your credential configuration. Optionally, enable the response webhook option to send the response received from the Chorus.ai API after each call to a new Nexla webhook data source.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Chorus.ai endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to the Chorus.ai endpoint until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.