

How to Route NPS Surveys to Notion with Pipedream
Automatically create Notion database rows from Typeform NPS responses and tag them as Promoter, Passive, or Detractor.
Steps and UI details are based on platform versions at time of writing β check each platform for the latest interface.
Best for
Customer success teams running NPS surveys who want instant visibility into feedback scores in their Notion workspace
Not ideal for
Teams that need complex survey branching logic or want to send responses to multiple destinations
Sync type
real-timeUse case type
routingReal-World Example
A 12-person B2B SaaS company sends monthly NPS surveys to 200+ customers. Their CS team tracks all feedback in a Notion database but was manually copying scores and comments from Typeform responses. This automation creates a new Notion row within 30 seconds of each survey submission, pre-tagged by score range so they can immediately spot detractors needing outreach.
What Will This Cost?
Drag the slider to your expected monthly volume.
Each platform counts differently β Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.





Prices shown for annual billing. Based on published pricing as of April 2026.
Estimated ROI
1000
min saved/mo
$583
labor value/mo
Free
no platform cost
Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.
Implementation
Import this workflow directly into Pipedream
Copy the pre-built Pipedream blueprint and paste it straight into Pipedream. All modules, filters, and field mappings are already configured β you just need to connect your accounts.
Before You Start
Make sure you have everything ready.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Customer Email | ||
| NPS Score | ||
| Response Category | ||
| Survey Date | ||
| Response ID | ||
3 optional fieldsβΈ show
| Feedback Comments | |
| Follow-up Required | |
| Customer Segment |
Step-by-Step Setup
Pipedream > New > Start with a trigger
Create New Pipedream Workflow
Navigate to pipedream.com and click the purple 'New' button in the top navigation. Select 'Start with a trigger' from the dropdown. You'll land on the trigger selection page where you can search for apps or browse categories.
- 1Click 'New' in the top navigation bar
- 2Select 'Start with a trigger' from the dropdown
- 3Type 'Typeform' in the app search box
- 4Click the Typeform tile when it appears
Workflows > Typeform > New Response
Configure Typeform New Response Trigger
Select 'New Response' as your trigger type. This fires instantly when someone submits your survey. You'll need to connect your Typeform account by clicking 'Connect Account' and completing the OAuth flow in the popup window.
- 1Click 'New Response' from the trigger list
- 2Click 'Connect Account' button
- 3Complete OAuth login in the popup window
- 4Click 'Allow' to grant Pipedream access
Trigger Configuration > Form Selection
Select Your NPS Survey Form
Choose the specific Typeform containing your NPS question from the dropdown. Pipedream will load all forms from your account. If you have many forms, use the search box to find your NPS survey quickly.
- 1Click the 'Form' dropdown menu
- 2Search for your NPS survey by name
- 3Select the correct form from the list
- 4Click 'Continue' to save the trigger
Trigger > Generate Test Event
Test the Typeform Trigger
Click 'Generate Test Event' to pull a recent response from your form. If no recent responses exist, submit a test response to your Typeform first. This test data will be used to configure the rest of your workflow steps.
- 1Click 'Generate Test Event' button
- 2Wait for Pipedream to fetch recent data
- 3Review the response structure in the preview panel
- 4Click 'Continue' to move to the next step
Workflow > Add Step > Code > Node.js
Add Code Step for NPS Classification
Click the '+' button below your trigger to add a new step. Search for 'Code' and select 'Run Node.js Code'. This step will analyze the NPS score and assign the appropriate category tag (Promoter, Passive, or Detractor) based on standard NPS methodology.
- 1Click the '+' button below the trigger
- 2Type 'code' in the step search box
- 3Select 'Run Node.js Code'
- 4Name the step 'Classify NPS Score'
This Node.js code analyzes NPS scores and adds follow-up flags for detractors. Paste it into your classification code step, replacing the default async function.
JavaScript β Code Stepexport default defineComponent({βΈ Show code
export default defineComponent({
async run({ steps, $ }) {
const response = steps.trigger.event;... expand to see full code
export default defineComponent({
async run({ steps, $ }) {
const response = steps.trigger.event;
const answers = response.form_response.answers;
// Find the NPS score field
const npsAnswer = answers.find(answer =>
answer.field.title.toLowerCase().includes('recommend')
);
if (!npsAnswer || !npsAnswer.number) {
throw new Error('NPS score not found in response');
}
const score = npsAnswer.number;
let category, followUpRequired;
if (score >= 9) {
category = 'Promoter';
followUpRequired = false;
} else if (score >= 7) {
category = 'Passive';
followUpRequired = false;
} else {
category = 'Detractor';
followUpRequired = true;
}
return {
score: score,
category: category,
follow_up_required: followUpRequired,
response_id: response.form_response.token,
submitted_at: response.form_response.submitted_at
};
}
});Code Step > Editor
Configure NPS Classification Logic
Replace the default code with NPS classification logic. The code will read the score from your Typeform response and return the appropriate category. Standard NPS methodology classifies 0-6 as Detractors, 7-8 as Passives, and 9-10 as Promoters.
- 1Clear the existing code in the editor
- 2Paste the NPS classification code from the pro tip
- 3Update the field reference to match your form's score field
- 4Click 'Test' to verify the logic works
Workflow > Add Step > Notion > Create Page in Database
Add Notion Database Step
Click '+' again to add another step. Search for 'Notion' and select 'Create Page in Database'. This action will create new rows in your feedback database. You'll need to connect your Notion account and grant access to the specific database.
- 1Click the '+' button below the code step
- 2Search for 'Notion' in the apps list
- 3Select 'Create Page in Database'
- 4Click 'Connect Account' for Notion
Notion Step > Database Selection
Select Target Notion Database
Choose your feedback tracking database from the dropdown. Only databases you granted access to during OAuth will appear here. If you don't see your database, disconnect and reconnect your Notion account with broader permissions.
- 1Click the 'Database' dropdown
- 2Select your customer feedback database
- 3Wait for Pipedream to load the database schema
- 4Verify the correct properties appear below
Notion Step > Property Mapping
Map Typeform Fields to Notion Properties
Configure each Notion database property using data from your Typeform response and code step. Map the customer email, NPS score, comments, and the calculated category tag. Use the variable picker to reference data from previous steps.
- 1Click in the 'Customer Email' field
- 2Select the email field from Typeform data
- 3Map NPS Score to the score property
- 4Set Category to the classification from your code step
- 5Map any comment fields to rich text properties
Workflow > Test
Test Complete Workflow
Click 'Test' at the bottom of the Notion step to run the entire workflow with your test data. This will create an actual row in your Notion database using the sample Typeform response. Check your database to verify the row was created correctly.
- 1Click the 'Test' button on the Notion step
- 2Wait for the test to complete
- 3Check the success/error status in Pipedream
- 4Navigate to your Notion database to verify the new row
Workflow > Deploy
Deploy Workflow
Click 'Deploy' in the top right to activate your workflow. Once deployed, every new Typeform response will automatically create a Notion row within 30 seconds. The workflow will continue running until you pause or delete it.
- 1Click the 'Deploy' button in the top navigation
- 2Confirm deployment in the modal dialog
- 3Wait for the green 'Active' status indicator
- 4Submit a test response to your Typeform to verify
Going live
Production Checklist
Before you turn this on for real, confirm each item.
Troubleshooting
Common errors and how to fix them.
Frequently Asked Questions
Common questions about this workflow.
Analysis
Use Pipedream for this if you need real-time NPS processing with custom logic. The instant webhook triggers mean detractors appear in your Notion database within 30 seconds, not the 15-minute delays you get with Zapier polling. The Node.js code steps handle complex score classification without external tools. Skip Pipedream if you're just doing basic field mapping without score categorization β Zapier's simpler for that.
Pipedream costs 1 credit per survey response. At 200 responses monthly, you'll use 200 credits, staying well under the 3,000 credit free tier. Zapier charges for each step, so trigger + classification + Notion creation = 3 tasks per response = 600 tasks monthly, requiring their $20 Starter plan. Pipedream saves you $240 annually here.
Zapier's Typeform integration includes response parsing that's cleaner than digging through webhook JSON. Make handles conditional logic through visual filters instead of code, which non-developers prefer. n8n gives you more detailed error handling with try-catch blocks around each operation. Power Automate connects better if you're already in the Microsoft ecosystem with SharePoint lists. But Pipedream's instant triggers and flexible code steps make it ideal for NPS workflows where timing and custom classification matter.
You'll hit Typeform's webhook delivery quirks where network timeouts cause duplicate firing. Notion's API is picky about select property values β 'promoter' fails while 'Promoter' works, causing silent failures that look like the workflow stopped. The biggest gotcha: Typeform field references use exact question text, so 'How likely are you to recommend us?' becomes the field name, not 'nps_score' like you'd expect.
Ideas for what to build next
- βAdd Slack notifications for Detractors β Send immediate alerts to your customer success channel when someone submits a low NPS score requiring follow-up.
- βCreate follow-up task automation β Automatically create tasks in your project management tool when Detractors need outreach within 24 hours.
- βBuild NPS trend reporting β Set up a monthly summary that calculates your overall NPS score and sends it to stakeholders via email or Slack.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup