Guide · Ghost → Notion
Ghost contact form to Notion without Zapier
Ghost is a publishing and memberships platform first: there is no stock contact-form storage and no native Notion destination for reader messages. Publishers usually paste an HTML card pointed at a form backend, wire Zapier/Make, build a small receiver for the Notion API, or embed a form that already writes to Notion. No fake metrics or testimonials.
Your five options
| Route | How it works | Cost | Catch |
|---|---|---|---|
| Ghost members / portal (built-in) | Use Ghost's members portal for free or paid subscriptions. Reader emails land in Ghost Members — not as arbitrary contact-message rows in a Notion database. | Included with Ghost (Pro tiers add member features). No Zapier bill. | This is membership signup, not a general contact, tip-line, or advertiser inquiry form. You still copy or export if Notion is the CRM. |
| Ghost HTML card → form backend with Notion | Paste an HTML <form> (or the vendor's snippet) into a Ghost HTML card. Point action at a form backend that offers a native Notion destination (e.g. Formgrid, Heysheet, splitforms Pro Notion, or similar). Authorize Notion once and map fields. | Usually a free trial or low monthly for the form backend; Notion itself has no per-row fee at typical volume. | You maintain a third-party account and field mapping. Ghost theme switches do not break an HTML card, but the backend's Notion OAuth or plan limits still apply. |
| HTML card → DIY webhook / Worker → Notion API | Post the form to your own HTTPS endpoint (Cloudflare Worker, Vercel function, etc.). Keep the Notion internal integration secret server-side, share the database with the integration (••• → Connections), and POST https://api.notion.com/v1/pages with parent.database_id. | Developer time; serverless free tiers often cover low volume. | You own spam handling, CORS/redirect UX, Notion property-type mapping, and retries. Never put the Notion secret in the Ghost page HTML. |
| Zapier or Make (form tool → Notion) | Use a Ghost-listed form embed (Formspree, Jotform, Google Forms, Tally, Wufoo, etc.) then a Zap/scenario: New submission → Create Notion database item. Ghost's own directory lists Zapier and several form tools as integrations. | Form tool plan + Zapier tasks or Make operations every submission. | Two (or three) subscriptions whose only job is moving a row. Zaps fail quietly when fields rename. |
| Embed a form that writes to Notion directly | Build the form in FormToNotion and paste one iframe into a Ghost HTML card on a contact or "work with me" page. Submissions sync to your Notion database over the official API — no Zapier hop. | Free inbox; live Notion sync is a one-time Pro $20 or Business $49 — no monthly form SaaS or per-task bill. | The form lives on vgt.cc inside an iframe, not as native Ghost theme markup. It does not create Ghost members or import past email inquiries. HTML cards must be allowed on your Ghost plan/theme. |
Sources: Ghost integrations directory, Ghost forum: contact forms, Notion Create a page. Plans and third-party Notion features change — verify before buying.
Fastest path when Notion is the only inbox
- Create a FormToNotion form whose field labels match your Notion property names.
- Connect Notion (Internal Integration Secret + database id) on a paid plan so submissions sync live.
- In Ghost, add an HTML card on your contact page and paste:
<iframe
src="https://www.vgt.cc/f/your-slug"
title="Contact form"
style="width:100%;min-height:640px;border:0"
loading="lazy"></iframe>Replace your-slug with the public slug from your dashboard. Pro is a one-time $20; Business is a one-time $49.
Stay with Ghost-native paths when…
- You only need member/newsletter signup and Ghost Members is enough.
- You already pay for a form backend + Zapier/Make and the pipeline is stable.
- Compliance expects inquiries to stay inside a vendor you already audited.
Use an embedded Notion form when…
- Notion is the CRM for tips, collabs, and ads — not Ghost Members.
- You want Notion rows without a monthly form SaaS or per-task bill.
- The same form also needs a public link outside Ghost.
Honest limits
- FormToNotion does not create Ghost members or import past mailbox inquiries.
- The iframe is not styled by your Ghost theme CSS.
- No payments, file uploads, or deep conditional logic.
- Field labels must match Notion property names for a row to map correctly.
- The free plan stores submissions in the FormToNotion inbox but does not sync to Notion.
See it work first
The demo form writes to our own Notion database, so you can check the round trip before paying. 14-day refund window on paid plans.
Last updated: November 2, 2026 · Questions? maskid@live.cn