Skip to content

Conversational Intelligence · Beta

Chorus
API integration

Ship Conversational Intelligence features without building the integration. Full Chorus API access via Proxy, normalized data through Unified APIs, and 70+ MCP-ready tools for AI agents — all extensible to your exact use case.

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
Chorus

Use Cases

Why integrate with Chorus

Common scenarios for SaaS companies building Chorus integrations for their customers.

01

Enrich deal forecasting with conversation signals

RevOps and forecasting platforms can pull Chorus meeting data — including AI-detected topics, competitor mentions, and transcript snippets — to generate deal health scores that go beyond CRM stage data alone.

02

Build a unified coaching library from recorded calls

Sales enablement and LMS platforms can ingest Chorus meetings, recordings, and transcripts to let managers curate training playlists and deliver timestamped coaching feedback inside their own product.

03

Surface voice-of-customer insights for product teams

Product management and feedback aggregation tools can scan Chorus transcripts for feature requests, bug mentions, and sentiment signals, turning raw call data into actionable engineering tickets without relying on sales reps to relay information.

04

Sync call activity into niche or vertical CRMs

Industry-specific CRMs that aren't natively supported by Chorus can use Truto to pull meeting metadata, attendees, and transcripts, matching participants to their own contact records so users never leave their primary workflow.

05

Trigger real-time workflows from meeting events

Workflow automation and collaboration platforms can monitor Chorus meetings for specific topics or keywords and route alerts, summaries, or follow-up tasks into tools like Slack, Jira, or internal dashboards.

What You Can Build

Ship these features with Truto + Chorus

Concrete product features your team can ship faster by leveraging Truto’s Chorus integration instead of building from scratch.

01

Automatic call log sync to CRM contacts

Match Chorus meeting attendees by email to your app's contact records and auto-attach transcripts, AI summaries, and recording links to the right account or opportunity.

02

AI deal risk detection from conversation topics

Ingest the topics and transcript data from Chorus meetings to flag deals where pricing objections, competitor mentions, or stalled next steps appear repeatedly.

03

Embedded call playback with searchable transcripts

Surface Chorus audio and video recording URLs alongside timestamped, speaker-attributed transcripts directly inside your product's UI for in-context review.

04

User-aware data scoping via Chorus user mapping

Pull Chorus user profiles to map call owners to your app's user accounts, enforcing correct data visibility and permission boundaries across teams.

05

Keyword-triggered VOC snippet extraction

Scan meeting transcripts for configurable keywords like 'bug,' 'integration,' or competitor names and automatically clip the relevant timestamped passage into a structured insight feed.

06

Team-level conversation analytics dashboard

Aggregate meeting durations, talk-to-listen ratios, and topic frequency across all Chorus users to give managers a single pane of glass for coaching metrics.

SuperAI

Chorus AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_chorus_conversations

List conversations (meetings) via the engagements endpoint. Returns engagement objects filtered to type MEETING, including engagement_id, subject, date_time, duration, participants, and processing_state.

get_single_chorus_conversation_by_id

Fetch a single conversation by ID. Returns the full conversation object including account, deal, owner, recording details, participants, action items, summary, and metrics.

chorus_conversations_bulk

Bulk upload and/or delete conversations in Chorus. Returns create and delete arrays each containing task objects with id, type, and status. Request body accepts create (array of activity objects), delete (array of conversation IDs), and meta (e.g. force_delete).

delete_a_chorus_conversation_by_id

Delete a conversation record (e.g. an email or recording) asynchronously. Returns a task object with id and status indicating the deletion is in progress. Required: id.

chorus_conversations_disconnect

Disconnect a live conversation call by id. Returns an empty 204 response on success. Required: id.

chorus_conversations_export

Export conversation recordings by scheduling an email with downloadable audio/video links and metadata. Requires start and end timestamps (epoch milliseconds).

chorus_conversations_join

Join a live call by posting the plain text invitation link (e.g. a Zoom meeting URL). Returns the created conversation object including id, name, status, participants, summary, action_items, and associated deal/account info. Requires the invitation text in the request body.

chorus_conversations_validate

Validate whether an upcoming meeting will be automatically recorded. Returns autojoin, recordable, and autojoin_reason attributes. Requires meeting details including id, subject, participants, link, and start_time in the request body.

