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.