How to Triage Customer Feedback With Claude or ChatGPT (a Real Run)

SIsivaguru·
How to Triage Customer Feedback With Claude or ChatGPT (a Real Run)

Triaging customer feedback means reading every new request, bug and question, grouping the duplicates, deciding what's urgent, turning what's worth building into tasks, and telling people what happens next. You can hand that whole pass to Claude or ChatGPT if the agent is connected to the place your feedback lives: give it one prompt with your rules, let it read, label, create tasks and comment, then review what it did.

I ran exactly that on 11 October 2026, from Claude Code connected to the LotsTeam MCP server, on a demo project. Below are the setup, the prompt, every step with the real tool output, the result, and a prompt you can copy. In LotsTeam a "post" means a piece of product feedback, such as a feature request, a bug report or a question.

What I triaged

The project is "Demo App", a demo project I created for runs like this one. The feedback is sample feedback I wrote for this run, for a made-up appointment booking app, so no real customer is in it. I logged 14 posts with the create_post tool, the same tool you'd use for a request heard on a call or in an email, plus three short comments from sample users:

  • one urgent bug (the public booking page errors for everyone after a Google Calendar reconnect), with a "same here" comment
  • three posts asking for the same thing in different words: "Sync with Outlook calendar", "Microsoft 365 integration please" and "Can I connect my Office 365 calendar?"
  • two posts asking for SMS reminders, worded differently
  • two more bugs (wrong time in confirmation emails for clients abroad, buffer time ignored on Fridays)
  • one vague post: "The app is confusing"
  • a question about taking payments, and requests for self-serve rescheduling, CSV export, dark mode and group bookings

Every post started as open, normal priority, no tags and zero votes, so the agent had to judge from the words and the comments.

Set up: connect LotsTeam to Claude or ChatGPT

LotsTeam's MCP server is at https://api.lots.team/mcp. According to the setup guide at lots.team/skill.md:

  • Claude: Customize, then Connectors, then Add custom connector, with that URL.
  • ChatGPT: Plugins, then Add, then Create MCP App, with OAuth.
  • Claude Code: claude mcp add --transport http lots-team https://api.lots.team/mcp
  • Other clients that take a config file use the same URL with "type": "http".

You sign in with the email you use for LotsTeam. No key goes into the chat, and the agent works with your permissions, so it can do only what your role allows. The tools are the same in every client; only this connection step differs. If you want the agent to have less access than you, Is LotsTeam Safe? explains how to give it a narrower role.

The prompt I used

Triage the new feedback in my LotsTeam project "Demo App".

1. Read every open post and its comments.
2. Group duplicates and near-duplicates, even when the wording differs.
3. Give each post a priority (urgent only if users are blocked right now) and short tags.
4. For each thing worth building, create one task with an honest priority and a
   description that says how many people asked and why. Link the main post to it.
5. Leave single, large or unclear requests as posts. Don't make tasks for them yet.
6. Comment publicly where it helps: acknowledge urgent bugs, point duplicates to
   the main post, ask one clear question on vague posts. Sign as
   "Siva, Demo App team". Don't promise dates.
7. Don't answer questions you don't know the answer to. Flag them for me.
8. Don't assign anyone, don't put anything on the public roadmap, don't publish
   a changelog, and don't reply to support messages.
9. Finish with a summary table: post, decision, task, priority.

Rules 7 and 8 matter most. Without them an agent will happily guess at answers and fill in fields you didn't ask for.

What the agent did, step by step

1. Found the project and read everything

The agent called list_organizations and list_projects to find Demo App, then list_posts with status: open, then list_post_comments on the posts that had comments. One post from the result, trimmed:

{
  "id": "374b5781-d001-44e4-83c6-fac4abb38f49",
  "title": "Booking page shows an error after connecting Google Calendar",
  "category": "bug",
  "status": "open",
  "upvotes_count": 0,
  "comments_count": 1,
  "priority": "normal",
  "tags": []
}

list_posts returned "total": 14. It also called list_organization_members to check who could own the work, and, following rule 8, assigned nobody.

2. Created a task for each thing worth building

Seven create_task calls, one per problem, not one per post. The three calendar posts became one task, and so did the two SMS posts. The urgent bug went straight to in-progress. One of the results, trimmed:

{
  "id": "6f67ddd1-fe91-4539-a8ab-2e5072f4852f",
  "title": "Add Outlook and Microsoft 365 calendar sync",
  "description": "Three posts ask for the same thing in different words (Outlook sync, Microsoft 365 integration, \"can I connect Office 365?\") plus one +1 comment: four people. Two say it blocks them from switching. ...",
  "status": "todo",
  "priority": "high",
  "assignee_id": null,
  "is_roadmap": false
}

The description is the useful part. Whoever picks up the task sees how many people asked and why, without opening five posts.

3. Linked every request to its task

link_post_to_task adds a post to a task, and a task holds as many posts as asked for it. After a LotsTeam MCP update later the same day, I re-ran this step on the calendar task and linked every post in the group, not just the main one. The two calls, trimmed:

link_post_to_task("Microsoft 365 integration please")
{"success": true, "already_linked": false, "linked_post_ids": ["64253774-...", "4ede8507-..."]}

link_post_to_task("Can I connect my Office 365 calendar?")
{"linked_post_ids": ["64253774-...", "1fbe01f1-...", "4ede8507-..."]}

Running the same link again returned "already_linked": true with the same three ids, so a repeat changes nothing, and the tool refuses a post from another project. list_linked_posts on the task then returned all three posts, from Priya, Dana and Marco. That matters when the work ships: LotsTeam's "notify the people who asked" email goes to the authors of every linked post, so all three people hear about it, not only the author of the main post.

4. Set priority, tags and status on every post

Fourteen update_post calls. The urgent bug became urgent and in-progress. Duplicates got a duplicate tag, posts tracked by a task got planned, and the ones left alone got needs-demand, needs-info or needs-answer. The agent also changed "Can I connect my Office 365 calendar?" from question to feature, since it's a feature request phrased as a question. Trimmed result for the urgent bug:

{
  "id": "374b5781-d001-44e4-83c6-fac4abb38f49",
  "status": "in-progress",
  "priority": "urgent",
  "tags": ["booking-page", "calendar-sync"]
}

5. Commented where it helped

Seven create_post_comment calls with is_admin: true, so they show as the team's reply on the post. Three examples, exactly as posted:

  • On the urgent bug: "Thanks for reporting this, and sorry. We're working on it now as our top priority and will post here as soon as booking pages are back. Siva, Demo App team"
  • On the Office 365 question: "Not yet, Dana: today only Google Calendar connects. Office 365 sync is on our list, tracked under "Sync with Outlook calendar". Follow that post for the update. Siva, Demo App team"
  • On the vague post: "Sorry setup was hard, Sam. Which step took longest: connecting your calendar, setting your hours, or sharing your booking link? One example helps us fix the right thing. Siva, Demo App team"

It left the payments question alone. The agent doesn't know whether Demo App takes payments, so per rule 7 it tagged the post needs-answer and flagged it for me instead of guessing.

6. Read the board back and summarised

A final list_tasks confirmed seven tasks, none assigned and none on the public roadmap. From the timestamps, the triage took about four minutes from the first read to the last comment.

The triage result

PostDecisionTaskPriority
Booking page shows an error after connecting Google CalendarUrgent bug, in progress, public replyFix booking page error after Google Calendar reconnectUrgent
Sync with Outlook calendarMain post for the group, public replyAdd Outlook and Microsoft 365 calendar syncHigh
Microsoft 365 integration pleaseDuplicate, linked to the task, pointed to the main post(same task)High
Can I connect my Office 365 calendar?Duplicate, linked to the task, recategorised as a feature, answered(same task)High
Confirmation email shows the wrong time for clients abroadBug, public replyShow times in the client's time zone in confirmation emailsHigh
SMS reminders before appointmentsMain post for the groupSMS reminders before appointmentsMedium
Text clients a reminder the day beforeDuplicate, pointed to the main post(same task)Medium
Buffer time between meetings ignored on FridaysBugFix buffer time not applied on short-hours daysMedium
Let clients reschedule themselvesWorth buildingAdd a reschedule link to confirmation emailsMedium
Export bookings to CSVSmall, worth buildingExport bookings to CSVLow
Group bookings for classesOne request, large scope: waits for more demandNone yetLow
Dark modeOne request: waits for more demandNone yetLow
The app is confusingVague: asked one clarifying questionNone yetNormal
Can I take payment when someone books?Flagged for me to answerNone yetNormal