list_all_chorus_users

List all Chorus users. Returns the full collection of user objects including id, name, email, role, license_type, and team membership.

chorus_users_deregister_token

Deregister a mobile device from the push notifications service for the current user. Returns an empty 204 response on success. Requires token and type in the request body.

get_single_chorus_user_by_id

Get details about the authenticated user. Returns the user object including id, name, email, role, license_type, team_ids, and last_login_at.

chorus_users_register_token

Register a mobile device for push notifications in ZoomInfo Notifications Center. Returns an empty 204 response on success. Requires device_os, device_type, token, and type in the request body.

chorus_users_update_settings

Update the current user's settings. Returns an empty 204 response on success. Accepts setting attributes such as mobile push notification preferences in the request body.

list_all_chorus_me

Get details about the authenticated user. Returns the user object including id, name, email, role, license_type, team_ids, and last_login_at.

create_a_chorus_auth_signed_request

Authenticate via signed request using the HMAC authentication flow. Returns a signed request response including url, expiry, and id. Requires client_id and signed_request in the request body.

list_all_chorus_conversations_lives

Fetch a live conversation by meeting UUID or user ID. Returns the conversation object including account, deal, owner, recording details (utterances, trackers, thumbnails), participants, action items, summary, and metrics.

get_single_chorus_email_thread_by_id

Get details about an email thread by id. Returns the email thread object including attributes such as private, deleted, deleted_at, and deleted_by.

delete_a_chorus_email_thread_by_id

Delete all emails in an email thread by id. Returns the deleted email thread object including attributes such as deleted, deleted_at, and deleted_by.

list_all_chorus_emails

List emails matching specified criteria. Returns email objects that match the provided filter parameters.

get_single_chorus_email_by_id

Get an email by id. Returns the full email object including account, deal, owner, status, participants, summary, action_items, and metrics. Required: id.

list_all_chorus_engagements

List conversations (engagements) matching specified criteria. Returns: engagement_id, engagement_type, subject, date_time, duration, participants, compliance, processing_state, tracker_matches, and url.

chorus_engagements_bulk_delete

Delete multiple engagements by ID. Returns a 200 response on success.

delete_a_chorus_engagement_by_id

Delete a single engagement by id.

list_all_chorus_filters

List all engagement filters for the customer. Returns: filter_name, filter_type, field_type, filter_values, and id for each filter.

create_a_chorus_filter

Create a new engagement filter. Returns the created filter object including id, filter_name, filter_type, and field_type. Requires field_type, filter_name, and filter_type in the request body.

chorus_filters_replace

Replace all engagement filters with the provided set. Returns an empty 204 response on success. Requires filter_type, filters array, and type in the request body.

get_single_chorus_filter_by_id

Get a single engagement filter by id. Returns filter attributes including filter_name, filter_type, field_type, and filter_values.

update_a_chorus_filter_by_id

Update an engagement filter by id. Returns the updated filter object including field_type, filter_name, filter_type, and filter_values. Required: id.

delete_a_chorus_filter_by_id

Delete an engagement filter permanently by id. Returns an empty 204 response on success.

chorus_integrations_google_authms_connect

Connect the user to Google using auth connectors. Returns a 302 redirect to initiate the Google authentication flow.

chorus_integrations_google_calendars_connect

Connect the customer to the Google Calendar service account. Returns an empty response on success.

chorus_integrations_google_calendars_verify

Verify a Google Calendar service account by providing accessible email addresses. Returns an empty 204 response on success or a 400 with error details on failure. Requires emails (at least two).

chorus_integrations_google_emails_connect

Connect a customer to the Google Email service account. Returns an empty response on success.

chorus_integrations_google_meets_connect

Connect the customer to the Google Meet service account. Returns an empty response on success.

chorus_integrations_microsoft_teams_connect

Connect to Microsoft Teams Messaging. Returns a 307 redirect to initiate the Microsoft Teams connection flow.

chorus_integrations_microsoft_teams_postcalls_connect

Connect the customer to the Microsoft Teams service account. Returns a 302 redirect on success.

chorus_integrations_msteams_authms_connect

Connect to AuthMS for Microsoft Teams integration. Returns a 307 redirect to initiate the authentication flow.

chorus_integrations_office_365_authms_connect

