Make logo

Tag feedback by score and alert on detractors

Every score is banded and logged in a data store, and anything under your threshold alerts the team straight away.

When this happens

New submission on your feedback or NPS form

Do this

Trigger a Make scenario that tags the response by sentiment, stores it in a data store, and alerts the team when a score falls below a threshold

One-directional. A submission triggers the action — nothing is written back into your form.

A low score is worth more in the hour it arrives than in a monthly roll-up. This flow reads the recommendation score as it lands, groups the response as promoter, passive or detractor inside Make, stores it, and pings the team only when the number falls under your threshold.

Product teams collecting scores continuously, rather than in survey rounds, use it to keep the noise down. Every response is logged for later analysis; only the ones that need a reply interrupt anybody.

Setting it up

  1. 1

    Publish the NPS form and keep the 0–10 question as the only score on it, so the scenario never has to guess which number it is reading.

  2. 2

    In Make, create a responses data store with columns for score, band, reason, product and date.

  3. 3

    Start the scenario with a custom webhook module, then add a Set Variable module running parseNumber on the score — answers arrive as text, and text comparisons sort 10 below 6.

  4. 4

    Add a router with three routes filtered on that variable: 0 to 6 as detractor, 7 to 8 as passive, 9 to 10 as promoter, and write the band into the data store on each route.

  5. 5

    Put your alert module — Slack, Teams or email — on the detractor route only, with the score and the reason answer in the message body.

  6. 6

    In Zapier, choose formformform and the New Submission trigger, select the NPS form and pull a real response through so the long question labels appear.

  7. 7

    Add Make as the action app, point it at the scenario, and map the score question, the reason answer, the product answer and the respondent's email.

  8. 8

    Submit a 4 and a 9 as tests, confirm only the 4 raised an alert while both reached the data store, then turn the Zap on.

What maps where

Using the Net Promoter Score Survey as the starting point. These are its real fields — swap in your own and the mapping works the same way.

Form fieldMake
On a scale of 0–10, how likely are you to recommend us to a friend or colleague?Parsed into the variable the router bands on, and the score column in the data store
What's the main reason for your score?Body of the detractor alert, and the reason column on every row
Which of our products or services did you use?Product column, so scores can be grouped by product later
Email AddressRespondent address on the data store row, for the follow-up conversation
What could we do to improve your experience?Second comment column, kept out of the alert to keep the message short
Your NameName shown in the alert so somebody can pick the conversation up

Variations worth knowing

Route promoters somewhere useful

The promoter branch does not have to end at the data store. Send nines and tens to a channel where somebody asks for a review or a testimonial, using the reason answer as the opening line of the request.

Keep a running score

Increment promoter, passive and detractor counters in a data store as each response is banded. A weekly scenario can then read the three numbers and post the current figure without anybody exporting a spreadsheet first.

If something isn't arriving

The detractor alert never fires

The score is being compared as text, where 10 sorts below 6 and numeric conditions match nothing. Run parseNumber on the answer in a variable module before the router, and point every route filter at that variable rather than the raw answer.

Yesterday's response has been overwritten

The data store key is the respondent's email, so a repeat survey replaces the earlier row. Build the key from the email and the submission timestamp instead, and keep the plain email as an ordinary column for lookups.

Frequently asked questions

Where does the promoter and detractor split get calculated?

Inside Make. formformform has no calculated fields or scoring engine, so the scenario receives the raw 0 to 10 answer exactly as it was given. The router turns that number into a band, and the band is what gets stored and reported on.

Can the alert include what the same customer scored last time?

Yes, if the earlier score is in your data store. Add a lookup on the respondent's email before the alert module and put the older score in the message. None of that is written back into the form or the response.

How soon after someone submits does the alert appear?

The trigger is real time, so Zapier fires as the response is saved rather than waiting for a scheduled check. The scenario then runs at whatever pace its modules allow, which for a short alert chain is a matter of moments.

Related automations

Build the form first

The automation needs somewhere to fire from. Publish a form, connect it once, and every submission from then on runs this flow.

Start free