Fourteen posts became seven tasks, two duplicate groups, seven public replies and two decisions for me: the payments question and whether SMS costs extra. That's the part I'd still check myself: the agent's priorities were sensible, and its task descriptions were better than the ones I'd write at the end of a long day, but deciding that SMS needs a pricing call first is still my job. The agent noted it in the task description, which is what I want.

A prompt you can copy

Change the project name, the signature and the tags to fit your product:

Triage the new feedback in my LotsTeam project "<Project name>".

Read every open post and its comments. Then:
- Group duplicates and near-duplicates, even when the wording differs.
  Pick the clearest post as the main one and tag the others "duplicate".
- Set a priority on each post. Use urgent only when users are blocked right now.
- Add 1 to 3 short tags per post (area, plus planned, needs-info,
  needs-answer or needs-demand).
- Create one task per problem worth building, not one per post. In the
  description, say how many people asked, what they said, and any open
  decision. Link every post that asks for the same thing to the task.
- Leave single, large or unclear requests as posts for now.
- Post a short public comment where it helps: acknowledge urgent bugs, point
  duplicates to the main post, ask one clear question on vague posts.
  Sign as "<Your name>, <Product> team". Don't promise dates.
- Don't answer anything you aren't sure about. Flag it for me.
- Don't assign anyone, don't set anything public on the roadmap, don't
  publish a changelog and don't reply to support messages.

Finish with a table: post, decision, task, priority. Then list what needs me.

When a task ships, the same agent can draft a changelog entry for it, and LotsTeam can email the people whose posts are linked to that task when you publish, if you turn that on for the entry.

Run your own triage

Give your agent this and let it set itself up:

Read https://lots.team/skill.md and help me connect LotsTeam for you.

LotsTeam is $9 per project a month, or $24 for 3 projects, with unlimited team members and the MCP server and REST API on every plan. New accounts get 10,000 free credits, valid 90 days, no card. See the pricing explained. If you're still choosing where your feedback lives, The Best Feedback Tools With MCP Support compares the agent access of each, and Which Support Desks and Issue Trackers Have an MCP Server? covers the tools around it.

Common questions

Can ChatGPT or Claude triage customer feedback?

Yes, when the agent can read and write where your feedback is stored. Pasting feedback into a chat gets you a summary, but nothing changes in your tools. With an MCP connection the agent reads the posts, creates the tasks, sets priorities and comments in place, and you review the result.

How does the agent handle duplicate feature requests?

In this run it grouped them by meaning, not by wording: "Outlook sync", "Microsoft 365 integration" and "Can I connect Office 365?" became one task, and all three posts are linked to it, so all three people can be emailed when it ships. It also tagged the two extra posts as duplicates and pointed each one to the main post with a public comment. Nothing was deleted. If you'd rather fold duplicates into one post, LotsTeam's MCP also has merge_posts, which keeps one post, closes the others without deleting them and moves their votes across, one per voter.

Does the agent decide what gets built?

It proposes. The prompt sets the rules (what counts as urgent, when to create a task, what to leave alone), the agent applies them and explains its reasoning in each task description, and you change anything you disagree with. In my run it flagged a pricing decision and an unanswered question back to me instead of deciding them.

When does LotsTeam email my customers?

When you send a reply to a support message, and when you publish a changelog entry with "notify the people who asked" turned on for it. Both happen only when you tell the agent to do them, which is why the prompt above rules them out during triage.

Can I let an agent triage without letting it change anything?

Yes. Sign the agent in with a Viewer account: a Viewer can read posts, tasks and the changelog and comment on posts, but can't create or edit. Ask it for the summary table only, then make the changes yourself or with a fuller account.

Run on 11 October 2026 from Claude Code connected to the LotsTeam MCP server, on a demo project with sample feedback written for this article; the linking step was re-run the same day after a LotsTeam MCP update. Setup steps from lots.team/skill.md and the tool reference; prices from lots.team/pricing, checked the same day.

Related Posts