Connect the user to Office365 using auth connectors. Returns a 302 redirect to the Office365 authentication flow.

chorus_integrations_office_365_calendars_connect

Connect the customer to the Office365 Calendar service account. Returns a 302 redirect on success to complete the OAuth connection flow.

chorus_integrations_office_365_calendars_verify

Verify an Office 365 calendar email service account. Returns an empty 204 response on success. Requires emails (at least two accessible email addresses).

chorus_integrations_office_365_emails_connect

Connect the customer to the Office365 Email service account. Returns a 302 redirect on success.

chorus_integrations_unies_connect

Connect a customer to Unie CRM via OAuth2 login. Returns a 307 redirect to the Unie OAuth2 authorization page.

chorus_integrations_webex_authms_connect

Connect to Webex AuthMS. Initiates an authentication flow and returns a 307 redirect on success.

chorus_integrations_zoom_authms_connect

Connect to Zoom AuthMS. Initiates an authentication connection and returns a 307 redirect on success.

create_a_chorus_login

Establish an authenticated session by providing user credentials. Requires email and password.

get_single_chorus_media_by_id

Download media file or metadata for a conversation. Returns video by default if both video and audio exist, otherwise returns audio. When Accept header is set to application/json, returns metadata with a download link. Required: id.

list_all_chorus_moments

List all moments. Returns an array of moment objects including id, type, and attributes such as subject, duration, start_time, conversation, speaker, account, opportunity, and video_link.

create_a_chorus_moment

Create a new moment. Returns the created moment object including id, subject, duration, start_time, speaker, user, and linked opportunity. Requires callid and moment_duration in the request body.

update_a_chorus_moment_by_id

Update a moment by id. Returns the updated moment object including attributes such as subject, note, url_string, start_time, duration, speaker, and conversation details. Required: id.

delete_a_chorus_moment_by_id

Delete a moment by id. Returns an empty 204 response on success.

create_a_chorus_pagerduty_event

Send a PagerDuty webhook event for incoming CI. Returns an empty 202 response on success.

list_all_chorus_playlists

List all playlists. Returns an array of playlist objects including id, name, description, owner, size, child_count, and path.

create_a_chorus_playlist

Create a new playlist. Returns the created playlist object including id, name, description, owner, parent, path, and timestamps. Required: name.

get_single_chorus_playlist_by_id

Fetch a specific playlist by id. Returns the playlist object including name, description, owner, privacy status, size, child_count, and path.

delete_a_chorus_playlist_by_id

Delete a playlist by id. Returns an empty 204 response on success.

update_a_chorus_playlist_by_id

Update (completely replace) a playlist by id. Returns the updated playlist object including name, description, owner, parent, path, size, and timestamps. Required: id.

chorus_playlists_create_moment

Create a new playlist moment. Requires callid, description, moment_duration, moment_time, and playlist in the request body.

chorus_playlists_update_moment

Partially update a playlist moment by id. Returns the updated moment including account, call_id, description, moment_duration, snippet_time, and recording details. Required: id.

chorus_reports_export

Export the data of a report as a CSV file. Triggers an asynchronous export that uploads the CSV to S3 and emails a download link valid for 7 days. Returns a task object with id and status. Required: id.

list_all_chorus_sales_qualification_configurations

List sales qualification framework configurations for the tenant. Returns an array of configurations each containing id, is_active status, and fields with display_name, order, mapping, and write_back settings.

update_a_chorus_sales_qualification_configuration_by_id

Update a sales qualification configuration by id. Accepts is_active status and an array of fields with display_name, order, mapping, and write_back settings. Returns an empty response on success. Required: id.

create_a_chorus_sales_qualification

Create a Sales Qualification Framework extraction from call transcripts, emails, and CRM data. Returns the analysis object including id, sqf_name, sqf_analysis fields, meeting_notes, and opportunity_id. Requires recording_id in the request body.

get_single_chorus_sales_qualification_by_id

Get Sales Qualification Framework extraction data for a recording by id. Returns sqf_name, sqf_analysis fields with change tracking, meeting_notes, conversation_duration, and opportunity_id. Required: id (recording_id).

chorus_sales_qualifications_writeback_crm

Write back CRM fields based on a meeting. Submits field-level changes to a CRM object (e.g. Opportunity) and returns a 201 on success. Required: meeting_id, crm_changes, object_type, and opportunity_id in the request body.

