This page describes how to build links that open a form with fields already filled in. Each form lives on its own page; use the correct path and field names below.
demand-letter.html — form id demand-lettermechanics-lien.html — form id mechanics-lienrelease-lien.html — form id release-lienProduction URLs use https://lientooling.com as the origin.
Append query parameters whose names match the exact HTML name attribute of each field. Values should be URL-encoded (e.g. spaces as %20).
https://lientooling.com/demand-letter.html?client-name=Jane%20Doe&invoice-number=INV-001
Limits: Browsers and proxies cap URL length. Shallow links work well for a few short fields. Long text (legal descriptions, payment instructions) belongs in the hash payload below.
Put a single payload in the fragment after #d=:
https://lientooling.com/<page>.html#d=<base64url(JSON)>
Example path: demand-letter.html, mechanics-lien.html, or release-lien.html.
The JSON object maps each field name to a value:
YYYY-MM-DD).include-late-fees, include-notarial) → JSON booleans true / false.Encoding steps:
- instead of +, _ instead of /, and remove = padding.Easiest path: On each form page, use the Copy shareable link button to generate a correct #d= link from the current field values.
#d= are present, the page applies query first, then the hash object. The hash wins on duplicate keys.localStorage (keys like lienToolingDraft:demand-letter) are not restored when the URL includes any recognized query field or a non-empty #d= payload—the link takes precedence.Query strings may be logged by servers, analytics, or sent in the Referer header when users navigate away. The hash is not sent to the server on the initial page load, but anyone with the full URL can read it. Treat shared links like sensitive documents.
Use these strings exactly as query keys or JSON keys.
business-name, sender-name, business-address, business-city, business-state, business-zip, business-phone, business-email, client-name, client-address, client-city, client-state, client-zip, invoice-number, invoice-date, due-date, payment-deadline, service-description, service-dates, completion-date, invoice-total, payments-received, outstanding-balance, include-late-fees, include-notarial, payment-method
Example: https://lientooling.com/demand-letter.html?client-name=Acme&invoice-number=INV-100
claimant-name, company-name, claimant-address, claimant-city, claimant-state, claimant-zip, owner-name, owner-address, owner-city, owner-state, owner-zip, property-address, property-city, property-state, property-zip, property-county, legal-description, work-description, work-start, work-end, unpaid-amount, customer-name, notice-date, contractor-name, contractor-address, contractor-city, contractor-state, contractor-zip
Example: https://lientooling.com/mechanics-lien.html?property-county=Travis&customer-name=Acme%20LLC
lien-reference, payment-date, claimant-name, company-name, claimant-address, claimant-city, claimant-state, claimant-zip, filing-date, property-description, owner-name, property-county, property-address, property-city, property-state, property-zip
Example: https://lientooling.com/release-lien.html?lien-reference=ML-2025-001&owner-name=Jane%20Doe