If you already know a patient's name, email, or appointment date, don't make them type it again. URL pre-filling puts that data in the form before the patient opens it.
How It Works
Add parameters to your form URL:
https://formisoft.com/f/abc123?name=John%20Doe&email=john@example.com
When John opens the link, name and email are already filled in. He can still edit them.
Formisoft matches parameters to fields by field ID (exact, recommended) or label (case-insensitive). Use IDs for integrations, since labels change.
Why This Matters
Fewer errors. A field the patient doesn't type is a field they can't mistype, and the data matches your other systems.
More completed forms. A form that opens partly filled feels shorter.
Data you already have, reused. Your portal or scheduling system already knows the patient. Pre-filling passes that forward.
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 a follow-up email
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 must be URL-encoded (a space becomes %20 or +). Use your language's encoding function rather than building URLs by hand.
Security Considerations
URLs end up in browser history and server logs, and get shared:
- 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 values are included in webhook payloads and CSV exports
Field Type Compatibility
Pre-filling works for text, email, phone, number, date, dropdown, radio, and checkbox fields. File uploads and e-signatures can't be pre-filled.
Design for Fallback
Design every form to work without pre-filling. If a parameter is missing or the URL gets mangled, the patient can still type the answer. Pre-filling is a convenience, not a dependency.
Connect intake to the rest of your front desk.
- Forms, consents, and signatures before the visit
- Your paper forms converted by AI
- BAA included