How to Show Prefilled Read-Only Fields in Airtable Forms
You want to send someone a form with information already filled in.
For example:
Name: John Smith Company: Acme Project: Website Redesign
The person filling out the form should see these details so they know which project the form is for.
But they shouldn't be able to change them.
This is where Airtable's native forms have a limitation.
You can prefill fields using URL parameters, but for normal form fields, Airtable doesn't give you a general setting that makes a dynamically prefilled value visible and read-only.
There are two ways I would handle this.

Option 1: Prefill the field and hide it
If the respondent doesn't actually need to see the value, Airtable can handle this.
You can build a prefilled form URL using:
prefill_FieldName=value
Then hide that same field using:
hide_FieldName=true
For example, you could prefill a Project field with the correct project and hide it from the form.
The respondent never sees the field, but Airtable still includes the value when the form is submitted.
This works well for IDs, project references, source information, and other values you need behind the scenes.
There is one important limitation.
Hidden prefilled values are not a security feature.
The value is still part of the URL, and someone can modify the URL to reveal or change what is being passed.
So I wouldn't use this method for sensitive information or anything where the respondent must not be able to manipulate the value.
Option 2: Display the value as read-only text in Fillout
If the respondent needs to see the value but not edit it, I would use Fillout.
You can pass information into Fillout using URL parameters.
For example, your link could contain information identifying the project the form belongs to.
Inside the form, you can then reference that parameter in a heading or paragraph.
The respondent might see:
Project: Website Redesign
It's displayed as normal text rather than an editable input.
You can do the same with multiple values:
Customer: Acme Project: Website Redesign Account Manager: Sarah
Fillout lets you reference URL parameters and other dynamic data by typing @ inside headings, paragraphs, and other content.
This gives the respondent the context they need without presenting those values as fields they can change.
The same values can also be mapped to Airtable when the form is submitted.
Which option should you use?
If the value only needs to reach Airtable and the respondent doesn't need to see it, prefill and hide it in Airtable.
If the respondent needs to see dynamic information without being able to edit it, display it as dynamic text in Fillout.
That's usually much cleaner than trying to turn Airtable's editable form fields into read-only fields.