How-To Guide13 min read

How to Use AI to Analyze Support Tickets and Sales Calls Without Reading Everything

Last updated: ยท By Matt Teixeira, Founder and CEO

On this page
Short answer

To use AI to analyze customer feedback from support tickets and sales calls without reading everything manually, export the full text, strip boilerplate and personal data, have a model pull out each piece of feedback as an exact quote, cluster the quotes into themes, add sentiment and customer segment, and spot-check a sample before you trust the numbers. The model does the reading and labeling; you do the counting, by unique account. You can run this with ChatGPT or Claude and the two prompts below, with the AI built into Zendesk, Intercom, or Gong, or with a feedback platform that repeats it every week.

Key Takeaways

  • Getting the full text out is the first obstacle. Zendesk's CSV export leaves out ticket comments and Intercom's leaves out message content, so use JSON, transcript downloads, or the APIs.
  • Redact first, then send customer data only through an API or a business plan. Personal ChatGPT plans can use chats for training unless you opt out.
  • Work in two passes: extract exact quotes from each ticket or call, then cluster the short summaries into 8 to 15 themes.
  • Count unique accounts per theme yourself, split by source. A model's count over a long export can't be checked.
  • Before you share anything, string-match every quote to its source and hand-review 50 random items.

What Should You Let AI Do with Tickets and Calls?

Let the model read; don't let it count. Models are good at spotting feedback inside a ticket, pulling out the sentence that matters, labeling it as a bug or request, and grouping complaints that describe one problem in different words.

Ask one to tally themes across a long pasted export, though, and you get a confident number you can't check, quietly paraphrased quotes, and no sense of which accounts matter, because it has never seen your revenue data. Every step below follows from that split.

Step 1: Export the Full Text from Zendesk, Intercom, and Gong

Pull one window, such as the last 90 days. Every item needs an ID, a link to the original, a date, the customer's account, and the full text.

Zendesk Tickets

Use the JSON export, not CSV: the CSV leaves out ticket comments and descriptions, while JSON includes comments unless a single ticket exceeds 1 MB. The admin export needs Suite Growth or Support Professional and above, plus a request from the account owner to Zendesk Support; every plan can use the REST API instead (Zendesk). If agents already tag feedback, such as product_feedback, export that tag first. For a Zendesk-only walkthrough, see how to turn Zendesk tickets into product insights.

Intercom Conversations

Intercom's dataset CSVs carry IDs, timestamps, and metrics, but "conversation/message content is not included." Inbox exports to PDF or text include the full history minus internal notes, a few hundred conversations at a time; beyond that, use the Conversations API (Intercom). To include conversations Fin resolved alone, see how to analyze Intercom conversations for product feedback.

Sales Calls in Gong and Other Recorders

For a handful of calls, open each one in Gong and choose More options, Download, Transcript (Aha! support docs). For more, a tech admin creates an API key under Admin center โ†’ Settings โ†’ Ecosystem โ†’ API (Gong Help); API access depends on your Gong plan (Dovetail Gong docs). Zoom, Google Meet, and most recorders export WebVTT or plain-text transcripts.

Keep external calls longer than about ten minutes and label each one discovery, demo, renewal, or churn. You will want to separate prospects from customers later.

Step 2: Strip Boilerplate and Redact PII

Cleaning does more for accuracy than prompt wording. Cut everything that isn't the customer talking:

  • Email signatures, legal footers, and quoted reply chains.
  • Agent macros, auto-replies, and internal notes.
  • In calls, rep monologues and demo narration. Keep the customer's turns plus the rep question just before each one.

Then redact. Regular expressions catch most emails, phone numbers, card and account numbers, and addresses; replace them with tokens such as [EMAIL]. Names in free text are harder: the open-source Presidio toolkit detects them with NLP models and pattern rules, though its docs warn that "there is no guarantee that Presidio will find all sensitive information."

On Zendesk, the Advanced Data Privacy and Protection add-on can redact sensitive data in ticket comments with triggers, and that redaction can't be reversed (Zendesk). Keep a separate lookup from each ticket or call ID to account, plan, and ARR. The model never needs names, and you join account data back in Step 5.

Step 3: Pick an AI Approach That Fits Your Data Rules

Most teams start with a general LLM for a one-time deep dive and move to a platform once they want the answer weekly.

ApproachBest whenWhat it seesEffortWatch out for
AI built into your support or call toolYou need routing and volume trends in one channelOnly that tool's conversationsLow; often a paid add-onZendesk intelligent triage reads only the subject and first public comment (Zendesk)
ChatGPT or Claude with promptsA quarterly deep dive or a first passWhatever you exportHigh: export, clean, batch, count, checkYou own the counting, quote checks, and every rerun
Dedicated feedback platformFeedback spans tickets, calls, Slack, and surveys, reviewed weeklyEvery connected sourceLow after setup, plus review timeUsage-based pricing; spot checks still needed

