Pre-Fill Form Fields from URL Parameters

Pass data into form fields via URL parameters so patients don't re-enter information you already have. Here's how to set it up.

Formisoft Team

· 2 min read

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
Get started

Connect intake to the rest of your front desk.

Patients finish forms, consents, and insurance cards from their phone. Everything included, set up for you.

BAA included · We set up your front desk