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 usUse Cases
Why integrate with Chorus
Common scenarios for SaaS companies building Chorus integrations for their customers.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
How It Works
From zero to integrated
Go live with Chorus in under an hour. No boilerplate, no maintenance burden.
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.
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.
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.
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