Guide
Filling prompt templates from a form or a spreadsheet
When you use a language model for the same task many times, such as product descriptions, ticket summaries or evaluation questions, the prompt should be identical except for the details that change. Copying and editing it by hand invites drift and typos. A template with variables keeps the instructions fixed and lets you fill in only what varies. This tool fills templates once from a form or hundreds of times from a spreadsheet.
The variable syntax
Write the prompt as usual and mark each variable as a name inside double curly braces. Names can contain letters, digits, dots, dashes and underscores, and spaces inside the braces are ignored, so the same name with or without padding refers to one variable. As you type, the tool finds every distinct variable and creates a field for it. Using the same name twice fills both places with the same value.
One prompt or a batch
In single mode, fill the fields and copy the result. In batch mode, paste a CSV or TSV whose header row names the variables; each following row produces one prompt. Values typed into the form act as fixed values for variables that the CSV does not contain, such as the brand name or the tone, so the spreadsheet only needs the columns that change from row to row.
Missing values
A variable with no value in the form or the current row is left in place as written, and the tool lists which ones are missing, so an incomplete prompt is obvious rather than silently sending empty text. Values are inserted as plain text after the template has been parsed, so a value that happens to contain braces is never treated as another variable.
Export formats
“JSONL {id, prompt}” writes one JSON object per line with a running id and the filled prompt, a convenient input for scripts and evaluation tools. “OpenAI Batch API JSONL” writes requests in the format the Batch API expects: a custom_id such as row-3, method POST, url /v1/chat/completions and a body with the model and a single user message; replace MODEL_NAME before uploading. “Plain text” separates prompts with a line of dashes for reading or pasting.
A worked example
The Sample template asks a copywriter persona to describe a product for an audience with a set length and features. The CSV has three rows: trail running shoes, an insulated bottle and noise-cancelling headphones, and the form supplies the brand “Northwind Outdoors” and the tone. The first prompt’s second line reads Write a 60-word product description for "Trail running shoes" aimed at weekend runners., and the JSONL export’s first record has id 1. In Batch API format, the third line carries custom_id row-3 and the chat completions URL.
Checks before sending
Read a few filled prompts with the Previous and Next buttons before exporting; mistakes in a template repeat in every row. Count the tokens of the longest prompt to make sure it fits the model’s context window and to estimate the cost of the whole batch. Keep personal data out of spreadsheets you turn into prompts unless your agreement with the provider covers it.
Why not just a script
A short script can do the same, and for production pipelines it should. The tool is for the steps before that: drafting the template, testing it on real rows and producing a first batch without writing code, all in the browser with nothing sent to an AI service.
Related tools
- LLM Token Counter measures the filled prompts and estimates cost.
- JSON Lines Converter validates and reshapes the exported file.
- CSV to JSON converts the spreadsheet for other tools.
- Word Counter checks the length of generated descriptions.
Checked against the current version of the Prompt Template Filler on .