chorus_saved_searches_reset

Reset the user's default saved search (view) for Recordings Views. Returns an empty 204 response on success. Required body: type.

chorus_saved_searches_set_default

Set a saved search as the user's default. Returns the updated saved search object including id, name, search_type, user_default, and system_default. Required: id.

list_all_chorus_scorecards

List all scorecards. Returns scorecard objects including id, engagement, scores, recipient, reviewer, initiative, and submitted timestamp.

chorus_scorecards_export

Schedule an export of customer scorecards to a CSV file. Returns a task object with id and status that can be polled for completion.

get_single_chorus_session_by_id

Get the status of the current session. Returns session attributes including active flag, status, customer_id, person_id, and user_id.

delete_a_chorus_session_by_id

Invalidate the current session. Returns an empty 204 response on success.

create_a_chorus_smart_playlist

Create a new smart playlist. Returns the created playlist object including id, name, description, owner, size, and path. Requires name and type in the request body.

update_a_chorus_smart_playlist_by_id

Update (completely replace) a smart playlist by id. Returns the updated playlist object including attributes such as name, description, owner, size, child_count, and timestamps. Required: id.

list_all_chorus_teams

List all teams. Returns an array of team objects including id, name, description, language, manager, users, and parent_team.

get_single_chorus_team_by_id

Fetch a specific team by id. Returns the team object including name, description, language, users, manager, parent_team, and default status.

create_a_chorus_upload

Upload a conversation recording to Chorus. Supports 3GPP, AU, AVI, FLV, HLS, MKV, MP3, MP4, Ogg, WAV, and WebM formats. Requires the data file binary payload.

get_single_chorus_users_setting_by_id

Get the current user's settings. Returns the user_settings object including notification preferences such as mobile_push.comments and mobile_push.mentions.

create_a_chorus_video_conference

Create a new video conference. Returns the created video conference object including id, provider, and type. Required: provider.

update_a_chorus_video_conference_by_id

Partially update a video conference by its go_link id. Supports updating duration, start_time, and subject. Returns an empty response on success. Required: id.

delete_a_chorus_video_conference_by_id

Delete a video conference by id. Returns an empty 204 response on success.

Why Truto

Why use Truto’s MCP server for Chorus

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for Chorus

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified Conversational Intelligence API

Meetings

The meeting represent a meeting in the conversation.

View Docs

Users

The user represent a user in the conversation.

View Docs

How It Works

From zero to integrated

Go live with Chorus in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Chorus account

Use Truto’s frontend SDK to connect your customer’s Chorus account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Chorus

Truto’s Proxy API is a 1-to-1 mapping of the Chorus API. You call us, we call Chorus, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Chorus’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Chorus on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How does authentication work for the Chorus integration?

Chorus uses token-based authentication via its REST API. Your end users provide their API token through Truto's managed auth flow, so you never have to handle credential storage or renewal directly.

What data can I access through the Unified Conversational Intelligence API for Chorus?

The Unified API exposes Meetings and Users. Meetings include metadata (title, duration, timestamps), attendees, audio/video recording URLs, AI-detected topics, and timestamped speaker-attributed transcripts. Users include profile details like email, name, and role.

Are there specific Truto tools available for Chorus today?

No pre-built tools are available for Chorus at this time. They are built on request — reach out to the Truto team with your use case and they will scope and deliver the tooling you need.

Does Truto handle pagination and rate limits for the Chorus API?

Yes. Truto abstracts away pagination logic and respects Chorus's rate limits automatically, so your application receives complete result sets without needing to manage cursors or back-off strategies.

Can I map Chorus meeting attendees to contacts in my own application?

Yes. Each meeting's attendees array includes email addresses and host indicators. You can match these against your own user or contact records to attribute call activity to the correct accounts.

How fresh is the data when I query Chorus through Truto?

Truto queries the Chorus API in real time (or near-real-time with proxy requests), so data freshness matches what the Chorus API itself provides. Transcripts and AI analysis are available once Chorus has finished processing a recording.

Chorus

Get Chorus integrated into your app

Our team understands what it takes to make a Chorus integration successful. A short, crisp 30 minute call with folks who understand the problem.

Talk to us