Product feedback analyzer with Slack, Salesforce, and live dashboard
Build a workflow that turns customer product feedback into a browsable, always-current dashboard and a periodic digest. Purpose. Relationship managers post customer feedback about our product into a shared chat channel, each message noting the customer's contact email. The workflow should aggregate that feedback, group it into product areas and recurring themes, deduplicate it with occurrence counts, enrich each item with the customer's account, and present it so a product leader can explore what customers are asking for — by product area or by customer. Triggers. Run on a weekly schedule (cron), and allow manual runs. Each run is incremental and additive: only ingest messages newer than what's already stored, and keep a rolling window of history (retain ~90 days). Main steps (high level). Fetch new feedback messages from the chat channel (Slack — or your team's chat tool) since the last run; on the first run, backfill a baseline (~60 days). Parse the customer contact email from each message. Enrich each message with the customer's account by looking the email up in your CRM (Salesforce — or your CRM / customer data source). Use an LLM (Claude via the Anthropic API — or your preferred model provider) to classify every new message into a product category and a short theme. Consolidate across all stored feedback: merge near-duplicate themes into canonical ones with counts, precompute several time windows (e.g. 7/14/30/60, extending to 90 once enough history exists), and write a short executive summary per window. Publish a dashboard (a web page served by the workflow) where a user can switch time windows, browse by product area or by customer/account, drill into themes, and open the original messages. Persist state in a shared store so the dashboard is always current. Send a periodic digest of just the newly analyzed feedback to a person or channel (Slack DM — or your team's chat/email), linking back to the dashboard. Notes. Keep credentials in connectors, not code. Store the accumulated feedback and precomputed dashboard data in durable workflow storage shared across runs. Tools used: Slack API (conversations.history, chat.postMessage), Salesforce REST API (SOQL Contact→Account lookup), Anthropic Claude API, 3B named volume storage, 3B React webpage step
What this prompt builds
This workflow ingests customer feedback from Slack, enriches each message with Salesforce account data, and uses Claude to classify requests by product area and theme. It consolidates feedback into a live dashboard that product leaders can filter by time window, product area, or customer, and sends periodic digests of newly analyzed requests. The workflow runs weekly and maintains a rolling 90-day history.
The problem
Product teams that collect customer feature requests in a Slack channel struggle to spot patterns, prioritize by account, or see what themes matter most — feedback becomes scattered noise instead of strategic signal. This workflow turns raw Slack messages into a structured, always-current dashboard: it pulls new feedback since the last run, looks up each customer's account in Salesforce, classifies every request by product area and theme using Claude, deduplicates recurring ideas with occurrence counts, and presents the consolidated view in a filterable web dashboard. Product leaders can explore requests by time window, product area, or customer account, drill into themes, and trace each item back to the original message.
Solution and impact
The workflow eliminates manual spreadsheet wrangling and gives product leadership a single source of truth for customer feedback. Relationship managers simply post to Slack as usual; the system handles enrichment, categorization, and deduplication automatically on a weekly schedule, maintaining a rolling 90-day history. Product teams save hours every week, surface high-signal requests faster, and make roadmap decisions grounded in real customer demand — all accessible through a live dashboard and a periodic digest delivered to Slack.