What Happens to Customer Data When You Send It to an LLM?

It depends on the plan, not the provider:

  • OpenAI API: not used for training by default. Abuse-monitoring logs are kept up to 30 days, and Zero Data Retention needs OpenAI's approval (OpenAI).
  • ChatGPT: Business and Enterprise data is not used for training by default. Free, Plus, and Pro content can be, unless you turn off "Improve the model for everyone" in Settings โ†’ Data Controls (OpenAI Help).
  • Anthropic API and Claude for Work: not used for training by default (Anthropic Privacy Center). API inputs and outputs are deleted within 30 days, with limited exceptions (Anthropic Privacy Center).
  • Claude Free, Pro, and Max: each user chooses whether chats train models. Allowing it extends retention to five years; otherwise it stays at 30 days (Anthropic).

The rule: customer data goes through the API or a business plan under your company's agreement, never a personal account. Then confirm your customer contracts allow that provider as a subprocessor.

Step 4: Extract Quotes, Then Cluster Them into Themes

Never ask for themes straight from the raw pile. Two passes give you output you can check.

Pass 1, extraction. Send tickets in batches of about 20 to 30, or one call transcript at a time:

Markdown template
You are analyzing customer support tickets and sales call transcripts for a B2B software product.

For each item below, extract every distinct piece of product feedback the CUSTOMER gave. Ignore agent and sales rep statements, greetings, and account-admin requests such as password resets.

Return a JSON array with one object per feedback item:
- source_id: the item's ID, copied exactly
- quote: the customer's exact words, copied character for character, 1 to 3 sentences
- summary: the underlying problem in 12 words or fewer, in neutral language
- type: one of bug, pain_point, feature_request, usability, question, praise
- product_area: a short noun phrase such as "CSV export" or "SSO setup"
- sentiment: negative, neutral, or positive, based on the quote alone

Rules:
- Never paraphrase inside "quote". If you cannot find exact words, skip the item.
- An item can produce zero, one, or several feedback items.
- Do not guess the customer's plan, company size, or intent.

Items (ID | date | source | text):
[paste batch]

Pass 2, clustering. Once every batch is done, send only the IDs, summaries, types, and product areas:

Markdown template
Below are customer feedback summaries, one per line, each with an ID.

1. Propose 8 to 15 themes. Name each after a product area or problem, not a feeling or a solution. Write one sentence on what belongs in each theme and what does not.
2. Assign every ID to exactly one theme. Use "Unclear" when nothing fits; do not force a match.
3. Return a table: theme | definition | IDs.

Do not count or rank the themes. I will do that separately.

