Skip to main content

Connect CXP to ChatGPT and Codex

The CXP Plugin brings your customer support work into ChatGPT and Codex. Ask questions in plain language to find Conversations, prepare handoff briefs, compare support trends, check team workload, and discover Concierge Agents. With the appropriate permissions, you can also update Conversations and use the Optimization Agent to analyze transcripts or improve agent drafts. You can connect up to 100 organizations that your CXP account can access. When you work across organizations, name the ones you want to include so the answer keeps their results clear.
The CXP Plugin is currently distributed as a private beta. Your ChatGPT or Codex workspace administrator must make the Plugin available before you can connect it.

Prerequisites

Before connecting, confirm that:
  • you can sign in to CXP;
  • your CXP role can read Conversations in each organization you want to connect;
  • your membership is active; and
  • your ChatGPT or Codex workspace allows development apps or plugins.
Agent workload also requires an owner or administrator role. Optimization Agent sessions require current Optimization access in CXP and the Modify CXP data permission. Coming soon: Team Leads will also be able to request agent workload across their organization’s reportable teams using the existing Read CXP data permission. No reconnect or new permission is required. Agent, User, and Viewer will remain unable to use this workload tool. You do not need to create an API key, OAuth client ID, or client secret. Connecting opens the normal CXP sign-in experience.

Connect organizations

  1. Add the CXP app or Plugin from the development interface supplied by your workspace administrator.
  2. Select Connect.
  3. Sign in on the CXP page using any method enabled for your account.
  4. Select one or more available organizations. Your current organization is selected by default. You can select up to 100, or choose Select all currently available when no more than 100 are listed.
  5. Confirm the consent page is labeled CXP for AI Agents, then review Read CXP data. When requested by the host, also review Modify CXP data. Expand Analyst sessions, Conversations & notes, and Optimization workspace to see the included actions. These groups explain one shared write permission; they are not separate permission switches.
  6. Select Allow.
“Select all” includes only the organizations shown during this connection. It does not automatically include organizations added to your account later. After the browser returns to ChatGPT or Codex, ask:
ChatGPT uses get_my_cxp_context to show your connected organizations and approved access. Your current CXP role still determines which actions you can perform in each organization.

Choose the right permissions

Coming soon: User joins Viewer in Conversation read access. Neither role can update or assign a Conversation or add an internal note, even with Modify CXP data. The role alignment leaves connection setup and already approved OAuth permissions unchanged; reconnecting is not required. See Roles and permissions. Both permissions respect your current CXP role. The Plugin cannot send customer-visible replies, and the Optimization Agent cannot publish a Concierge Agent. Deep transcript analysis uses the Optimization Agent and requires Modify CXP data, even when you request analysis alone. You can explicitly ask for findings without changes. That instruction defines the task; the session still has permission to make changes.

What you can do in ChatGPT

The examples below also work in Codex. Include the organization, date range, time zone, and any specific Conversation or Concierge Agent when they matter to your request.

Find a Conversation and prepare a brief

Search by contact, subject, status, priority, date, or keywords. Ask ChatGPT to read the Conversation details and history, summarize the issue, and identify unresolved questions or next steps.
If several Conversations match, ChatGPT can help you choose the correct one. A brief should say whether the complete history or only part of it was reviewed. Preparing a brief does not save an internal note unless you ask for that too. Count Conversations, compare statuses or priorities, and track keyword matches over time. You can compare connected organizations and ask for a chart alongside the written findings.
Charts can also use values you provide directly. If your ChatGPT or Codex app cannot display a chart, use the accompanying text or table. Ask explicitly for a downloadable file if you need one; CXP does not save or export the embedded chart. Chart cards display the Crescendo logo in your app’s light or dark theme. Titles are shortened when needed to avoid the logo; narrow or custom layouts use a separate logo row. Standard charts fill the available card width and request enough height for the chart and sources. Your app controls the final embedded size and may still require scrolling. Explicit chart sizes and multi-panel layouts keep their specified sizing. Counts and keyword matches answer questions about known criteria. To understand recurring themes or what customers said before a handoff, ask for transcript analysis as described below.

Check team workload

Ask for agent availability, active Conversation backlog, and work waiting in the routing queue. You can specify a team and time zone.
Backlog and queue depth measure different things and can overlap, so they should not be added together. Unavailable information should be identified as unavailable, rather than treated as zero.

Update Conversations

