Back arrowAll guides

How to centralize customer feedback scattered across Zendesk, Salesforce, Notion, and Slack

Pixel art of a pixel checklist with glowing gold checkmarks on a dark purple background
Talton Figgins•••13 min read

Short answer. Don't copy everything into one tool. Sort your sources by the job they do. Zendesk tickets and Slack threads hold what customers said, so they are the feedback. Salesforce holds who the customer is and what they are worth, so it is context. Notion holds what your team has written down, so it is notes and a place to publish results. Pick one place where requests get counted, keep the requester, their company, and a link to the original message on every item, and connect each source so nobody has to forward anything. Modem (our product) does this by reading Zendesk tickets and the Slack channels you add, grouping what describes the same problem into one topic, and letting its agent query Salesforce and Notion when you ask. It does not ingest Salesforce or Notion as feedback, and it has no HubSpot integration. If your volume is small, a Notion database or spreadsheet is enough, and the steps below work without any tool.

The same request is probably in four places at your company right now: a Zendesk ticket, a #customers Slack thread, a line in a call summary, and someone's memory. Each one is worded differently. Because no single place holds all four, the request looks small everywhere, and the loudest recent anecdote wins the roadmap argument.

Centralizing fixes one thing, and it is the important one: feedback becomes countable. That takes more than a shared folder. The sources are not interchangeable, and treating a CRM record like a support ticket is the most common way these projects go wrong.

Step 1: sort your sources by the job they do

Every tool in this stack plays one of three roles. Decide the role before you decide how to connect it.

SourceWhat it holdsRole in your setupWhat to carry across
ZendeskTickets: what customers wrote to supportFeedbackThe ticket link, the requester's email, the customer's own words
SlackThreads in support, feedback, and shared customer channelsFeedbackThe thread link, who said it, which channel
SalesforceAccounts, contacts, opportunities, deal notesContext about who is askingAccount name and the fields you weigh requests by (plan, stage, renewal date)
NotionSpecs, roadmap, meeting notes, feedback databasesNotes, and a destination for reportsThe page or database link, if a request lives there

Two consequences follow. Feedback sources get captured continuously and counted. Context sources get joined to the count when you need a weighting, not copied in as if each opportunity were a request. Notes are where decisions and summaries live, not a source you mine for volume.

The odd cases are worth naming. A Salesforce case or a closed-lost reason can contain a real request. A Notion database might be where your sales team already logs asks. When that is true, treat that one object or database as a feedback source and log it with the same fields as a ticket. The rest of the system stays context or notes.

Step 2: pick one place to count, and set the minimum fields

The destination matters less than there being exactly one. A Linear or Jira project labeled "Feedback," a Notion database, a spreadsheet, or a dedicated tool all work. A rule of thumb from small-team write-ups is that under roughly 50 users and 10 items a week, a doc or spreadsheet is enough. Past that, the copying becomes the job.

Whatever you pick, each item needs four things:

  • A link to the source. The ticket URL or Slack thread permalink. An item you can't trace is an anecdote.
  • The requester. A name and, ideally, an email, so the same person in Zendesk and Slack is one person.
  • Their company. This is what lets you say "four accounts" instead of "four messages."
  • Their words. A short quote. A row that says "wants SSO" loses the detail the engineer needs.

If the destination is a public repo, or a tracker customers or contractors can see, keep names and private links out of it and store them in a private log keyed by the item.

Step 3: connect each source so capture is automatic

"When you see feedback, post it in the tracker" holds for about three weeks. Connect each source so capture happens where people already work. Here is what that means for the four in the question.

Zendesk. Tickets are the richest feedback you have, because customers wrote them in their own words. Without a tool: agree on a ticket tag or a custom field for requests, build a saved view on it, and pull it into your destination weekly. Modem ingests Zendesk tickets as they arrive and matches the requester to a person by email. Its docs list no historical import for Zendesk, so it starts with new tickets after you connect. See feedback from Zendesk tickets for the tool landscape.