Existing themes to reuse where they fit:
[paste last period's theme list, or "none"]

Summaries (ID | summary | type | product_area):
[paste]

Then count in a spreadsheet or script: unique accounts per theme, split by source. If "Unclear" holds more than about a tenth of items, a theme is missing. For naming rules and keeping themes stable from month to month, see how to build a customer feedback taxonomy.

Step 5: Add Sentiment and Segment

A raw theme count doesn't tell you what to fix first. Join each item back to its account record and add:

  • Segment: plan tier, ARR band, lifecycle stage (trial, new, renewing, churned), and source.
  • Sentiment: from pass 1, rolled up per theme as the share of negative items.

Judge sentiment against other themes and last month, never in absolute terms, because tickets skew negative by nature. Then look for where tickets and calls disagree; that gap is often the most useful finding. Prospects on calls describe what blocks a purchase, while customers in tickets describe what slows them down. To watch these numbers move over time, see how to tell which support ticket pain points are trending.

Step 6: Spot-Check Before You Share Numbers

Run three checks before anyone sees a chart.

  1. Quote check. Exact-match each quote against its source text. Anything that fails is a paraphrase; re-extract it or drop it.
  2. Sample review. Mark type, theme, and sentiment right or wrong on 50 random items. If several fail the same way, tighten that theme's definition or the prompt and rerun them.
  3. Miss check. Read 20 tickets the model said had no feedback. If several did, your relevance rule is too strict.

Repeat the sample review whenever you change the prompt or model.

Check Every Quote Against the Source
A quote a model has tidied up is no longer evidence. Exact matching takes minutes and catches the error that most damages trust in a feedback readout.

Step 7: Keep Every Quote Linked to Its Source

Your real deliverable is a table, not a summary: one row per quote, with its ticket or call link, account, date, theme, type, and sentiment. When a PM says "34 accounts asked for scheduled exports," anyone should be able to open those rows and click through. The links also let you re-theme later and tell the right customers when the fix ships.

Worked Example: One Quarter of Tickets and Calls

This example is illustrative. A 40-person B2B SaaS company has about 1,400 Zendesk tickets and 35 Gong calls (20 discovery, 15 renewal) from one quarter.

  • Export and clean: Zendesk JSON and Gong API transcripts, cut to customer turns, with emails and phone numbers tokenized.
  • Extract: pass 1 finds product feedback in roughly a third of tickets; the rest are password resets and billing questions.
  • Cluster and check: pass 2 proposes 12 themes. The quote check flags a few dozen paraphrases, and the sample review shows "SSO setup" and "Login errors" are one problem, so they're merged.
  • Result: "Reporting and Exports" leads on account count, boosted by prospects who called it a purchase blocker. "Permissions" has fewer accounts but the most negative sentiment, concentrated in enterprise renewals. Neither pattern shows up in tickets alone.

Common Mistakes to Avoid

  • Pasting the whole export into one chat. Long inputs get skimmed. Batch it and count yourself.
  • Reading only the first message. Feedback often surfaces several replies in, where tools that classify the opening message never look.
  • Mixing rep and customer words. "So it sounds like you need SSO" is the rep's hypothesis, not the customer's request.
  • Re-theming from scratch every month. Feed last period's themes into pass 2 so trends stay comparable.

Tools That Help

For a ranked comparison, see the best tools to find recurring customer pain points.

  • AI built into your support and call tools. Each sees one channel. Zendesk intelligent triage labels intent, sentiment, and language on Suite and Support Professional plans and above (Zendesk). Intercom's Topics Explorer groups conversations without tagging, but needs the Pro add-on, runs only while Fin is live, and skips migrated conversations (Intercom). Gong's pre-built Product feedback tracker uses no credits but can't be edited (Gong Help).
  • ChatGPT or Claude on a business plan or the API. The prompts above. Cheapest for a quarterly deep dive; you own the pipeline and the checks.
  • Enterpret. Enterprise feedback analytics across Zendesk, Intercom, Gong, and review sites, with an adaptive taxonomy and an MCP server (Enterpret). AWS Marketplace lists $120,000 for 12 months and up to 300,000 feedback records (AWS Marketplace).
  • Dovetail. A research repository with feedback channels. It imports Zendesk tickets once they're solved or closed (Dovetail) and turn-by-turn Gong transcripts (Dovetail). Free covers one project and one channel; Enterprise is custom (Dovetail pricing).

Where Deck Fits

Deck runs Steps 1, 4, 5, and 7 on a schedule, for product teams without a research or ops person. Redaction and spot checks stay partly with you.

  • Support: Zendesk and Intercom pull the last 90 days on first connect, then sync once a day. Each ticket is filtered for relevance, extracted with Claude Sonnet, and quality-reviewed against the original messages (Deck Zendesk docs).
  • Calls: Gong syncs daily, backfills 1 to 12 months, and filters by external calls, duration, owner, workspace, or folder. New insights join existing Themes before new ones are created (Deck Gong docs). Zoom, Google Meet, and Otter.ai transcripts upload directly (import interviews playbook), Granola connects natively, and other help desks come in by CSV (Deck CSV docs). See all integrations.
  • Output: each insight keeps its quote, sentiment, category, theme, and source link. Segment rules can use Zendesk and Intercom tags or Gong owners and folders (Deck segments docs), and Claude or ChatGPT can query the evidence through Deck's MCP server on every plan.
  • Pricing: Free is $0 with 200 AI credits a month and 1 integration. Starter is $99 a month ($79 billed annually) with 2,500 credits and 5 integrations; Business is $249 ($199 annually) with 7,500 credits (Deck pricing). At about 3 credits per ticket, Deck's planning baseline, 1,000 tickets a month needs roughly 3,000 credits, more than Starter includes.
  • Limitations: Zendesk and Intercom need Starter or above. PII redaction masks names and emails in parts of the app and in MCP responses, but stored quotes are unchanged, Deck's AI does not strip PII, and Deck Intelligence and the API don't mask yet (Deck privacy docs). Syncs are scheduled, not real time. There are no published compliance certifications and no public voting board.

Frequently Asked Questions

Yes, for a one-off analysis of a few hundred to a few thousand tickets. Export and redact the full text, extract quotes in batches, cluster the summaries in a second pass, and count in a spreadsheet. Use a business plan or the API, and check every quote against the original.

It depends on the plan. The OpenAI and Anthropic APIs and business plans don't train on your data by default, while personal ChatGPT and Claude plans can, depending on each user's settings. Redact personal data first and confirm your customer agreements allow the provider.

Export transcripts, keep the customer's turns plus the question before each, label the call type, and run the same extraction prompt you use for tickets. Keep prospects and customers separate, because purchase blockers and everyday pain points need different responses.

It's reliable enough to compare themes and spot changes over time, and less reliable on a single message, especially sarcasm or mixed feedback. Compare across themes and periods, and hand-check 50 random labels whenever you change the prompt or model.

Monthly works for a manual setup, as long as you reuse last month's themes so trends stay comparable. Weekly makes sense once a platform handles extraction, because review takes minutes and new issues surface before planning.

Sources