Route NPS responses by score into Zendesk, Notion, and Slack

By General Input

When a Typeform NPS or CSAT response comes in, detractors become Zendesk tickets, promoters become Notion quotes, and passives ping Slack.

Integrations

  • Typeform
  • Zendesk
  • Notion
  • Slack

Type

Agentic Task

Categories

  • Customer Support
  • Product

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.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredChat quality review board for LiveChat support leadsPause marketing emails to escalated customers, then restore themWin back no-show and cancelled appointments every morningLive Loop returns analytics with product-level drill-downNewsletter pre-flight and approval board for Mailjet sendsTurn a prospect spreadsheet into personalized sequence enrollmentsArchive Typeform job applications and screen every resumeLook up any customer's email delivery history in one place