With Modify CXP data and the corresponding CXP role permissions, you can change a Conversation’s status, priority, Pending On, or Pending Reason; assign it to yourself, an agent, or a team; clear its assignment; or add an internal note as yourself.
Internal notes are visible to your team and are not sent to the customer. Normal CXP status and permission rules apply; for example, reopen a Closed Conversation before assigning it or adding a note. See Manage conversations for supported changes. Review the reported outcome. If a request times out, ask ChatGPT to check whether the change happened before repeating it, especially when adding a note.

Find Concierge Agents and review their details

Ask for an inventory or narrow the list by agent name, description, latest update date, or updater. You can request an exact name or names containing a phrase, and combine criteria.
list_concierge_agents returns each agent’s id, name, description, version, releaseNotes, updated, and updatedBy. You can ask questions about these details without starting an Optimization Agent session. Missing values are reported as unavailable. Exact text matching is case-sensitive; phrase matching ignores case. The supported filters are name, description, update time, and updater. Version and release notes are included in results but are not additional search filters. Update dates describe each agent’s most recent update, not every edit in its history. An agent updated in June and again in July will not appear in a search for latest updates in June. Updater names are reported as recorded in CXP. Large lists arrive in pages. When you ask for all matches, ChatGPT should continue through the remaining pages and tell you if it cannot finish. Recent agent changes may take up to five minutes to appear. If a listing expires before it finishes, ask ChatGPT to restart the search.

Analyze transcripts in depth

Use the Optimization Agent to review full Conversation transcripts and identify recurring topics, questions associated with handoffs, or opportunities to improve support.
An organization needs at least one configured Concierge Agent to start an Optimization Agent session. For organization-wide analysis, you do not need to choose one; ChatGPT can arrange the session while keeping the analysis focused on the full population you requested. Name a particular Concierge Agent when you want to analyze its Conversations specifically. The answer should distinguish how many Conversations were selected and reviewed, identify missing or incomplete transcripts, and support findings with examples.

Improve a Concierge Agent

Ask the Optimization Agent to use its findings to improve a selected agent’s draft, instructions, or evaluations. It can also update requirements or skills shared by Concierge Agents in the same organization, so describe the changes you want clearly.
If an agent name is ambiguous, ChatGPT asks you to choose the intended agent. During the session, it reports progress, relays questions, and summarizes completed changes and evaluation results. Review the draft in CXP before publishing it yourself.
Optimization Agent work can continue after you disconnect or revoke Plugin access. Ask ChatGPT to stop the session when needed. Stopping can take time and does not undo completed changes.

Continue or stop an Optimization Agent session

You can answer a session’s follow-up questions, request additional work after it finishes, or ask it to stop. Keep the session details and CXP link from the answer so you can return to the same work later.
A stop request is not confirmation that work has finished. ChatGPT should keep checking progress and report whether the session stopped, completed, failed, or has an unknown outcome. You can also find the session in the Optimization Agent workspace in CXP; select the same organization first.

Available MCP tools

ChatGPT and Codex select these tools for your request. You do not need to write tool calls to use the Plugin.

Read, analyze, and visualize

These tools require Read CXP data, along with any applicable CXP role permissions.

Change Conversations

These tools require Modify CXP data and the corresponding Conversation permissions in CXP.

Work with the Optimization Agent

All four session tools require Modify CXP data and Optimization access in CXP, including for analysis-only sessions.

Investigate with Insight Analyst

Insight Analyst is the data-insight agent, separate from the Optimization Agent. Its session tools require Modify CXP data (cxp.write) and your current Analyst access. A read-only connection needs fresh consent; refreshing its token does not add permission. Each session belongs only to its creator in the selected organization. Use start_insight_analyst_session with tenantId, a UUID requestId, and your prompt. Optional timeFrame is P7D, P30D, or P90D (default P30D); optional model is gpt-5.4, gpt-5.4-mini, or gpt-5.4-nano. Start returns sessionId and generationId while analysis continues. Use get_insight_analyst_session_progress with that exact pair to read status and the saved answer. Answers are capped at 64 KiB and explicitly marked when truncated. Leaving the chat does not cancel analysis; execution limits still apply. Use send_insight_analyst_message with the same session ID and a new request ID for an intended follow-up once the session is idle. If a start or follow-up response is lost, retry the original input with the same request ID. A busy session rejects a different request rather than queueing it. When interactive capacity is full, start/send can return analyst_unavailable; wait and retry with the same request ID. Progress and Stop remain available. This also applies to retries while capacity is full; it does not mean an earlier admitted run was cancelled. outcome_unknown means completion could not be established after execution was interrupted or expired. Do not assume success or automatically restart. stop_insight_analyst_session requests cancellation of one exact generation; it does not undo work or stop a newer turn. Poll progress to confirm completion or cancellation. A required_action result reports an Optimization proposal; these session tools cannot approve it or start Optimization on your behalf.

