Intermediate~15 min setupProductivity & FormsVerified April 2026
Notion logo
Typeform logo

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-time

Use case type

routing

Real-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.

/mo
505005K50K

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

Skip the setup

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.

Notion database with properties for customer email, NPS score (number), category (select), and comments (text)
Typeform survey with at least one NPS rating question (0-10 scale)
Admin access to both Notion workspace and Typeform account for OAuth connections
Select property in Notion database must have exact options: 'Promoter', 'Passive', 'Detractor'

Field Mapping

Map these fields between your apps.

FieldAPI 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

1

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.

  1. 1Click 'New' in the top navigation bar
  2. 2Select 'Start with a trigger' from the dropdown
  3. 3Type 'Typeform' in the app search box
  4. 4Click the Typeform tile when it appears
βœ“ What you should see: You should see the Typeform trigger configuration panel with available trigger types listed.
2

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.

  1. 1Click 'New Response' from the trigger list
  2. 2Click 'Connect Account' button
  3. 3Complete OAuth login in the popup window
  4. 4Click 'Allow' to grant Pipedream access
βœ“ What you should see: You should see your Typeform account email displayed with a green checkmark next to it.
⚠
Common mistake β€” If you see a 'Failed to connect' error, check that popup blockers aren't interfering with the OAuth window.
Pipedream
+
click +
search apps
Notion
NO
Notion
Configure Typeform New Respo…
Notion
NO
module added
3

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.

  1. 1Click the 'Form' dropdown menu
  2. 2Search for your NPS survey by name
  3. 3Select the correct form from the list
  4. 4Click 'Continue' to save the trigger
βœ“ What you should see: The form name should appear in the dropdown field, and you should see sample response data below.
⚠
Common mistake β€” Make sure your NPS question uses a number scale (0-10) - text-based rating questions won't work with score-based tagging logic.
4

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.

  1. 1Click 'Generate Test Event' button
  2. 2Wait for Pipedream to fetch recent data
  3. 3Review the response structure in the preview panel
  4. 4Click 'Continue' to move to the next step
βœ“ What you should see: You should see JSON response data including your NPS score field and any comment text from a real survey submission.
Pipedream
β–Ά Deploy & test
executed
βœ“
Notion
βœ“
Typeform
Typeform
πŸ”” notification
received
5

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.

  1. 1Click the '+' button below the trigger
  2. 2Type 'code' in the step search box
  3. 3Select 'Run Node.js Code'
  4. 4Name the step 'Classify NPS Score'
βœ“ What you should see: You should see a code editor with a basic async function template ready for customization.
⚠
Common mistake β€” Don't skip this step - Notion can't calculate NPS categories from numeric scores alone.

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
    };
  }
});
6

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.

  1. 1Clear the existing code in the editor
  2. 2Paste the NPS classification code from the pro tip
  3. 3Update the field reference to match your form's score field
  4. 4Click 'Test' to verify the logic works
βœ“ What you should see: The test output should show your score number plus a category field with 'Promoter', 'Passive', or 'Detractor'.
⚠
Common mistake β€” Field names in Typeform responses use the question text, not IDs - check the exact wording in your test data.
7

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.

  1. 1Click the '+' button below the code step
  2. 2Search for 'Notion' in the apps list
  3. 3Select 'Create Page in Database'
  4. 4Click 'Connect Account' for Notion
βœ“ What you should see: A Notion OAuth window should open asking you to select which pages Pipedream can access.
⚠
Common mistake β€” You must specifically grant access to your feedback database during OAuth - you can't add databases later without reconnecting.
8

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.

  1. 1Click the 'Database' dropdown
  2. 2Select your customer feedback database
  3. 3Wait for Pipedream to load the database schema
  4. 4Verify the correct properties appear below
βœ“ What you should see: You should see all your database properties listed as configurable fields, including any select/multi-select options.
9

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.

  1. 1Click in the 'Customer Email' field
  2. 2Select the email field from Typeform data
  3. 3Map NPS Score to the score property
  4. 4Set Category to the classification from your code step
  5. 5Map any comment fields to rich text properties
βœ“ What you should see: Each property should show a reference to the correct source field, with dynamic data previews visible.
⚠
Common mistake β€” Select properties in Notion must use exact option names - 'Promoter' not 'promoter' or the row creation will fail.
Notion fields
Name
Status
Assignee
Due Date
Priority
available as variables:
1.props.Name
1.props.Status
1.props.Assignee
1.props.Due Date
1.props.Priority
10

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.

  1. 1Click the 'Test' button on the Notion step
  2. 2Wait for the test to complete
  3. 3Check the success/error status in Pipedream
  4. 4Navigate to your Notion database to verify the new row
βœ“ What you should see: You should see a new row in your Notion database with the test data properly categorized and formatted.
⚠
Common mistake β€” Test runs create real data - delete the test row from Notion if you don't want it in your production database.
11

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.

  1. 1Click the 'Deploy' button in the top navigation
  2. 2Confirm deployment in the modal dialog
  3. 3Wait for the green 'Active' status indicator
  4. 4Submit a test response to your Typeform to verify
βœ“ What you should see: The workflow header should show 'Active' status with a green indicator, and new survey responses should appear in Notion automatically.

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

VerdictWhy n8n for this workflow

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.

Cost

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.

Tradeoffs

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

Was this guide helpful?
← Notion + Typeform overviewPipedream profile β†’