Skip to main content

Tutorial

Send form submissions to Notion in 3 min

Pipe leads, bug reports, and feedback into a Notion database with field mapping. The full setup, with the screenshots and the gotchas.

Most teams already write in Notion. Drop submissions into a Notion database and it stops being a “form inbox” problem and becomes “the database we already use.”

The wire-up is three minutes. The gotchas are real, but small. Here’s the whole thing.

Step 1: Create the Notion integration

In Notion, go to Settings → Integrations → Develop or manage integrations → New integration.

  • Name it “Core Forms” (or whatever).
  • Type: Internal.
  • Capabilities: Insert content, Read content, Update content.
  • Save.

Copy the Internal Integration Secret. You’ll paste it into Core Forms in a minute.

The mistake people make here: skipping “Read content.” Without it, Core Forms can’t list your databases. Tick all three.

Step 2: Share the database with the integration

Open the Notion database you want submissions to land in. Click the menu at the top right → ConnectionsAdd connections → pick your “Core Forms” integration.

This is the step everyone forgets. Notion integrations don’t see databases by default. You have to grant access per-database. If your integration is set up but Core Forms says “no databases found,” this is why.

Step 3: Pick the database properties

Look at the database. Note the column names exactly as they appear:

  • Name (Title)
  • Email (Email)
  • Message (Text)
  • Source (Select)

Notion’s property types matter for mapping. A Title property takes plain text. An Email property validates the format. A Select property only accepts one of the predefined options.

If your form might submit a value that isn’t in the Select options, Notion rejects the row. Either pre-populate the Select options or use a Text property. I default to Text for anything unpredictable.

Step 4: Wire it in Core Forms

Open the form you want to push to Notion. Go to the Actions tab.

  • Click Add actionNotion.
  • Paste the Integration Secret.
  • The database picker populates. Pick yours.
  • Map form field names to Notion property names.

The mapping looks like:

Form field    →   Notion property
name          →   Name
email         →   Email
message       →   Message
[CF_REFERRER_URL] → Source

That last one is a Core Forms data variable. It captures the URL the form was submitted from. So you’ll know whether the lead came from your /pricing/ page or your /about/ page.

Save the form.

Step 5: Test it

Submit the form. Within a few seconds, the row appears in your Notion database.

If it doesn’t:

  • Check Email logs in Core Forms (Settings → Email logs) — Notion errors land there if something’s wrong with the request.
  • Check that the integration has access to the database (the most common failure).
  • Check that property names in the mapping match exactly. Notion is case-sensitive.

What works well in this setup

Notion’s filtered views become inboxes. Add a filter “Status is unread” and you’ve got a triage view. Add another “Status is responded” and you’ve got a follow-up view.

Comments and history are free. Notion comments turn each lead into a discussion thread. You can @-mention a teammate, leave notes, attach docs, all on the same row.

Custom views per project. A board view by status, a calendar view by date, a gallery view by source — same data, three lenses.

API + sync. Once the data’s in Notion, you’ve got Notion’s API. Build a dashboard somewhere else, sync to a CRM, pipe to Slack on new rows.

What doesn’t work well

Search is mediocre. Notion’s search is fine for documents and bad for structured rows. If you’ll be searching submissions by exact-match strings often, a real database (Airtable, a SQL view) is better.

Property type changes are destructive. If you start with a Select property and switch to Text, Notion silently re-types existing rows. Sometimes the data survives, sometimes it doesn’t. Decide property types up front.

Rate limits exist. Notion’s API throttles at around 3 requests per second. For a typical contact form, never relevant. For a launch form that gets 500 submissions in an hour, you’ll see queueing.

The Notion vs Airtable call

If you’re picking between Notion and Airtable:

  • Notion: when the team already lives there. When you want comments, threads, and free-form notes on each submission.
  • Airtable: when you want strict schema, formulas, automations, and rich filtering. Better for high-volume structured data.

Both are bundled with Core Forms. Pick the one your team already uses.

The next step

Pick one form. Pick one Notion database. Wire it up.

Once you stop emailing yourself form submissions and start treating them as rows in the team’s existing workspace, the whole “form inbox” problem disappears.

The Notion action is included with every Core Forms license. Pricing here.

Build the form. Stop reading.

Every note here came out of a real Core Forms setup. Use CFLAUNCH for 20% off either plan.