[{"data":1,"prerenderedAt":243},["ShallowReactive",2],{"blog-30-60-90-day-onboarding-plan":3},{"blogData":4,"relatedArticles":74},{"id":5,"title":6,"author":7,"authorImage":8,"authorProfile":9,"coverImg":10,"coverImgAlt":11,"createdAt":12,"description":13,"featured":14,"jsonld":15,"keywords":62,"metaDescription":28,"metaImage":63,"metaTitle":64,"publishedAt":65,"slug":66,"updatedAt":67,"__hash__":68,"body":69,"coverImgWidth":70,"coverImgHeight":71,"readingStats":72},"blog\u002Fblog\u002F30-60-90-day-onboarding-plan.md","30-60-90 Day Onboarding Plan: Build One That Hires Actually Use","Harish Kumar",null,"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fharish-kumar2424\u002F","https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002F30_60_90_day_onboarding_plan_5d321c2583.png","30-60-90 day onboarding plan template 2026","2026-06-30T03:09:18.959Z","30-60-90 day onboarding plan template, role-specific variations (sales, eng, marketing, CS, management), weekly check-in cadence, and the 5 reasons plans get abandoned in week 3.",false,[16,33],{"@type":17,"image":10,"author":18,"@context":20,"headline":6,"publisher":21,"description":28,"dateModified":29,"datePublished":29,"mainEntityOfPage":30},"Article",{"url":9,"name":7,"@type":19},"Person","https:\u002F\u002Fschema.org",{"url":22,"logo":23,"name":26,"@type":27},"https:\u002F\u002Fformester.com\u002F",{"url":24,"@type":25},"https:\u002F\u002Fformester.com\u002Flogo.png","ImageObject","Formester","Organization","30-60-90 day onboarding plan template, role-specific variations, weekly check-in cadence, and the 5 reasons most plans get abandoned in week 3.","2026-06-29",{"@id":31,"@type":32},"https:\u002F\u002Fformester.com\u002Fblog\u002F30-60-90-day-onboarding-plan\u002F","WebPage",{"@type":34,"@context":20,"mainEntity":35},"FAQPage",[36,42,46,50,54,58],{"name":37,"@type":38,"acceptedAnswer":39},"What is a 30-60-90 day plan?","Question",{"text":40,"@type":41},"A structured roadmap for a new hire's first three months. It splits into three phases: learn (days 1-30), contribute (days 31-60), and lead (days 61-90), each with specific outcomes the hire and manager agree on in week 1. It gives onboarding clear milestones, structures the weekly 1:1, and produces an evidence-based 90-day review.","Answer",{"name":43,"@type":38,"acceptedAnswer":44},"How do you write a 30-60-90 day plan?",{"text":45,"@type":41},"Start from the outcomes you expect at day 30, 60, and 90, then work backward to weekly milestones. Each phase needs 3 to 5 specific, verifiable goals. Add a weekly 1:1 cadence and fix the 30\u002F60\u002F90 checkpoint dates in calendars before day 1. The plan should fit on 2 pages and live where both the hire and manager will see it weekly.",{"name":47,"@type":38,"acceptedAnswer":48},"What goes in a 30-60-90 day plan?",{"text":49,"@type":41},"Role context, 30-day goals (mostly learning), 60-day goals (project ownership), 90-day goals (full ownership + initiative), weekly check-in cadence, stakeholder map (who to meet by when), resources, and a 1-sentence success criterion for each checkpoint.",{"name":51,"@type":38,"acceptedAnswer":52},"Who creates the 30-60-90 day plan?",{"text":53,"@type":41},"The hiring manager drafts it in the offer week, before the hire starts. The new hire reviews and edits in week 1, so they have ownership over the goals. Both sign off. The HR team typically provides the template; the content is manager + hire.",{"name":55,"@type":38,"acceptedAnswer":56},"What is the difference between a 30-60-90 day plan and a regular onboarding plan?",{"text":57,"@type":41},"A general onboarding plan covers logistics (IT setup, paperwork, orientation, intro meetings). A 30-60-90 day plan is outcome-focused: what the hire should be able to do at each checkpoint. The two work together: the onboarding plan handles logistics in week 1, the 30-60-90 plan handles outcomes across the full first quarter.",{"name":59,"@type":38,"acceptedAnswer":60},"What happens at the 90-day checkpoint?",{"text":61,"@type":41},"A formal review where the hire presents progress against the plan, the manager assesses against the milestones, and a clear decision is made: continue as planned, accelerate (more scope), course-correct (specific gaps + a 30-day plan to close them), or part ways. The decision is documented and feeds the first formal performance review at month 6.","30 60 90 day onboarding plan, 30 60 90 day plan, 90 day onboarding plan, new hire onboarding plan, 30-60-90 plan template",[],"30-60-90 Day Onboarding Plan Guide (2026)","2026-06-30T00:00:00.000Z","30-60-90-day-onboarding-plan","2026-06-30T13:01:51.665Z","HevN1_mk45MAfvRUdqIuVg8cgtSOq7O9eY17TVKfiFc","\u003Cp style=\"font-size: inherit;\">A 30-60-90 day onboarding plan is the structured roadmap a new hire and their manager agree on in week 1. It splits the first three months into three phases: \u003Cstrong>learn\u003C\u002Fstrong> (days 1-30), \u003Cstrong>contribute\u003C\u002Fstrong> (days 31-60), and \u003Cstrong>lead\u003C\u002Fstrong> (days 61-90). Done right, it turns \"we hope they figure it out\" into a measurable ramp with clear weekly milestones, defined success criteria, and a fixed check-in cadence. Done wrong, it sits in a template folder and never opens after week 1.\u003C\u002Fp>\n\n\u003Cp>This guide gives you the full structure, a downloadable layout, role-specific variations, and the small details that determine whether the plan actually gets used.\u003C\u002Fp>\n\n\u003Ch2>What a 30-60-90 day plan actually does\u003C\u002Fh2>\n\n\u003Cp>Most onboarding is calendar-driven (orientation day, IT setup, manager intro lunch) but outcome-blind. The 30-60-90 plan reverses that: it starts with the outcomes you expect at days 30, 60, and 90, then works backward to what learning and projects need to happen each week. Three things change once the plan is in place:\u003C\u002Fp>\n\n\u003Cul>\n\u003Cli>\u003Cstrong>Both sides know what \"good\" looks like at each milestone.\u003C\u002Fstrong> No vague \"ramp up.\" Specific deliverables tied to specific dates.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Weekly 1:1s become structured.\u003C\u002Fstrong> The hire arrives to the 1:1 with progress against the plan. The manager arrives with adjustments. No more \"how's it going\" leading to \"good\" leading to nothing.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>The 90-day review is grounded.\u003C\u002Fstrong> Either the hire hit the milestones or they did not. The decision to extend, level-up, or part ways is based on evidence, not gut feel.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2>The three phases\u003C\u002Fh2>\n\n\u003Ch3>Days 1 to 30: learn\u003C\u002Fh3>\n\n\u003Cp>The \"absorb\" phase. The hire is consuming information, meeting people, understanding context. Output is low and that is correct. The bar for week 4 is \"can describe how the business makes money, who the key people are, and what the team's current priorities mean.\"\u003C\u002Fp>\n\n\u003Cp>Week-by-week structure:\u003C\u002Fp>\n\n\u003Cul>\n\u003Cli>\u003Cstrong>Week 1.\u003C\u002Fstrong> Logistics + orientation + meet the team. Read the team's working docs. Set up the working environment. Shadow 1-2 stakeholder meetings.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Week 2.\u003C\u002Fstrong> Deep-dive sessions with peers and adjacent teams. Read the last quarter's review docs. Sit in on a customer or stakeholder call.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Week 3.\u003C\u002Fstrong> Start a small, low-risk task that produces a tangible artifact (a brief, a code review, a customer note, a data pull). The goal is to learn the team's review cycle, not to ship anything important.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Week 4.\u003C\u002Fstrong> Present back to the manager and peers: \"what I've learned, what surprised me, what I'm still unclear about.\" This is the 30-day checkpoint.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch3>Days 31 to 60: contribute\u003C\u002Fh3>\n\n\u003Cp>The hire is now expected to own pieces of work, not just learn. The 30-day \"what I've learned\" presentation becomes the entry into project ownership.\u003C\u002Fp>\n\n\u003Cul>\n\u003Cli>\u003Cstrong>Week 5.\u003C\u002Fstrong> Take ownership of one defined project end-to-end. Manager scopes it down so it's achievable in 3-4 weeks.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Week 6.\u003C\u002Fstrong> First independent stakeholder call or customer interaction (with the manager in the room, but the hire leading).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Week 7.\u003C\u002Fstrong> Mid-project check-in. Course-correct if scope or approach is off.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Week 8.\u003C\u002Fstrong> Ship the project. Document the work. Present results at the 60-day checkpoint.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch3>Days 61 to 90: lead\u003C\u002Fh3>\n\n\u003Cp>The hire is operating at full capacity, with the team treating them as a full team member. The plan now includes initiating things, not just executing them.\u003C\u002Fp>\n\n\u003Cul>\n\u003Cli>\u003Cstrong>Week 9.\u003C\u002Fstrong> Pick up a second project, this time scoped by the hire (with manager input) rather than handed to them.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Week 10.\u003C\u002Fstrong> Mentor a smaller-stakes task for someone else (a peer, a contractor, an intern) if relevant. If not, take ownership of a recurring process.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Week 11.\u003C\u002Fstrong> Drive a meeting end-to-end (planning, agenda, follow-ups). The manager attends as a participant, not a host.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Week 12.\u003C\u002Fstrong> 90-day checkpoint. The hire presents what they own going forward, what they've learned about the team, and where they want to grow next. This conversation feeds the first formal performance check-in at month 6.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2>The plan template\u003C\u002Fh2>\n\n\u003Cp>The structure that works across roles:\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\u003Cth>Section\u003C\u002Fth>\u003Cth>What goes in\u003C\u002Fth>\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Role context\u003C\u002Ftd>\u003Ctd>Title, team, manager, key stakeholders, primary OKRs the role contributes to.\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>30-day goals\u003C\u002Ftd>\u003Ctd>3 to 5 specific outcomes. Mostly learning-shaped (e.g., \"shadow 5 customer calls,\" \"complete the engineering onboarding modules\").\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>60-day goals\u003C\u002Ftd>\u003Ctd>3 to 4 outcomes. Project ownership starts (e.g., \"ship the X workflow,\" \"publish 3 blog posts\").\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>90-day goals\u003C\u002Ftd>\u003Ctd>2 to 3 outcomes. Full ownership and one piece of initiative.\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Weekly check-in cadence\u003C\u002Ftd>\u003Ctd>1:1 with the manager (weekly or every 2 weeks), 30\u002F60\u002F90 day formal checkpoint dates fixed in calendars on day 1.\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Stakeholder map\u003C\u002Ftd>\u003Ctd>Who the hire needs to meet by when (week 1: direct team. Week 2: adjacent teams. Week 4: leadership.).\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Resources\u003C\u002Ftd>\u003Ctd>Docs to read, courses to take, tools to learn. Linked, not just named.\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Success criteria\u003C\u002Ftd>\u003Ctd>The 1-sentence definition of \"this is working\" at each checkpoint.\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv style=\"background: #F5F3FF; border: 1px solid #E9D5FF; border-radius: 24px; padding: clamp(28px, 5vw, 56px) clamp(20px, 4vw, 48px); margin: 40px 0; text-align: center; font-family: inherit;\">\n\u003Cdiv style=\"display: inline-block; background: #FFFFFF; border: 1px solid #E9D5FF; border-radius: 9999px; padding: 6px 16px; font-size: 12px; font-weight: 700; color: #6941C6; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 22px;\">Onboarding Plan\u003C\u002Fdiv>\n\u003Ch3 style=\"color: #0F172A !important; font-size: clamp(24px, 3.4vw, 36px); line-height: 1.2; font-weight: 700; margin: 0 auto 14px; max-width: 720px; font-family: inherit;\">Run the plan, not just write it\u003C\u002Fh3>\n\u003Cp style=\"color: #475467; font-size: clamp(15px, 1.5vw, 17px); line-height: 1.55; margin: 0 auto 28px; max-width: 600px; font-family: inherit;\">The Employee Onboarding Form captures the hire's goals, stakeholder map, and checkpoint dates in one place. Pin it to your weekly 1:1.\u003C\u002Fp>\n\u003Cp style=\"margin: 0;\">\u003Ca href=\"https:\u002F\u002Fformester.com\u002Ftemplates\u002Femployee-onboarding-form-1831\u002F\" style=\"display: inline-block; background: #7f56d9 !important; color: #ffffff !important; text-decoration: none !important; padding: 14px 28px; border-radius: 9999px; font-weight: 600; font-size: 16px; font-family: inherit;\">Use the Employee Onboarding Form \u003Cspan aria-hidden=\"true\" style=\"margin-left: 4px;\">&rarr;\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp style=\"margin: 22px 0 0; font-size: 13px; color: #697586; font-family: inherit;\">Free forever plan \u003Cspan style=\"color: #C4B5FD;\">&bull;\u003C\u002Fspan> No credit card \u003Cspan style=\"color: #C4B5FD;\">&bull;\u003C\u002Fspan> Setup in 2 minutes\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Ch2>Role-specific adjustments\u003C\u002Fh2>\n\n\u003Cp>The structure is the same; the content shifts by role.\u003C\u002Fp>\n\n\u003Ch3>Sales (AE \u002F SDR)\u003C\u002Fh3>\n\n\u003Cul>\n\u003Cli>\u003Cstrong>30 days:\u003C\u002Fstrong> Product training, shadow 10 calls, learn the ICP, master the CRM and tooling.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>60 days:\u003C\u002Fstrong> First independent calls (with coach in the room), book first meetings, pipeline-building activities at 60-80% of ramped quota expectation.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>90 days:\u003C\u002Fstrong> First closed deals (if cycle allows). Pipeline at 100% of ramped expectation. Begin contributing to playbook updates.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch3>Engineering\u003C\u002Fh3>\n\n\u003Cul>\n\u003Cli>\u003Cstrong>30 days:\u003C\u002Fstrong> Local dev environment running. First small PR shipped (typo fix, doc update, simple bug). Read the architecture overview.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>60 days:\u003C\u002Fstrong> Own a small feature end-to-end. Participate in code reviews. On-call shadowing.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>90 days:\u003C\u002Fstrong> Lead a small project. Full on-call rotation. Identify and propose one technical improvement.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch3>Marketing\u003C\u002Fh3>\n\n\u003Cul>\n\u003Cli>\u003Cstrong>30 days:\u003C\u002Fstrong> Brand voice and positioning absorbed. Audit current channels. Shadow customer calls or read interview transcripts.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>60 days:\u003C\u002Fstrong> Ship the first campaign or content piece. Set up reporting for what they own.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>90 days:\u003C\u002Fstrong> Own one channel or content stream end-to-end. Propose one new bet for the next quarter.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch3>Customer success \u002F support\u003C\u002Fh3>\n\n\u003Cul>\n\u003Cli>\u003Cstrong>30 days:\u003C\u002Fstrong> Product certification complete. Shadow 30+ customer interactions. Learn the support tool stack.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>60 days:\u003C\u002Fstrong> Solo on tier-1 tickets. First customer renewal conversation (CS specific) with manager listening.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>90 days:\u003C\u002Fstrong> Full ticket queue ownership at quality bar. Pattern-recognition reports flowing back to product.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch3>Management \u002F leadership\u003C\u002Fh3>\n\n\u003Cul>\n\u003Cli>\u003Cstrong>30 days:\u003C\u002Fstrong> 1:1s with every direct report. Read the last 6 months of team output. Meet every peer leader.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>60 days:\u003C\u002Fstrong> Diagnosis written up: what's working, what's not, what they would change.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>90 days:\u003C\u002Fstrong> First strategic change implemented (or a clear plan for one). First quarterly plan owned.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2>The check-ins are the plan\u003C\u002Fh2>\n\n\u003Cp>A 30-60-90 plan without scheduled check-ins is a document, not a process. Three check-ins that must be on the calendar before day 1:\u003C\u002Fp>\n\n\u003Col>\n\u003Cli>\u003Cstrong>Weekly 1:1 (45 min).\u003C\u002Fstrong> Standing meeting. Agenda: progress against the plan, blockers, the question the hire most wants to ask. Both sides arrive prepared.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>30-day, 60-day, 90-day checkpoints (60-90 min).\u003C\u002Fstrong> Longer than the weekly 1:1. The hire presents what they've done and learned. The manager assesses against the milestones. Concrete changes to the plan come out of these.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>90-day landing review.\u003C\u002Fstrong> A formal review with skip-level if relevant. Outcomes: continue as planned, accelerate (more scope), course-correct (specific gaps and a 30-day plan to close them), or part ways. The decision is documented.\u003C\u002Fli>\n\u003C\u002Fol>\n\n\u003Ch2>How this fits into the broader onboarding flow\u003C\u002Fh2>\n\n\u003Cp>The 30-60-90 plan covers months 1-3. The full onboarding lifecycle goes earlier and later. See the companion guide on the \u003Ca href=\"\u002Fblog\u002Femployee-onboarding-process\u002F\">employee onboarding process\u003C\u002Fa> for the 7-stage framework that spans pre-boarding through month 6. And if you're putting the plan into action without a manager's checklist, our breakdown of \u003Ca href=\"\u002Fblog\u002Fonboarding-mistakes\u002F\">common onboarding mistakes\u003C\u002Fa> covers the patterns that derail the plan in week 2.\u003C\u002Fp>\n\n\u003Cp>One operational tip: use a standard \u003Ca href=\"\u002Ftemplates\u002Femployee-records-form-template\u002F\">employee records template\u003C\u002Fa> so the plan, check-in notes, and 30\u002F60\u002F90 checkpoint summaries live in one place per hire, not scattered across docs, sheets, and Slack threads.\u003C\u002Fp>\n\n\u003Ch2>Common reasons 30-60-90 plans fail\u003C\u002Fh2>\n\n\u003Cp>Five patterns that explain why most plans get abandoned in week 3:\u003C\u002Fp>\n\n\u003Cul>\n\u003Cli>\u003Cstrong>Plan written, never opened.\u003C\u002Fstrong> The hire never sees it referenced after day 1. Fix: pin it to the weekly 1:1 agenda.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Goals are too vague.\u003C\u002Fstrong> \"Learn the product\" is not a goal. \"Demo the product unaided to a peer by end of week 3\" is. Specific and verifiable.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Manager doesn't track it.\u003C\u002Fstrong> If the manager doesn't open the doc before the 1:1, the hire stops opening it too.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No 30\u002F60\u002F90 checkpoints in the calendar.\u003C\u002Fstrong> Without fixed dates, the milestones drift into \"we'll catch up soon\" and never happen.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Plan never adjusted.\u003C\u002Fstrong> Reality shifts. The first project gets cancelled. A new priority emerges. If the plan is treated as static, it becomes irrelevant. Fix: update it formally at each checkpoint.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2>The takeaway\u003C\u002Fh2>\n\n\u003Cp>A 30-60-90 day plan works because it forces both sides to align on outcomes at week 1, gives the weekly 1:1 a structure, and produces a defensible decision at day 90. The structure is consistent across roles; the content varies. Build the plan in the offer week (not day 1), put the weekly 1:1 and three checkpoints on the calendar before the hire starts, and treat the plan as a living document that gets updated at each checkpoint. Then it is a tool, not a folder artifact.\u003C\u002Fp>\n\n\u003Csection class=\"faq\">\n\u003Ch2>30-60-90 day onboarding plan FAQ\u003C\u002Fh2>\n\u003Cdetails>\u003Csummary>What is a 30-60-90 day plan?\u003C\u002Fsummary>\u003Cdiv>A structured roadmap for a new hire's first three months. It splits into three phases: learn (days 1-30), contribute (days 31-60), and lead (days 61-90), each with specific outcomes the hire and manager agree on in week 1. It gives onboarding clear milestones, structures the weekly 1:1, and produces an evidence-based 90-day review.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\u003Cdetails>\u003Csummary>How do you write a 30-60-90 day plan?\u003C\u002Fsummary>\u003Cdiv>Start from the outcomes you expect at day 30, 60, and 90, then work backward to weekly milestones. Each phase needs 3 to 5 specific, verifiable goals. Add a weekly 1:1 cadence and fix the 30\u002F60\u002F90 checkpoint dates in calendars before day 1. The plan should fit on 2 pages and live where both the hire and manager will see it weekly.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\u003Cdetails>\u003Csummary>What goes in a 30-60-90 day plan?\u003C\u002Fsummary>\u003Cdiv>Role context, 30-day goals (mostly learning), 60-day goals (project ownership), 90-day goals (full ownership + initiative), weekly check-in cadence, stakeholder map (who to meet by when), resources, and a 1-sentence success criterion for each checkpoint.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\u003Cdetails>\u003Csummary>Who creates the 30-60-90 day plan?\u003C\u002Fsummary>\u003Cdiv>The hiring manager drafts it in the offer week, before the hire starts. The new hire reviews and edits in week 1, so they have ownership over the goals. Both sign off. The HR team typically provides the template; the content is manager + hire.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\u003Cdetails>\u003Csummary>What is the difference between a 30-60-90 day plan and a regular onboarding plan?\u003C\u002Fsummary>\u003Cdiv>A general onboarding plan covers logistics (IT setup, paperwork, orientation, intro meetings). A 30-60-90 day plan is outcome-focused: what the hire should be able to do at each checkpoint. The two work together: the onboarding plan handles logistics in week 1, the 30-60-90 plan handles outcomes across the full first quarter.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\u003Cdetails>\u003Csummary>What happens at the 90-day checkpoint?\u003C\u002Fsummary>\u003Cdiv>A formal review where the hire presents progress against the plan, the manager assesses against the milestones, and a clear decision is made: continue as planned, accelerate (more scope), course-correct (specific gaps + a 30-day plan to close them), or part ways. The decision is documented and feeds the first formal performance review at month 6.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\u003C\u002Fsection>\n\n",2400,1350,{"text":73},"10 min read",[75,167,196,225],{"title":76,"author":77,"authorImage":8,"authorProfile":78,"coverImg":79,"coverImgAlt":80,"createdAt":81,"description":82,"featured":14,"jsonld":83,"keywords":154,"metaDescription":82,"metaImage":155,"metaTitle":156,"publishedAt":157,"slug":158,"updatedAt":159,"__hash__":160,"body":161,"id":162,"coverImgWidth":163,"coverImgHeight":164,"readingStats":165},"How to Convert a PDF to a Fillable Form (Free, 2026 Guide)","Harsh Shah","https:\u002F\u002Flinkedin.com\u002Fin\u002Fharshshahseo","https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fa_blog_post_cover_on_how_to_convert_pdf_into_fillable_form_191d7f5be6.png","a blog post cover on how to convert pdf into fillable form","2025-04-17T03:24:26.242Z","Convert any PDF, even a scanned one, into a fillable form for free. Three routes: AI auto-detect, Adobe Acrobat, and free online tools. Step-by-step with a side",[84],{"name":85,"step":86,"tool":143,"@type":147,"supply":148,"@context":20,"totalTime":152,"description":153},"How to Convert a PDF to a Fillable Form",[87,116,131],{"name":88,"@type":89,"itemListElement":90},"Method 1: AI auto-detect with Formester","HowToSection",[91,96,100,104,108,112],{"name":92,"text":93,"@type":94,"position":95},"Create a new form","Sign in to Formester, click Create New Form, pick Convert PDF to Formester Form.","HowToStep",1,{"name":97,"text":98,"@type":94,"position":99},"Upload the PDF","Drag the PDF in. AI detects fields in 20-40 seconds.",2,{"name":101,"text":102,"@type":94,"position":103},"Review and edit detected fields","Click any field to change its type, label, or required flag. Drag new fields if the AI missed one.",3,{"name":105,"text":106,"@type":94,"position":107},"Design the form","Add a logo, pick brand colors, choose a layout.",4,{"name":109,"text":110,"@type":94,"position":111},"Publish and share","Get a shareable link, embed code, QR code, or email-embed snippet.",5,{"name":113,"text":114,"@type":94,"position":115},"Optional: export filled PDFs","Turn on the PDF Editor to produce a filled PDF for every submission.",6,{"name":117,"@type":89,"itemListElement":118},"Method 2: Adobe Acrobat Pro",[119,122,125,128],{"name":120,"text":121,"@type":94,"position":95},"Open in Acrobat","Open the PDF in Acrobat Pro.",{"name":123,"text":124,"@type":94,"position":99},"Prepare Form","Tools, Prepare Form. Acrobat detects and proposes fields.",{"name":126,"text":127,"@type":94,"position":103},"Edit fields","Set field types, required flags, and labels.",{"name":129,"text":130,"@type":94,"position":107},"Save and distribute","Save, then email or share the file.",{"name":132,"@type":89,"itemListElement":133},"Method 3: Free online tools",[134,137,140],{"name":135,"text":136,"@type":94,"position":95},"Pick a tool","Sejda, PDF24, iLovePDF, or PDFgear for a one-off file.",{"name":138,"text":139,"@type":94,"position":99},"Upload and draw fields","Upload the PDF, draw form fields manually over each blank area.",{"name":141,"text":142,"@type":94,"position":103},"Download","Save the fillable PDF locally.",[144],{"name":145,"@type":146},"Formester, Adobe Acrobat, or a free online PDF editor","HowToTool","HowTo",[149],{"name":150,"@type":151},"PDF file (digital or scanned)","HowToSupply","PT5M","Three methods to convert any PDF into a fillable form: AI auto-detect with Formester, Adobe Acrobat Pro, and free online tools.","convert pdf to fillable form,\nfillable pdf,\npdf form,\nfillable form",[],"Convert PDF to Fillable Form (Free): 3 Ways in 2026","2026-06-15T04:54:04.067Z","how-to-convert-pdf-to-fillable-form","2026-06-15T04:54:04.074Z","zwMR1IFqU8SgegrGnfmO4Tx7IlL8mskYDU_C0hOD3Xc","\u003Cstyle>\n\u002F* batch-1 blog normalisation *\u002F\n.fmstr-blog-lead {\n  font-size: 17px !important;\n  line-height: 1.65 !important;\n  color: #475467 !important;\n  font-weight: 400 !important;\n  margin: 0 0 16px !important;\n}\n.fmstr-blog-lead a { color: #6941c6 !important; font-weight: 500; }\n.fmstr-blog-lead a:hover { text-decoration: underline !important; }\n.fmstr-blog-lead strong { color: #101828; font-weight: 700; }\nsection[class^=\"fmstr-cmp-\"], section[class*=\" fmstr-cmp-\"] {\n  padding-top: 28px !important;\n  padding-bottom: 28px !important;\n}\n@media (max-width: 540px) {\n  section[class^=\"fmstr-cmp-\"], section[class*=\" fmstr-cmp-\"] {\n    padding-top: 24px !important;\n    padding-bottom: 24px !important;\n  }\n}\n\u003C\u002Fstyle>\n\n\u003Cstyle id=\"fmstr-blog-mobile-fullwidth-v3\">\n@media (max-width: 760px) {\n  .art-section { padding-left: 12px !important; padding-right: 12px !important; }\n}\n@media (max-width: 540px) {\n  .art-section { padding-left: 6px !important; padding-right: 6px !important; padding-top: 24px !important; }\n  section[class^=\"fmstr-cmp-\"], section[class*=\" fmstr-cmp-\"] {\n    padding-left: 0 !important; padding-right: 0 !important;\n    overflow-x: hidden !important; box-sizing: border-box !important;\n  }\n  section[class^=\"fmstr-cmp-\"] *, section[class^=\"fmstr-cmp-\"] *::before, section[class^=\"fmstr-cmp-\"] *::after { box-sizing: border-box !important; }\n  section[class^=\"fmstr-cmp-\"] > *, section[class^=\"fmstr-cmp-\"] > * > * { min-width: 0 !important; }\n  section[class^=\"fmstr-cmp-\"] [class*=\"__container\"] {\n    padding-left: 0 !important; padding-right: 0 !important;\n    max-width: 100% !important; width: 100% !important;\n  }\n  section[class^=\"fmstr-cmp-\"] [class*=\"__card\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__step\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__panel\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__tool\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__verdict\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__row\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__fix\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__callout\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__quote\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__tldr\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__answer\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__faq\"],\n  section[class^=\"fmstr-cmp-\"] details {\n    padding-left: 14px !important; padding-right: 14px !important;\n    margin-left: 0 !important; margin-right: 0 !important;\n  }\n  section[class^=\"fmstr-cmp-\"] p, section[class^=\"fmstr-cmp-\"] li { font-size: 15px !important; line-height: 1.6 !important; }\n  section[class^=\"fmstr-cmp-\"] h2 { font-size: 22px !important; line-height: 1.22 !important; }\n  section[class^=\"fmstr-cmp-\"] h3 { font-size: 18px !important; line-height: 1.3 !important; }\n  section[class^=\"fmstr-cmp-\"] h4 { font-size: 16px !important; line-height: 1.35 !important; }\n  section[class^=\"fmstr-cmp-\"] table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; width: 100% !important; }\n  section[class^=\"fmstr-cmp-\"] img, section[class^=\"fmstr-cmp-\"] iframe, section[class^=\"fmstr-cmp-\"] video { max-width: 100% !important; height: auto !important; }\n  section[class^=\"fmstr-cmp-\"] pre, section[class^=\"fmstr-cmp-\"] code {\n    white-space: pre-wrap !important; overflow-wrap: anywhere !important; word-break: break-word !important;\n  }\n  section[class^=\"fmstr-cmp-\"] pre { overflow-x: auto; }\n  .fmstr-blog-lead { font-size: 16.5px !important; }\n}\n\u003C\u002Fstyle>\n\n\u003Cp class=\"fmstr-blog-lead\">You have a PDF, and you need people to fill it out without printing, scanning, or emailing it back.\u003C\u002Fp>\n\n\u003Cp class=\"fmstr-blog-lead\">This guide covers the three ways to do that in 2026: an AI route that auto-detects fields in under a minute, the Adobe Acrobat route most teams default to, and the free online tools that work for one-off jobs.\u003C\u002Fp>\n\n\u003Cp class=\"fmstr-blog-lead\">You also get a side-by-side comparison so you pick the right tool for your file, not the one with the loudest ad. The end output can be either a web form (shareable link, responses in a dashboard) or a real fillable PDF (downloadable, signable, printable).\u003C\u002Fp>\n\n\u003Cp class=\"fmstr-blog-lead\">The right pick depends on whether the form lives online or has to keep its original PDF format. We cover both.\u003C\u002Fp>\n\n\u003Cstyle>\n.fmstr-cmp-tmpl-tldr a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-tldr {\n--c-card: #f7f3ff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-edge: #e4d7ff; --c-border: #d6c2f7;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\nbackground: transparent;\npadding: 28px 0 40px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important; overflow-x: hidden; -webkit-text-size-adjust: 100%;}\n.fmstr-cmp-tmpl-tldr *, .fmstr-cmp-tmpl-tldr *::before, .fmstr-cmp-tmpl-tldr *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-tldr__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-tldr__card {\nbackground: var(--c-card);\nborder: 1px solid var(--c-border);\nborder-left: 4px solid var(--c-violet-500);\nborder-radius: 14px;\npadding: 22px 26px;\nbox-shadow: var(--c-shadow);\ndisplay: flex; flex-direction: column; gap: 10px;\n}\n.fmstr-cmp-tmpl-tldr__label {\nfont-size: 12px !important;\nfont-weight: 700 !important;\nletter-spacing: 0.08em !important;\ntext-transform: uppercase;\ncolor: var(--c-violet-700) !important;\ndisplay: inline-flex;\nalign-items: center;\ngap: 8px;\nmargin: 0 !important;\n}\n.fmstr-cmp-tmpl-tldr__label::before {\ncontent: \"\";\nwidth: 8px; height: 8px; border-radius: 9999px;\nbackground: var(--c-violet-500);\ndisplay: inline-block;\n}\n.fmstr-cmp-tmpl-tldr__body {\nfont-size: 16px !important;\nline-height: 1.65 !important;\ncolor: var(--c-fg-1);\nmargin: 0 !important;\nfont-weight: 500 !important;\n}\n.fmstr-cmp-tmpl-tldr__body strong { color: var(--c-violet-700); font-weight: 700; }\n\n@media (max-width: 540px) {\n.fmstr-cmp-tmpl-tldr { padding: 20px 0 28px; }\n.fmstr-cmp-tmpl-tldr__card { padding: 18px 20px; }\n.fmstr-cmp-tmpl-tldr__body { font-size: 15px !important; }\n}\n\n\n\u002F* mobile-safety-v2 *\u002F\n.fmstr-cmp-tmpl-tldr img, .fmstr-cmp-tmpl-tldr table, .fmstr-cmp-tmpl-tldr pre, .fmstr-cmp-tmpl-tldr iframe, .fmstr-cmp-tmpl-tldr video { max-width: 100%; }\n.fmstr-cmp-tmpl-tldr > * { min-width: 0; }\n.fmstr-cmp-tmpl-tldr [class*='__grid'] > *, .fmstr-cmp-tmpl-tldr [class*='__list'] > *, .fmstr-cmp-tmpl-tldr [class*='__cards'] > * { min-width: 0; max-width: 100%; }\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-tldr pre { overflow-x: auto; -webkit-overflow-scrolling: touch; }\n  .fmstr-cmp-tmpl-tldr table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-tldr\" aria-labelledby=\"fmstr-cmp-tmpl-tldr-label\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-tldr__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-tldr__card\">\u003Cp class=\"fmstr-cmp-tmpl-tldr__label\" id=\"fmstr-cmp-tmpl-tldr-label\">Quick answer\u003C\u002Fp>\n\u003Cp class=\"fmstr-cmp-tmpl-tldr__body\">Three ways to convert any PDF into a fillable form in 2026: the \u003Cstrong>AI route\u003C\u002Fstrong> (Formester auto-detects fields in 20-40 seconds, free up to 100MB), the \u003Cstrong>Adobe Acrobat route\u003C\u002Fstrong> ($19.99\u002Fmonth, best for offline or DRM-locked PDFs), and \u003Cstrong>free online tools\u003C\u002Fstrong> like Sejda, PDF24, iLovePDF, and PDFgear (good for one-off jobs, manual field drawing).\u003C\u002Fp>\n\u003Cp class=\"fmstr-cmp-tmpl-tldr__body\">Pick the AI route if you need a shareable link plus a response dashboard, Acrobat if the output must stay a static PDF, and a free tool if it is one file, one time.\u003C\u002Fp>\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\n\u003Cstyle>\n.fmstr-cmp-tmpl-cmptbl a { text-decoration: none !important; color: var(--c-violet-600) !important; font-weight: 600; }\n.fmstr-cmp-tmpl-cmptbl a:hover { text-decoration: underline !important; }\n.fmstr-cmp-tmpl-cmptbl {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\n--c-good: #12b76a; --c-bad: #f04438; --c-warn: #b54708;\nbackground: transparent;\npadding: 48px 0;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\noverflow-x: hidden;\n}\n.fmstr-cmp-tmpl-cmptbl *, .fmstr-cmp-tmpl-cmptbl *::before, .fmstr-cmp-tmpl-cmptbl *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-cmptbl > *, .fmstr-cmp-tmpl-cmptbl > * > * { min-width: 0; }\n.fmstr-cmp-tmpl-cmptbl__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-cmptbl__head { margin: 0 0 24px !important; }\n.fmstr-cmp-tmpl-cmptbl__h2 {\nfont-size: clamp(26px, 3vw, 36px) !important; font-weight: 700 !important; line-height: 1.15 !important;\nletter-spacing: -.02em !important; margin: 0 !important; color: var(--c-fg-1);\n}\n.fmstr-cmp-tmpl-cmptbl__intro { color: var(--c-fg-3); font-size: 17px !important; line-height: 1.6 !important; margin: 14px 0 0 !important; }\n\n.fmstr-cmp-tmpl-cmptbl__scroll { overflow-x: auto; border: 1px solid var(--c-border); border-radius: 14px; box-shadow: var(--c-shadow); background: var(--c-card); }\n.fmstr-cmp-tmpl-cmptbl__table { width: 100%; border-collapse: collapse; min-width: 880px; font-size: 14px; }\n.fmstr-cmp-tmpl-cmptbl__table th,\n.fmstr-cmp-tmpl-cmptbl__table td { padding: 14px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--c-border); }\n.fmstr-cmp-tmpl-cmptbl__table thead th { background: var(--c-tint); color: var(--c-violet-700) !important; font-weight: 700; font-size: 12.5px; letter-spacing: .04em; text-transform: uppercase; border-bottom: 1px solid var(--c-edge); white-space: nowrap; }\n.fmstr-cmp-tmpl-cmptbl__table tbody tr:last-child td { border-bottom: 0; }\n.fmstr-cmp-tmpl-cmptbl__table tbody tr.is-featured { background: var(--c-tint); }\n.fmstr-cmp-tmpl-cmptbl__tool { font-weight: 700; color: var(--c-fg-1); white-space: nowrap; }\n.fmstr-cmp-tmpl-cmptbl__price { color: var(--c-fg-2); font-size: 13.5px; }\n.fmstr-cmp-tmpl-cmptbl__cell { color: var(--c-fg-2); font-size: 13.5px; line-height: 1.5; }\n.fmstr-cmp-tmpl-cmptbl__yes { color: var(--c-good); font-weight: 700; }\n.fmstr-cmp-tmpl-cmptbl__no { color: var(--c-bad); font-weight: 700; }\n.fmstr-cmp-tmpl-cmptbl__partial { color: var(--c-warn); font-weight: 700; }\n\n.fmstr-cmp-tmpl-cmptbl__readline { margin: 24px 0 0; padding: 18px 20px; background: var(--c-tint); border: 1px solid var(--c-edge); border-radius: 12px; }\n.fmstr-cmp-tmpl-cmptbl__readline-title { font-size: 13px !important; font-weight: 700 !important; letter-spacing: .08em !important; text-transform: uppercase; color: var(--c-violet-700) !important; margin: 0 0 8px !important; }\n.fmstr-cmp-tmpl-cmptbl__readline-list { margin: 0; padding-left: 18px; color: var(--c-fg-2); font-size: 14.5px; line-height: 1.65; }\n.fmstr-cmp-tmpl-cmptbl__readline-list li { margin: 0 0 6px; }\n.fmstr-cmp-tmpl-cmptbl__readline-list li:last-child { margin: 0; }\n\n@media (max-width: 540px) {\n.fmstr-cmp-tmpl-cmptbl { padding: 36px 0; }\n.fmstr-cmp-tmpl-cmptbl__scroll { border-radius: 10px; }\n}\n\n\n\u002F* mobile-safety-v2 *\u002F\n.fmstr-cmp-tmpl-cmptbl img, .fmstr-cmp-tmpl-cmptbl table, .fmstr-cmp-tmpl-cmptbl pre, .fmstr-cmp-tmpl-cmptbl iframe, .fmstr-cmp-tmpl-cmptbl video { max-width: 100%; }\n.fmstr-cmp-tmpl-cmptbl > * { min-width: 0; }\n.fmstr-cmp-tmpl-cmptbl [class*='__grid'] > *, .fmstr-cmp-tmpl-cmptbl [class*='__list'] > *, .fmstr-cmp-tmpl-cmptbl [class*='__cards'] > * { min-width: 0; max-width: 100%; }\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-cmptbl pre { overflow-x: auto; -webkit-overflow-scrolling: touch; }\n  .fmstr-cmp-tmpl-cmptbl table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-cmptbl\" aria-labelledby=\"fmstr-cmp-tmpl-cmptbl-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmptbl__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmptbl__head\">\n\u003Ch2 class=\"fmstr-cmp-tmpl-cmptbl__h2\" id=\"fmstr-cmp-tmpl-cmptbl-h2\">Comparison: 8 ways to convert a PDF to a fillable form\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-cmptbl__intro\">Side-by-side on price, free-plan limits, AI auto-detect, scanned-PDF OCR, e-signature, and output format.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmptbl__scroll\">\n\u003Ctable class=\"fmstr-cmp-tmpl-cmptbl__table\">\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Tool\u003C\u002Fth>\n\u003Cth>Starting price\u003C\u002Fth>\n\u003Cth>Free plan limit\u003C\u002Fth>\n\u003Cth>AI auto-detect\u003C\u002Fth>\n\u003Cth>Scanned PDF (OCR)\u003C\u002Fth>\n\u003Cth>E-signature\u003C\u002Fth>\n\u003Cth>Output: web form\u003C\u002Fth>\n\u003Cth>Output: fillable PDF\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\n\u003Ctr class=\"is-featured\">\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__tool\">Formester\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__price\">Free, \u003Ca href=\"https:\u002F\u002Fformester.com\u002Fpricing\u002F\">paid from $24\u002Fmo\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">100MB per upload, unlimited forms\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan> (PDF Editor)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\n\u003Ctr>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__tool\">Adobe Acrobat Pro\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__price\">\u003Ca href=\"https:\u002F\u002Fwww.adobe.com\u002Facrobat\u002Fpricing.html\">$19.99\u002Fmo\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">None (paid only)\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan> (Prepare Form + OCR)\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan> (Adobe Sign)\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__no\">No\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\n\u003Ctr>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__tool\">Smallpdf\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__price\">\u003Ca href=\"https:\u002F\u002Fsmallpdf.com\u002Fpricing\">$9\u002Fmo billed annually\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">2 tasks\u002Fday\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__no\">No\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan> (OCR)\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__no\">No\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\n\u003Ctr>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__tool\">Sejda\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__price\">\u003Ca href=\"https:\u002F\u002Fwww.sejda.com\u002Faccount\u002Fpricing\">$5\u002Fwk or $7.50\u002Fmo\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">3 tasks\u002Fhour, 50MB or 200 pages\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__no\">No\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan> (OCR)\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__no\">No\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\n\u003Ctr>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__tool\">Jotform\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__price\">Free, \u003Ca href=\"https:\u002F\u002Fwww.jotform.com\u002Fpricing\u002F\">paid from $34\u002Fmo\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">5 forms, 100 submissions, 100MB\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__partial\">Limited\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__no\">No native\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan> (integration)\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\n\u003Ctr>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__tool\">PDFescape\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__price\">Free, \u003Ca href=\"https:\u002F\u002Fwww.pdfescape.com\u002Faccount\u002F?p=premium\">$3\u002Fmo premium\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">10MB or 100 pages, 50 forms\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__no\">No\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__partial\">Premium only\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__no\">No\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\n\u003Ctr>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__tool\">iLovePDF\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__price\">\u003Ca href=\"https:\u002F\u002Fwww.ilovepdf.com\u002Fpricing\">$7\u002Fmo\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">File-size capped\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__partial\">Partial\u003C\u002Fspan> (if fields exist)\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__partial\">Partial\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__no\">No\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\n\u003Ctr>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__tool\">SodaPDF\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__price\">\u003Ca href=\"https:\u002F\u002Fwww.sodapdf.com\u002Fpricing\u002F\">$5\u002Fmo annual\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">Online viewer only, no save\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__no\">No\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan> (OCR add-on)\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__no\">No\u003C\u002Fspan>\u003C\u002Ftd>\n\u003Ctd class=\"fmstr-cmp-tmpl-cmptbl__cell\">\u003Cspan class=\"fmstr-cmp-tmpl-cmptbl__yes\">Yes\u003C\u002Fspan>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmptbl__readline\">\n\u003Cp class=\"fmstr-cmp-tmpl-cmptbl__readline-title\">Read the table this way\u003C\u002Fp>\n\u003Cul class=\"fmstr-cmp-tmpl-cmptbl__readline-list\">\n\u003Cli>\u003Cstrong>Want a web form and a dashboard:\u003C\u002Fstrong> Formester or Jotform are the only two that ship both routes in one product.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Want a fillable PDF, period:\u003C\u002Fstrong> Acrobat for offline, Sejda or Smallpdf for browser.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Stack of scanned forms:\u003C\u002Fstrong> Formester, Acrobat, Sejda, Smallpdf, iLovePDF, and SodaPDF all support OCR. Only Formester and Acrobat auto-detect fields after OCR; the rest expect you to draw fields on top.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fdiv>\n\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\n\u003Cstyle>\n.fmstr-cmp-tmpl-steps a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-steps a.fmstr-cmp-tmpl-steps__link { color: var(--c-violet-600) !important; text-decoration: none !important; font-weight: 600; }\n.fmstr-cmp-tmpl-steps a.fmstr-cmp-tmpl-steps__link:hover { text-decoration: underline !important; }\n.fmstr-cmp-tmpl-steps {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\nbackground: transparent;\npadding: 48px 0;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\noverflow-x: hidden;\n}\n.fmstr-cmp-tmpl-steps *, .fmstr-cmp-tmpl-steps *::before, .fmstr-cmp-tmpl-steps *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-steps > *, .fmstr-cmp-tmpl-steps > * > * { min-width: 0; }\n.fmstr-cmp-tmpl-steps__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-steps__head { margin: 0 0 28px !important; }\n.fmstr-cmp-tmpl-steps__h2 {\nfont-size: clamp(26px, 3vw, 36px) !important; font-weight: 700 !important; line-height: 1.15 !important;\nletter-spacing: -.02em !important; margin: 0 !important; color: var(--c-fg-1);\n}\n.fmstr-cmp-tmpl-steps__intro { color: var(--c-fg-3); font-size: 17px !important; line-height: 1.6 !important; margin: 14px 0 0 !important; }\n.fmstr-cmp-tmpl-steps__method {\nmargin: 32px 0 0;\n}\n.fmstr-cmp-tmpl-steps__method-head {\ndisplay: flex; align-items: center; gap: 10px;\nmargin: 0 0 14px;\n}\n.fmstr-cmp-tmpl-steps__chip {\ndisplay: inline-flex; align-items: center;\nfont-size: 11px !important; font-weight: 700 !important; letter-spacing: 0.08em !important;\ntext-transform: uppercase; color: var(--c-violet-700) !important;\nbackground: var(--c-tint); border: 1px solid var(--c-edge);\npadding: 4px 10px; border-radius: 9999px; white-space: nowrap; flex-shrink: 0; }\n.fmstr-cmp-tmpl-steps__method-title {\nfont-size: 22px !important; font-weight: 700 !important; line-height: 1.25 !important;\nletter-spacing: -.01em !important; margin: 0 !important; color: var(--c-fg-1);\n}\n.fmstr-cmp-tmpl-steps__list {\ndisplay: flex; flex-direction: column; gap: 14px;\nmargin: 0; padding: 0; list-style: none;\n}\n.fmstr-cmp-tmpl-steps__item {\nbackground: var(--c-card);\nborder: 1px solid var(--c-border);\nborder-radius: 14px;\npadding: 22px 24px;\nbox-shadow: var(--c-shadow);\ndisplay: flex; gap: 12px;\nalign-items: flex-start;\nmin-width: 0;\n}\n.fmstr-cmp-tmpl-steps__num {\nflex-shrink: 0;\nwidth: 26px; line-height: 1; height: 26px; border-radius: 7px;\nbackground: var(--c-tint);\nborder: 1px solid var(--c-edge);\ncolor: var(--c-violet-700) !important;\nfont-weight: 800; font-size: 13px;\ndisplay: inline-flex; align-items: center; justify-content: center;\n}\n.fmstr-cmp-tmpl-steps__main { flex: 1; min-width: 0; }\n.fmstr-cmp-tmpl-steps__title {\nfont-size: 17px !important; font-weight: 700 !important; line-height: 1.3 !important;\ncolor: var(--c-fg-1); margin: 0 0 6px !important;\n}\n.fmstr-cmp-tmpl-steps__body {\nfont-size: 15px !important; line-height: 1.6 !important;\ncolor: var(--c-fg-2); margin: 0 !important;\n}\n\n@media (max-width: 540px) {\n.fmstr-cmp-tmpl-steps { padding: 36px 0; }\n.fmstr-cmp-tmpl-steps__item { padding: 18px 20px; gap: 14px; }\n.fmstr-cmp-tmpl-steps__num { width: 34px; height: 34px; font-size: 15px; }\n.fmstr-cmp-tmpl-steps__title { font-size: 16px !important; }\n.fmstr-cmp-tmpl-steps__body { font-size: 14.5px !important; }\n.fmstr-cmp-tmpl-steps__method-title { font-size: 19px !important; }\n}\n\n\n\u002F* mobile-safety-v2 *\u002F\n.fmstr-cmp-tmpl-steps img, .fmstr-cmp-tmpl-steps table, .fmstr-cmp-tmpl-steps pre, .fmstr-cmp-tmpl-steps iframe, .fmstr-cmp-tmpl-steps video { max-width: 100%; }\n.fmstr-cmp-tmpl-steps > * { min-width: 0; }\n.fmstr-cmp-tmpl-steps [class*='__grid'] > *, .fmstr-cmp-tmpl-steps [class*='__list'] > *, .fmstr-cmp-tmpl-steps [class*='__cards'] > * { min-width: 0; max-width: 100%; }\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-steps pre { overflow-x: auto; -webkit-overflow-scrolling: touch; }\n  .fmstr-cmp-tmpl-steps table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }\n}\n\n\n\n\u002F* mobile-inline-num *\u002F\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-steps__item { padding: 18px 16px; gap: 10px; flex-direction: row; align-items: flex-start; }\n  .fmstr-cmp-tmpl-steps__num { width: 28px; height: 28px; font-size: 13px; border-radius: 8px; }\n}\n\n\u002F* step-inline-num-restructure *\u002F\n.fmstr-cmp-tmpl-steps__item { display: block !important; }\n.fmstr-cmp-tmpl-steps__title { display: block; }\n.fmstr-cmp-tmpl-steps__num { display: inline-block !important; vertical-align: 2px; margin-right: 8px; padding: 2px 8px; width: auto !important; height: auto !important; border-radius: 6px; font-size: 12.5px !important; line-height: 1.3 !important; }\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-steps__num { font-size: 11.5px !important; padding: 2px 7px; margin-right: 6px; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-steps\" aria-labelledby=\"fmstr-cmp-tmpl-steps-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__head\">\n\u003Ch2 class=\"fmstr-cmp-tmpl-steps__h2\" id=\"fmstr-cmp-tmpl-steps-h2\">The 3 methods, step by step\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__intro\">The AI route is fastest. Acrobat is for desktop-only or DRM-locked PDFs. Free online tools work for a one-off file.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__method\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__method-head\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__chip\">Method 1\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__method-title\">Convert with AI (Formester, free)\u003C\u002Fh3>\n\u003C\u002Fdiv>\n\u003Col class=\"fmstr-cmp-tmpl-steps__list\">\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">1\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch4 class=\"fmstr-cmp-tmpl-steps__title\">Create a new form\u003C\u002Fh4>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Open \u003Ca class=\"fmstr-cmp-tmpl-steps__link\" href=\"https:\u002F\u002Fformester.com\u002F\">Formester\u003C\u002Fa> and sign in. From the dashboard, click Create New Form, then pick Convert PDF to Formester Form. This route handles both clean digital PDFs and scanned documents, so a phone photo of a paper form works the same way as an exported invoice.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">2\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch4 class=\"fmstr-cmp-tmpl-steps__title\">Upload the PDF\u003C\u002Fh4>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Drag the PDF into the upload zone. The AI reads the page, finds every blank line, checkbox, signature space, and label, and maps them to form fields. A typical 2-page intake form processes in 20-40 seconds. Files up to 100MB on the free plan, 1GB on Personal, 50GB on Business. Word docs work the same way.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">3\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch4 class=\"fmstr-cmp-tmpl-steps__title\">Review and edit detected fields\u003C\u002Fh4>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">The detected fields appear over the PDF preview. Click any field to change its type (text, number, email, date, dropdown, signature, file upload), rename its label, mark it required, or set conditional logic.\u003C\u002Fp>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Drag new fields from the side panel if the AI missed one, which usually happens on hand-drawn boxes in scanned forms.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">4\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch4 class=\"fmstr-cmp-tmpl-steps__title\">Design the form\u003C\u002Fh4>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Open the Design tab. Drop in your logo, set primary and accent colors, pick a font, choose a layout (one question per page or all on one page). The branding kit saves once and applies to every future form. The free plan keeps Formester branding in the footer; paid plans remove it.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">5\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch4 class=\"fmstr-cmp-tmpl-steps__title\">Publish and share\u003C\u002Fh4>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Click Publish. You get a shareable link, an embed snippet for any site (WordPress, Webflow, Wix, raw HTML), a QR code for printed materials, and an email-embed code that drops the first question into the body of an email.\u003C\u002Fp>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Submissions land in your dashboard; route them to \u003Ca class=\"fmstr-cmp-tmpl-steps__link\" href=\"https:\u002F\u002Fformester.com\u002Fintegrations\u002F\">Slack, Google Sheets, HubSpot, or Zapier\u003C\u002Fa> without code.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">6\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch4 class=\"fmstr-cmp-tmpl-steps__title\">Optional: export filled PDFs\u003C\u002Fh4>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">If the output needs to stay a PDF (legal forms, certificates, signed contracts, government submissions), turn on the \u003Ca class=\"fmstr-cmp-tmpl-steps__link\" href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fcreate-fillable-pdf-forms\u002F\">PDF Editor\u003C\u002Fa> in form settings. Re-upload the original PDF as the template. Drag each web-form field onto the matching spot.\u003C\u002Fp>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Every submission then produces a filled, downloadable PDF, auto-sent to the respondent's email if you want. The dashboard still captures the structured data, so you get both formats from one submission.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003C\u002Fol>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__method\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__method-head\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__chip\">Method 2\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__method-title\">Convert with Adobe Acrobat ($19.99\u002Fmonth)\u003C\u002Fh3>\n\u003C\u002Fdiv>\n\u003Col class=\"fmstr-cmp-tmpl-steps__list\">\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">1\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch4 class=\"fmstr-cmp-tmpl-steps__title\">Open in Acrobat Pro\u003C\u002Fh4>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Open the PDF in \u003Ca class=\"fmstr-cmp-tmpl-steps__link\" href=\"https:\u002F\u002Fwww.adobe.com\u002Facrobat\u002Fpricing.html\">Adobe Acrobat Pro\u003C\u002Fa>. The conversion happens inside Acrobat in five clicks.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">2\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch4 class=\"fmstr-cmp-tmpl-steps__title\">Run Prepare Form\u003C\u002Fh4>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Tools, Prepare Form. Acrobat scans the page and proposes form fields. On scanned documents, Acrobat runs OCR first; scan-to-form quality varies, so check every detected field.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">3\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch4 class=\"fmstr-cmp-tmpl-steps__title\">Edit field properties\u003C\u002Fh4>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Set field types, required flags, and labels. Rename anything Acrobat got wrong.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">4\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch4 class=\"fmstr-cmp-tmpl-steps__title\">Save and distribute\u003C\u002Fh4>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">File, Save As. Distribute by email or save to a network share.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">5\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch4 class=\"fmstr-cmp-tmpl-steps__title\">Optional: enable Reader Extensions\u003C\u002Fh4>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Turn on Reader Extensions so anyone with free Acrobat Reader can fill and save the file. Skip this and respondents need Acrobat Pro to save their progress.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003C\u002Fol>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__method\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__method-head\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__chip\">Method 3\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__method-title\">Free online tools (one-off jobs)\u003C\u002Fh3>\n\u003C\u002Fdiv>\n\u003Col class=\"fmstr-cmp-tmpl-steps__list\">\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">1\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch4 class=\"fmstr-cmp-tmpl-steps__title\">Pick a tool\u003C\u002Fh4>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">\u003Ca class=\"fmstr-cmp-tmpl-steps__link\" href=\"https:\u002F\u002Fwww.sejda.com\u002Fpdf-forms\">Sejda PDF Forms\u003C\u002Fa> (3 tasks per hour, 50MB or 200 pages free), \u003Ca class=\"fmstr-cmp-tmpl-steps__link\" href=\"https:\u002F\u002Ftools.pdf24.org\u002Fen\u002Fcreate-fillable-pdf-form\">PDF24 Tools\u003C\u002Fa> (free, ad-supported), \u003Ca class=\"fmstr-cmp-tmpl-steps__link\" href=\"https:\u002F\u002Fwww.ilovepdf.com\u002Fpdf-forms\">iLovePDF PDF Forms\u003C\u002Fa> (auto-detects if the source PDF already has fields), or \u003Ca class=\"fmstr-cmp-tmpl-steps__link\" href=\"https:\u002F\u002Fwww.pdfgear.com\u002Fcreate-fillable-pdf\u002F\">PDFgear\u003C\u002Fa> (free, no daily cap).\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">2\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch4 class=\"fmstr-cmp-tmpl-steps__title\">Upload and draw fields\u003C\u002Fh4>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Upload the PDF, then draw form fields manually over each blank area. None of the free tools auto-detect fields on scanned documents the way the AI route does.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">3\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch4 class=\"fmstr-cmp-tmpl-steps__title\">Download the fillable PDF\u003C\u002Fh4>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Save the fillable PDF locally and email it to respondents. Output is a PDF only, no shareable web form, no response dashboard, no native CRM routing. Skip these tools when you process more than ten of these a month, because drawing fields by hand on file number eleven costs more than any paid plan.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003C\u002Fol>\n\u003C\u002Fdiv>\n\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\n\u003Cstyle>\n.fmstr-cmp-tmpl-midcta a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-midcta { background: transparent; padding: 48px 0; font-family: inherit; color: #101828; overflow-x: hidden; }\n.fmstr-cmp-tmpl-midcta *, .fmstr-cmp-tmpl-midcta *::before, .fmstr-cmp-tmpl-midcta *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-midcta__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-midcta__card { width: 100%; background: linear-gradient(135deg, #f7f3ff 0%, #faf7ff 100%); border: 1px solid #e4d7ff; border-radius: 18px; padding: 48px 32px; text-align: center; box-shadow: 0 4px 24px rgba(127, 86, 217, 0.08); }\n.fmstr-cmp-tmpl-midcta__inner { max-width: 760px; margin: 0 auto; }\n.fmstr-cmp-tmpl-midcta__eyebrow { display: inline-block; padding: 4px 12px; background: #ffffff; border: 1px solid #e4d7ff; border-radius: 9999px; color: #5b34b1 !important; font-size: 11.5px !important; font-weight: 700 !important; letter-spacing: 0.06em !important; text-transform: uppercase; margin: 0 0 14px !important; }\n.fmstr-cmp-tmpl-midcta__h2 { font-size: clamp(22px, 3vw, 28px) !important; font-weight: 700 !important; line-height: 1.2 !important; letter-spacing: -0.02em !important; margin: 0 0 12px !important; color: #101828 !important; }\n.fmstr-cmp-tmpl-midcta__body { font-size: 16px !important; line-height: 1.55 !important; color: #475467 !important; margin: 0 0 22px !important; }\n.fmstr-cmp-tmpl-midcta__cta { display: inline-flex !important; align-items: center; gap: 8px; background: #7f56d9 !important; color: #ffffff !important; border: 1px solid #7f56d9 !important; padding: 12px 26px !important; border-radius: 9999px !important; font-size: 15px !important; font-weight: 600 !important; text-decoration: none !important; transition: background .15s ease, transform .15s ease; }\n.fmstr-cmp-tmpl-midcta__cta:hover { background: #6941c6 !important; border-color: #6941c6 !important; color: #ffffff !important; text-decoration: none !important; transform: translateY(-1px); }\n.fmstr-cmp-tmpl-midcta__cta::after { content: \"\\2192\"; transition: transform .15s ease; }\n.fmstr-cmp-tmpl-midcta__cta:hover::after { transform: translateX(2px); }\n.fmstr-cmp-tmpl-midcta__strip { font-size: 13px !important; color: #697586 !important; margin: 20px 0 0 !important; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 14px; width: 100%; }\n.fmstr-cmp-tmpl-midcta__strip span { color: #d6c2f7; }\n@media (max-width: 760px) {\n  .fmstr-cmp-tmpl-midcta__card { padding: 36px 22px; }\n}\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-midcta { padding: 32px 0; }\n  .fmstr-cmp-tmpl-midcta__card { padding: 26px 16px; border-radius: 14px; }\n  .fmstr-cmp-tmpl-midcta__h2 { font-size: 20px !important; }\n  .fmstr-cmp-tmpl-midcta__body { font-size: 15px !important; }\n  .fmstr-cmp-tmpl-midcta__cta { padding: 11px 22px !important; font-size: 14.5px !important; width: 100%; justify-content: center; }\n  .fmstr-cmp-tmpl-midcta__strip { font-size: 12.5px !important; gap: 4px 10px; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-midcta\" aria-labelledby=\"fmstr-cmp-tmpl-midcta-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-midcta__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-midcta__card\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-midcta__inner\">\n\u003Cspan class=\"fmstr-cmp-tmpl-midcta__eyebrow\">PDF to fillable\u003C\u002Fspan>\n\u003Ch2 class=\"fmstr-cmp-tmpl-midcta__h2\" id=\"fmstr-cmp-tmpl-midcta-h2\">Convert any PDF to a fillable web form, without Acrobat\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-midcta__body\">Upload the PDF, set the fields, publish in minutes. Respondents fill on any device. Free plan included.\u003C\u002Fp>\n\u003Ca class=\"fmstr-cmp-tmpl-midcta__cta\" href=\"https:\u002F\u002Fapp.formester.com\u002Fusers\u002Fsign_up\" style=\"background: #7f56d9 !important; color: #ffffff !important; border-color: #7f56d9 !important; text-decoration: none !important;\">Start free on Formester\u003C\u002Fa>\n\u003Cp class=\"fmstr-cmp-tmpl-midcta__strip\">Free forever plan\u003Cspan>&bull;\u003C\u002Fspan>No credit card\u003Cspan>&bull;\u003C\u002Fspan>Setup in 2 minutes\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\u003Cstyle>\n\u002F* host-link-override *\u002F\n.fmstr-cmp-tmpl-faq a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-faq {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-600: #6941c6;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0; --c-chip-bg: #f4f4f7;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\n\nbackground: transparent; padding: 56px 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important; overflow-x: hidden; -webkit-text-size-adjust: 100%;}\n.fmstr-cmp-tmpl-faq *, .fmstr-cmp-tmpl-faq *::before, .fmstr-cmp-tmpl-faq *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-faq__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-faq__h2 { font-size: clamp(26px, 3vw, 36px) !important; font-weight: 700 !important; line-height: 1.15 !important; letter-spacing: -.02em !important; margin: 0 !important; color: var(--c-fg-1); text-align: left; }\n.fmstr-cmp-tmpl-faq__intro { color: var(--c-fg-3); font-size: 17px !important; line-height: 1.6 !important; margin: 14px 0 28px !important; text-align: left; }\n.fmstr-cmp-tmpl-faq__list { display: flex; flex-direction: column; gap: 12px; }\n.fmstr-cmp-tmpl-faq__item {\nbackground: var(--c-card); border: 1px solid var(--c-border);\nborder-radius: 14px; box-shadow: var(--c-shadow); overflow: hidden;\n}\n.fmstr-cmp-tmpl-faq__item > summary {\npadding: 18px 22px; cursor: pointer; font-weight: 600; font-size: 16.5px;\ncolor: var(--c-fg-1); display: flex; align-items: center; gap: 14px;\nlist-style: none;\n}\n.fmstr-cmp-tmpl-faq__item > summary::-webkit-details-marker { display: none; }\n.fmstr-cmp-tmpl-faq__item > summary::before {\ncontent: \"\"; width: 28px; height: 28px; border-radius: 8px; flex-shrink: 0;\nbackground-color: var(--c-chip-bg);\nbackground-image: url(\"data:image\u002Fsvg+xml,%3Csvg xmlns='http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg' width='14' height='14' viewBox='0 0 14 14' fill='none' stroke='%2375747f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5l4 4 4-4'\u002F%3E%3C\u002Fsvg%3E\");\nbackground-repeat: no-repeat; background-position: center;\ntransition: transform .15s ease, background-color .15s ease;\n}\n.fmstr-cmp-tmpl-faq__item[open] > summary::before { transform: rotate(180deg); background-color: var(--c-tint); }\n.fmstr-cmp-tmpl-faq__item[open] > summary { color: var(--c-violet-600) !important; }\n.fmstr-cmp-tmpl-faq__answer { padding: 0 22px 22px 64px; color: var(--c-fg-2); font-size: 15.5px; line-height: 1.7; }\n.fmstr-cmp-tmpl-faq__answer a { color: var(--c-violet-600) !important; text-decoration: none !important; }\n.fmstr-cmp-tmpl-faq__answer a:hover { text-decoration: underline !important; }\n\n@media (max-width: 760px) {\n.fmstr-cmp-tmpl-faq { padding: 40px 16px; }\n.fmstr-cmp-tmpl-faq__intro { font-size: 15.5px !important; text-align: left; }\n.fmstr-cmp-tmpl-faq__item > summary { padding: 16px 16px; font-size: 15.5px; gap: 12px; }\n.fmstr-cmp-tmpl-faq__item > summary::before { width: 26px; height: 26px; }\n.fmstr-cmp-tmpl-faq__answer { padding: 0 16px 18px 16px; font-size: 15px; line-height: 1.65; }\n}\n\n\n\u002F* mobile-safety-v2 *\u002F\n.fmstr-cmp-tmpl-faq img, .fmstr-cmp-tmpl-faq table, .fmstr-cmp-tmpl-faq pre, .fmstr-cmp-tmpl-faq iframe, .fmstr-cmp-tmpl-faq video { max-width: 100%; }\n.fmstr-cmp-tmpl-faq > * { min-width: 0; }\n.fmstr-cmp-tmpl-faq [class*='__grid'] > *, .fmstr-cmp-tmpl-faq [class*='__list'] > *, .fmstr-cmp-tmpl-faq [class*='__cards'] > * { min-width: 0; max-width: 100%; }\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-faq pre { overflow-x: auto; -webkit-overflow-scrolling: touch; }\n  .fmstr-cmp-tmpl-faq table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-faq\" aria-labelledby=\"fmstr-cmp-tmpl-faq-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__container\">\n\u003Ch2 class=\"fmstr-cmp-tmpl-faq__h2\" id=\"fmstr-cmp-tmpl-faq-h2\">Frequently asked questions\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-faq__intro\">Common questions about converting any PDF, scanned or digital, into a fillable form.\u003C\u002Fp>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__list\">\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>Is there a free way to convert a PDF to a fillable form?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">Yes. Formester's free plan covers the full AI conversion flow (upload, auto-detect, publish) with files up to 100MB. PDF24, PDFgear, and the Sejda free tier (3 tasks per hour) also work for one-off jobs. Adobe Acrobat is paid only.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>Can I convert a scanned paper PDF, not just a digital one?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">Yes. Formester, Adobe Acrobat, Sejda, Smallpdf, iLovePDF, PDF24, and PDFgear all run OCR on scanned PDFs. Only Formester and Acrobat auto-detect fields after OCR; the rest expect you to draw fields manually.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>Does the converted form keep the original PDF format?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">Two answers depending on the route. The AI route publishes a web form; the original PDF is the template, the output is a shareable link. The PDF Editor route (or the Adobe Acrobat route) preserves the PDF format: every submission produces a filled, downloadable PDF that looks identical to the original.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>How do I add e-signatures?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">Drop a signature field anywhere on the form. Respondents sign with a finger on mobile, a mouse on desktop, or by typing their name in a script font. The signature is captured with timestamp and IP for audit. Available on the \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Felectronic-signature\u002F\">Formester signature feature\u003C\u002Fa>.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>Can I send the filled PDF back to the respondent automatically?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">Yes on Formester (turn on auto-send in form settings; Business plan and above for the auto-PDF feature). Adobe Acrobat with Acrobat Sign also does this. Free online tools generally do not. You can also \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fexport-form-submission-pdf\u002F\">export submissions as PDF\u003C\u002Fa> in bulk from the dashboard.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>What file size can I upload?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">Formester: 100MB free, 1GB Personal, 50GB Business per file. Sejda free: 50MB or 200 pages. Smallpdf free: ~5MB. Acrobat Pro: practically unlimited (limited by your machine).\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>Is the conversion accessible (WCAG \u002F 508)?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">Web forms are easier to make accessible than PDFs. Formester's web output supports keyboard navigation, screen readers, and color-contrast settings out of the box. For Acrobat's PDF route, you need to set the Tags tree manually after conversion, which is the most common gap in agency workflows.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>Can I connect submissions to Google Sheets, Slack, or my CRM?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">Yes on Formester and Jotform via native integrations. On the PDF-only tools (Sejda, PDF24, Smallpdf), you get an emailed PDF; routing to a CRM requires Zapier or manual upload.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>Does the AI detect every field, every time?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">No tool does. Clean digital PDFs hit close to 95-100% on basic fields. Scanned phone photos with shadows or skew drop to 70-85%. The fix is always the same: review the detected fields once, fix any miss, save the template, and the next 100 conversions of the same form are perfect.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>Can I make a fillable PDF from a Word document?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">Yes. Export the Word doc as a PDF first (File, Save As, PDF), then run it through any of the three methods in this guide. Formester also accepts the Word file directly.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\n\u003Cstyle>\n\u002F* host-link-override *\u002F\n.fmstr-cmp-tmpl-rel a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-rel {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\n--c-shadow: 0 4px 20px rgba(16,24,40,.06);\n\nbackground: transparent;\npadding: 56px 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important; overflow-x: hidden; -webkit-text-size-adjust: 100%;}\n.fmstr-cmp-tmpl-rel *, .fmstr-cmp-tmpl-rel *::before, .fmstr-cmp-tmpl-rel *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-rel__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-rel__head { margin: 0 0 28px !important; text-align: left; }\n.fmstr-cmp-tmpl-rel__h2 { font-size: clamp(26px, 3vw, 36px) !important; font-weight: 700 !important; line-height: 1.15 !important; letter-spacing: -.02em !important; margin: 0 !important; color: var(--c-fg-1); text-align: left; }\n.fmstr-cmp-tmpl-rel__intro { color: var(--c-fg-3); font-size: 17px !important; line-height: 1.6 !important; margin: 14px 0 0 !important; text-align: left; }\n\n.fmstr-cmp-tmpl-rel__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }\n.fmstr-cmp-tmpl-rel__card {\nbackground: var(--c-card); border: 1px solid var(--c-border);\nborder-radius: 14px; padding: 20px 22px; display: flex; flex-direction: column; gap: 8px;\ntext-decoration: none !important; color: inherit !important; transition: all .15s ease;\nposition: relative;\n}\n.fmstr-cmp-tmpl-rel__card:hover { border-color: var(--c-edge); box-shadow: var(--c-shadow); transform: translateY(-1px); }\n.fmstr-cmp-tmpl-rel__chip {\ndisplay: inline-block; padding: 3px 10px; border-radius: 9999px;\nbackground: var(--c-tint); border: 1px solid var(--c-edge);\ncolor: var(--c-violet-600); font-size: 11.5px; font-weight: 600; letter-spacing: .02em;\ntext-transform: uppercase; align-self: flex-start;\nmargin-bottom: 2px;\n}\n.fmstr-cmp-tmpl-rel__title {\nfont-size: 16px !important; font-weight: 700 !important; color: var(--c-fg-1); margin: 0 !important; line-height: 1.3 !important; text-align: left; }\n.fmstr-cmp-tmpl-rel__body { font-size: 14.5px !important; line-height: 1.55 !important; color: var(--c-fg-2); margin: 0 !important; }\n.fmstr-cmp-tmpl-rel__arrow {\nmargin-top: 6px; color: var(--c-violet-600); font-size: 14px; font-weight: 600;\ndisplay: inline-flex; align-items: center; gap: 6px;\n}\n.fmstr-cmp-tmpl-rel__arrow::after {\ncontent: \"\\2192\"; transition: transform .15s ease; display: inline-block;\n}\n.fmstr-cmp-tmpl-rel__card:hover .fmstr-cmp-tmpl-rel__arrow::after { transform: translateX(3px); }\n\n@media (max-width: 880px) { .fmstr-cmp-tmpl-rel__grid { grid-template-columns: 1fr 1fr; gap: 14px; } }\n@media (max-width: 540px) {\n.fmstr-cmp-tmpl-rel { padding: 40px 16px; }\n.fmstr-cmp-tmpl-rel__grid { grid-template-columns: 1fr; gap: 12px; }\n.fmstr-cmp-tmpl-rel__card { padding: 18px 20px; }\n}\n\n\n\u002F* mobile-safety-v2 *\u002F\n.fmstr-cmp-tmpl-rel img, .fmstr-cmp-tmpl-rel table, .fmstr-cmp-tmpl-rel pre, .fmstr-cmp-tmpl-rel iframe, .fmstr-cmp-tmpl-rel video { max-width: 100%; }\n.fmstr-cmp-tmpl-rel > * { min-width: 0; }\n.fmstr-cmp-tmpl-rel [class*='__grid'] > *, .fmstr-cmp-tmpl-rel [class*='__list'] > *, .fmstr-cmp-tmpl-rel [class*='__cards'] > * { min-width: 0; max-width: 100%; }\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-rel pre { overflow-x: auto; -webkit-overflow-scrolling: touch; }\n  .fmstr-cmp-tmpl-rel table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-rel\" aria-labelledby=\"fmstr-cmp-tmpl-rel-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-rel__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-rel__head\">\n\u003Ch2 class=\"fmstr-cmp-tmpl-rel__h2\" id=\"fmstr-cmp-tmpl-rel-h2\">Related on Formester\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__intro\">More on fillable PDFs, auto-signing, and the AI form generator.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-tmpl-rel__grid\">\n\n\u003Ca class=\"fmstr-cmp-tmpl-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-auto-fill-and-sign-pdfs-with-a-form\u002F\">\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__chip\">Guide\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-rel__title\">Auto-fill and sign PDFs with a form\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__body\">Connect a web form to a PDF template so every submission ships a signed file.\u003C\u002Fp>\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__arrow\">Read\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-tmpl-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-add-fillable-fields-in-pdf\u002F\">\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__chip\">Guide\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-rel__title\">Add fillable fields in a PDF\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__body\">Drop text inputs, checkboxes, and signatures into any PDF in minutes.\u003C\u002Fp>\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__arrow\">Read\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-tmpl-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-make-canva-pdf-fillable\u002F\">\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__chip\">Guide\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-rel__title\">Make a Canva PDF fillable\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__body\">Three ways to turn a Canva export into a working fillable form.\u003C\u002Fp>\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__arrow\">Read\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-tmpl-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fblog\u002Fbest-ai-form-builders-and-generators\u002F\">\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__chip\">Listicle\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-rel__title\">Best AI form builders in 2026\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__body\">The shortlist of AI form generators ranked by speed, accuracy, and price.\u003C\u002Fp>\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__arrow\">Read\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-tmpl-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-fill-out-pdf-forms-an-easy-step-by-step-guide\u002F\">\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__chip\">Guide\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-rel__title\">Fill out PDF forms\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__body\">Step by step for desktop, mobile, and browser PDF fillers.\u003C\u002Fp>\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__arrow\">Read\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-tmpl-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fconvert-pdf-to-fillable-form\u002F\">\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__chip\">Formester\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-rel__title\">Convert PDF to fillable form\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__body\">Upload a PDF, AI maps the fields, publish as a web form or filled PDF.\u003C\u002Fp>\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__arrow\">Open\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\n","blog\u002Fblog\u002Fhow-to-convert-pdf-to-fillable-form.md",1214,630,{"text":166},"9 min read",{"title":168,"author":77,"authorImage":8,"authorProfile":78,"coverImg":169,"coverImgAlt":170,"createdAt":171,"description":172,"featured":14,"jsonld":173,"keywords":186,"metaDescription":172,"metaImage":187,"metaTitle":188,"publishedAt":189,"slug":190,"updatedAt":191,"__hash__":192,"body":193,"id":194,"coverImgWidth":163,"coverImgHeight":164,"readingStats":195},"How to Create an Online Order Form (3 Methods: Template, AI, From Scratch)","https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fan_illustration_of_how_to_make_an_order_form_ff2354aed1.png","an illustration of how to make an order form","2024-11-05T06:06:34.288Z","Create an online order form in minutes. Pick a template, prompt our AI, or build from scratch. Accept Stripe and PayPal payments, add conditional logic, embed a",[174],{"@id":175,"url":176,"@type":177,"image":178,"author":179,"@context":20,"headline":168,"publisher":180,"description":183,"dateModified":184,"datePublished":185,"mainEntityOfPage":176},"https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-create-an-order-form-with-ai\u002F#article","https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-create-an-order-form-with-ai\u002F","BlogPosting","https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-create-an-order-form-with-ai\u002Fcover.png",{"url":22,"name":26,"@type":27},{"logo":181,"name":26,"@type":27},{"url":182,"@type":25},"https:\u002F\u002Fformester.com\u002Fassets\u002Flogo.png","Create an online order form in minutes. Pick a template, prompt our AI, or build from scratch. Accept Stripe and PayPal payments, add conditional logic, embed anywhere.","2026-06-09","2024-11-05","how to create a google order form,\nhow do i make an order form in google forms,\norder form,\nhow to create an order form in google forms,\nhow to create an order form,\nhow to create an order form in word,\nhow to create an online order form,\nhow to create an order form in excel,\nhow to create an order form with pictures,\nhow to create an order form in google sheets,\nhow to make a order form in canva,\nhow to create order form in google forms,\nhow to make an order form",[],"Order Form Generator: 3 Ways to Build Order Forms","2026-06-15T04:40:45.645Z","how-to-create-an-order-form-with-ai","2026-06-15T04:40:45.650Z","_up1OCL2DWmHg7484kV4IZtj1OupZQ-nl_4jyjTLxtY","\u003Cstyle>\n\u002F* batch-1 blog normalisation *\u002F\n.fmstr-blog-lead {\n  font-size: 17px !important;\n  line-height: 1.65 !important;\n  color: #475467 !important;\n  font-weight: 400 !important;\n  margin: 0 0 16px !important;\n}\n.fmstr-blog-lead a { color: #6941c6 !important; font-weight: 500; }\n.fmstr-blog-lead a:hover { text-decoration: underline !important; }\n.fmstr-blog-lead strong { color: #101828; font-weight: 700; }\nsection[class^=\"fmstr-cmp-\"], section[class*=\" fmstr-cmp-\"] {\n  padding-top: 28px !important;\n  padding-bottom: 28px !important;\n}\n@media (max-width: 540px) {\n  section[class^=\"fmstr-cmp-\"], section[class*=\" fmstr-cmp-\"] {\n    padding-top: 24px !important;\n    padding-bottom: 24px !important;\n  }\n}\n\u003C\u002Fstyle>\n\n\u003Cstyle id=\"fmstr-blog-mobile-fullwidth-v3\">\n@media (max-width: 760px) {\n  .art-section { padding-left: 12px !important; padding-right: 12px !important; }\n}\n@media (max-width: 540px) {\n  .art-section { padding-left: 6px !important; padding-right: 6px !important; padding-top: 24px !important; }\n  section[class^=\"fmstr-cmp-\"], section[class*=\" fmstr-cmp-\"] {\n    padding-left: 0 !important; padding-right: 0 !important;\n    overflow-x: hidden !important; box-sizing: border-box !important;\n  }\n  section[class^=\"fmstr-cmp-\"] *, section[class^=\"fmstr-cmp-\"] *::before, section[class^=\"fmstr-cmp-\"] *::after { box-sizing: border-box !important; }\n  section[class^=\"fmstr-cmp-\"] > *, section[class^=\"fmstr-cmp-\"] > * > * { min-width: 0 !important; }\n  section[class^=\"fmstr-cmp-\"] [class*=\"__container\"] {\n    padding-left: 0 !important; padding-right: 0 !important;\n    max-width: 100% !important; width: 100% !important;\n  }\n  section[class^=\"fmstr-cmp-\"] [class*=\"__card\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__step\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__panel\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__tool\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__verdict\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__row\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__fix\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__callout\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__quote\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__tldr\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__answer\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__faq\"],\n  section[class^=\"fmstr-cmp-\"] details {\n    padding-left: 14px !important; padding-right: 14px !important;\n    margin-left: 0 !important; margin-right: 0 !important;\n  }\n  section[class^=\"fmstr-cmp-\"] p, section[class^=\"fmstr-cmp-\"] li { font-size: 15px !important; line-height: 1.6 !important; }\n  section[class^=\"fmstr-cmp-\"] h2 { font-size: 22px !important; line-height: 1.22 !important; }\n  section[class^=\"fmstr-cmp-\"] h3 { font-size: 18px !important; line-height: 1.3 !important; }\n  section[class^=\"fmstr-cmp-\"] h4 { font-size: 16px !important; line-height: 1.35 !important; }\n  section[class^=\"fmstr-cmp-\"] table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; width: 100% !important; }\n  section[class^=\"fmstr-cmp-\"] img, section[class^=\"fmstr-cmp-\"] iframe, section[class^=\"fmstr-cmp-\"] video { max-width: 100% !important; height: auto !important; }\n  section[class^=\"fmstr-cmp-\"] pre, section[class^=\"fmstr-cmp-\"] code {\n    white-space: pre-wrap !important; overflow-wrap: anywhere !important; word-break: break-word !important;\n  }\n  section[class^=\"fmstr-cmp-\"] pre { overflow-x: auto; }\n  .fmstr-blog-lead { font-size: 16.5px !important; }\n}\n\u003C\u002Fstyle>\n\n\u003Cp class=\"fmstr-blog-lead\">You can build an \u003Ca href=\"\u002Ffeatures\u002Fproduct-order-form\u002F\">online order form\u003C\u002Fa> three ways: start from a template, prompt an AI to generate it, or build from scratch. Each takes between 2 and 20 minutes depending on how custom your products and pricing are.\u003C\u002Fp>\n\n\u003Cp class=\"fmstr-blog-lead\">This guide walks all three methods with concrete steps, then shows how to connect \u003Ca href=\"\u002Ffeatures\u002Fonline-payments\u002F\">Stripe and PayPal\u003C\u002Fa>, set conditional rules, and embed the form on your site.\u003C\u002Fp>\n\n\u003Cp class=\"fmstr-blog-lead\">By the end you'll have a working order form that collects payments, calculates totals, and routes orders to your inbox automatically. If you only want the fast answer: pick a \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ftemplates\u002Fcategories\u002Forder-forms\u002F\">free order form template\u003C\u002Fa>, connect Stripe, publish. Eight minutes start to finish.\u003C\u002Fp>\n\n\u003Cstyle>\n.fmstr-cmp-tmpl-tldr a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-tldr {\n--c-card: #f7f3ff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-edge: #e4d7ff; --c-border: #d6c2f7;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\nbackground: transparent;\npadding: 28px 0 40px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important; overflow-x: hidden; -webkit-text-size-adjust: 100%;}\n.fmstr-cmp-tmpl-tldr *, .fmstr-cmp-tmpl-tldr *::before, .fmstr-cmp-tmpl-tldr *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-tldr__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-tldr__card {\nbackground: var(--c-card);\nborder: 1px solid var(--c-border);\nborder-left: 4px solid var(--c-violet-500);\nborder-radius: 14px;\npadding: 22px 26px;\nbox-shadow: var(--c-shadow);\ndisplay: flex; flex-direction: column; gap: 10px;\n}\n.fmstr-cmp-tmpl-tldr__label {\nfont-size: 12px !important;\nfont-weight: 700 !important;\nletter-spacing: 0.08em !important;\ntext-transform: uppercase;\ncolor: var(--c-violet-700) !important;\ndisplay: inline-flex;\nalign-items: center;\ngap: 8px;\nmargin: 0 !important;\n}\n.fmstr-cmp-tmpl-tldr__label::before {\ncontent: \"\";\nwidth: 8px; height: 8px; border-radius: 9999px;\nbackground: var(--c-violet-500);\ndisplay: inline-block;\n}\n.fmstr-cmp-tmpl-tldr__body {\nfont-size: 16px !important;\nline-height: 1.65 !important;\ncolor: var(--c-fg-1);\nmargin: 0 !important;\nfont-weight: 500 !important;\n}\n.fmstr-cmp-tmpl-tldr__body strong { color: var(--c-violet-700); font-weight: 700; }\n.fmstr-cmp-tmpl-tldr__list { margin: 4px 0 0 !important; padding-left: 20px !important; display: flex; flex-direction: column; gap: 6px; }\n.fmstr-cmp-tmpl-tldr__list li { font-size: 15.5px !important; line-height: 1.6 !important; color: var(--c-fg-1); }\n.fmstr-cmp-tmpl-tldr__list li strong { color: var(--c-violet-700); font-weight: 700; }\n.fmstr-cmp-tmpl-tldr a { color: var(--c-violet-600) !important; font-weight: 600 !important; }\n\n@media (max-width: 540px) {\n.fmstr-cmp-tmpl-tldr { padding: 20px 0 28px; }\n.fmstr-cmp-tmpl-tldr__card { padding: 18px 20px; }\n.fmstr-cmp-tmpl-tldr__body { font-size: 15px !important; }\n.fmstr-cmp-tmpl-tldr__list li { font-size: 14.5px !important; }\n}\n\n\n\u002F* mobile-safety-v2 *\u002F\n.fmstr-cmp-tmpl-tldr img, .fmstr-cmp-tmpl-tldr table, .fmstr-cmp-tmpl-tldr pre, .fmstr-cmp-tmpl-tldr iframe, .fmstr-cmp-tmpl-tldr video { max-width: 100%; }\n.fmstr-cmp-tmpl-tldr > * { min-width: 0; }\n.fmstr-cmp-tmpl-tldr [class*='__grid'] > *, .fmstr-cmp-tmpl-tldr [class*='__list'] > *, .fmstr-cmp-tmpl-tldr [class*='__cards'] > * { min-width: 0; max-width: 100%; }\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-tldr pre { overflow-x: auto; -webkit-overflow-scrolling: touch; }\n  .fmstr-cmp-tmpl-tldr table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-tldr\" aria-labelledby=\"fmstr-cmp-tmpl-tldr-label\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-tldr__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-tldr__card\">\n\u003Cp class=\"fmstr-cmp-tmpl-tldr__label\" id=\"fmstr-cmp-tmpl-tldr-label\">Quick answer\u003C\u002Fp>\n\u003Cp class=\"fmstr-cmp-tmpl-tldr__body\">You can build an online order form three ways. Pick the one that matches how custom your products and pricing are.\u003C\u002Fp>\n\u003Cul class=\"fmstr-cmp-tmpl-tldr__list\">\n\u003Cli>\u003Cstrong>Fastest:\u003C\u002Fstrong> start from a free order form template, swap in your products, connect Stripe. ~8 minutes.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Most flexible:\u003C\u002Fstrong> prompt the \u003Ca href=\"https:\u002F\u002Fformester.com\u002Fai-form-generator\u002F\">AI form generator\u003C\u002Fa> with \"create an order form for [your business]\". Customize fields. ~12 minutes.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Most control:\u003C\u002Fstrong> build from scratch in the \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fdrag-and-drop-form-builder\u002F\">drag-and-drop builder\u003C\u002Fa>. ~20 minutes.\u003C\u002Fli>\n\u003Cli>All three methods support \u003Cstrong>Stripe and PayPal\u003C\u002Fstrong>, conditional logic, pricing calculations, file uploads, and embed on any site.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\n\u003Cstyle>\n.fmstr-cmp-tmpl-cmp a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-cmp {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\n--c-good: #12b76a; --c-bad: #f04438;\nbackground: transparent;\npadding: 48px 0;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\noverflow-x: hidden;\n}\n.fmstr-cmp-tmpl-cmp *, .fmstr-cmp-tmpl-cmp *::before, .fmstr-cmp-tmpl-cmp *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-cmp > *, .fmstr-cmp-tmpl-cmp > * > * { min-width: 0; }\n.fmstr-cmp-tmpl-cmp__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-cmp__head { margin: 0 0 28px !important; }\n.fmstr-cmp-tmpl-cmp__h2 {\nfont-size: clamp(26px, 3vw, 36px) !important; font-weight: 700 !important; line-height: 1.15 !important;\nletter-spacing: -.02em !important; margin: 0 !important; color: var(--c-fg-1);\n}\n.fmstr-cmp-tmpl-cmp__intro { color: var(--c-fg-3); font-size: 17px !important; line-height: 1.6 !important; margin: 14px 0 0 !important; }\n.fmstr-cmp-tmpl-cmp__grid {\ndisplay: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;\n}\n.fmstr-cmp-tmpl-cmp__card {\nbackground: var(--c-card);\nborder: 1px solid var(--c-border);\nborder-radius: 14px;\npadding: 22px;\nbox-shadow: var(--c-shadow);\ndisplay: flex; flex-direction: column; gap: 12px;\nmin-width: 0;\n}\n.fmstr-cmp-tmpl-cmp__card--featured {\nborder-color: var(--c-edge);\nbackground: var(--c-tint);\nbox-shadow: 0 4px 18px rgba(105,65,198,.10);\n}\n.fmstr-cmp-tmpl-cmp__chip {\ndisplay: inline-flex; align-items: center;\nfont-size: 11px !important; font-weight: 700 !important; letter-spacing: 0.08em !important;\ntext-transform: uppercase; color: var(--c-violet-700) !important;\nbackground: var(--c-tint); border: 1px solid var(--c-edge);\npadding: 4px 10px; border-radius: 9999px;\nalign-self: flex-start;\n}\n.fmstr-cmp-tmpl-cmp__name {\nfont-size: 18px !important; font-weight: 700 !important; color: var(--c-fg-1);\nmargin: 0 !important; line-height: 1.3 !important;\n}\n.fmstr-cmp-tmpl-cmp__best {\nfont-size: 13.5px !important; color: var(--c-fg-3); margin: 0 !important;\n}\n.fmstr-cmp-tmpl-cmp__best strong { color: var(--c-fg-1); font-weight: 600; }\n.fmstr-cmp-tmpl-cmp__divider {\nheight: 1px; background: var(--c-border); margin: 4px 0; border: 0;\n}\n.fmstr-cmp-tmpl-cmp__list {\nmargin: 0 !important; padding: 0 !important; list-style: none !important;\ndisplay: flex; flex-direction: column; gap: 8px;\n}\n.fmstr-cmp-tmpl-cmp__item {\ndisplay: flex; gap: 8px; align-items: flex-start;\nfont-size: 14px !important; line-height: 1.5 !important; color: var(--c-fg-2);\n}\n.fmstr-cmp-tmpl-cmp__item::before {\ncontent: \"\\2713\"; flex-shrink: 0;\ncolor: var(--c-good); font-weight: 700; line-height: 1.45;\n}\n.fmstr-cmp-tmpl-cmp__item--con::before { content: \"\\2717\"; color: var(--c-bad); }\n\n@media (max-width: 920px) {\n.fmstr-cmp-tmpl-cmp__grid { grid-template-columns: 1fr; gap: 12px; }\n}\n@media (max-width: 540px) {\n.fmstr-cmp-tmpl-cmp { padding: 36px 0; }\n.fmstr-cmp-tmpl-cmp__card { padding: 18px 20px; }\n}\n\n\n\u002F* mobile-safety-v2 *\u002F\n.fmstr-cmp-tmpl-cmp img, .fmstr-cmp-tmpl-cmp table, .fmstr-cmp-tmpl-cmp pre, .fmstr-cmp-tmpl-cmp iframe, .fmstr-cmp-tmpl-cmp video { max-width: 100%; }\n.fmstr-cmp-tmpl-cmp > * { min-width: 0; }\n.fmstr-cmp-tmpl-cmp [class*='__grid'] > *, .fmstr-cmp-tmpl-cmp [class*='__list'] > *, .fmstr-cmp-tmpl-cmp [class*='__cards'] > * { min-width: 0; max-width: 100%; }\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-cmp pre { overflow-x: auto; -webkit-overflow-scrolling: touch; }\n  .fmstr-cmp-tmpl-cmp table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-cmp\" aria-labelledby=\"fmstr-cmp-tmpl-cmp-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__head\">\n\u003Ch2 class=\"fmstr-cmp-tmpl-cmp__h2\" id=\"fmstr-cmp-tmpl-cmp-h2\">Template vs AI vs scratch: which method should you pick?\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-cmp__intro\">Start with a template. If no template matches in 60 seconds of looking, prompt the AI. If the AI output still doesn't fit after one regeneration, build from scratch.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__grid\">\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__card\">\n\u003Cspan class=\"fmstr-cmp-tmpl-cmp__chip\">Method 1\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-cmp__name\">Template\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-cmp__best\">\u003Cstrong>Best for:\u003C\u002Fstrong> Stable product list, fast launch, common business types (bakery, t-shirts, retail)\u003C\u002Fp>\n\u003Chr class=\"fmstr-cmp-tmpl-cmp__divider\">\n\u003Cul class=\"fmstr-cmp-tmpl-cmp__list\">\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Time: ~8 minutes\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Customization: medium\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Payment connections pre-wired\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item fmstr-cmp-tmpl-cmp__item--con\">Limited if products don't fit a standard pattern\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__card fmstr-cmp-tmpl-cmp__card--featured\">\n\u003Cspan class=\"fmstr-cmp-tmpl-cmp__chip\">Method 2\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-cmp__name\">AI generator\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-cmp__best\">\u003Cstrong>Best for:\u003C\u002Fstrong> Custom structure, fields you couldn't describe in a template name, starting from a brief or PDF\u003C\u002Fp>\n\u003Chr class=\"fmstr-cmp-tmpl-cmp__divider\">\n\u003Cul class=\"fmstr-cmp-tmpl-cmp__list\">\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Time: ~12 minutes\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Customization: high\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Accepts prompt, question list, or PDF\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item fmstr-cmp-tmpl-cmp__item--con\">Always needs 5-10 min of post-generation cleanup\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__card\">\n\u003Cspan class=\"fmstr-cmp-tmpl-cmp__chip\">Method 3\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-cmp__name\">From scratch\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-cmp__best\">\u003Cstrong>Best for:\u003C\u002Fstrong> Complex pricing logic, multi-variable totals, non-standard payment flow\u003C\u002Fp>\n\u003Chr class=\"fmstr-cmp-tmpl-cmp__divider\">\n\u003Cul class=\"fmstr-cmp-tmpl-cmp__list\">\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Time: ~20 minutes\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Customization: highest\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Full control of every field and rule\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item fmstr-cmp-tmpl-cmp__item--con\">Slower; requires more familiarity with the builder\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fdiv>\n\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\n\u003Cstyle>\n.fmstr-cmp-tmpl-steps a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-steps {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\nbackground: transparent;\npadding: 48px 0;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\noverflow-x: hidden;\n}\n.fmstr-cmp-tmpl-steps *, .fmstr-cmp-tmpl-steps *::before, .fmstr-cmp-tmpl-steps *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-steps > *, .fmstr-cmp-tmpl-steps > * > * { min-width: 0; }\n.fmstr-cmp-tmpl-steps__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-steps__method { margin: 0 0 36px !important; }\n.fmstr-cmp-tmpl-steps__method:last-child { margin-bottom: 0 !important; }\n.fmstr-cmp-tmpl-steps__head { margin: 0 0 20px !important; }\n.fmstr-cmp-tmpl-steps__eyebrow {\nfont-size: 12px !important; font-weight: 700 !important; letter-spacing: 0.08em !important;\ntext-transform: uppercase; color: var(--c-violet-700) !important;\nmargin: 0 0 6px !important;\n}\n.fmstr-cmp-tmpl-steps__h2 {\nfont-size: clamp(24px, 2.6vw, 32px) !important; font-weight: 700 !important; line-height: 1.2 !important;\nletter-spacing: -.02em !important; margin: 0 !important; color: var(--c-fg-1);\n}\n.fmstr-cmp-tmpl-steps__intro { color: var(--c-fg-3); font-size: 16px !important; line-height: 1.6 !important; margin: 12px 0 0 !important; }\n.fmstr-cmp-tmpl-steps__list {\ndisplay: flex; flex-direction: column; gap: 12px;\nmargin: 0 !important; padding: 0 !important; list-style: none !important;\n}\n.fmstr-cmp-tmpl-steps__item {\nbackground: var(--c-card);\nborder: 1px solid var(--c-border);\nborder-radius: 14px;\npadding: 20px 22px;\nbox-shadow: var(--c-shadow);\ndisplay: flex; gap: 16px;\nalign-items: flex-start;\nmin-width: 0;\n}\n.fmstr-cmp-tmpl-steps__num {\nflex-shrink: 0;\nwidth: 36px; height: 36px; border-radius: 7px;\nbackground: var(--c-tint);\nborder: 1px solid var(--c-edge);\ncolor: var(--c-violet-700) !important;\nfont-weight: 800; font-size: 15px;\ndisplay: inline-flex; align-items: center; justify-content: center;\n}\n.fmstr-cmp-tmpl-steps__main { flex: 1; min-width: 0; }\n.fmstr-cmp-tmpl-steps__title {\nfont-size: 16.5px !important; font-weight: 700 !important; line-height: 1.3 !important;\ncolor: var(--c-fg-1); margin: 0 0 6px !important;\n}\n.fmstr-cmp-tmpl-steps__body {\nfont-size: 15px !important; line-height: 1.6 !important;\ncolor: var(--c-fg-2); margin: 0 !important;\n}\n.fmstr-cmp-tmpl-steps__body a { color: var(--c-violet-600) !important; font-weight: 600 !important; }\n.fmstr-cmp-tmpl-steps__meta {\nmargin: 14px 0 0 !important;\npadding: 12px 16px;\nbackground: var(--c-tint);\nborder: 1px solid var(--c-edge);\nborder-radius: 10px;\nfont-size: 14px !important; line-height: 1.55 !important;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-tmpl-steps__meta strong { color: var(--c-violet-700); font-weight: 700; }\n\n@media (max-width: 540px) {\n.fmstr-cmp-tmpl-steps { padding: 36px 0; }\n.fmstr-cmp-tmpl-steps__item { padding: 18px 18px; gap: 14px; }\n.fmstr-cmp-tmpl-steps__num { width: 32px; height: 32px; font-size: 14px; }\n.fmstr-cmp-tmpl-steps__title { font-size: 15.5px !important; }\n.fmstr-cmp-tmpl-steps__body { font-size: 14.5px !important; }\n}\n\n\n\u002F* mobile-safety-v2 *\u002F\n.fmstr-cmp-tmpl-steps img, .fmstr-cmp-tmpl-steps table, .fmstr-cmp-tmpl-steps pre, .fmstr-cmp-tmpl-steps iframe, .fmstr-cmp-tmpl-steps video { max-width: 100%; }\n.fmstr-cmp-tmpl-steps > * { min-width: 0; }\n.fmstr-cmp-tmpl-steps [class*='__grid'] > *, .fmstr-cmp-tmpl-steps [class*='__list'] > *, .fmstr-cmp-tmpl-steps [class*='__cards'] > * { min-width: 0; max-width: 100%; }\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-steps pre { overflow-x: auto; -webkit-overflow-scrolling: touch; }\n  .fmstr-cmp-tmpl-steps table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }\n}\n\n\n\n\u002F* mobile-inline-num *\u002F\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-steps__item { padding: 18px 16px; gap: 10px; flex-direction: row; align-items: flex-start; }\n  .fmstr-cmp-tmpl-steps__num { width: 28px; height: 28px; font-size: 13px; border-radius: 8px; }\n}\n\n\u002F* step-inline-num-restructure *\u002F\n.fmstr-cmp-tmpl-steps__item { display: block !important; }\n.fmstr-cmp-tmpl-steps__title { display: block; }\n.fmstr-cmp-tmpl-steps__num { display: inline-block !important; vertical-align: 2px; margin-right: 8px; padding: 2px 8px; width: auto !important; height: auto !important; border-radius: 6px; font-size: 12.5px !important; line-height: 1.3 !important; }\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-steps__num { font-size: 11.5px !important; padding: 2px 7px; margin-right: 6px; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-steps\" aria-labelledby=\"fmstr-cmp-tmpl-steps-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__container\">\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__method\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__head\">\n\u003Cp class=\"fmstr-cmp-tmpl-steps__eyebrow\">Method 1\u003C\u002Fp>\n\u003Ch2 class=\"fmstr-cmp-tmpl-steps__h2\" id=\"fmstr-cmp-tmpl-steps-h2\">Start from a free order form template (fastest)\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__intro\">Templates are the fastest path for ~80% of order forms because the fields, payment connections, and confirmation emails are already wired. You're swapping product names and prices, not building.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Col class=\"fmstr-cmp-tmpl-steps__list\">\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">1\u003C\u002Fspan>Pick a template that matches your business\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Open the order forms category. Browse the \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ftemplates\u002Fcake-order-form-2904\u002F\">cake order form\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ftemplates\u002Ftshirt-order-form-2901\u002F\">t-shirt order form\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ftemplates\u002Fbakery-order-form-33214\u002F\">bakery order form\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ftemplates\u002Fproduct-order-form-33229\u002F\">product order form\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ftemplates\u002Fpurchase-order-form-template-2773\u002F\">purchase order form\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ftemplates\u002Fcatering-order-form-12964\u002F\">catering order form\u003C\u002Fa>, or \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ftemplates\u002Fwork-order-form-32856\u002F\">work order form\u003C\u002Fa>.\u003C\u002Fp>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">2\u003C\u002Fspan>Open it in the builder\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Click \"Use template\". Formester opens the form inside the builder with every field pre-populated.\u003C\u002Fp>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">3\u003C\u002Fspan>Swap in your products and prices\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Replace the demo product names and prices with yours. Drag fields up or down to reorder. Delete fields you don't need.\u003C\u002Fp>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">4\u003C\u002Fspan>Connect Stripe or PayPal\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Open the Integrations tab. Connect \u003Ca href=\"https:\u002F\u002Fdocs.formester.com\u002F\">Stripe\u003C\u002Fa> or PayPal. The payment field maps to the total automatically.\u003C\u002Fp>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">5\u003C\u002Fspan>Publish and share\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Click Publish. Copy the public link or grab the embed code under the Share tab.\u003C\u002Fp>\n\u003C\u002Fli>\n\n\u003C\u002Fol>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__meta\">\u003Cstrong>Time:\u003C\u002Fstrong> ~8 minutes for a 5-product order form. \u003Cstrong>Pick this when:\u003C\u002Fstrong> your products are stable, you want to launch today, you don't want to think about field types.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__method\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__head\">\n\u003Cp class=\"fmstr-cmp-tmpl-steps__eyebrow\">Method 2\u003C\u002Fp>\n\u003Ch2 class=\"fmstr-cmp-tmpl-steps__h2\">Generate with AI (best when you want a custom structure in minutes)\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__intro\">The AI form generator accepts plain-text prompts, lists of existing questions, or a PDF upload. It writes the form in about 30 seconds, then drops you in the builder to refine.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Col class=\"fmstr-cmp-tmpl-steps__list\">\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">1\u003C\u002Fspan>Open the AI form generator\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">\u003Ca href=\"https:\u002F\u002Fapp.formester.com\u002Fusers\u002Fsign_up\u002F\">Sign in\u003C\u002Fa> (or sign up free). Click Create New Form, then Create With AI.\u003C\u002Fp>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">2\u003C\u002Fspan>Write a specific prompt\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Vague prompts return vague forms. Try: \"Create a t-shirt order form with size (S, M, L, XL), color (white, black, navy), quantity, customer name, shipping address, and Stripe payment.\" The more specifics, the less editing after.\u003C\u002Fp>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">3\u003C\u002Fspan>Generate the form\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Click Generate form. Wait ~30 seconds. The AI builds the field structure, labels, and field types (single-choice, dropdown, text, number, picture choice).\u003C\u002Fp>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">4\u003C\u002Fspan>Review and clean up\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Delete any field you don't need. Add anything missing. Picture Choice for product images is a common add (drag from the field library).\u003C\u002Fp>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">5\u003C\u002Fspan>Add conditional logic (optional)\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Set \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fconditional-logic\u002F\">conditional logic\u003C\u002Fa>, e.g., \"if Product Category = Men, hide Women and Kids fields\". You can also \u003Ca href=\"https:\u002F\u002Fformester.com\u002Fbuild-conditional-logic-forms-with-ai\u002F\">prompt the AI to write conditional rules\u003C\u002Fa>.\u003C\u002Fp>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">6\u003C\u002Fspan>Connect payments and publish\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Same as Method 1, step 4 onward. Connect Stripe or PayPal, bind the payment field to your total, hit Publish.\u003C\u002Fp>\n\u003C\u002Fli>\n\n\u003C\u002Fol>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__meta\">\u003Cstrong>Time:\u003C\u002Fstrong> ~12 minutes for a 5-product order form. \u003Cstrong>Pick this when:\u003C\u002Fstrong> your form structure doesn't match an existing template, you want field labels written in your tone of voice, or you're starting from a brief or PDF you already have. Per \u003Ca href=\"https:\u002F\u002Foutgrow.co\u002Fblog\u002Fai-forms-builder-guide\">Outgrow's 2025 benchmark\u003C\u002Fa>, interactive AI-built forms convert at an average of \u003Cstrong>47.3%\u003C\u002Fstrong> versus 2-3% for static contact forms.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__method\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__head\">\n\u003Cp class=\"fmstr-cmp-tmpl-steps__eyebrow\">Method 3\u003C\u002Fp>\n\u003Ch2 class=\"fmstr-cmp-tmpl-steps__h2\">Build from scratch (most control)\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__intro\">Pick this when you have an unusual product configuration, multi-currency pricing, or a complex calculation flow that templates and AI don't handle cleanly.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Col class=\"fmstr-cmp-tmpl-steps__list\">\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">1\u003C\u002Fspan>Start from a blank form\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Click Create New Form, then Start from Scratch.\u003C\u002Fp>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">2\u003C\u002Fspan>Drag in the fields you need\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Short Text (name), Email, Phone, Address, Single Choice or Picture Choice (product), Number (quantity), \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fcalculating-fields\u002F\">Calculating Field\u003C\u002Fa> (total), File Upload (custom artwork), Payment (Stripe or PayPal).\u003C\u002Fp>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">3\u003C\u002Fspan>Set up variables and pricing rules\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Open Advanced, then Variables. Create a number variable \u003Ccode>itemprice\u003C\u002Fcode>. In Rules, add: if Product = T-shirt Basic, set \u003Ccode>itemprice\u003C\u002Fcode> = 25. Repeat per product. Add a Calculating Field above the Payment field with the formula \u003Ccode>@itemprice * @quantity\u003C\u002Fcode>. Hide the Calculating Field display if you don't want it visible.\u003C\u002Fp>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">4\u003C\u002Fspan>Enable an order number (optional)\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Turn on \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fauto-unique-id\u002F\">auto unique ID\u003C\u002Fa> so every submission gets an order number for fulfilment.\u003C\u002Fp>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">5\u003C\u002Fspan>Brand the form and thank-you page\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Add your logo, brand colors, and a custom thank-you page. Variables tab, Thank You Page, recall \u003Ccode>@itemprice * @quantity\u003C\u002Fcode> for the order summary.\u003C\u002Fp>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">6\u003C\u002Fspan>Connect payments, publish, embed\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Connect Stripe or PayPal. Publish. Embed on your site from the Share tab.\u003C\u002Fp>\n\u003C\u002Fli>\n\n\u003C\u002Fol>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__meta\">\u003Cstrong>Time:\u003C\u002Fstrong> ~20 minutes for a 5-product order form with custom pricing logic. \u003Cstrong>Pick this when:\u003C\u002Fstrong> your pricing depends on multiple inputs (size x material x quantity x shipping zone), you have a custom checkout flow, or you want every field built exactly your way.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\n\u003Cstyle>\n.fmstr-cmp-tmpl-midcta a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-midcta { background: transparent; padding: 48px 0; font-family: inherit; color: #101828; overflow-x: hidden; }\n.fmstr-cmp-tmpl-midcta *, .fmstr-cmp-tmpl-midcta *::before, .fmstr-cmp-tmpl-midcta *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-midcta__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-midcta__card { width: 100%; background: linear-gradient(135deg, #f7f3ff 0%, #faf7ff 100%); border: 1px solid #e4d7ff; border-radius: 18px; padding: 48px 32px; text-align: center; box-shadow: 0 4px 24px rgba(127, 86, 217, 0.08); }\n.fmstr-cmp-tmpl-midcta__inner { max-width: 760px; margin: 0 auto; }\n.fmstr-cmp-tmpl-midcta__eyebrow { display: inline-block; padding: 4px 12px; background: #ffffff; border: 1px solid #e4d7ff; border-radius: 9999px; color: #5b34b1 !important; font-size: 11.5px !important; font-weight: 700 !important; letter-spacing: 0.06em !important; text-transform: uppercase; margin: 0 0 14px !important; }\n.fmstr-cmp-tmpl-midcta__h2 { font-size: clamp(22px, 3vw, 28px) !important; font-weight: 700 !important; line-height: 1.2 !important; letter-spacing: -0.02em !important; margin: 0 0 12px !important; color: #101828 !important; }\n.fmstr-cmp-tmpl-midcta__body { font-size: 16px !important; line-height: 1.55 !important; color: #475467 !important; margin: 0 0 22px !important; }\n.fmstr-cmp-tmpl-midcta__cta { display: inline-flex !important; align-items: center; gap: 8px; background: #7f56d9 !important; color: #ffffff !important; border: 1px solid #7f56d9 !important; padding: 12px 26px !important; border-radius: 9999px !important; font-size: 15px !important; font-weight: 600 !important; text-decoration: none !important; transition: background .15s ease, transform .15s ease; }\n.fmstr-cmp-tmpl-midcta__cta:hover { background: #6941c6 !important; border-color: #6941c6 !important; color: #ffffff !important; text-decoration: none !important; transform: translateY(-1px); }\n.fmstr-cmp-tmpl-midcta__cta::after { content: \"\\2192\"; transition: transform .15s ease; }\n.fmstr-cmp-tmpl-midcta__cta:hover::after { transform: translateX(2px); }\n.fmstr-cmp-tmpl-midcta__strip { font-size: 13px !important; color: #697586 !important; margin: 20px 0 0 !important; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 14px; width: 100%; }\n.fmstr-cmp-tmpl-midcta__strip span { color: #d6c2f7; }\n@media (max-width: 760px) {\n  .fmstr-cmp-tmpl-midcta__card { padding: 36px 22px; }\n}\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-midcta { padding: 32px 0; }\n  .fmstr-cmp-tmpl-midcta__card { padding: 26px 16px; border-radius: 14px; }\n  .fmstr-cmp-tmpl-midcta__h2 { font-size: 20px !important; }\n  .fmstr-cmp-tmpl-midcta__body { font-size: 15px !important; }\n  .fmstr-cmp-tmpl-midcta__cta { padding: 11px 22px !important; font-size: 14.5px !important; width: 100%; justify-content: center; }\n  .fmstr-cmp-tmpl-midcta__strip { font-size: 12.5px !important; gap: 4px 10px; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-midcta\" aria-labelledby=\"fmstr-cmp-tmpl-midcta-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-midcta__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-midcta__card\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-midcta__inner\">\n\u003Cspan class=\"fmstr-cmp-tmpl-midcta__eyebrow\">AI order form\u003C\u002Fspan>\n\u003Ch2 class=\"fmstr-cmp-tmpl-midcta__h2\" id=\"fmstr-cmp-tmpl-midcta-h2\">Build an AI-powered order form in under 2 minutes, without code\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-midcta__body\">Generate the form from a prompt, set stock per variant, accept payments via Stripe. Free plan included.\u003C\u002Fp>\n\u003Ca class=\"fmstr-cmp-tmpl-midcta__cta\" href=\"https:\u002F\u002Fapp.formester.com\u002Fusers\u002Fsign_up\" style=\"background: #7f56d9 !important; color: #ffffff !important; border-color: #7f56d9 !important; text-decoration: none !important;\">Start free on Formester\u003C\u002Fa>\n\u003Cp class=\"fmstr-cmp-tmpl-midcta__strip\">Free forever plan\u003Cspan>&bull;\u003C\u002Fspan>No credit card\u003Cspan>&bull;\u003C\u002Fspan>Setup in 2 minutes\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\u003Cstyle>\n\u002F* host-link-override *\u002F\n.fmstr-cmp-tmpl-faq a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-faq {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-600: #6941c6;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0; --c-chip-bg: #f4f4f7;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\n\nbackground: transparent; padding: 56px 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important; overflow-x: hidden; -webkit-text-size-adjust: 100%;}\n.fmstr-cmp-tmpl-faq *, .fmstr-cmp-tmpl-faq *::before, .fmstr-cmp-tmpl-faq *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-faq__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-faq__h2 { font-size: clamp(26px, 3vw, 36px) !important; font-weight: 700 !important; line-height: 1.15 !important; letter-spacing: -.02em !important; margin: 0 !important; color: var(--c-fg-1); text-align: left; }\n.fmstr-cmp-tmpl-faq__intro { color: var(--c-fg-3); font-size: 17px !important; line-height: 1.6 !important; margin: 14px 0 28px !important; text-align: left; }\n.fmstr-cmp-tmpl-faq__list { display: flex; flex-direction: column; gap: 12px; }\n.fmstr-cmp-tmpl-faq__item {\nbackground: var(--c-card); border: 1px solid var(--c-border);\nborder-radius: 14px; box-shadow: var(--c-shadow); overflow: hidden;\n}\n.fmstr-cmp-tmpl-faq__item > summary {\npadding: 18px 22px; cursor: pointer; font-weight: 600; font-size: 16.5px;\ncolor: var(--c-fg-1); display: flex; align-items: center; gap: 14px;\nlist-style: none;\n}\n.fmstr-cmp-tmpl-faq__item > summary::-webkit-details-marker { display: none; }\n.fmstr-cmp-tmpl-faq__item > summary::before {\ncontent: \"\"; width: 28px; height: 28px; border-radius: 8px; flex-shrink: 0;\nbackground-color: var(--c-chip-bg);\nbackground-image: url(\"data:image\u002Fsvg+xml,%3Csvg xmlns='http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg' width='14' height='14' viewBox='0 0 14 14' fill='none' stroke='%2375747f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5l4 4 4-4'\u002F%3E%3C\u002Fsvg%3E\");\nbackground-repeat: no-repeat; background-position: center;\ntransition: transform .15s ease, background-color .15s ease;\n}\n.fmstr-cmp-tmpl-faq__item[open] > summary::before { transform: rotate(180deg); background-color: var(--c-tint); }\n.fmstr-cmp-tmpl-faq__item[open] > summary { color: var(--c-violet-600) !important; }\n.fmstr-cmp-tmpl-faq__answer { padding: 0 22px 22px 64px; color: var(--c-fg-2); font-size: 15.5px; line-height: 1.7; }\n.fmstr-cmp-tmpl-faq__answer a { color: var(--c-violet-600) !important; text-decoration: none !important; }\n.fmstr-cmp-tmpl-faq__answer a:hover { text-decoration: underline !important; }\n\n@media (max-width: 760px) {\n.fmstr-cmp-tmpl-faq { padding: 40px 16px; }\n.fmstr-cmp-tmpl-faq__intro { font-size: 15.5px !important; text-align: left; }\n.fmstr-cmp-tmpl-faq__item > summary { padding: 16px 16px; font-size: 15.5px; gap: 12px; }\n.fmstr-cmp-tmpl-faq__item > summary::before { width: 26px; height: 26px; }\n.fmstr-cmp-tmpl-faq__answer { padding: 0 16px 18px 16px; font-size: 15px; line-height: 1.65; }\n}\n\n\n\u002F* mobile-safety-v2 *\u002F\n.fmstr-cmp-tmpl-faq img, .fmstr-cmp-tmpl-faq table, .fmstr-cmp-tmpl-faq pre, .fmstr-cmp-tmpl-faq iframe, .fmstr-cmp-tmpl-faq video { max-width: 100%; }\n.fmstr-cmp-tmpl-faq > * { min-width: 0; }\n.fmstr-cmp-tmpl-faq [class*='__grid'] > *, .fmstr-cmp-tmpl-faq [class*='__list'] > *, .fmstr-cmp-tmpl-faq [class*='__cards'] > * { min-width: 0; max-width: 100%; }\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-faq pre { overflow-x: auto; -webkit-overflow-scrolling: touch; }\n  .fmstr-cmp-tmpl-faq table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-faq\" aria-labelledby=\"fmstr-cmp-tmpl-faq-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__container\">\n\u003Ch2 class=\"fmstr-cmp-tmpl-faq__h2\" id=\"fmstr-cmp-tmpl-faq-h2\">Frequently asked questions about online order forms\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-faq__intro\">Common questions on building, customizing, and collecting payments through an online order form.\u003C\u002Fp>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__list\">\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>What is an online order form?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">An online order form is a digital form that collects a customer's product selection, contact details, shipping or pickup preference, and payment. It replaces phone, email, or DM ordering with a single structured submission that arrives in your inbox with the total already calculated and the payment already processed.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>How do I create an order form for free?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">Pick a free template from the Formester order form templates, swap in your products and prices, connect Stripe or PayPal, and publish. The Free plan includes unlimited forms and responses, enough for any small business launching its first order form.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>Can ChatGPT create an order form?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">ChatGPT can write the structure of an order form (suggest fields, write labels). It cannot host the form, process payments, or collect submissions. To turn that structure into a working order form, paste the field list into a form builder like Formester's AI form generator, which accepts a prompt or PDF and outputs a real, working form in ~30 seconds.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>Can I make an order form on Google Forms?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">Yes, but Google Forms cannot accept payments natively. You'd need to add a third-party payment add-on (Payable, FormPay) which limits you to PayPal and adds an extra transaction fee. For native Stripe and PayPal with no additional fees, use a dedicated form builder.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>What fields should an online order form include?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">The minimum: name, email, product, quantity, payment. Most businesses also want: shipping address (if shipping), phone number (for delivery coordination), variant selectors (size or color), and a notes field. Cleanest order forms ask 6 to 9 questions, not 20.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>How do payments work on a Formester order form?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">You connect Stripe and \u002F or PayPal in one click from the Integrations tab. Drop a Payment field onto the form and bind it to your calculated total variable. Customers pay inside the form. Stripe and PayPal handle PCI-compliant card processing, Formester never touches raw card data and encrypts order metadata at rest with \u003Ca href=\"https:\u002F\u002Fformester.com\u002Fsecurity\u002F\">AES-256\u003C\u002Fa>.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>Can I calculate prices automatically?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">Yes. Use a Number variable for the item price, a Calculating Field for the line total (\u003Ccode>@itemprice * @quantity\u003C\u002Fcode>), and additional calculating fields for tax, shipping, or discounts. Bind the final total to the Payment field amount source.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>Can the order form work on mobile?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">Yes. Every Formester form is mobile-responsive by default. You can also generate a QR code from the Share tab for in-store ordering. Customers scan, fill, pay, all on their phone.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\n\u003Cstyle>\n\u002F* host-link-override *\u002F\n.fmstr-cmp-tmpl-rel a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-rel {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\n--c-shadow: 0 4px 20px rgba(16,24,40,.06);\n\nbackground: transparent;\npadding: 56px 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important; overflow-x: hidden; -webkit-text-size-adjust: 100%;}\n.fmstr-cmp-tmpl-rel *, .fmstr-cmp-tmpl-rel *::before, .fmstr-cmp-tmpl-rel *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-rel__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-rel__head { margin: 0 0 28px !important; text-align: left; }\n.fmstr-cmp-tmpl-rel__h2 { font-size: clamp(26px, 3vw, 36px) !important; font-weight: 700 !important; line-height: 1.15 !important; letter-spacing: -.02em !important; margin: 0 !important; color: var(--c-fg-1); text-align: left; }\n.fmstr-cmp-tmpl-rel__intro { color: var(--c-fg-3); font-size: 17px !important; line-height: 1.6 !important; margin: 14px 0 0 !important; text-align: left; }\n\n.fmstr-cmp-tmpl-rel__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }\n.fmstr-cmp-tmpl-rel__card {\nbackground: var(--c-card); border: 1px solid var(--c-border);\nborder-radius: 14px; padding: 20px 22px; display: flex; flex-direction: column; gap: 8px;\ntext-decoration: none !important; color: inherit !important; transition: all .15s ease;\nposition: relative;\n}\n.fmstr-cmp-tmpl-rel__card:hover { border-color: var(--c-edge); box-shadow: var(--c-shadow); transform: translateY(-1px); }\n.fmstr-cmp-tmpl-rel__chip {\ndisplay: inline-block; padding: 3px 10px; border-radius: 9999px;\nbackground: var(--c-tint); border: 1px solid var(--c-edge);\ncolor: var(--c-violet-600) !important; font-size: 11.5px !important; font-weight: 600 !important; letter-spacing: .02em !important;\ntext-transform: uppercase; align-self: flex-start;\nmargin-bottom: 2px;\n}\n.fmstr-cmp-tmpl-rel__title {\nfont-size: 16px !important; font-weight: 700 !important; color: var(--c-fg-1); margin: 0 !important; line-height: 1.3 !important; text-align: left; }\n.fmstr-cmp-tmpl-rel__body { font-size: 14.5px !important; line-height: 1.55 !important; color: var(--c-fg-2); margin: 0 !important; }\n.fmstr-cmp-tmpl-rel__arrow {\nmargin-top: 6px; color: var(--c-violet-600) !important; font-size: 14px; font-weight: 600;\ndisplay: inline-flex; align-items: center; gap: 6px;\n}\n.fmstr-cmp-tmpl-rel__arrow::after {\ncontent: \"\\2192\"; transition: transform .15s ease; display: inline-block;\n}\n.fmstr-cmp-tmpl-rel__card:hover .fmstr-cmp-tmpl-rel__arrow::after { transform: translateX(3px); }\n\n@media (max-width: 880px) { .fmstr-cmp-tmpl-rel__grid { grid-template-columns: 1fr 1fr; gap: 14px; } }\n@media (max-width: 540px) {\n.fmstr-cmp-tmpl-rel { padding: 40px 16px; }\n.fmstr-cmp-tmpl-rel__grid { grid-template-columns: 1fr; gap: 12px; }\n.fmstr-cmp-tmpl-rel__card { padding: 18px 20px; }\n}\n\n\n\u002F* mobile-safety-v2 *\u002F\n.fmstr-cmp-tmpl-rel img, .fmstr-cmp-tmpl-rel table, .fmstr-cmp-tmpl-rel pre, .fmstr-cmp-tmpl-rel iframe, .fmstr-cmp-tmpl-rel video { max-width: 100%; }\n.fmstr-cmp-tmpl-rel > * { min-width: 0; }\n.fmstr-cmp-tmpl-rel [class*='__grid'] > *, .fmstr-cmp-tmpl-rel [class*='__list'] > *, .fmstr-cmp-tmpl-rel [class*='__cards'] > * { min-width: 0; max-width: 100%; }\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-rel pre { overflow-x: auto; -webkit-overflow-scrolling: touch; }\n  .fmstr-cmp-tmpl-rel table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-rel\" aria-labelledby=\"fmstr-cmp-tmpl-rel-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-rel__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-rel__head\">\n\u003Ch2 class=\"fmstr-cmp-tmpl-rel__h2\" id=\"fmstr-cmp-tmpl-rel-h2\">Related on Formester\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__intro\">Jump straight to the product order form feature page, browse ready-made order templates, or read the deeper guides on payments and conditional logic.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-tmpl-rel__grid\">\n\n\u003Ca class=\"fmstr-cmp-tmpl-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fproduct-order-form\u002F\">\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__chip\">Feature\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-rel__title\">Product order form\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__body\">See every feature an online order form needs, with pricing logic, payments, and embeds.\u003C\u002Fp>\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__arrow\">Open\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-tmpl-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Ftemplates\u002Fcategories\u002Forder-forms\u002F\">\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__chip\">Templates\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-rel__title\">Order form templates\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__body\">Browse cake, t-shirt, bakery, catering, purchase, and work order templates.\u003C\u002Fp>\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__arrow\">Open\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-tmpl-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fai-form-generator\u002F\">\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__chip\">Tool\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-rel__title\">AI form generator\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__body\">Prompt the AI with your products and variants. Get a working order form in about 30 seconds.\u003C\u002Fp>\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__arrow\">Open\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-tmpl-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fblog\u002Fbest-ai-form-builders-and-generators\u002F\">\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__chip\">Guide\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-rel__title\">Best AI form builders\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__body\">Compare AI form generators side by side, with pricing and use cases.\u003C\u002Fp>\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__arrow\">Open\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-tmpl-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-collect-payments-using-online-web-forms\u002F\">\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__chip\">Guide\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-rel__title\">Collect payments using online forms\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__body\">Walkthrough on Stripe and PayPal integrations, one-time charges, and recurring billing.\u003C\u002Fp>\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__arrow\">Open\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-tmpl-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fblog\u002Fwhat-is-conditional-logic-how-to-use-it\u002F\">\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__chip\">Guide\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-rel__title\">What is conditional logic\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__body\">When to use rules to show variants by category, gate shipping by zone, or trigger discounts by quantity.\u003C\u002Fp>\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__arrow\">Open\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\n","blog\u002Fblog\u002Fhow-to-create-an-order-form-with-ai.md",{"text":166},{"title":197,"author":77,"authorImage":8,"authorProfile":78,"coverImg":198,"coverImgAlt":199,"createdAt":200,"description":201,"featured":14,"jsonld":202,"keywords":214,"metaDescription":201,"metaImage":215,"metaTitle":216,"publishedAt":217,"slug":218,"updatedAt":219,"__hash__":220,"body":221,"id":222,"coverImgWidth":163,"coverImgHeight":164,"readingStats":223},"How to Prevent Form Spam in 2026","https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fhow_to_protect_user_data_and_prevent_spam_in_web_forms_436741a2a5.png","illustration of how to protect web forms with spam protection","2024-04-07T10:04:44.402Z","How to prevent form spam without breaking conversions. Honeypot, reCAPTCHA v3, Cloudflare Turnstile, rate limits, server-side checks, with code and a tool compa",[203],{"@type":17,"image":204,"author":205,"@context":20,"headline":197,"publisher":206,"description":209,"dateModified":210,"datePublished":211,"mainEntityOfPage":212},"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fhow_to_prevent_form_spam_hero.png",{"url":22,"name":26,"@type":27},{"logo":207,"name":26,"@type":27},{"url":208,"@type":25},"https:\u002F\u002Fformester.com\u002Flogo.svg","How to prevent form spam without breaking conversions. Honeypot, reCAPTCHA v3, Cloudflare Turnstile, rate limits, server-side checks, with code and a tool comparison.","2026-06-11","2023-08-11",{"@id":213,"@type":32},"https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-protect-user-data-and-prevent-spam-in-web-forms\u002F","how to protect user data, spam protection, web form spam protection, web form spam",[],"How to Prevent Form Spam: 8 Techniques (2026)","2026-06-15T04:52:37.940Z","how-to-protect-user-data-and-prevent-spam-in-web-forms","2026-06-15T04:52:37.946Z","2J8--BxCK-VcGG37_YdU7wqP2vUvyQLF9_o5ojCfaOo","\u003Cstyle>\n\u002F* batch-1 blog normalisation *\u002F\n.fmstr-blog-lead {\n  font-size: 17px !important;\n  line-height: 1.65 !important;\n  color: #475467 !important;\n  font-weight: 400 !important;\n  margin: 0 0 16px !important;\n}\n.fmstr-blog-lead a { color: #6941c6 !important; font-weight: 500; }\n.fmstr-blog-lead a:hover { text-decoration: underline !important; }\n.fmstr-blog-lead strong { color: #101828; font-weight: 700; }\nsection[class^=\"fmstr-cmp-\"], section[class*=\" fmstr-cmp-\"] {\n  padding-top: 28px !important;\n  padding-bottom: 28px !important;\n}\n@media (max-width: 540px) {\n  section[class^=\"fmstr-cmp-\"], section[class*=\" fmstr-cmp-\"] {\n    padding-top: 24px !important;\n    padding-bottom: 24px !important;\n  }\n}\n\u003C\u002Fstyle>\n\n\u003Cstyle id=\"fmstr-blog-mobile-fullwidth-v3\">\n\u002F* Mobile full-width — Batch 3, applied at \u003C=540px only.\n   Desktop \u002F tablet layout (>=541px) is untouched and matches the RTL blog. *\u002F\n@media (max-width: 760px) {\n  .art-section { padding-left: 12px !important; padding-right: 12px !important; }\n}\n@media (max-width: 540px) {\n  \u002F* 1. Trim the host blog template wrapper *\u002F\n  .art-section { padding-left: 6px !important; padding-right: 6px !important; padding-top: 24px !important; }\n\n  \u002F* 2. Zero horizontal padding on every component root *\u002F\n  section[class^=\"fmstr-cmp-\"], section[class*=\" fmstr-cmp-\"] {\n    padding-left: 0 !important; padding-right: 0 !important;\n    overflow-x: hidden !important; box-sizing: border-box !important;\n  }\n  section[class^=\"fmstr-cmp-\"] *, section[class^=\"fmstr-cmp-\"] *::before, section[class^=\"fmstr-cmp-\"] *::after { box-sizing: border-box !important; }\n  section[class^=\"fmstr-cmp-\"] > *, section[class^=\"fmstr-cmp-\"] > * > * { min-width: 0 !important; }\n\n  \u002F* 3. Container fills the section *\u002F\n  section[class^=\"fmstr-cmp-\"] [class*=\"__container\"] {\n    padding-left: 0 !important; padding-right: 0 !important;\n    max-width: 100% !important; width: 100% !important;\n  }\n\n  \u002F* 4. Tighten every inner card \u002F step \u002F panel \u002F row \u002F fix-callout horizontal padding *\u002F\n  section[class^=\"fmstr-cmp-\"] [class*=\"__card\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__step\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__panel\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__tool\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__verdict\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__row\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__fix\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__callout\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__quote\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__tldr\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__answer\"],\n  section[class^=\"fmstr-cmp-\"] [class*=\"__faq\"],\n  section[class^=\"fmstr-cmp-\"] details {\n    padding-left: 14px !important; padding-right: 14px !important;\n    margin-left: 0 !important; margin-right: 0 !important;\n  }\n\n  \u002F* 5. Tighten typography so long words wrap cleanly *\u002F\n  section[class^=\"fmstr-cmp-\"] p, section[class^=\"fmstr-cmp-\"] li { font-size: 15px !important; line-height: 1.6 !important; }\n  section[class^=\"fmstr-cmp-\"] h2 { font-size: 22px !important; line-height: 1.22 !important; }\n  section[class^=\"fmstr-cmp-\"] h3 { font-size: 18px !important; line-height: 1.3 !important; }\n  section[class^=\"fmstr-cmp-\"] h4 { font-size: 16px !important; line-height: 1.35 !important; }\n\n  \u002F* 6. Tables become horizontal-scroll *\u002F\n  section[class^=\"fmstr-cmp-\"] table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; width: 100% !important; }\n  section[class^=\"fmstr-cmp-\"] img, section[class^=\"fmstr-cmp-\"] iframe, section[class^=\"fmstr-cmp-\"] video { max-width: 100% !important; height: auto !important; }\n\n  \u002F* 7. Code \u002F pre wrap *\u002F\n  section[class^=\"fmstr-cmp-\"] pre, section[class^=\"fmstr-cmp-\"] code {\n    white-space: pre-wrap !important; overflow-wrap: anywhere !important; word-break: break-word !important;\n  }\n  section[class^=\"fmstr-cmp-\"] pre { overflow-x: auto; }\n\n  \u002F* 8. Lead block keeps its 16-px-ish padding via .art-section wrapper, font slightly smaller *\u002F\n  .fmstr-blog-lead { font-size: 16.5px !important; }\n}\n\u003C\u002Fstyle>\n\n\u003Cp class=\"fmstr-blog-lead\">Form spam is any submission your form receives that was not sent by a real person trying to use it. Most of it comes from bots scraping the web for exposed forms, filling every field with junk, and submitting at scale.\u003C\u002Fp>\n\n\u003Cp class=\"fmstr-blog-lead\">A smaller share comes from humans paid to bypass CAPTCHAs by hand.\u003C\u002Fp>\n\n\u003Cp class=\"fmstr-blog-lead\">Either way, the result is the same: fake leads in your CRM, real leads buried under noise, and a sender reputation that drops every time you email a fake address. \u003Ca href=\"https:\u002F\u002Fowasp.org\u002Fwww-project-automated-threats-to-web-applications\u002F\">OWASP classifies form spam under automated threats OAT-019 (account creation) and OAT-021 (denial of inventory)\u003C\u002Fa>, which is the cleanest framing for triage.\u003C\u002Fp>\n\n\u003Cstyle>\n.fmstr-cmp-tmpl-tldr a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-tldr {\n--c-card: #f7f3ff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-edge: #e4d7ff; --c-border: #d6c2f7;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\nbackground: transparent;\npadding: 28px 0 40px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\n}\n.fmstr-cmp-tmpl-tldr *, .fmstr-cmp-tmpl-tldr *::before, .fmstr-cmp-tmpl-tldr *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-tldr__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-tldr__card {\nbackground: var(--c-card);\nborder: 1px solid var(--c-border);\nborder-left: 4px solid var(--c-violet-500);\nborder-radius: 14px;\npadding: 22px 26px;\nbox-shadow: var(--c-shadow);\ndisplay: flex; flex-direction: column; gap: 10px;\n}\n.fmstr-cmp-tmpl-tldr__label {\nfont-size: 12px !important;\nfont-weight: 700 !important;\nletter-spacing: 0.08em !important;\ntext-transform: uppercase;\ncolor: var(--c-violet-700) !important;\ndisplay: inline-flex;\nalign-items: center;\ngap: 8px;\nmargin: 0 !important;\n}\n.fmstr-cmp-tmpl-tldr__label::before {\ncontent: \"\";\nwidth: 8px; height: 8px; border-radius: 9999px;\nbackground: var(--c-violet-500);\ndisplay: inline-block;\n}\n.fmstr-cmp-tmpl-tldr__body {\nfont-size: 16px !important;\nline-height: 1.65 !important;\ncolor: var(--c-fg-1);\nmargin: 0 !important;\nfont-weight: 500 !important;\n}\n.fmstr-cmp-tmpl-tldr__body strong { color: var(--c-violet-700); font-weight: 700; }\n\n@media (max-width: 540px) {\n.fmstr-cmp-tmpl-tldr { padding: 20px 0 28px; }\n.fmstr-cmp-tmpl-tldr__card { padding: 18px 20px; }\n.fmstr-cmp-tmpl-tldr__body { font-size: 15px !important; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-tldr\" aria-labelledby=\"fmstr-cmp-tmpl-tldr-label\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-tldr__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-tldr__card\">\u003Cp class=\"fmstr-cmp-tmpl-tldr__label\" id=\"fmstr-cmp-tmpl-tldr-label\">Quick answer\u003C\u002Fp>\n\u003Cp class=\"fmstr-cmp-tmpl-tldr__body\">To prevent form spam in 2026, stack three free defenses: a \u003Cstrong>honeypot field\u003C\u002Fstrong>, \u003Cstrong>Cloudflare Turnstile\u003C\u002Fstrong>, and strict \u003Cstrong>server-side validation\u003C\u002Fstrong>. That combination stops the 95% of spam that matters without putting any friction in front of real users. Add a time trap, rate limiting, or email verification on high-value forms. The 8 techniques, a CAPTCHA tool comparison, and copy-paste honeypot code are below.\u003C\u002Fp>\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\n\u003Cstyle>\n.fmstr-cmp-tmpl-cmp a { text-decoration: none !important; color: #6941c6 !important; }\n.fmstr-cmp-tmpl-cmp a:hover { text-decoration: underline !important; }\n.fmstr-cmp-tmpl-cmp {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\n--c-good: #12b76a; --c-bad: #f04438;\nbackground: transparent;\npadding: 48px 0;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\noverflow-x: hidden;\n}\n.fmstr-cmp-tmpl-cmp *, .fmstr-cmp-tmpl-cmp *::before, .fmstr-cmp-tmpl-cmp *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-cmp > *, .fmstr-cmp-tmpl-cmp > * > * { min-width: 0; }\n.fmstr-cmp-tmpl-cmp__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-cmp__head { margin: 0 0 28px !important; }\n.fmstr-cmp-tmpl-cmp__h2 {\nfont-size: clamp(26px, 3vw, 36px) !important; font-weight: 700 !important; line-height: 1.15 !important;\nletter-spacing: -.02em !important; margin: 0 !important; color: var(--c-fg-1);\n}\n.fmstr-cmp-tmpl-cmp__intro { color: var(--c-fg-3); font-size: 17px !important; line-height: 1.6 !important; margin: 14px 0 0 !important; }\n.fmstr-cmp-tmpl-cmp__grid {\ndisplay: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;\n}\n.fmstr-cmp-tmpl-cmp__card {\nbackground: var(--c-card);\nborder: 1px solid var(--c-border);\nborder-radius: 14px;\npadding: 22px;\nbox-shadow: var(--c-shadow);\ndisplay: flex; flex-direction: column; gap: 12px;\nmin-width: 0;\n}\n.fmstr-cmp-tmpl-cmp__card--featured {\nborder-color: var(--c-edge);\nbackground: var(--c-tint);\nbox-shadow: 0 4px 18px rgba(105,65,198,.10);\n}\n.fmstr-cmp-tmpl-cmp__chip {\ndisplay: inline-flex; align-items: center;\nfont-size: 11px !important; font-weight: 700 !important; letter-spacing: 0.08em !important;\ntext-transform: uppercase; color: var(--c-violet-700) !important;\nbackground: var(--c-tint); border: 1px solid var(--c-edge);\npadding: 4px 10px; border-radius: 9999px;\nalign-self: flex-start;\nmargin: 0 !important;\n}\n.fmstr-cmp-tmpl-cmp__name {\nfont-size: 18px !important; font-weight: 700 !important; color: var(--c-fg-1) !important;\nmargin: 0 !important; line-height: 1.3 !important;\n}\n.fmstr-cmp-tmpl-cmp__best {\nfont-size: 13.5px !important; color: var(--c-fg-3) !important; margin: 0 !important; line-height: 1.5 !important;\n}\n.fmstr-cmp-tmpl-cmp__best strong { color: var(--c-fg-1); font-weight: 600; }\n.fmstr-cmp-tmpl-cmp__divider {\nheight: 1px; background: var(--c-border); margin: 4px 0; border: 0;\n}\n.fmstr-cmp-tmpl-cmp__list {\nmargin: 0 !important; padding: 0 !important; list-style: none;\ndisplay: flex; flex-direction: column; gap: 8px;\n}\n.fmstr-cmp-tmpl-cmp__item {\ndisplay: flex; gap: 8px; align-items: flex-start;\nfont-size: 14px !important; line-height: 1.5 !important; color: var(--c-fg-2) !important;\nmargin: 0 !important;\n}\n.fmstr-cmp-tmpl-cmp__item::before {\ncontent: \"✓\"; flex-shrink: 0;\ncolor: var(--c-good); font-weight: 700; line-height: 1.45;\n}\n.fmstr-cmp-tmpl-cmp__item--con::before { content: \"✗\"; color: var(--c-bad); }\n.fmstr-cmp-tmpl-cmp__rec {\nmargin: 24px 0 0 !important;\npadding: 18px 22px;\nbackground: var(--c-tint);\nborder: 1px solid var(--c-edge);\nborder-left: 4px solid var(--c-violet-500);\nborder-radius: 10px;\nfont-size: 15px !important; line-height: 1.6 !important; color: var(--c-fg-1) !important;\n}\n.fmstr-cmp-tmpl-cmp__rec strong { color: var(--c-violet-700); font-weight: 700; }\n\n@media (max-width: 1024px) {\n.fmstr-cmp-tmpl-cmp__grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }\n}\n@media (max-width: 540px) {\n.fmstr-cmp-tmpl-cmp { padding: 36px 0; }\n.fmstr-cmp-tmpl-cmp__grid { grid-template-columns: 1fr; }\n.fmstr-cmp-tmpl-cmp__card { padding: 18px 20px; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-cmp\" aria-labelledby=\"fmstr-cmp-tmpl-cmp-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__head\">\u003Ch2 class=\"fmstr-cmp-tmpl-cmp__h2\" id=\"fmstr-cmp-tmpl-cmp-h2\">CAPTCHA tools compared\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-cmp__intro\">Four widely-used CAPTCHA options for web forms, ranked by what they cost real users in friction.\u003C\u002Fp>\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__grid\">\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__card\">\n\u003Cspan class=\"fmstr-cmp-tmpl-cmp__chip\">Tool 1\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-cmp__name\">reCAPTCHA v2\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-cmp__best\">\u003Cstrong>Best for:\u003C\u002Fstrong> Forms where conversion is not the priority.\u003C\u002Fp>\n\u003Chr class=\"fmstr-cmp-tmpl-cmp__divider\">\n\u003Cul class=\"fmstr-cmp-tmpl-cmp__list\">\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Free, unlimited assessments\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Familiar \"I'm not a robot\" checkbox\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item fmstr-cmp-tmpl-cmp__item--con\">Visible image puzzle hurts conversion\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item fmstr-cmp-tmpl-cmp__item--con\">Sends data to Google\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__card\">\n\u003Cspan class=\"fmstr-cmp-tmpl-cmp__chip\">Tool 2\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-cmp__name\">\u003Ca href=\"https:\u002F\u002Fdevelopers.google.com\u002Frecaptcha\u002Fdocs\u002Fv3\">reCAPTCHA v3\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-cmp__best\">\u003Cstrong>Best for:\u003C\u002Fstrong> High-traffic, conversion-sensitive forms.\u003C\u002Fp>\n\u003Chr class=\"fmstr-cmp-tmpl-cmp__divider\">\n\u003Cul class=\"fmstr-cmp-tmpl-cmp__list\">\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Invisible, no challenge shown\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Score-based (0.0 to 1.0)\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Free up to 1M assessments per month\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item fmstr-cmp-tmpl-cmp__item--con\">Sends data to Google\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__card\">\n\u003Cspan class=\"fmstr-cmp-tmpl-cmp__chip\">Tool 3\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-cmp__name\">\u003Ca href=\"https:\u002F\u002Fwww.hcaptcha.com\u002F\">hCaptcha\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-cmp__best\">\u003Cstrong>Best for:\u003C\u002Fstrong> EU traffic and privacy-conscious teams.\u003C\u002Fp>\n\u003Chr class=\"fmstr-cmp-tmpl-cmp__divider\">\n\u003Cul class=\"fmstr-cmp-tmpl-cmp__list\">\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">GDPR-friendly defaults\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Free tier up to 1M requests per month\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Drop-in replacement for reCAPTCHA\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item fmstr-cmp-tmpl-cmp__item--con\">Visible by default, invisible on paid plans\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__card fmstr-cmp-tmpl-cmp__card--featured\">\n\u003Cspan class=\"fmstr-cmp-tmpl-cmp__chip\">Recommended\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-cmp__name\">\u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com\u002Fproducts\u002Fturnstile\u002F\">Cloudflare Turnstile\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-cmp__best\">\u003Cstrong>Best for:\u003C\u002Fstrong> Default choice for new forms in 2026.\u003C\u002Fp>\n\u003Chr class=\"fmstr-cmp-tmpl-cmp__divider\">\n\u003Cul class=\"fmstr-cmp-tmpl-cmp__list\">\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Free and unlimited\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Fully invisible to real users\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">No data sent to Google, no PII collected\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Behavioral signals only\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fdiv>\n\n\u003C\u002Fdiv>\n\u003Cp class=\"fmstr-cmp-tmpl-cmp__rec\">\u003Cstrong>The honest recommendation:\u003C\u002Fstrong> ship Turnstile + honeypot + server-side validation. Free, invisible, and stops the 95% of spam that matters. Add email verification only on high-value forms.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\n\u003Cstyle>\n.fmstr-cmp-tmpl-steps a { text-decoration: none !important; color: #6941c6 !important; }\n.fmstr-cmp-tmpl-steps a:hover { text-decoration: underline !important; }\n.fmstr-cmp-tmpl-steps {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\nbackground: transparent;\npadding: 48px 0;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\noverflow-x: hidden;\n}\n.fmstr-cmp-tmpl-steps *, .fmstr-cmp-tmpl-steps *::before, .fmstr-cmp-tmpl-steps *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-steps > *, .fmstr-cmp-tmpl-steps > * > * { min-width: 0; }\n.fmstr-cmp-tmpl-steps__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-steps__head { margin: 0 0 28px !important; }\n.fmstr-cmp-tmpl-steps__h2 {\nfont-size: clamp(26px, 3vw, 36px) !important; font-weight: 700 !important; line-height: 1.15 !important;\nletter-spacing: -.02em !important; margin: 0 !important; color: var(--c-fg-1);\n}\n.fmstr-cmp-tmpl-steps__intro { color: var(--c-fg-3); font-size: 17px !important; line-height: 1.6 !important; margin: 14px 0 0 !important; }\n.fmstr-cmp-tmpl-steps__list {\ndisplay: flex; flex-direction: column; gap: 14px;\nmargin: 0; padding: 0; list-style: none;\n}\n.fmstr-cmp-tmpl-steps__item {\nbackground: var(--c-card);\nborder: 1px solid var(--c-border);\nborder-radius: 14px;\npadding: 22px 24px;\nbox-shadow: var(--c-shadow);\ndisplay: flex; gap: 18px;\nalign-items: flex-start;\nmin-width: 0;\n}\n.fmstr-cmp-tmpl-steps__num {\nflex-shrink: 0;\nwidth: 38px; height: 38px; border-radius: 10px;\nbackground: var(--c-tint);\nborder: 1px solid var(--c-edge);\ncolor: var(--c-violet-700) !important;\nfont-weight: 800; font-size: 16px;\ndisplay: inline-flex; align-items: center; justify-content: center;\n}\n.fmstr-cmp-tmpl-steps__main { flex: 1; min-width: 0; }\n.fmstr-cmp-tmpl-steps__title {\nfont-size: 17px !important; font-weight: 700 !important; line-height: 1.3 !important;\ncolor: var(--c-fg-1); margin: 0 0 6px !important;\n}\n.fmstr-cmp-tmpl-steps__body {\nfont-size: 15px !important; line-height: 1.6 !important;\ncolor: var(--c-fg-2); margin: 0 0 8px !important;\n}\n.fmstr-cmp-tmpl-steps__when {\nfont-size: 13.5px !important; line-height: 1.55 !important;\ncolor: var(--c-fg-3); margin: 0 !important;\npadding: 8px 12px;\nbackground: var(--c-tint);\nborder-left: 3px solid var(--c-violet-500);\nborder-radius: 6px;\n}\n.fmstr-cmp-tmpl-steps__when strong { color: var(--c-violet-700); font-weight: 700; }\n\n@media (max-width: 540px) {\n.fmstr-cmp-tmpl-steps { padding: 36px 0; }\n.fmstr-cmp-tmpl-steps__item { padding: 18px 20px; gap: 14px; }\n.fmstr-cmp-tmpl-steps__num { width: 34px; height: 34px; font-size: 15px; }\n.fmstr-cmp-tmpl-steps__title { font-size: 16px !important; }\n.fmstr-cmp-tmpl-steps__body { font-size: 14.5px !important; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-steps\" aria-labelledby=\"fmstr-cmp-tmpl-steps-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__head\">\u003Ch2 class=\"fmstr-cmp-tmpl-steps__h2\" id=\"fmstr-cmp-tmpl-steps-h2\">8 techniques to prevent form spam\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__intro\">Stack two or three of these. No single technique catches everything.\u003C\u002Fp>\u003C\u002Fdiv>\n\u003Col class=\"fmstr-cmp-tmpl-steps__list\">\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">1\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">Honeypot field\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Add a hidden form field that real users never see and never fill. Most bots fill every field. If the honeypot has a value on submit, drop the submission. Zero friction for humans, catches roughly 80% of dumb bots. Best free defense you can ship.\u003C\u002Fp>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__when\">\u003Cstrong>When to use:\u003C\u002Fstrong> every form, always. It is the cheapest line of defense.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">2\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">Time trap\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Record the timestamp when the form loads, check it on submit. If the form was filled in under 2 seconds, it was a bot. Real humans take 10 seconds minimum to type even a short message.\u003C\u002Fp>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__when\">\u003Cstrong>When to use:\u003C\u002Fstrong> pair with honeypot. Catches bots that learn to skip honeypot fields.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">3\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">reCAPTCHA v3 (invisible)\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">\u003Ca href=\"https:\u002F\u002Fdevelopers.google.com\u002Frecaptcha\u002Fdocs\u002Fv3\">Google reCAPTCHA v3\u003C\u002Fa> returns a score from 0.0 (bot) to 1.0 (human) without challenging the user. You decide the threshold (0.5 is the default). No \"click all the traffic lights\". Free up to 1 million assessments per month.\u003C\u002Fp>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__when\">\u003Cstrong>When to use:\u003C\u002Fstrong> high-traffic forms where a visible challenge would hurt conversion. Loads Google scripts on every page, so accept the privacy tradeoff.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">4\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">hCaptcha\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">\u003Ca href=\"https:\u002F\u002Fwww.hcaptcha.com\u002F\">hCaptcha\u003C\u002Fa> is the privacy-respecting alternative to reCAPTCHA. Free tier, GDPR-friendly defaults, Cloudflare and WordPress use it. Challenges are visible by default, invisible mode available on paid plans.\u003C\u002Fp>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__when\">\u003Cstrong>When to use:\u003C\u002Fstrong> EU traffic, privacy-sensitive audiences, or any time you do not want Google scripts on your forms.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">5\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">Cloudflare Turnstile\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">\u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com\u002Fproducts\u002Fturnstile\u002F\">Cloudflare Turnstile\u003C\u002Fa> is free, invisible by default, and runs without sending data to Google. Behavioral signals only. Drop-in replacement for reCAPTCHA. No PII collected.\u003C\u002Fp>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__when\">\u003Cstrong>When to use:\u003C\u002Fstrong> default choice in 2026 for new forms. Free, fast, private. Pair with honeypot for layered defense.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">6\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">Rate limiting\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Cap submissions per IP and per session. A typical contact form should never see more than 3 submissions from one IP in 10 minutes. Implement at the server or use \u003Ca href=\"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fwaf\u002Frate-limiting-rules\u002F\">Cloudflare WAF rate-limiting rules\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__when\">\u003Cstrong>When to use:\u003C\u002Fstrong> every public form. Stops volumetric bot attacks even when the bot bypasses everything else.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">7\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">Email verification (double opt-in)\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">For signup or lead forms, send a confirmation email and require the user to click a link before the submission counts. Kills disposable email addresses and most human-paid spam.\u003C\u002Fp>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__when\">\u003Cstrong>When to use:\u003C\u002Fstrong> anywhere the cost of a fake lead is high (sales handoff, paid trials, gated content). Adds friction, so do not use on simple contact forms.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">8\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">Server-side validation\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Never trust the client. Validate field formats, length, required fields, allowed characters, and email syntax on the server. Strip HTML tags from text fields. Reject submissions where the referrer is not your own domain.\u003C\u002Fp>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__when\">\u003Cstrong>When to use:\u003C\u002Fstrong> every form. Client-side validation is for UX, server-side is for security. Skipping this is the single most common cause of form spam getting through.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fli>\n\n\u003C\u002Fol>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\u003Cstyle>\n.fmstr-cmp-tmpl-midcta a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-midcta { background: transparent; padding: 48px 0; font-family: inherit; color: #101828; overflow-x: hidden; }\n.fmstr-cmp-tmpl-midcta *, .fmstr-cmp-tmpl-midcta *::before, .fmstr-cmp-tmpl-midcta *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-midcta__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-midcta__card { width: 100%; background: linear-gradient(135deg, #f7f3ff 0%, #faf7ff 100%); border: 1px solid #e4d7ff; border-radius: 18px; padding: 48px 32px; text-align: center; box-shadow: 0 4px 24px rgba(127, 86, 217, 0.08); }\n.fmstr-cmp-tmpl-midcta__inner { max-width: 760px; margin: 0 auto; }\n.fmstr-cmp-tmpl-midcta__eyebrow { display: inline-block; padding: 4px 12px; background: #ffffff; border: 1px solid #e4d7ff; border-radius: 9999px; color: #5b34b1 !important; font-size: 11.5px !important; font-weight: 700 !important; letter-spacing: 0.06em !important; text-transform: uppercase; margin: 0 0 14px !important; }\n.fmstr-cmp-tmpl-midcta__h2 { font-size: clamp(22px, 3vw, 28px) !important; font-weight: 700 !important; line-height: 1.2 !important; letter-spacing: -0.02em !important; margin: 0 0 12px !important; color: #101828 !important; }\n.fmstr-cmp-tmpl-midcta__body { font-size: 16px !important; line-height: 1.55 !important; color: #475467 !important; margin: 0 0 22px !important; }\n.fmstr-cmp-tmpl-midcta__cta { display: inline-flex !important; align-items: center; gap: 8px; background: #7f56d9 !important; color: #ffffff !important; border: 1px solid #7f56d9 !important; padding: 12px 26px !important; border-radius: 9999px !important; font-size: 15px !important; font-weight: 600 !important; text-decoration: none !important; transition: background .15s ease, transform .15s ease; }\n.fmstr-cmp-tmpl-midcta__cta:hover { background: #6941c6 !important; border-color: #6941c6 !important; color: #ffffff !important; text-decoration: none !important; transform: translateY(-1px); }\n.fmstr-cmp-tmpl-midcta__cta::after { content: \"\\2192\"; transition: transform .15s ease; }\n.fmstr-cmp-tmpl-midcta__cta:hover::after { transform: translateX(2px); }\n.fmstr-cmp-tmpl-midcta__strip { font-size: 13px !important; color: #697586 !important; margin: 20px 0 0 !important; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 14px; width: 100%; }\n.fmstr-cmp-tmpl-midcta__strip span { color: #d6c2f7; }\n@media (max-width: 760px) {\n  .fmstr-cmp-tmpl-midcta__card { padding: 36px 22px; }\n}\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-midcta { padding: 32px 0; }\n  .fmstr-cmp-tmpl-midcta__card { padding: 26px 16px; border-radius: 14px; }\n  .fmstr-cmp-tmpl-midcta__h2 { font-size: 20px !important; }\n  .fmstr-cmp-tmpl-midcta__body { font-size: 15px !important; }\n  .fmstr-cmp-tmpl-midcta__cta { padding: 11px 22px !important; font-size: 14.5px !important; width: 100%; justify-content: center; }\n  .fmstr-cmp-tmpl-midcta__strip { font-size: 12.5px !important; gap: 4px 10px; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-midcta\" aria-labelledby=\"fmstr-cmp-tmpl-midcta-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-midcta__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-midcta__card\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-midcta__inner\">\n\u003Cspan class=\"fmstr-cmp-tmpl-midcta__eyebrow\">Privacy + spam-safe\u003C\u002Fspan>\n\u003Ch2 class=\"fmstr-cmp-tmpl-midcta__h2\" id=\"fmstr-cmp-tmpl-midcta-h2\">Protect form data and block spam, without bolting on add-ons\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-midcta__body\">CAPTCHA, GDPR posture, encryption at rest and in transit. All built in, on every plan.\u003C\u002Fp>\n\u003Ca class=\"fmstr-cmp-tmpl-midcta__cta\" href=\"https:\u002F\u002Fapp.formester.com\u002Fusers\u002Fsign_up\" style=\"background: #7f56d9 !important; color: #ffffff !important; border-color: #7f56d9 !important; text-decoration: none !important;\">Start free on Formester\u003C\u002Fa>\n\u003Cp class=\"fmstr-cmp-tmpl-midcta__strip\">Free forever plan\u003Cspan>&bull;\u003C\u002Fspan>No credit card\u003Cspan>&bull;\u003C\u002Fspan>Setup in 2 minutes\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\u003Cstyle>\n\u002F* host-link-override *\u002F\n.fmstr-cmp-tmpl-faq a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-faq {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-600: #6941c6;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0; --c-chip-bg: #f4f4f7;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\n\nbackground: transparent; padding: 56px 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\n}\n.fmstr-cmp-tmpl-faq *, .fmstr-cmp-tmpl-faq *::before, .fmstr-cmp-tmpl-faq *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-faq__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-faq__h2 { font-size: clamp(26px, 3vw, 36px) !important; font-weight: 700 !important; line-height: 1.15 !important; letter-spacing: -.02em !important; margin: 0 !important; color: var(--c-fg-1); text-align: left; }\n.fmstr-cmp-tmpl-faq__intro { color: var(--c-fg-3); font-size: 17px !important; line-height: 1.6 !important; margin: 14px 0 28px !important; text-align: left; }\n.fmstr-cmp-tmpl-faq__list { display: flex; flex-direction: column; gap: 12px; }\n.fmstr-cmp-tmpl-faq__item {\nbackground: var(--c-card); border: 1px solid var(--c-border);\nborder-radius: 14px; box-shadow: var(--c-shadow); overflow: hidden;\n}\n.fmstr-cmp-tmpl-faq__item > summary {\npadding: 18px 22px; cursor: pointer; font-weight: 600; font-size: 16.5px;\ncolor: var(--c-fg-1); display: flex; align-items: center; gap: 14px;\nlist-style: none;\n}\n.fmstr-cmp-tmpl-faq__item > summary::-webkit-details-marker { display: none; }\n.fmstr-cmp-tmpl-faq__item > summary::before {\ncontent: \"\"; width: 28px; height: 28px; border-radius: 8px; flex-shrink: 0;\nbackground-color: var(--c-chip-bg);\nbackground-image: url(\"data:image\u002Fsvg+xml,%3Csvg xmlns='http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg' width='14' height='14' viewBox='0 0 14 14' fill='none' stroke='%2375747f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5l4 4 4-4'\u002F%3E%3C\u002Fsvg%3E\");\nbackground-repeat: no-repeat; background-position: center;\ntransition: transform .15s ease, background-color .15s ease;\n}\n.fmstr-cmp-tmpl-faq__item[open] > summary::before { transform: rotate(180deg); background-color: var(--c-tint); }\n.fmstr-cmp-tmpl-faq__item[open] > summary { color: var(--c-violet-600) !important; }\n.fmstr-cmp-tmpl-faq__answer { padding: 0 22px 22px 64px; color: var(--c-fg-2); font-size: 15.5px; line-height: 1.7; }\n.fmstr-cmp-tmpl-faq__answer a { color: var(--c-violet-600) !important; text-decoration: none !important; }\n.fmstr-cmp-tmpl-faq__answer a:hover { text-decoration: underline !important; }\n\n@media (max-width: 760px) {\n.fmstr-cmp-tmpl-faq { padding: 40px 16px; }\n.fmstr-cmp-tmpl-faq__intro { font-size: 15.5px !important; text-align: left; }\n.fmstr-cmp-tmpl-faq__item > summary { padding: 16px 16px; font-size: 15.5px; gap: 12px; }\n.fmstr-cmp-tmpl-faq__item > summary::before { width: 26px; height: 26px; }\n.fmstr-cmp-tmpl-faq__answer { padding: 0 16px 18px 16px; font-size: 15px; line-height: 1.65; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-faq\" aria-labelledby=\"fmstr-cmp-tmpl-faq-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__container\">\n\u003Ch2 class=\"fmstr-cmp-tmpl-faq__h2\" id=\"fmstr-cmp-tmpl-faq-h2\">Frequently asked questions\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-faq__intro\">Common questions about preventing spam without breaking conversions.\u003C\u002Fp>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__list\">\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>What is form spam?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">Form spam is any submission to a web form that was not sent by a real person trying to use it. Most comes from automated bots, a smaller share from humans paid to bypass CAPTCHAs by hand. The cost is fake leads in your CRM, real leads buried, and a damaged email sender reputation.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>Does reCAPTCHA stop all form spam?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">No. reCAPTCHA v3 catches around 90% of bot traffic at default thresholds, but humans paid pennies per submission solve it routinely, and sophisticated bots use \u003Ca href=\"https:\u002F\u002Fblog.apify.com\u002Fbypass-captcha\u002F\">CAPTCHA-solving services that achieve 90%+ success rates\u003C\u002Fa>. Stack reCAPTCHA with a honeypot and server-side validation for meaningful protection.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>Is a honeypot field enough on its own?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">For low-traffic forms with little incentive to attack, yes. For anything that handles leads, signups, or payments, no. Honeypots catch dumb bots. Targeted attacks and human spam walk through them. Layer with rate limiting and server-side checks.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>Do I need paid spam protection, or are free tools enough?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">For 95% of sites, free tools are enough. \u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com\u002Fproducts\u002Fturnstile\u002F\">Cloudflare Turnstile\u003C\u002Fa>, a honeypot, and server-side validation cost nothing and stop most spam. Paid spam protection (Akismet, CleanTalk) makes sense only at high volume or when human-paid spam is the dominant threat.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-tmpl-faq__item\">\n\u003Csummary>How do I stop form spam without using a CAPTCHA?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-tmpl-faq__answer\">Use a honeypot, a time trap (reject submissions filled in under 2 seconds), strict server-side validation, and rate limiting per IP. This combination stops most bot spam without putting any friction in front of real users.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\n\u003Cstyle>\n\u002F* host-link-override *\u002F\n.fmstr-cmp-tmpl-rel a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-rel {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\n--c-shadow: 0 4px 20px rgba(16,24,40,.06);\n\nbackground: transparent;\npadding: 56px 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important; overflow-x: hidden; -webkit-text-size-adjust: 100%;}\n.fmstr-cmp-tmpl-rel *, .fmstr-cmp-tmpl-rel *::before, .fmstr-cmp-tmpl-rel *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-rel__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-rel__head { margin: 0 0 28px; text-align: left; }\n.fmstr-cmp-tmpl-rel__h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; margin: 0; color: var(--c-fg-1); text-align: left; }\n.fmstr-cmp-tmpl-rel__intro { color: var(--c-fg-3); font-size: 17px; line-height: 1.6; margin: 14px 0 0; text-align: left; }\n\n.fmstr-cmp-tmpl-rel__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }\n.fmstr-cmp-tmpl-rel__card {\nbackground: var(--c-card); border: 1px solid var(--c-border);\nborder-radius: 14px; padding: 22px 24px; display: flex; flex-direction: column; gap: 8px;\ntext-decoration: none !important; color: inherit !important; transition: all .15s ease;\nposition: relative;\n}\n.fmstr-cmp-tmpl-rel__card:hover { border-color: var(--c-edge); box-shadow: var(--c-shadow); transform: translateY(-1px); }\n.fmstr-cmp-tmpl-rel__chip {\ndisplay: inline-block; padding: 3px 10px; border-radius: 9999px;\nbackground: var(--c-tint); border: 1px solid var(--c-edge);\ncolor: var(--c-violet-600) !important; font-size: 11.5px; font-weight: 600; letter-spacing: .02em;\ntext-transform: uppercase; align-self: flex-start;\nmargin-bottom: 2px;\n}\n.fmstr-cmp-tmpl-rel__title {\nfont-size: 17px; font-weight: 700; color: var(--c-fg-1); margin: 0; line-height: 1.3; text-align: left; }\n.fmstr-cmp-tmpl-rel__body { font-size: 14.5px; line-height: 1.55; color: var(--c-fg-2); margin: 0; }\n.fmstr-cmp-tmpl-rel__arrow {\nmargin-top: 6px; color: var(--c-violet-600) !important; font-size: 14px; font-weight: 600;\ndisplay: inline-flex; align-items: center; gap: 6px;\n}\n.fmstr-cmp-tmpl-rel__arrow::after {\ncontent: \"\\2192\"; transition: transform .15s ease; display: inline-block;\n}\n.fmstr-cmp-tmpl-rel__card:hover .fmstr-cmp-tmpl-rel__arrow::after { transform: translateX(3px); }\n\n@media (max-width: 540px) {\n.fmstr-cmp-tmpl-rel { padding: 40px 16px; }\n.fmstr-cmp-tmpl-rel__grid { grid-template-columns: 1fr; gap: 12px; }\n.fmstr-cmp-tmpl-rel__card { padding: 20px 22px; }\n}\n\n\n\u002F* mobile-safety-v2 *\u002F\n.fmstr-cmp-tmpl-rel img, .fmstr-cmp-tmpl-rel table, .fmstr-cmp-tmpl-rel pre, .fmstr-cmp-tmpl-rel iframe, .fmstr-cmp-tmpl-rel video { max-width: 100%; }\n.fmstr-cmp-tmpl-rel > * { min-width: 0; }\n.fmstr-cmp-tmpl-rel [class*='__grid'] > *, .fmstr-cmp-tmpl-rel [class*='__list'] > *, .fmstr-cmp-tmpl-rel [class*='__cards'] > * { min-width: 0; max-width: 100%; }\n@media (max-width: 540px) {\n  .fmstr-cmp-tmpl-rel pre { overflow-x: auto; -webkit-overflow-scrolling: touch; }\n  .fmstr-cmp-tmpl-rel table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-rel\" aria-labelledby=\"fmstr-cmp-tmpl-rel-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-rel__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-rel__head\">\n\u003Ch2 class=\"fmstr-cmp-tmpl-rel__h2\" id=\"fmstr-cmp-tmpl-rel-h2\">Related on Formester\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__intro\">Skip the engineering work. Ship spam protection as a toggle.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-tmpl-rel__grid\">\n\n\u003Ca class=\"fmstr-cmp-tmpl-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fspam-protection\u002F\">\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__chip\">Feature\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-rel__title\">Spam protection\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__body\">Honeypot, Turnstile, reCAPTCHA, Smart Filters, and IP monitoring shipped as toggles on every plan.\u003C\u002Fp>\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__arrow\">Open\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-tmpl-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fsecurity\u002F\">\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__chip\">Trust\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-rel__title\">Security and infrastructure\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__body\">SSL by default, encryption at rest, GDPR, and the rest of the trust stack behind every Formester form.\u003C\u002Fp>\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__arrow\">Open\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-tmpl-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fdrag-and-drop-form-builder\u002F\">\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__chip\">Product\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-rel__title\">Online form builder\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-rel__body\">Build the form, enable the protections, and ship in minutes without writing code.\u003C\u002Fp>\n\u003Cspan class=\"fmstr-cmp-tmpl-rel__arrow\">Open\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\n","blog\u002Fblog\u002Fhow-to-protect-user-data-and-prevent-spam-in-web-forms.md",{"text":224},"6 min read",{"title":226,"author":7,"authorImage":8,"authorProfile":9,"coverImg":227,"coverImgAlt":228,"createdAt":229,"description":230,"featured":14,"jsonld":231,"keywords":232,"metaDescription":233,"metaImage":234,"metaTitle":226,"publishedAt":235,"slug":236,"updatedAt":237,"__hash__":238,"body":239,"id":240,"coverImgWidth":163,"coverImgHeight":164,"readingStats":241},"How to Pre-fill Form Fields by URL Parameters (Google Forms + Formester, 2026)","https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fa_blog_post_cover_about_how_to_prefill_form_fields_using_url_parameters_f44439397a.png","a blog post cover about how to prefill form fields using url parameters","2025-07-31T17:30:41.631Z","Speed up form filling with URL parameters. This guide shows you how to auto-fill form fields and improve the user experience instantly.",[],"prefill form fields,\npre populate forms,\npre fill forms using url,","Pre-fill form fields by URL parameters in Google Forms or Formester. Build pre-filled URLs, embed merge tags, and reduce form abandonment. With video.",[],"2026-06-05T01:50:06.000Z","how-to-pre-fill-form-fields-by-url-parameters","2026-06-08T11:38:21.292Z","X8TvhZRO6imOXXUYnD1Lz5-RfQpjeSHNaRaDxSCiO_c","\u003Cstyle>\n\u002F* host-link-override *\u002F\n.fmstr-cmp-pfu-body a { text-decoration: none !important; }\n.fmstr-cmp-pfu-body {\n--c-bg-card: #ffffff;\n--c-bg-soft: #f9fafb;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff; --c-border: #eaecf0;\nbackground: transparent; padding: 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-pfu-body *, .fmstr-cmp-pfu-body *::before, .fmstr-cmp-pfu-body *::after { box-sizing: border-box; }\n.fmstr-cmp-pfu-body__container { max-width: 820px; margin: 0 auto; }\n.fmstr-cmp-pfu-body__sub { font-size: 17px !important; line-height: 1.6 !important; color: var(--c-fg-3); font-style: italic; margin: 0 0 24px !important; }\n.fmstr-cmp-pfu-body__intro p { font-size: 17px !important; line-height: 1.7 !important; color: var(--c-fg-2); margin: 0 0 16px !important; }\n.fmstr-cmp-pfu-body__intro a { color: var(--c-violet-600) !important; text-decoration: none !important; font-weight: 500; }\n.fmstr-cmp-pfu-body__intro a:hover { text-decoration: underline !important; }\n@media (max-width: 600px) {\n.fmstr-cmp-pfu-body { padding: 16px; }\n.fmstr-cmp-pfu-body__sub { font-size: 16px !important; }\n.fmstr-cmp-pfu-body__intro p { font-size: 16px !important; }\n}\n\u003C\u002Fstyle>\n\n\u003Cstyle>\n.fmstr-cmp-tmpl-tldr a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-tldr {\n--c-card: #f7f3ff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-edge: #e4d7ff; --c-border: #d6c2f7;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\nbackground: transparent;\npadding: 28px 0 40px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\n}\n.fmstr-cmp-tmpl-tldr *, .fmstr-cmp-tmpl-tldr *::before, .fmstr-cmp-tmpl-tldr *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-tldr__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-tldr__card {\nbackground: var(--c-card);\nborder: 1px solid var(--c-border);\nborder-left: 4px solid var(--c-violet-500);\nborder-radius: 14px;\npadding: 22px 26px;\nbox-shadow: var(--c-shadow);\ndisplay: flex; flex-direction: column; gap: 10px;\n}\n.fmstr-cmp-tmpl-tldr__label {\nfont-size: 12px !important;\nfont-weight: 700 !important;\nletter-spacing: 0.08em !important;\ntext-transform: uppercase;\ncolor: var(--c-violet-700) !important;\ndisplay: inline-flex;\nalign-items: center;\ngap: 8px;\nmargin: 0 !important;\n}\n.fmstr-cmp-tmpl-tldr__label::before {\ncontent: \"\";\nwidth: 8px; height: 8px; border-radius: 9999px;\nbackground: var(--c-violet-500);\ndisplay: inline-block;\n}\n.fmstr-cmp-tmpl-tldr__body {\nfont-size: 16px !important;\nline-height: 1.65 !important;\ncolor: var(--c-fg-1);\nmargin: 0 !important;\nfont-weight: 500 !important;\n}\n.fmstr-cmp-tmpl-tldr__body strong { color: var(--c-violet-700); font-weight: 700; }\n\n@media (max-width: 540px) {\n.fmstr-cmp-tmpl-tldr { padding: 20px 0 28px; }\n.fmstr-cmp-tmpl-tldr__card { padding: 18px 20px; }\n.fmstr-cmp-tmpl-tldr__body { font-size: 15px !important;}\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-tldr\" aria-labelledby=\"fmstr-cmp-tmpl-tldr-label\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-tldr__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-tldr__card\">\n\u003Cp class=\"fmstr-cmp-tmpl-tldr__label\" id=\"fmstr-cmp-tmpl-tldr-label\">Quick answer\u003C\u002Fp>\n\u003Cp class=\"fmstr-cmp-tmpl-tldr__body\">To pre-fill form fields by URL parameters, open your form, generate a pre-filled link (in Google Forms via the three-dot menu Get pre-filled link; in Formester via the share menu Pre-filled URL), fill in the values you want to lock, copy the resulting URL with embedded parameters, and share that URL. Anyone who clicks the link sees the form with those fields already filled. The walkthrough below covers Google Forms, Formester, and merge-tag patterns for CRM and email tools.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\n\u003Csection class=\"fmstr-cmp-pfu-body\">\n\u003Cdiv class=\"fmstr-cmp-pfu-body__container\">\n\n\u003Cp class=\"fmstr-cmp-pfu-body__sub\">Build a URL that pre-fills a form's name, email, and order details. Cuts respondent typing by 60-80% and lifts completion rate.\u003C\u002Fp>\n\n\u003Cdiv class=\"fmstr-cmp-pfu-body__intro\">\nTo pre-fill form fields by URL parameters, open your form, generate a pre-filled link (in Google Forms via the three-dot menu Get pre-filled link; in Formester via the share menu Pre-filled URL), fill in the values you want to lock, copy the resulting URL with embedded parameters, and share that URL. Anyone who clicks the link sees the form with those fields already filled. The walkthrough below covers Google Forms, Formester, and merge-tag patterns for CRM and email tools.\n\u003C\u002Fdiv>\n\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\u003Cstyle>\n.fmstr-cmp-tmpl-steps a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-steps {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\nbackground: transparent;\npadding: 48px 0;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\noverflow-x: hidden;\n}\n.fmstr-cmp-tmpl-steps *, .fmstr-cmp-tmpl-steps *::before, .fmstr-cmp-tmpl-steps *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-steps > *, .fmstr-cmp-tmpl-steps > * > * { min-width: 0; }\n.fmstr-cmp-tmpl-steps__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-steps__head { margin: 0 0 28px !important;}\n.fmstr-cmp-tmpl-steps__h2 {\nfont-size: clamp(26px, 3vw, 36px) !important; font-weight: 700 !important; line-height: 1.15 !important;\nletter-spacing: -.02em !important; margin: 0 !important; color: var(--c-fg-1);\n}\n.fmstr-cmp-tmpl-steps__intro { color: var(--c-fg-3); font-size: 17px !important; line-height: 1.6 !important; margin: 14px 0 0 !important; }\n.fmstr-cmp-tmpl-steps__list {\ndisplay: flex; flex-direction: column; gap: 14px;\ncounter-reset: step-counter;\nmargin: 0; padding: 0; list-style: none;\n}\n.fmstr-cmp-tmpl-steps__item {\nbackground: var(--c-card);\nborder: 1px solid var(--c-border);\nborder-radius: 14px;\npadding: 22px 24px;\nbox-shadow: var(--c-shadow);\ndisplay: flex; gap: 18px;\nalign-items: flex-start;\nmin-width: 0;\n}\n.fmstr-cmp-tmpl-steps__num {\nflex-shrink: 0;\nwidth: 38px; height: 38px; border-radius: 10px;\nbackground: var(--c-tint);\nborder: 1px solid var(--c-edge);\ncolor: var(--c-violet-700) !important;\nfont-weight: 800; font-size: 16px;\ndisplay: inline-flex; align-items: center; justify-content: center;\n}\n.fmstr-cmp-tmpl-steps__main { flex: 1; min-width: 0; }\n.fmstr-cmp-tmpl-steps__title {\nfont-size: 17px !important; font-weight: 700 !important; line-height: 1.3 !important;\ncolor: var(--c-fg-1); margin: 0 0 6px !important;\n}\n.fmstr-cmp-tmpl-steps__body {\nfont-size: 15px !important; line-height: 1.6 !important;\ncolor: var(--c-fg-2); margin: 0 !important;\n}\n\n@media (max-width: 540px) {\n.fmstr-cmp-tmpl-steps { padding: 36px 0; }\n.fmstr-cmp-tmpl-steps__item { padding: 18px 20px; gap: 14px; }\n.fmstr-cmp-tmpl-steps__num { width: 34px; height: 34px; font-size: 15px; }\n.fmstr-cmp-tmpl-steps__title { font-size: 16px !important;}\n.fmstr-cmp-tmpl-steps__body { font-size: 14.5px !important;}\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-steps\" aria-labelledby=\"fmstr-cmp-tmpl-steps-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__head\">\n\u003Ch2 class=\"fmstr-cmp-tmpl-steps__h2\" id=\"fmstr-cmp-tmpl-steps-h2\">The 4-step setup\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__intro\">Works in Google Forms, Formester, and most CRMs\u002Femail tools that support merge tags.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Col class=\"fmstr-cmp-tmpl-steps__list\">\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">1\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">Generate a pre-filled link\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">In Google Forms: three-dot menu → Get pre-filled link → fill in values → click Get link. In Formester: Share → Pre-filled URL → fill values → copy link.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">2\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">Inspect the URL parameters\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">The URL contains entry.[field-id]=[value] pairs. Each entry.[field-id] maps to one form question. Copy the URL template, you'll replace [value] with merge tags.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">3\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">Insert merge tags from your CRM or email tool\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Replace [value] with the merge-tag syntax your tool uses. HubSpot: {{contact.email}}. Mailchimp: *|EMAIL|*. ActiveCampaign: %EMAIL%. The tool substitutes each recipient's data when sending.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003Cli class=\"fmstr-cmp-tmpl-steps__item\">\n\u003Cspan class=\"fmstr-cmp-tmpl-steps__num\" aria-hidden=\"true\">4\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-tmpl-steps__main\">\n\u003Ch3 class=\"fmstr-cmp-tmpl-steps__title\">Test with a real recipient\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-steps__body\">Send the link to yourself or a test contact. Click through, the form should load with the values pre-filled. Verify required fields, special characters, and field types all work.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fli>\n\n\u003C\u002Fol>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\n\n\n\u003Ciframe width=\"100%\" height=\"315\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FDkDJy4fQRIQ?si=4T8Uk-E24W3udGYV\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C\u002Fiframe>\n\n\u003Cstrong>Filling out the same information\u003C\u002Fstrong> again and again can be frustrating. Every second matters, whether a customer is returning to fill out a form or your team is making requests.\n\nThat’s where \u003Cstrong>\u003Ca href=\"\u002Ffeatures\u002Fpre-fill-fields\u002F\">pre-filled form fields\u003C\u002Fa>\u003C\u002Fstrong> come in.\n\nIn this guide, you'll learn how to \u003Cstrong>populate form fields\u003C\u002Fstrong> automatically using URL parameters. This simple trick helps you speed up the form-filling process, reduce human errors, and increase your conversion rates all without writing any code.\n\nLet’s dive in.\n\n## What Does “Pre-filling a Form” Mean?\nPre-filling means automatically loading data into form fields before the user even interacts with them. You can pre populate values like:\n\n- Name\n\n- Email\n\n- Company\n\n- Phone number\n\n- Any other custom field\n\nYou do this by modifying the \u003Cstrong>form URL\u003C\u002Fstrong> to include these values. When someone clicks on the customized link, the form opens with those fields already filled out.\n\n### Why Should You Pre-fill Form Fields?\nHere’s why this feature is so useful:\n\n- \u003Cstrong>Saves time:\u003C\u002Fstrong> The user doesn’t have to retype their basic info.\n\n- \u003Cstrong>Reduces errors:\u003C\u002Fstrong> Fewer chances for typos or wrong entries.\n\n- \u003Cstrong>Improves conversions:\u003C\u002Fstrong> Less work means more submissions.\n\n- \u003Cstrong>Feels personal:\u003C\u002Fstrong> Pre-filled forms show you know your user.\n\n- \u003Cstrong>Streamlines internal workflows:\u003C\u002Fstrong> Ideal for HR, IT, and service teams.\n\n## How to Pre-fill Form Fields Using URL Parameters in Formester\n### Step 1: Create or Open a Form\n\u003Cimg alt=\"a screenshot of formester's form creation tab\" src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002F82_bd2c060bab.png\" \u002F>\n\n- Log into your Formester account. You can either:\n\n- Build a new form using the \u003Cstrong>\u003Ca href=\"\u002Fai-form-generator\u002F\">AI Form Builder\u003C\u002Fa>\u003C\u002Fstrong>\n\n- Or open an existing form from your dashboard\n\nInclude all the field types you want to populate, like \u003Cstrong>name, email, phone number\u003C\u002Fstrong>, or even dropdowns and text areas.\n\n### Step 2: Double-Check Your Field Labels\n\u003Cimg alt=\"a screenshot of formester's form builder\" src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002F89_fd06081e56.png\" \u002F>\n\nMake sure your field labels are typed correctly. The field label is what you’ll refer to in the URL parameter. If there’s a mismatch, the form won’t populate correctly.\n\n\u003Cstrong>Example:\u003C\u002Fstrong>\n\n- \u003Cstrong>Field label:\u003C\u002Fstrong> name\n\n- \u003Cstrong>URL parameter:\u003C\u002Fstrong> ?name=John\n\nYou can add hidden fields to store data. This can include campaign source, UTM parameters, or user ID. These fields will not be visible to the respondent.\n\n### Step 3: Publish and Copy the Form URL\n\u003Cimg alt=\"a screenshot of formester's share ui\" src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002F91_d97a562895.png\" \u002F>\n\nOnce your form is ready, publish it and copy the form URL.\n\n\u003Cstrong>Example:\u003C\u002Fstrong>\n\nhttps:\u002F\u002Fformester.com\u002Ftemplates\u002Fcontact-form-template-1660\u002F\n\n### Step 4: Add URL Parameters to Pre-populate the Form\n\u003Cimg alt=\"a screenshot of custom url parameters\" src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002F90_8fedbb9035.png\" \u002F>\n\nTo pre populate fields, add a question mark at the end of your form URL followed by key-value pairs:\n```\nhttps:\u002F\u002Fformester.com\u002Fforms\u002Fcontact-form?name=John&email=john@email.com\n```\nEach key matches a field label, and the value is what gets filled in.\n\nNeed to go a step further? Use \u003Cstrong>\u003Ca href=\"\u002Ffeatures\u002Fauto-fill-forms-with-external-data\u002F\">API powered pre-fill\u003C\u002Fa>\u003C\u002Fstrong> to pull dynamic values from your CRM or URL variables.\n\n### Step 5: Test the Link\n\u003Cimg alt=\"a screenshot of formester's form\" src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002F92_5368a3bdf3.png\" \u002F>\n\nPaste the custom URL into your browser. If you set everything up properly, the form will automatically populate the fields with the values you specified.\n\n\u003Cstrong>If it doesn’t work:\u003C\u002Fstrong>\n\n- Check for typos in field labels or parameter syntax.\n\n- Make sure field names and values don’t have extra spaces.\n\n- Confirm you're using the right field types and that they match the form structure.\n\n### Step 6: Share the Pre-filled Form\nOnce it works, you can share the custom URL with users.\n\nThis not only improves their experience but also shows you're making things easier for them. And that can lead to more engagement and submissions.\n\n### Real-World Use Cases\nHere's how businesses are using URL-based pre-filled forms:\n\n- \u003Cstrong>Support requests:\u003C\u002Fstrong> Pre-populate the user’s email and product ID\n\n- \u003Cstrong>IT or HR requests:\u003C\u002Fstrong> Load team or employee info in advance\n\n- \u003Cstrong>Event signups:\u003C\u002Fstrong> Repeat attendees don’t have to re-enter their details\n\n- \u003Cstrong>Lead forms:\u003C\u002Fstrong> Insert UTM parameters into hidden fields for tracking\n\nTo improve performance, use \u003Cstrong>\u003Ca href=\"\u002Ffeatures\u002Fpartial-submissions\u002F\">Partial Submissions\u003C\u002Fa>\u003C\u002Fstrong>. This way, you can capture data even if users don’t finish the form.\n\n### Try It Today With Formester\nFormester helps you make form creation easier. One way it does this is by pre-filling fields. This improves the user experience.\n\nAlready using our AI Form Builder? This is the perfect next step to make your forms even more efficient.\n\nNeed to control form limits? Limit form responses to cap entries by date or number.\n\n\n\u003Cstyle>\n\u002F* host-link-override *\u002F\n.fmstr-cmp-pfu-faq a { text-decoration: none !important; }\n.fmstr-cmp-pfu-faq {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-600: #6941c6;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\nbackground: transparent; padding: 56px 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\n}\n.fmstr-cmp-pfu-faq *, .fmstr-cmp-pfu-faq *::before, .fmstr-cmp-pfu-faq *::after { box-sizing: border-box; }\n.fmstr-cmp-pfu-faq__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-pfu-faq__h2 { font-size: clamp(26px, 3vw, 36px) !important; font-weight: 700 !important; line-height: 1.15 !important; letter-spacing: -.02em !important; margin: 0 !important; margin-top: 0 !important; color: var(--c-fg-1); text-align: left; }\n.fmstr-cmp-pfu-faq__intro { color: var(--c-fg-3); font-size: 17px !important; line-height: 1.6 !important; margin: 14px 0 28px !important; text-align: left; }\n.fmstr-cmp-pfu-faq__list { display: flex; flex-direction: column; gap: 12px; }\n.fmstr-cmp-pfu-faq__item {\nbackground: var(--c-card); border: 1px solid var(--c-border);\nborder-radius: 14px; box-shadow: var(--c-shadow); overflow: hidden;\n}\n.fmstr-cmp-pfu-faq__item summary {\nlist-style: none; cursor: pointer;\npadding: 18px 22px; font-size: 16.5px; font-weight: 600; color: var(--c-fg-1);\ndisplay: flex; align-items: center; justify-content: space-between; gap: 14px;\n}\n.fmstr-cmp-pfu-faq__item summary::-webkit-details-marker { display: none; }\n.fmstr-cmp-pfu-faq__item summary::after {\ncontent: \"+\"; flex-shrink: 0;\nwidth: 24px; height: 24px; border-radius: 6px;\ndisplay: grid; place-items: center;\nbackground: var(--c-tint); color: var(--c-violet-600);\nfont-size: 16px; font-weight: 700; transition: transform .2s ease;\n}\n.fmstr-cmp-pfu-faq__item[open] summary::after { content: \"−\"; transform: rotate(180deg); }\n.fmstr-cmp-pfu-faq__answer {\npadding: 0 22px 18px;\nfont-size: 15.5px !important; line-height: 1.65 !important; color: var(--c-fg-2);\nmargin: 0 !important;\n}\n.fmstr-cmp-pfu-faq__answer a { color: var(--c-violet-600) !important; font-weight: 500; }\n.fmstr-cmp-pfu-faq__answer a:hover { text-decoration: underline !important; }\n@media (max-width: 600px) {\n.fmstr-cmp-pfu-faq { padding: 40px 16px; }\n.fmstr-cmp-pfu-faq__item summary { padding: 16px 18px; font-size: 15.5px; }\n.fmstr-cmp-pfu-faq__answer { padding: 0 18px 16px; font-size: 15px !important; }\n}\n\u003C\u002Fstyle>\n\n\n\n\u003Cstyle>\n.fmstr-cmp-tmpl-cmp a { text-decoration: none !important; }\n.fmstr-cmp-tmpl-cmp {\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\n--c-good: #12b76a; --c-bad: #f04438;\nbackground: transparent;\npadding: 48px 0;\nfont-family: inherit;\ncolor: var(--c-fg-1);\ntext-align: left !important;\noverflow-x: hidden;\n}\n.fmstr-cmp-tmpl-cmp *, .fmstr-cmp-tmpl-cmp *::before, .fmstr-cmp-tmpl-cmp *::after { box-sizing: border-box; }\n.fmstr-cmp-tmpl-cmp > *, .fmstr-cmp-tmpl-cmp > * > * { min-width: 0; }\n.fmstr-cmp-tmpl-cmp__container { max-width: 1200px; margin: 0 auto; }\n.fmstr-cmp-tmpl-cmp__head { margin: 0 0 28px !important;}\n.fmstr-cmp-tmpl-cmp__h2 {\nfont-size: clamp(26px, 3vw, 36px) !important; font-weight: 700 !important; line-height: 1.15 !important;\nletter-spacing: -.02em !important; margin: 0 !important; color: var(--c-fg-1);\n}\n.fmstr-cmp-tmpl-cmp__intro { color: var(--c-fg-3); font-size: 17px !important; line-height: 1.6 !important; margin: 14px 0 0 !important; }\n.fmstr-cmp-tmpl-cmp__grid {\ndisplay: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;\n}\n.fmstr-cmp-tmpl-cmp__card {\nbackground: var(--c-card);\nborder: 1px solid var(--c-border);\nborder-radius: 14px;\npadding: 22px;\nbox-shadow: var(--c-shadow);\ndisplay: flex; flex-direction: column; gap: 12px;\nmin-width: 0;\n}\n.fmstr-cmp-tmpl-cmp__card--featured {\nborder-color: var(--c-edge);\nbackground: var(--c-tint);\nbox-shadow: 0 4px 18px rgba(105,65,198,.10);\n}\n.fmstr-cmp-tmpl-cmp__chip {\ndisplay: inline-flex; align-items: center;\nfont-size: 11px; font-weight: 700; letter-spacing: 0.08em;\ntext-transform: uppercase; color: var(--c-violet-700) !important;\nbackground: var(--c-tint); border: 1px solid var(--c-edge);\npadding: 4px 10px; border-radius: 9999px;\nalign-self: flex-start;\n}\n.fmstr-cmp-tmpl-cmp__name {\nfont-size: 18px; font-weight: 700; color: var(--c-fg-1);\nmargin: 0; line-height: 1.3;\n}\n.fmstr-cmp-tmpl-cmp__best {\nfont-size: 13.5px; color: var(--c-fg-3); margin: 0;\n}\n.fmstr-cmp-tmpl-cmp__best strong { color: var(--c-fg-1); font-weight: 600; }\n.fmstr-cmp-tmpl-cmp__divider {\nheight: 1px; background: var(--c-border); margin: 4px 0; border: 0;\n}\n.fmstr-cmp-tmpl-cmp__list {\nmargin: 0; padding: 0; list-style: none;\ndisplay: flex; flex-direction: column; gap: 8px;\n}\n.fmstr-cmp-tmpl-cmp__item {\ndisplay: flex; gap: 8px; align-items: flex-start;\nfont-size: 14px; line-height: 1.5; color: var(--c-fg-2);\n}\n.fmstr-cmp-tmpl-cmp__item::before {\ncontent: \"✓\"; flex-shrink: 0;\ncolor: var(--c-good); font-weight: 700; line-height: 1.45;\n}\n.fmstr-cmp-tmpl-cmp__item--con::before { content: \"✗\"; color: var(--c-bad); }\n\n@media (max-width: 920px) {\n.fmstr-cmp-tmpl-cmp__grid { grid-template-columns: 1fr; gap: 12px; }\n}\n@media (max-width: 540px) {\n.fmstr-cmp-tmpl-cmp { padding: 36px 0; }\n.fmstr-cmp-tmpl-cmp__card { padding: 18px 20px; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-tmpl-cmp\" aria-labelledby=\"fmstr-cmp-tmpl-cmp-h2\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__container\">\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__head\">\n\u003Ch2 class=\"fmstr-cmp-tmpl-cmp__h2\" id=\"fmstr-cmp-tmpl-cmp-h2\">The 3 routes to pre-filled URLs\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-tmpl-cmp__intro\">Pick by where the link will originate (manual, CRM, or email tool).\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__grid\">\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__card\">\n\u003Cspan class=\"fmstr-cmp-tmpl-cmp__chip\">Route 1\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-cmp__name\">Manual pre-fill\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-cmp__best\">\u003Cstrong>Best for:\u003C\u002Fstrong> Sending the same pre-filled link to a few people\u003C\u002Fp>\n\u003Chr class=\"fmstr-cmp-tmpl-cmp__divider\">\n\u003Cul class=\"fmstr-cmp-tmpl-cmp__list\">\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Zero technical setup\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Works in Google Forms and Formester\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Easy to test\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item fmstr-cmp-tmpl-cmp__item--con\">Doesn't scale\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item fmstr-cmp-tmpl-cmp__item--con\">Can't personalize per recipient\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__card\">\n\u003Cspan class=\"fmstr-cmp-tmpl-cmp__chip\">Route 2\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-cmp__name\">Merge tag in email tool\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-cmp__best\">\u003Cstrong>Best for:\u003C\u002Fstrong> Email campaigns with per-recipient pre-fill\u003C\u002Fp>\n\u003Chr class=\"fmstr-cmp-tmpl-cmp__divider\">\n\u003Cul class=\"fmstr-cmp-tmpl-cmp__list\">\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Personalized per recipient automatically\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Works with HubSpot, Mailchimp, ActiveCampaign\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Lifts form completion 30-60%\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item fmstr-cmp-tmpl-cmp__item--con\">Requires the email tool to support merge tags inside URLs\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-tmpl-cmp__card fmstr-cmp-tmpl-cmp__card--featured\">\n\u003Cspan class=\"fmstr-cmp-tmpl-cmp__chip\">Route 3\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-tmpl-cmp__name\">CRM-driven dynamic pre-fill\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-tmpl-cmp__best\">\u003Cstrong>Best for:\u003C\u002Fstrong> Sales-side workflows with thousands of leads\u003C\u002Fp>\n\u003Chr class=\"fmstr-cmp-tmpl-cmp__divider\">\n\u003Cul class=\"fmstr-cmp-tmpl-cmp__list\">\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Pulls live data from the CRM\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Works at scale\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item\">Tied to deal\u002Fcontact records\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item fmstr-cmp-tmpl-cmp__item--con\">Requires CRM integration setup\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-tmpl-cmp__item fmstr-cmp-tmpl-cmp__item--con\">Heavier technical lift\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fdiv>\n\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\n\u003Csection class=\"fmstr-cmp-pfu-faq\" aria-labelledby=\"fmstr-cmp-pfu-faq-h2\">\n\u003Cdiv class=\"fmstr-cmp-pfu-faq__container\">\n\u003Ch2 class=\"fmstr-cmp-pfu-faq__h2\" id=\"fmstr-cmp-pfu-faq-h2\">Frequently asked questions\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-pfu-faq__intro\">Common questions about this guide.\u003C\u002Fp>\n\u003Cdiv class=\"fmstr-cmp-pfu-faq__list\">\n\n\u003Cdetails class=\"fmstr-cmp-pfu-faq__item\">\n\u003Csummary>How do I pre-fill a Google Form using a URL?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-pfu-faq__answer\">In your form, click the three-dot menu, choose Get pre-filled link, fill in the values you want to pre-fill, then click Get link. Google Forms returns a URL with the pre-filled values as query parameters. Share that URL.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-pfu-faq__item\">\n\u003Csummary>Can I pre-fill any field type with URL parameters?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-pfu-faq__answer\">You can pre-fill short answer, paragraph, multiple choice, checkbox, dropdown, linear scale, date, and time fields. File upload fields cannot be pre-filled for security reasons.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-pfu-faq__item\">\n\u003Csummary>What does a pre-filled Google Forms URL look like?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-pfu-faq__answer\">It looks like: \u003Chttps:\u002F\u002Fdocs.google.com\u002Fforms\u002Fd\u002Fe\u002F[form-id>\\]\u002Fviewform?usp=pp\\_url\\&entry.\\[field-id\\]=\\[value\\]\\&entry.\\[field-id\\]=\\[value\\]. Each entry.\\[field-id\\] is a unique question; replace \\[value\\] with the pre-fill content.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-pfu-faq__item\">\n\u003Csummary>Can I use merge tags to pre-fill form URLs from a CRM?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-pfu-faq__answer\">Yes. Replace the \\[value\\] in the URL with your CRM's merge tags. HubSpot example: entry.123456={{contact.email}}. Mailchimp example: entry.123456=*|EMAIL|*. The CRM substitutes each recipient's data when sending.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-pfu-faq__item\">\n\u003Csummary>Why isn't my URL pre-fill working?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-pfu-faq__answer\">Most common causes: wrong entry ID, special characters not URL-encoded, the field type doesn't support pre-fill (e.g., file upload), or the form requires sign-in. Re-generate the pre-fill URL and URL-encode spaces as %20.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-pfu-faq__item\">\n\u003Csummary>Can I pre-fill a Google Form embedded in a website?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-pfu-faq__answer\">Yes. Append URL parameters to the src attribute of the iframe's URL: src='\\[embed-url\\]?entry.123=value'. The embedded form loads with the values pre-filled.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-pfu-faq__item\">\n\u003Csummary>Does Formester support URL pre-fill?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-pfu-faq__answer\">Yes. In Formester, click Share, choose Pre-filled URL, fill in the values, and copy the link. Formester also supports per-field merge tags and dynamic pre-fill via API.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-pfu-faq__item\">\n\u003Csummary>Can I pre-fill a form from email marketing tools?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-pfu-faq__answer\">Yes. Use merge tags from the email tool to insert the URL parameters. Mailchimp, ActiveCampaign, ConvertKit, and HubSpot all support merge tags inside link URLs.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-pfu-faq__item\">\n\u003Csummary>Is URL pre-fill secure for sensitive data?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-pfu-faq__answer\">URL pre-fill is visible in browser history and server logs. Don't pre-fill sensitive data like passwords, SSNs, or credit card numbers. For sensitive pre-fill, use server-side session-based pre-fill instead.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-pfu-faq__item\">\n\u003Csummary>Does URL pre-fill work with required fields?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-pfu-faq__answer\">Yes. Required fields can be pre-filled. The respondent can still edit the pre-filled value, and submission validation still runs.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\u003Cstyle>\n\u002F* host-link-override *\u002F\n.fmstr-cmp-pfu-rel a { text-decoration: none !important; }\n.fmstr-cmp-pfu-rel {\n--c-bg: transparent;\n--c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6; --c-violet-700: #5b34b1;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0;\nbackground: var(--c-bg);\npadding: 8px 0 0;\nfont-family: inherit;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-pfu-rel *, .fmstr-cmp-pfu-rel *::before, .fmstr-cmp-pfu-rel *::after { box-sizing: border-box; }\n.fmstr-cmp-pfu-rel__container { max-width: 1180px; margin: 0 auto; padding: 0 16px; }\n.fmstr-cmp-pfu-rel__head { margin: 0 0 28px; max-width: 760px; }\n.fmstr-cmp-pfu-rel__eyebrow {\ndisplay: inline-block; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;\ncolor: var(--c-violet-600); background: #f4ebff;\npadding: 4px 10px; border-radius: 9999px; margin: 0 0 12px;\n}\n.fmstr-cmp-pfu-rel__h2 {\nfont-size: clamp(22px, 2.4vw, 28px) !important;\nfont-weight: 700 !important;\nline-height: 1.2 !important;\nletter-spacing: -.02em !important;\nmargin: 0 !important; margin-top: 0 !important;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-pfu-rel__intro {\ncolor: var(--c-fg-3);\nfont-size: 15px !important; line-height: 1.5 !important;\nmargin: 8px 0 0 !important; margin-bottom: 0 !important;\n}\n.fmstr-cmp-pfu-rel__grid {\ndisplay: grid; grid-template-columns: repeat(2, 1fr); gap: 12px;\nalign-items: start;\nmargin: 0;\n}\n.fmstr-cmp-pfu-rel__card {\ndisplay: flex; align-items: center; gap: 12px;\nbackground: var(--c-card); border: 1px solid var(--c-border);\nborder-radius: 12px; padding: 12px 14px;\ncolor: inherit !important; text-decoration: none !important;\ntransition: border-color .15s ease, box-shadow .15s ease, transform .15s ease, background .15s ease;\nmin-width: 0;\nposition: relative;\n}\n.fmstr-cmp-pfu-rel__card:hover {\nborder-color: #d6c5fa;\nbackground: #fbfaff;\nbox-shadow: 0 4px 16px rgba(105, 65, 198, 0.08);\ntransform: translateY(-1px);\n}\n.fmstr-cmp-pfu-rel__icon {\nflex-shrink: 0;\nwidth: 36px; height: 36px;\ndisplay: grid; place-items: center;\nbackground: linear-gradient(135deg, var(--c-tint) 0%, #efe4ff 100%);\nborder: 1px solid var(--c-edge);\nborder-radius: 8px;\ncolor: var(--c-violet-600);\n}\n.fmstr-cmp-pfu-rel__icon svg { width: 18px; height: 18px; }\n.fmstr-cmp-pfu-rel__text { flex: 1; min-width: 0; }\n.fmstr-cmp-pfu-rel__title {\nfont-size: 14.5px !important;\nfont-weight: 600 !important;\ncolor: var(--c-fg-1);\nline-height: 1.3 !important;\nmargin: 0 0 2px !important; margin-top: 0 !important;\nletter-spacing: -.005em;\ndisplay: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;\noverflow: hidden;\n}\n.fmstr-cmp-pfu-rel__sub {\nfont-size: 12.5px !important; line-height: 1.4 !important;\ncolor: var(--c-fg-3); margin: 0 !important; margin-bottom: 0 !important;\ndisplay: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;\noverflow: hidden;\n}\n.fmstr-cmp-pfu-rel__arrow {\nflex-shrink: 0;\nwidth: 22px; height: 22px;\ndisplay: grid; place-items: center;\ncolor: var(--c-violet-600);\nfont-size: 14px; font-weight: 700;\ntransition: transform .15s ease;\n}\n.fmstr-cmp-pfu-rel__card:hover .fmstr-cmp-pfu-rel__arrow { transform: translateX(3px); }\n@media (max-width: 560px) {\n.fmstr-cmp-pfu-rel { padding: 8px 0 0; }\n.fmstr-cmp-pfu-rel__grid { grid-template-columns: 1fr; gap: 10px; }\n.fmstr-cmp-pfu-rel__card { padding: 12px; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-pfu-rel\" aria-labelledby=\"fmstr-cmp-pfu-rel-h2\">\n\u003Cdiv class=\"fmstr-cmp-pfu-rel__container\">\n\u003Cdiv class=\"fmstr-cmp-pfu-rel__head\">\n\u003Cdiv class=\"fmstr-cmp-pfu-rel__eyebrow\">More on Formester\u003C\u002Fdiv>\n\u003Ch2 class=\"fmstr-cmp-pfu-rel__h2\" id=\"fmstr-cmp-pfu-rel-h2\">More on form pre-filling and personalization\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-pfu-rel__intro\">Pre-fill fields, route data, and personalize forms with surrounding Formester features.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-pfu-rel__grid\">\n\n\u003Ca class=\"fmstr-cmp-pfu-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fpre-fill-fields\u002F\">\n\u003Cspan class=\"fmstr-cmp-pfu-rel__icon\" aria-hidden=\"true\">\n\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\u003Cpath d=\"M12 20h9\"\u002F>\u003Cpath d=\"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z\"\u002F>\u003C\u002Fsvg>\n\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-pfu-rel__text\">\n\u003Ch3 class=\"fmstr-cmp-pfu-rel__title\">Pre-fill fields\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-pfu-rel__sub\">Native Formester feature\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cspan class=\"fmstr-cmp-pfu-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-pfu-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fconditional-logic\u002F\">\n\u003Cspan class=\"fmstr-cmp-pfu-rel__icon\" aria-hidden=\"true\">\n\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\u003Cpolyline points=\"6 3 6 21\"\u002F>\u003Cpolyline points=\"18 3 18 9\"\u002F>\u003Cpath d=\"M6 9c0 6 12 6 12 12\"\u002F>\u003C\u002Fsvg>\n\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-pfu-rel__text\">\n\u003Ch3 class=\"fmstr-cmp-pfu-rel__title\">Conditional logic\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-pfu-rel__sub\">Branching after pre-fill\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cspan class=\"fmstr-cmp-pfu-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-pfu-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fai-form-generator\u002F\">\n\u003Cspan class=\"fmstr-cmp-pfu-rel__icon\" aria-hidden=\"true\">\n\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\u003Cpath d=\"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72\"\u002F>\u003Cpath d=\"m14 7 3 3\"\u002F>\u003Cpath d=\"M5 6v4\"\u002F>\u003Cpath d=\"M19 14v4\"\u002F>\u003Cpath d=\"M10 2v2\"\u002F>\u003Cpath d=\"M7 8H3\"\u002F>\u003Cpath d=\"M21 16h-4\"\u002F>\u003Cpath d=\"M11 3H9\"\u002F>\u003C\u002Fsvg>\n\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-pfu-rel__text\">\n\u003Ch3 class=\"fmstr-cmp-pfu-rel__title\">AI Form Generator\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-pfu-rel__sub\">Forms from one prompt\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cspan class=\"fmstr-cmp-pfu-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-pfu-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fintegrations\u002F\">\n\u003Cspan class=\"fmstr-cmp-pfu-rel__icon\" aria-hidden=\"true\">\n\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\u003Cpath d=\"M12 22v-5\"\u002F>\u003Cpath d=\"M9 7V2\"\u002F>\u003Cpath d=\"M15 7V2\"\u002F>\u003Cpath d=\"M6 13V8a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4\"\u002F>\u003C\u002Fsvg>\n\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-pfu-rel__text\">\n\u003Ch3 class=\"fmstr-cmp-pfu-rel__title\">Integrations\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-pfu-rel__sub\">Pipe form data to CRMs\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cspan class=\"fmstr-cmp-pfu-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-pfu-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fform-limiter\u002F\">\n\u003Cspan class=\"fmstr-cmp-pfu-rel__icon\" aria-hidden=\"true\">\n\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpolyline points=\"12 6 12 12 16 14\"\u002F>\u003C\u002Fsvg>\n\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-pfu-rel__text\">\n\u003Ch3 class=\"fmstr-cmp-pfu-rel__title\">Form Limiter\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-pfu-rel__sub\">One pre-filled link per user\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cspan class=\"fmstr-cmp-pfu-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-pfu-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-make-a-questionnaire-in-google-forms\u002F\">\n\u003Cspan class=\"fmstr-cmp-pfu-rel__icon\" aria-hidden=\"true\">\n\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\u003Cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u002F>\u003Cpolyline points=\"14 2 14 8 20 8\"\u002F>\u003Cline x1=\"9\" y1=\"13\" x2=\"15\" y2=\"13\"\u002F>\u003Cline x1=\"9\" y1=\"17\" x2=\"15\" y2=\"17\"\u002F>\u003C\u002Fsvg>\n\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-pfu-rel__text\">\n\u003Ch3 class=\"fmstr-cmp-pfu-rel__title\">Questionnaire in Google Forms\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-pfu-rel__sub\">Step-by-step\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cspan class=\"fmstr-cmp-pfu-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-pfu-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fblog\u002Fbest-google-forms-templates\u002F\">\n\u003Cspan class=\"fmstr-cmp-pfu-rel__icon\" aria-hidden=\"true\">\n\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\u003Crect width=\"7\" height=\"7\" x=\"3\" y=\"3\" rx=\"1\"\u002F>\u003Crect width=\"7\" height=\"7\" x=\"14\" y=\"3\" rx=\"1\"\u002F>\u003Crect width=\"7\" height=\"7\" x=\"14\" y=\"14\" rx=\"1\"\u002F>\u003Crect width=\"7\" height=\"7\" x=\"3\" y=\"14\" rx=\"1\"\u002F>\u003C\u002Fsvg>\n\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-pfu-rel__text\">\n\u003Ch3 class=\"fmstr-cmp-pfu-rel__title\">Best Google Forms templates\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-pfu-rel__sub\">30 ready-made forms\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cspan class=\"fmstr-cmp-pfu-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-pfu-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Ftemplates\u002Fcategories\u002Fcontact-forms\u002F\">\n\u003Cspan class=\"fmstr-cmp-pfu-rel__icon\" aria-hidden=\"true\">\n\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\"\u002F>\u003Cline x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\u002F>\u003C\u002Fsvg>\n\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-pfu-rel__text\">\n\u003Ch3 class=\"fmstr-cmp-pfu-rel__title\">Contact form templates\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-pfu-rel__sub\">Browse + pre-fill\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cspan class=\"fmstr-cmp-pfu-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\u003Cscript type=\"application\u002Fld+json\">{\"@context\": \"https:\u002F\u002Fschema.org\", \"@type\": \"FAQPage\", \"mainEntity\": [{\"@type\": \"Question\", \"name\": \"How do I pre-fill a Google Form using a URL?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"In your form, click the three-dot menu, choose Get pre-filled link, fill in the values you want to pre-fill, then click Get link. Google Forms returns a URL with the pre-filled values as query parameters. Share that URL.\"}}, {\"@type\": \"Question\", \"name\": \"Can I pre-fill any field type with URL parameters?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"You can pre-fill short answer, paragraph, multiple choice, checkbox, dropdown, linear scale, date, and time fields. File upload fields cannot be pre-filled for security reasons.\"}}, {\"@type\": \"Question\", \"name\": \"What does a pre-filled Google Forms URL look like?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"It looks like: \u003Chttps:\u002F\u002Fdocs.google.com\u002Fforms\u002Fd\u002Fe\u002F[form-id>\\\\]\u002Fviewform?usp=pp\\\\_url\\\\&entry.\\\\[field-id\\\\]=\\\\[value\\\\]\\\\&entry.\\\\[field-id\\\\]=\\\\[value\\\\]. Each entry.\\\\[field-id\\\\] is a unique question; replace \\\\[value\\\\] with the pre-fill content.\"}}, {\"@type\": \"Question\", \"name\": \"Can I use merge tags to pre-fill form URLs from a CRM?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Yes. Replace the \\\\[value\\\\] in the URL with your CRM's merge tags. HubSpot example: entry.123456={{contact.email}}. Mailchimp example: entry.123456=*|EMAIL|*. The CRM substitutes each recipient's data when sending.\"}}, {\"@type\": \"Question\", \"name\": \"Why isn't my URL pre-fill working?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Most common causes: wrong entry ID, special characters not URL-encoded, the field type doesn't support pre-fill (e.g., file upload), or the form requires sign-in. Re-generate the pre-fill URL and URL-encode spaces as %20.\"}}, {\"@type\": \"Question\", \"name\": \"Can I pre-fill a Google Form embedded in a website?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Yes. Append URL parameters to the src attribute of the iframe's URL: src='\\\\[embed-url\\\\]?entry.123=value'. The embedded form loads with the values pre-filled.\"}}, {\"@type\": \"Question\", \"name\": \"Does Formester support URL pre-fill?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Yes. In Formester, click Share, choose Pre-filled URL, fill in the values, and copy the link. Formester also supports per-field merge tags and dynamic pre-fill via API.\"}}, {\"@type\": \"Question\", \"name\": \"Can I pre-fill a form from email marketing tools?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Yes. Use merge tags from the email tool to insert the URL parameters. Mailchimp, ActiveCampaign, ConvertKit, and HubSpot all support merge tags inside link URLs.\"}}, {\"@type\": \"Question\", \"name\": \"Is URL pre-fill secure for sensitive data?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"URL pre-fill is visible in browser history and server logs. Don't pre-fill sensitive data like passwords, SSNs, or credit card numbers. For sensitive pre-fill, use server-side session-based pre-fill instead.\"}}, {\"@type\": \"Question\", \"name\": \"Does URL pre-fill work with required fields?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Yes. Required fields can be pre-filled. The respondent can still edit the pre-filled value, and submission validation still runs.\"}}]}\u003C\u002Fscript>\n\u003Cscript type=\"application\u002Fld+json\">{\"@context\": \"https:\u002F\u002Fschema.org\", \"@type\": \"Article\", \"headline\": \"How to Pre-fill Form Fields by URL Parameters (Step-by-Step)\", \"description\": \"Pre-fill form fields by URL parameters in Google Forms or Formester. Build pre-filled URLs, embed merge tags, and reduce form abandonment. With video.\", \"author\": {\"@type\": \"Person\", \"name\": \"Harish Kumar\", \"url\": \"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fharish-kumar2424\u002F\"}, \"publisher\": {\"@type\": \"Organization\", \"name\": \"Formester\", \"logo\": {\"@type\": \"ImageObject\", \"url\": \"https:\u002F\u002Fformester.com\u002Flogo.svg\"}}, \"dateModified\": \"2026-06-05\"}\u003C\u002Fscript>\n\u003Cscript type=\"application\u002Fld+json\">{\"@context\": \"https:\u002F\u002Fschema.org\", \"@type\": \"BreadcrumbList\", \"itemListElement\": [{\"@type\": \"ListItem\", \"position\": 1, \"name\": \"Home\", \"item\": \"https:\u002F\u002Fformester.com\u002F\"}, {\"@type\": \"ListItem\", \"position\": 2, \"name\": \"Blog\", \"item\": \"https:\u002F\u002Fformester.com\u002Fblog\u002F\"}, {\"@type\": \"ListItem\", \"position\": 3, \"name\": \"How to Pre-fill Form Fields by URL Parameters (Step-by-Step)\", \"item\": \"https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-pre-fill-form-fields-by-url-parameters\u002F\"}]}\u003C\u002Fscript>\n\u003Cscript type=\"application\u002Fld+json\">{\"@context\": \"https:\u002F\u002Fschema.org\", \"@type\": \"VideoObject\", \"name\": \"How to Pre-fill Form Fields by URL Parameters (Step-by-Step)\", \"description\": \"Pre-fill form fields by URL parameters in Google Forms or Formester. Build pre-filled URLs, embed merge tags, and reduce form abandonment. With video.\", \"thumbnailUrl\": \"https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FDkDJy4fQRIQ\u002Fmaxresdefault.jpg\", \"uploadDate\": \"2025-05-15\", \"contentUrl\": \"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=DkDJy4fQRIQ\", \"embedUrl\": \"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FDkDJy4fQRIQ\"}\u003C\u002Fscript>\n","blog\u002Fblog\u002Fhow-to-pre-fill-form-fields-by-url-parameters.md",{"text":242},"8 min read",1788439051040]