Slack. Capture here fails quietly, because a thread scrolls away in a day. Decide which channels carry feedback (support, a feedback channel, channels shared with customers) and keep bot-notification channels out. Direct messages are invisible to any shared system, so write down where people should post instead; why Slack DMs never reach the product team covers that habit. Modem reads only the channels it has been added to, and imports the last 30 days of a public channel when it joins. DMs are never read, a private channel is captured only after one of its members shares it, and only from that point on. Emoji reactions are not counted as votes.

Salesforce. Resist importing the CRM. Instead, store the Salesforce account name on every feedback item, and when you weigh a request, look up the fields you care about for those accounts. If your sales team logs asks in opportunity notes or closed-lost reasons, give them a short template so the request is one line you can lift out. Modem syncs Salesforce read-only (accounts, contacts, opportunities, and other objects you opt into, refreshed about every 15 minutes), and its agent can query it when you ask. The sync creates no topics. If your CRM is HubSpot, Modem has no integration for it.

Notion. Decide whether Notion is where you count or only where you write. If it is your destination, a database with the four fields from step 2 works; linking customers to feature requests in a Notion database shows the structure. If requests already live in Notion pages, make sure each page links back to the original conversation. Modem does not ingest Notion. Its agent reads the pages and databases you share with the integration, can answer from what your team wrote, and can write reports and summaries into a page or database. In Slack and, by default, in the dashboard, those writes wait for approval; in automations and Discord conversations they do not, so a scheduled digest to Notion lands without a click.

Step 4: make the same request one item

Centralized but inconsistently labeled is half centralized. A ticket about "export to CSV," a Slack message about "reporting," and a call note about "getting data out" are one ask in three wordings.

Do it by hand with a small vocabulary: a short list of product areas, plus a type (bug, feature request, question). Write it where everyone tagging can see it. Define "the same" as "fixed by the same change," not "mentions the same theme," or your counts blur. When new feedback arrives, attach it to an existing item instead of creating a new one, and merge synonyms on a schedule. How to handle duplicate feature requests goes deeper.

At low volume this works. It breaks when several channels feed in and one person can't read all of them, which is when matching by meaning starts to pay for itself.

Step 5: where Modem fits

We build Modem, so weigh this section accordingly. Modem reads conversations from the sources you connect, including Zendesk, Slack, email, Intercom, Discord, call transcripts, and GitHub or Linear issues, and groups what describes the same problem into one topic, whatever the wording or channel. It classifies each topic (bug report, feature request, complaint, praise, or discussion), and a topic keeps the original messages and the people and companies behind them. People are matched across platforms by exact email, so the requester in Zendesk and the same person in Slack become one profile. Accounts without an email, such as Discord, stay separate until you merge them by hand.

Priority on a topic is an AI-assigned score that weighs severity, how many companies are affected, whether it keeps recurring, and more. It is not a count of requesters, and Modem has no public voting board. Plan and revenue data from Stripe sits on the companies behind a topic, and the agent joins it when you ask ("which paying customers reported bugs this month?"). Salesforce works the same way: context the agent queries, not a feedback source.

Why it is built this way. Each integration does one of two jobs: it captures conversations, or it gives the agent tools. Stripe, Salesforce, and Notion are in the second group on purpose. Billing records, CRM fields, and notes are context about feedback, and turning them into topics would bury the signal. Capture is passive for a reason we gave in the launch post: corralling feedback across a dozen channels "was always the hard part, and it was almost entirely manual". So nobody has to tag or forward anything.

Limits to plan around.

  • Most chat and support sources import 30 days of history, and Zendesk imports none, so Modem is not a way to centralize an archive.
  • It reads only the channels you add, never DMs.
  • Modem reads from Zendesk. Don't plan on it replying inside Zendesk tickets.
  • Modem files Linear, Jira, GitLab, and GitHub issues only when a teammate asks or an automation your team built runs. It does not file on its own. In Slack and, by default, in the dashboard, public or customer-facing writes show an Approve/Deny card first.
  • Only members of your Modem organization can @Modem in Slack. Customers and Slack Connect guests cannot.
  • Dedupe is by meaning, so it can over-merge or over-split. You can merge topics or change a topic's priority by hand.

