← Back to Blog
Integration

Pre-Fill Form Fields from URL Parameters

February 7, 2026

If you already know a patient's name, email, or appointment date, why make them type it again? URL pre-filling passes data into form fields automatically. The patient opens the link and their information is already there.

How It Works

Add parameters to your form URL:

https://formisoft.com/f/abc123?name=John%20Doe&email=john@example.com

When John opens this link, the name and email fields are pre-populated. He can edit them if needed, but he doesn't have to re-enter what you already know.

Formisoft matches URL parameters to form fields by field ID (exact match, recommended) or field label (case-insensitive). Field IDs are more reliable for integrations since labels might change.

Why This Matters

Less typing = fewer errors. Every field a patient doesn't have to type is a field they can't mistype. Pre-filling known data keeps it consistent across systems.

Higher completion rates. A form that's already 30% filled out when a patient opens it feels shorter. That psychological head start makes a real difference in whether they finish.

Seamless system connections. Your patient portal, EHR, or scheduling system already has patient data. Pre-filling passes that data forward instead of asking patients to re-enter it.

Practical Examples

From a patient portal

https://formisoft.com/f/intake?patientId=P12345&name=Jane%20Doe&dob=1990-01-15

From an appointment system

https://formisoft.com/f/pre-visit?appointmentDate=2026-04-10&provider=Dr.%20Smith&visitType=Annual%20Physical

From an email campaign

https://formisoft.com/f/followup?email=patient@example.com&lastVisit=2026-01-15

Building Pre-Fill URLs

In Python

import urllib.parse

base_url = "https://formisoft.com/f/abc123"
params = {
    "patientName": "Jane Doe",
    "email": "jane@example.com",
    "appointmentDate": "2026-04-10"
}

url = f"{base_url}?{urllib.parse.urlencode(params)}"

In JavaScript

const baseUrl = "https://formisoft.com/f/abc123";
const params = new URLSearchParams({
    patientName: "Jane Doe",
    email: "jane@example.com",
    appointmentDate: "2026-04-10"
});

const url = `${baseUrl}?${params.toString()}`;

Important: URL Encoding

Spaces, @, and other special characters need to be URL-encoded. Spaces become %20 or +. Most programming languages handle this automatically with their URL encoding functions, so use them instead of manually constructing URLs.

Security Considerations

URLs show up in browser history, server logs, and can be bookmarked or shared. Keep this in mind:

  • Don't put PHI in URLs when you can avoid it. A patient ID that references data in your secure system is fine. A full SSN in a URL parameter is not.
  • Use field IDs instead of labels for integration URLs. Field IDs are opaque, so the URL doesn't reveal what data is being passed.
  • For sensitive intake, use magic-link emails instead. They provide single-use, time-limited access without exposing data in sharable URLs.

What Happens with Pre-Filled Data

  • Pre-filled values are editable, and patients can change them
  • Validation rules still apply to pre-filled data
  • Conditional logic triggers based on pre-filled values (so you can pre-select an option and have the form branch accordingly)
  • Pre-filled data works with auto-save on multi-page forms
  • Pre-filled values are included in webhook payloads and CSV exports

Field Type Compatibility

Pre-filling works across all field types: text, email, phone, numbers, dates, dropdowns, radio buttons, and checkboxes. Some complex fields (like file uploads or e-signatures) can't be pre-filled for obvious reasons.

Design for Fallback

Always design your form to work without pre-filling. If a parameter is missing or the URL gets mangled, the patient should still be able to fill in the field manually. Pre-filling is a convenience, not a dependency.

URL pre-filling bridges the gap between your existing systems and your intake forms. It's a small integration that removes friction for patients and keeps data consistent across your workflow. If your forms ask patients to re-enter data you already have, pre-filling is the fix.

Ready to digitize your intake?

Start building HIPAA-ready patient intake forms in minutes.

Get Started