Read Applied Insights dashboard results

Ask: “Find our weekly support dashboard and explain its latest widget results. Show the reporting period and a chart if it helps.” The connected agent uses list_applied_insights_dashboards to identify widgets and get_applied_insights_widget_result to read their stored results. Ambiguous dashboard or widget names need clarification. All three stored-data tools require Read CXP data and current Applied Insights read access in the selected organization. They do not require write permission or the native Analyst workspace to be enabled. Existing read connections need no new OAuth scope; each tool still checks your current access independently. These tools do not run widgets, execute new queries or start Analyst sessions. The latest result can cover a different period from the dashboard setting. Exact reads require both an execution timestamp and reporting-period key; there is no automatic history fallback. Unknown legacy periods remain unknown, and current widget presentation is not guaranteed to match its historical run. A failed execution or missing result is not a zero value. For comparisons, ask: “Find this widget’s runs from yesterday and today, then compare their stored results.” The agent can use list_applied_insights_widget_executions to discover executions before reading the selected results. You do not need to know their exact timestamps first. Optional executedFrom (inclusive) and executedTo (exclusive) select when a run executed, not the period it analyzed. Include your timezone when asking about relative days. A run from yesterday may contain a rolling 30-day total. History pages contain timestamps, reporting-period keys when known, success or failure status, and duration when available—not the full results. Pages default to 20 entries, with a maximum of 100. The agent follows nextCursor with unchanged filters and page size until null, or tells you it reviewed only part of history. An expired cursor requires fresh discovery. New runs may appear in that fresh snapshot. Unknown legacy period keys prevent exact rereads, and retained history is not a guarantee that every past run is still available. The complete directory is limited to 100 dashboards, and each complete result to 256 KiB. Over-limit requests fail rather than return partial data. Optional charts reuse the existing visualization tool; text/table answers remain useful if your host cannot display a chart. Existing restricted tool diagnostics and your external host may retain results; deleting a source does not remove those copies.

Change the connected organizations or permissions

Disconnect and reconnect to add or remove organizations or grant Modify CXP data. Your connection includes only the organizations and permissions you approved. Changes to your CXP membership or role affect subsequent requests. Disconnecting prevents new Plugin access but does not cancel Optimization Agent work already in progress; request a stop separately.

Troubleshooting

The organization is not available

Confirm that your membership is active and that you use the same verified email address for the CXP organizations you want to connect. If an organization was added after you connected, disconnect and reconnect to select it. You can select up to 100 organizations per connection.

CXP says to restart the connection

Return to ChatGPT or Codex and start Connect again. The previous connection attempt may have expired or already been used.

An action is not authorized

Coming soon: Concierge discovery and Optimization Agent tools become Owner/Admin-only through CXP. Existing Insights reads remain available to every role; Analyst tools retain Owner/Admin/Team Lead/User access with Modify CXP data. Agent and Viewer do not gain Analyst access. This role update changes no OAuth scope and requires no reconnection. Legacy-app and shared native Optimization permissions remain unchanged. Check both the Plugin’s approved permissions and your current role in the selected CXP organization. Reconnect if you need to grant Modify CXP data. For workload, confirm that you are an Owner/Admin, or a Team Lead after the Coming soon access update is deployed; general Settings access is not required by that update. For Optimization Agent sessions, confirm your Optimization access.

Results look incomplete or differ from Conversation History

Recent changes may take a moment to appear in search results or Conversation details. Ask ChatGPT to review the relevant history and confirm whether it read every page. A partial review should be labeled as partial; unavailable information should not be described as absent.

An agent listing cannot finish

Ask ChatGPT to report what it was able to retrieve and the error it received. If the listing expired, restart it. If the tool reports a capacity problem, contact support rather than assuming there are no agents. You can still request an Optimization Agent session for a known exact agent name or ID.

An Optimization Agent session is missing

Select the same organization in CXP, then refresh the Optimization Agent workspace. You can also use the CXP link and session details returned by ChatGPT.

Stop was requested but work still changed

Stopping takes time, and some work may finish before the stop takes effect. Check progress until the session reports an outcome, then review the draft. Completed changes are not rolled back.

A chart does not appear

Use the text or table in the answer. Your ChatGPT or Codex app may not support embedded charts. If the chart is too large, ask for a simpler chart or a summary by category or time period. When contacting Crescendo support, include the support reference shown by the Plugin and a short description of the problem. Do not share access tokens, authorization URLs, browser cookies, or API keys.