---
title: Chorus API Integration on Truto
slug: chorus
category: Conversational Intelligence
canonical: "https://truto.one/integrations/detail/chorus/"
---

# Chorus API Integration on Truto



**Category:** Conversational Intelligence  
**Status:** Beta

## Unified APIs

### Unified Conversational Intelligence API

- **Meetings** — The meeting represent a meeting in the conversation.
- **Users** — The user represent a user in the conversation.

## MCP-ready AI tools

Truto exposes 79 tools for Chorus that AI agents can call directly.

- **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.

## How it works

1. **Link your customer's Chorus account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Chorus.** The Proxy API is a 1-to-1 mapping of the Chorus API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **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

- **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.

## FAQs

### 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.

## Related reading

- [Connect Chorus to ChatGPT: Manage Meetings & Team Workflows](https://truto.one/blog/connect-chorus-to-chatgpt-manage-meetings-team-workflows/) — Learn how to connect Chorus to ChatGPT using Truto's MCP Server. A technical guide to automating meeting intelligence and team workflows via LLM tools.
- [Connect Chorus to Claude: Analyze Sales Insights & Scorecards](https://truto.one/blog/connect-chorus-to-claude-analyze-sales-insights-scorecards/) — A step-by-step technical guide to connecting Chorus (ZoomInfo) to Claude via Truto's MCP Server. Automate sales call analysis, SQF extraction, and scorecard reviews.
- [Connect Chorus to AI Agents: Automate Call Recording & CRM Sync](https://truto.one/blog/connect-chorus-to-ai-agents-automate-call-recording-crm-sync/) — A step-by-step engineering guide to connecting Chorus to AI agents. Learn how to expose Chorus API endpoints as LLM tools, manage async tasks, and build automated call analysis workflows.
