Triage Tally form feedback into Linear and Slack

When someone fills out your Tally feedback or NPS form, sort it into bugs, feature requests, churn risk, praise, or noise and route each one to the right place.

Agentic Task
TallyLinearSlack BotCustomer SupportProductFeedback TriageNotifications & Alerts

Build me an agent workflow that triages every new submission from my Tally product-feedback / NPS form into Linear and Slack.

Trigger: a Tally webhook on form submission. When the webhook fires, the agent should call Tally Get Submission to pull the full response (all answers plus the question wording) and any NPS score on the form.

Then the agent should classify the submission into exactly one of these categories:

1. bug — something is broken or behaving wrong.

2. feature-request — a concrete ask for new capability.

3. churn-risk — language suggesting cancellation, switching, frustration, or an NPS score of 0 to 6 paired with negative wording.

4. praise — positive feedback, compliments, high NPS.

5. noise — empty, off-topic, spam, or single-word answers with no signal.

Routing rules:

For bug and feature-request: before filing anything, call Linear Search Issues with the key noun phrase from the submission to look for a near-duplicate filed in the last few weeks. If a close match exists, do NOT create a new issue; instead post a short note in the daily roll-up Slack channel saying "another report of <existing issue title>" with a link to the existing issue and the new quote. If there is no close match, call Linear Create Issue in the configured product team with: a clean, specific title summarizing the request (not the raw quote), the verbatim customer quote in the description along with the form question it answered and any contact info Tally captured, priority 2 (High) for bug + churn-risk overlap or paid-customer signals, priority 3 (Normal) otherwise, and a label matching the category ("bug" or "feature-request").

For churn-risk: still file a Linear issue with the "churn-risk" label and priority 2 (High), AND call Slack Bot Send a Message to the #customer-success channel with the customer's name/email (if Tally captured it), the verbatim quote, the NPS score if present, and a tag for the account owner so they can reach out same-day. Use a short, scannable format.

For praise: do not create a Linear issue. Call Slack Bot Send a Message to the daily roll-up channel (e.g. #product-feedback) with the quote and the submitter's name. These are good for marketing and team morale.

For noise: log a one-line entry to the daily roll-up channel so submissions are accounted for, but do nothing else.

Always include a link back to the underlying Tally submission in any Linear issue description so engineering can see the full context. Keep Slack messages compact (one short header line, one quote block, one line of metadata) so the channels stay readable.

Make the Tally form ID, the Linear team, the customer-success Slack channel, the daily roll-up Slack channel, and the account owner Slack handle configurable inputs on the workflow.

Additional information

What does this prompt do?
  • Reads every new Tally form submission as soon as it lands, including the verbatim response and the question it was answering.
  • Sorts each piece of feedback into one of five buckets: bug report, feature request, churn risk, praise, or noise.
  • Files bugs and concrete feature requests as clean Linear issues in the right team, with the customer quote in the description, a sensible priority, and a category label.
  • Pings a customer success Slack channel when someone is at churn risk or leaves a strongly negative NPS score, so an account owner can reach out the same day.
  • Drops praise and low-signal feedback into a daily roll-up Slack channel so nothing gets thrown away, and checks recent Linear issues before filing so the same complaint never opens five tickets.
What do I need to use this?
  • A Tally account with the feedback or NPS form you want to monitor.
  • A Linear workspace where new issues should be filed, with a team to route them into.
  • A Slack workspace with a customer success channel for churn alerts and a separate channel for the daily roll-up.
How can I customize it?
  • Change the categories. Add buckets like "pricing complaint" or "integration request" if those matter for your product.
  • Adjust the routing rules. Send bugs to one Linear team and feature requests to another, or swap the urgent-alert channel for a different group.
  • Tune the churn signal. Decide which NPS score counts as a red flag, or add keyword rules like "cancel" and "switching" that should always escalate.

Frequently asked questions

Which Tally form should I connect?
Point it at whichever form collects open-text feedback or NPS responses. A single product-feedback form is the most common starting point. You can run separate copies of the workflow for separate forms if you want them routed differently.
What stops the same complaint from creating five Linear tickets?
Before filing a new issue, the agent searches recent Linear issues for similar titles or wording. If it finds a close match, it skips creating a duplicate and just notes the new submission in Slack instead.
Will praise and casual responses get lost?
No. Praise and low-signal feedback do not create Linear issues, but they are still posted into your daily roll-up Slack channel so you can scan them, share them with the team, or quote them in marketing.
How fast does this run after someone submits the form?
Tally pushes the submission to General Input the moment it is sent, so triage usually happens within seconds. You do not need to wait for a scheduled job.
Can I send churn alerts somewhere other than Slack?
Yes. The Slack alert is the default, but you can adjust the prompt to also email an account owner, open a CRM task, or post to a different tool. Slack is just the most common place for same-day escalation.

Stop hand-sorting every Tally response.

Connect Tally, Linear, and Slack once, and Geni triages every new submission the moment it lands.