Availability: Business and Enterprise plans
If you're ready to automate your workflow further, pre-fill information for your recipients and capture events from your form.
Skip to:
Note: We can't provide support for pre-filling information or capturing events from forms.
Learn more about embedding your form on a website on our developers portal.
How to pre-populate information in your form
When you pre-fill information on your form, your recipients only need to sign the document. Here's what you can pre-populate:
Type | What it does | Identified by | Visible to recipient? |
Recipients | Fills in the answers about each document recipient - name, email, and any predefined role variables (e.g. Client.FirstName) | The role name (e.g. Client) | Yes - shown as recipient questions |
Metadata | Attaches internal tracking data to the resulting document (e.g. a CRM lead ID) | Any key you choose | No - internal only |
Variables | Fills in custom document variables that aren't tied to any form field | The variable name, exactly as named in the template | Yes - wherever that variable appears in the doc |
Fields | Fills in a form field the recipient would otherwise fill in - text, checkbox, date, or dropdown. Filling a field linked to a variable updates that variable too | The field ID | Yes - the field, and anywhere its linked variable appears |
The one people mix up most: fields vs. variables.
A field is an interactive question on the form (text box, checkbox, date picker, dropdown) - use its field ID.
A variable is a merge-tag placeholder in the document body, like [Client.FirstName] or [custom_var]. Predefined role variables fill through recipients, not variables - reserve variables for custom document variables with no matching form field.
If you're not sure which one you're looking at, check the template or form builder.
Find your identifiers
Before you build a pre-fill link, get three things: the role name, the field ID(s), and the variable name(s) if you use any.
Recipients
Go to the template's Roles panel. Role names are listed exactly as they'll appear for recipients (e.g. Client).
Field
Open the template editor.
Select the field you want to pre-fill.
Select the gear icon to open the field settings and find the Field ID.
Use this ID to pre-fill the field. You can rename it, but keep it unique within the document.
Note: The field ID isn't the question text the recipient sees - a field labeled "What is your name?" might have a field ID of var1. Always confirm it in the settings panel.
For dropdowns, use the option label exactly as it appears on the form.
For date fields, check the field's configured date format in the template.
For checkboxes, use boolean values:
trueorfalse.
Variable name
Find it in either place:
Template editor → Variables panel, or
Form builder → open the form question linked to the variable. The linked variable name appears in the top-left corner of that question's box.
Use the name exactly as shown - this is what goes in variables.
Learn more about pre-filling information in a form.
Pre-fill values using a direct link
Pre-fill recipient data, metadata, variables, and fields - without embedding your form - by adding the data as a URL parameter.
Example
Say your template has one role (Client) and four fields: cust_text (text), check (checkbox), date_field (date), drop_down (dropdown). Here's the data as JSON:
{
"recipients": {
"Client": {
"Email": "jane.doe@example.com",
"FirstName": "Jane",
"LastName": "Doe"
}
},
"fields": {
"cust_text": "Hello World",
"check": true,
"date_field": "2026-07-01",
"drop_down": "Option 3"
}
}Each top-level key (recipients, fields) becomes its own URL-encoded query parameter:
https://form.pandadoc.com/form/YOUR_FORM_ID?recipients=%7B%22Client%22%3A%7B%22Email%22%3A%22jane.doe%40example.com%22%2C%22FirstName%22%3A%22Jane%22%2C%22LastName%22%3A%22Doe%22%7D%7D&fields=%7B%22cust_text%22%3A%22Hello%20World%22%2C%22check%22%3Atrue%2C%22date_field%22%3A%222026-07-01%22%2C%22drop_down%22%3A%22Option%203%22%7D
Open that link, and the recipient lands on the form with their name and email already filled in, and all four fields pre-populated.
Learn more about pre-filling values using a direct link.
How to capture events from your form
Capturing events from your form gives you more control over how your embedded form behaves.
You can subscribe to the following types of events:
Loaded: Fires when the form loads and asks the recipient for contact details (name and email address).
Started: Fires when a recipient enters contact details for recipients and selects Review document.
Completed: Fires when a recipient fills out the assigned fields and completes the document by selecting Finish. Use this event to redirect a recipient to a specific page once the document is signed.
Exception: Fires when an error occurs while a recipient is attempting to complete a document.
Redirect requested: Fires when a recipient needs to be redirected to the URL provided in the event payload.
Common mistakes
Using the visible label instead of the field ID. Confirm the ID in the field's settings panel in the template editor.
Putting a predefined role variable (like Client.FirstName) under variables. Those fill through recipients - variables is only for custom document variables not tied to a form field.
Forgetting to URL-encode the JSON when building a direct link. An un-encoded
{,", or space breaks the URL.Passing checkbox values as strings. Use the boolean
true/false, not"true"/"false".Mismatching the date format. If the value doesn't match the template's date field configuration, the field won't populate.
Learn more about events.