If your sources are Zendesk, Slack, and a few others, a feature-request board is not your problem, and you want one grouped queue your engineers can act from, that is where Modem fits. If you want customers voting in public, or one insights tool built for analysts, it does not.

Other ways to centralize

These are the main alternatives. Their integration lists change, so confirm on the vendor's own page before you commit.

  • A hand-built system. A tag convention in Zendesk, a Slack workflow, and a Notion database or spreadsheet. Cheapest, and right for small volume. The cost is the weekly copying and the dedupe pass.
  • Automation glue. Tools like Zapier or n8n can move Slack messages or tickets into a tracker. The mapping, including who the requester was, is yours to build and maintain. See should you build your own AI feedback pipeline.
  • Canny. A voting board, with Autopilot capturing feedback from Gong, Intercom, Slack, Zendesk, and others and merging repeats.
  • Productboard. A product management platform; its Slack, Intercom, and Zendesk integrations import insights.
  • Savio. Feature request tracking for B2B teams, with capture from Zendesk, Slack, Salesforce, HubSpot, and email forwarding.
  • Enterpret. A customer intelligence platform that unifies feedback from 50+ sources, with a Salesforce integration for both feedback and account data. We found no public price list.
  • Unwrap. Groups feedback into themes it builds itself, with Zendesk, Intercom, GitHub Issues, Discord, Salesforce, and HubSpot among its sources.
  • BuildBetter. Combines calls, Slack threads, and support tickets, and produces documents and tickets that cite the source quote.

For a wider comparison, see the best customer feedback tools for SaaS.

Step 6: let people read it without asking you

Centralization pays off twice when sales, support, and engineering can query the result themselves. "Has anyone else asked for this?" should not need the PM. By hand, a shared view sorted by count and filterable by company is enough. Then close the loop with the people who asked: how to close the feedback loop with customers.

Start with the two sources that lose the most

Pick your two highest-loss sources, usually Slack and Zendesk. Create one destination with the four fields, agree on a short vocabulary, and run it for two weeks. You will have a first honest count of what customers ask for, and you will know which of your other sources are feedback and which are context.

FAQ

How do I centralize customer feedback from Zendesk, Salesforce, Notion, and Slack?

Treat them as different roles. Zendesk and Slack hold feedback, so capture them continuously. Salesforce holds account context, so join it to the count when you weigh a request. Notion holds notes and is a good place to publish results. Count everything in one place, with a link, a requester, a company, and a quote on every item.

Does Modem ingest Salesforce or Notion as feedback?

No. Modem ingests Zendesk tickets, the Slack channels you add, and other conversation sources as feedback. Salesforce is a read-only sync the agent can query, and Notion is read and written by the agent only in pages you share. Neither creates topics.

Does Modem integrate with HubSpot?

No. Modem has no HubSpot integration. Salesforce is supported as a read-only sync, and Stripe supplies plan and revenue data.

Can Modem read my private Slack channels or DMs?

Not DMs, ever. A private channel is captured only after one of its members shares it with Modem, and only from then on, with no earlier history. Public channels are read only when Modem has been added to them, and it imports their last 30 days.

Will Modem import my old Zendesk tickets?

Its docs list no historical import for Zendesk, so it works from new tickets after you connect. For most chat and support sources it imports the last 30 days.

When is a spreadsheet or Notion database enough?

When one person can read every source and the volume is small. A rule of thumb is under about 50 users and 10 items a week. Move on when you add channels, or when other people need to trust the counts without asking you.

Does Modem rank topics by how many customers asked?

No. Priority is an AI-assigned score that weighs severity, how many companies are affected, recurrence, and more. Revenue from Stripe is not part of it; you can ask the agent to join billing data to topics when you want that view.