Route NPS responses by score into Zendesk, Notion, and Slack
When a Typeform NPS or CSAT response comes in, detractors become Zendesk tickets, promoters become Notion quotes, and passives ping Slack.
Trigger this agent from a Typeform webhook on my NPS or CSAT survey. Every time someone submits a response, the webhook should hand the agent the numeric score, the open-text comment, the respondent details (name, email, anything else the survey collects), the form name, and the submission timestamp.
When a response arrives, the agent should do the following:
1. Read the numeric score and the open-text comment. Classify sentiment as positive, neutral, or negative. Extract two or three short themes from the comment (for example: pricing, onboarding, mobile bugs, support response time). If there is no comment, leave themes empty and still route by score.
2. De-duplicate themes against recent responses. Before tagging, look at the themes used on the last 30 days of responses for this form (the agent can check the Notion Voice of Customer database for promoter themes and recent Zendesk tickets tagged nps-detractor for detractor themes) and reuse the existing wording when a new theme is essentially the same complaint. This keeps the same thread tagged consistently over time.
3. Route by NPS bucket:
Detractors (score 0 to 6): use Zendesk Create Ticket. Subject = "NPS detractor: score {score} from {respondent name or email}". Description = the full open-text comment, followed by the respondent details and a link back to the Typeform response. Priority = urgent if the comment mentions cancelling, churning, or leaving; high if it mentions broken, can't use, or bug; normal otherwise. Tags = ["nps-detractor", "nps", ...extracted themes]. If a specific Zendesk group or assignee is configured for NPS detractor tickets, set it on creation.
Promoters (score 9 to 10): use Notion Create a Page in the Voice of Customer database (the user will tell me the database ID, or I should treat "Voice of Customer" or "Wall of Love" as the database title to look up). Properties to fill: Score (number), Themes (multi-select, from extracted themes), Respondent name, Respondent email, Form name, Submitted at (date). The page body should contain the full quote as a callout block, with the themes listed underneath. Status should default to "New" so marketing reviews before reuse.
Passives (score 7 to 8): use Slack Send a Message to #cx-feedback (or the channel the user specifies). One message per response, formatted like: "Passive NPS {score} from {name}. Themes: {theme1}, {theme2}. \"{first 200 chars of comment}\"". Include a link back to the full Typeform response. Do not open a thread, do not at-mention anyone, just post into the channel.
4. Do not create the Zendesk ticket, Notion page, or Slack message in more than one destination. Each response goes to exactly one place based on its bucket. If the score is missing or invalid, send a Slack message to the same #cx-feedback channel flagging it for manual review and stop.
Tone for any agent-written copy (ticket subjects, Notion property values, Slack summaries): concise, neutral, no emoji. The user can tell me later which Typeform form ID to listen on, which Zendesk group owns detractors, which Notion database holds promoter quotes, and which Slack channel to post passives into.
Additional information
What does this prompt do?
- Catches every new NPS or CSAT response from your Typeform survey, reads the score and open-text comment, and pulls out the top themes.
- Detractors (0 to 6) become Zendesk tickets with the comment as the description, a priority set from severity wording, and theme tags so support can triage fast.
- Promoters (9 to 10) get logged in your Notion Voice of Customer database with the quote, themes, and respondent details for marketing reuse.
- Passives (7 to 8) post a one-line summary to your customer feedback Slack channel so you can review them together each week.
What do I need to use this?
- A Typeform account with an NPS or CSAT survey already collecting responses.
- A Zendesk account where you can create tickets.
- A Notion workspace with a Voice of Customer (or Wall of Love) database shared with your General Input connection.
- A Slack workspace and the channel you want passive responses summarized into.
How can I customize it?
- Adjust the bucket cutoffs. Treat 8s as promoters, or pull 7s down into the detractor bucket if your team wants tighter triage.
- Swap the Notion destination. Send promoter quotes to a Wall of Love page, a separate marketing database, or a Slack channel for the marketing team.
- Change the Slack channel, or send passive responses to a private DM instead of a shared channel.
- Tell the workflow which Zendesk group or agent should own NPS detractor tickets so they land in the right inbox on creation.
Frequently asked questions
Does this work with CSAT surveys, or only NPS?
What happens if a respondent did not leave a comment?
How are themes extracted and kept consistent?
Can I send detractor tickets to a specific Zendesk group or assignee?
Will promoter quotes get published before marketing reviews them?
Stop letting NPS responses sit in a spreadsheet.
Connect Typeform, Zendesk, Notion, and Slack once, and every survey response gets routed to the right team automatically.