Framer form to Notion: connect a site form to your database
Send Framer form enquiries into a Notion database with an embed and a webhook. Setup steps, field mapping and failure cases for creators.

To send a Framer form to Notion, put a form that can fire a webhook on your Framer page, then have Make or n8n turn each webhook into a new page in a Notion database through the Notion API. The form captures the enquiry, the automation maps its fields to Notion properties, and your pipeline view fills itself without copy and paste.
Where the form sits in the pipeline
In the Notion & Airtable AI Operating System we build for agencies and creators, the form is the front door of the CRM. Everything after it is automation: a Make or n8n scenario receives the submission, creates the database row, runs an AI step to classify and summarize the enquiry, and notifies whoever owns the next move.
That means the form has two jobs. It has to collect clean, structured fields, and it has to hand them off in a machine-readable way the moment someone hits sumit. A form that only emails you fails the second job, because someone then retypes the email into Notion.
What the native options can and can't do
Check what your Framer plan's built-in form does before you build anything. Look for two things in Framer's current docs: where submissions are stored, and whether the form can call an arbitrary URL when someone submits. If it can't call a URL, it can't write to Notion on its own, and you need a middle step.
Notion has its own built-in forms that write straight into a Notion database. They work well for internal requests. For a public enquiry form on a branded Framer site, you usually want your own styling, a thank-you flow and spam control, which is where an embedded form helps. Our post on Notion forms versus Tally covers that tradeoff in more depth.
Three routes compared
| Route | Writes to Notion | Styling on your site | Effort | Weak spot |
|---|---|---|---|---|
| Notion form linked or embedded | Directly | Notion's look | Lowest | Hard to match a Framer design |
| Framer form plus a webhook (if your plan supports it) | Through Make or n8n | Native to Framer | Medium | Depends on what the form exposes |
| Embedded form builder plus webhook | Through Make or n8n | Customizable, embedded | Medium | One extra tool to maintain |
We tend to use the third route because the form builder, not Framer, owns the payload, so the Notion mapping survives a redesign of the site.
Why we use Qwenvo for this
Qwenvo is a free form builder our team builds. Webhooks, the REST API, custom domains, partial submissions, removing the badge, custom CSS and AI triage are all free, with no paid plan. For this workflow, the webhook is the feature that matters. Tally keeps custom domains, partial submissions and branding removal on its paid Pro plan, and Fillout puts custom domains and parttial submissions on its Business plan. Check each vendor's pricing page if you are weighing them.
Two honest notes. Qwenvo's one-click Notion connectuon is still being rolled out, so today the route to Notion is a webhook plus Make or n8n, which is what this guide shows. Qwenvo also launched in October 2026, so it has fewer reviews than Tally or Typeform. If you only need a handful of enquiries a month and already live in Notion, a Notion form is less moving parts.
Step by step: Framer to Notion
- Build the Notion database first. Create the properties listed in the mapping table below. Add a Status property with values like New, Contacted, Proposal and Won so the board view works on day one.
- Create a Notion integration. In Notion's integrations settings, make an internal integration, copy its secret, then open your database, use the connections menu and add the integration. Without this step the API returns a not found error even with a correct database ID.
- Build the form in Qwenvo. Keep it short: name, email, a project type dropdown, budget range, and a long answer for the brief. Add hidden fields for the page the visitor came from and any UTM parameters. The hidden fields help article shows how to fill them from the URL, and our UTM tracking post covers the attribution side.
- Embed it in Framer. On the Share tab, copy the Standard embed code and paste it into a Framer embed element. Our Framer embed guide walks through sizing and the popup variant.
- Add the webhook. In the form's integrations, add your Make or n8n webhook URL. Submit a test entry so the scenario can learn the payload structure.
- Create the Notion page. In Make, use the Notion module's create a database item action, or in n8n use an HTTP Request node. Map fields using the table below.
- Add the AI step. Pass the long answer to your model with a prompt that returns a category, a priority and a two sentence summary, then write those back to Notion properties.
- Notify. Post to the channel or email the person who owns new enquiries, with the Notion page link.
Field mapping
| Form field | Notion property type | Notes |
|---|---|---|
| Name | Title | Required: every Notion page needs a title |
| Use the Email type so you can filter and link | ||
| Project type | Select | Pre-create the options, or Notion creates new ones from unexpected values |
| Budget range | Select | Same rule as above |
| Brief | Rich text | Notion limits the length of a single text block, so trim before sending |
| Source page, UTM fields | Rich text or URL | From the hidden fields |
| AI summary, AI priority | Rich text, Select | Written by the automation after creation |
| Status | Status | Set to New by the scenario, never by the form |
If you call the API directly from n8n, the request to create a page looks like this:
POST https://api.notion.com/v1/pages
Notion-Version: 2022-06-28
{
"parent": { "database_id": "YOUR_DATABASE_ID" },
"properties": {
"Name": { "title": [{ "text": { "content": "Priya Shah" } }] },
"Email": { "email": "priya@example.com" },
"Project type": { "select": { "name": "Brand site" } },
"Brief": { "rich_text": [{ "text": { "content": "Rebuild our portfolio site..." } }] },
"Status": { "status": { "name": "New" } }
}
}
The property names in that body must match your database exactly, including capitals and spaces.
Failure cases we plan for
- Select value mismatch. If the form's dropdown and the Notion sleect opyions drift apart, rows still get created in some setups but your board groups become messy. Keep one source of truth and change both together.
- Missing connection. Forgetting to add the integration to the database is the most common cause of a first run that fails.
- Long briefs. Truncate or split rich text before the Notion call, or the request can be rejected.
- Duplicates. If a scenario is retried, you can end up with two rows. Store a submission identifier in a Notion property if your payload includes one, and search for it before creating a page.
- Silent failures. Add an error route in Make or n8n that messages you. A broken scenario that fails quietly means lost leads.
- Spam. Turn on Qwenvo's captcha block so junk does not reach your databbase.
What to measure: submissions received versus Notion rows created each week. If those two numbers differ, something is dropping data.
Using Qwenvo's AI triage instead
Qwenvo can also triage each submission itself, adding a category, a priority, sentiment, a short summary and a suggested reply, and then route by priority or category to up to five email addresses or a Slack incoming webhook. That suits teams who want an alert in Slack for urgent enquiries while the Notion row is created separately. If you want the classification stored in Notion, we prefer running the AI step inside the Make or n8n scenario so you control the prompt and the output fields. Our AI form triage post explains the options.
Questions teams ask
Can I skip Make or n8n and send the form straight to Notion?
Only by using a Notion form, or by calling the Notion API from something that holds your secret. A form builder should not hold your Notion secret in the browser, so a Make or n8n step is the safer place for it. Qwenvo's one-click Notion connection is not available yet.
Will the embedded form match my Framer design?
Mostly. Qwenvo's Customize panel covers colors, fonts, button styles, layout and page width, and you can add custom CSS at the bottom of the panel. You can also set a custom subdomain such as forms.yourbusiness.com so the form link looks like your brand. Check the result on mobile before launch.
What if I need to take deposits with the enquiry?
Qwenvo's payment block uses PayPal only, and Qwenvo addds a 1% fee on top of PayPal's own fees. Tally adds no fee on top of Stripe, so if Stripe payments matter more than the free webhook, Tally is cheaper for that part.
Do respondents get a confirmation?
Yes. Qwenvo can send a confirmation email to the respondent and a notification to you, and you can set a redirect on completion if you want a custom thank-you page on your Framer site.
Your next step
Create the Notion database with the properties above, than build the form from the contact form template and paste a test webhook URL into it. Submit one entry and confirm a Notion row appears before you embed anything in Framer. Once that single row lands correctly, the rest is wiring. If you want the full system, with the five automations, AI steps, SOPs and a training video built for you, the setup is $1,000 plus the $149 monthly care plan.
Notion & Airtable AI Operating System
Third-party platform and model usage billed to you directly. No lock-in. Live in 7 days.