# Define render parameters

Add fields, choose types, set defaults, and use Payload to prepare template data.

To reuse a template with different data, first declare the fields it accepts. **Parameters** lets you name each field, choose its type, and provide a default value.

Start with a simple field, connect it to HTML, then open Payload to inspect the resulting data structure.

## 1. Add a field in Schema

Open **Parameters**, select **Schema**, and choose **Add**. Rename the new field to the name you want to use, such as `recipient`.

| Type | Suitable data |
| --- | --- |
| Text | Names, addresses, references, or formatted strings. |
| Number | Quantities or numeric values. |
| Boolean | `true` / `false`. |
| Object | A named group of fields. |
| Array | A list of elements with the same structure. |

**Color** and **Asset** are prop-only types in the current editor, so they do not appear in the Parameters type list.

<figure class="doc-sim data-assets-illustration" aria-label="Parameters → Add → Schema">
<div class="sim-stage"><div class="sim-panel"><div class="ds-head"><strong>Parameters</strong><span class="sim-control sim-focus">＋ Add</span></div><div class="sim-tabs"><span class="sim-active">Schema</span><span>Payload</span></div><div class="sim-prop-card ds-field"><div class="sim-prop-name"><b>recipient</b><span class="ds-type">Text <svg class="sim-chevron" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="m4 6 4 4 4-4" /></svg></span></div><div class="sim-prop-value"><small class="sim-label">DEFAULT</small><span class="sim-input">Tembuilder</span><span class="sim-embed">{{ params.recipient }}</span></div></div></div></div>
<figcaption>Parameters → Add → Schema</figcaption>
</figure>

## 2. Set Default and Required

Enter **Default** on the field card to provide a value when the caller omits the field. The required control in the card header toggles the field’s **Required** status.

Use values of the declared type: a Number uses `2`, and a Boolean uses `true` or `false`. The string `"2"` is not a number. An empty string is still a supplied value, not an omitted field.

Add a description to explain the value’s purpose, units, or expected format to someone using the template.

<figure class="doc-sim data-assets-illustration" aria-label="Name, type, Default, and Required appear on the same field card">
<div class="sim-stage"><div class="sim-panel"><div class="ds-head"><strong>Schema</strong></div><div class="sim-prop-card ds-field"><div class="sim-prop-name"><b>recipient <em>*</em></b><span class="ds-type">Text <svg class="sim-chevron" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="m4 6 4 4 4-4" /></svg></span></div><div class="sim-prop-value"><small class="sim-label">DEFAULT</small><span class="sim-input sim-focus">Tembuilder</span><span class="sim-embed">{{ params.recipient }}</span></div></div></div><div class="ds-rows"><div><span>Default</span><small>Used when the field is omitted</small></div><div><span>Required</span><small>Marks a required field</small></div></div></div>
<figcaption>Name, type, Default, and Required appear on the same field card</figcaption>
</figure>

## 3. Connect the field to content

Each card includes an **EMBED** expression. For `recipient`, insert this into a section’s HTML:

```handlebars
<p>{{ params.recipient }}</p>
```

`recipient` must match the Schema name. If you rename the field later, update both the HTML expression and the data supplied to the template.

<figure class="doc-sim data-assets-illustration" aria-label="Copy the EMBED expression into section HTML">
<div class="sim-stage"><div class="sim-prop-card ds-field"><div class="sim-prop-name"><b>recipient</b><span class="ds-type">Text <svg class="sim-chevron" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="m4 6 4 4 4-4" /></svg></span></div><div class="sim-prop-value"><small class="sim-label">DEFAULT</small><span class="sim-input">Tembuilder</span><span class="sim-embed">{{ params.recipient }}</span></div></div><div class="ds-code sim-focus"><code>{{ params.recipient }}</code></div></div>
<figcaption>Copy the EMBED expression into section HTML</figcaption>
</figure>

## 4. Get the structure from Payload

Switch to **Payload** to inspect the object built from the declared fields and defaults:

```json
{
  "recipient": "Tembuilder",
  "copies": 2,
  "showNotes": true
}
```

This is the template’s data object. Use the same structure when entering data in **Run**. For API integration, the object belongs in the request’s `parameters` field; see the [Render API reference](/docs/developers/render-reference/) for the request fields and endpoints.

For nested fields and lists, continue with [Objects, arrays, and tables](/docs/data/arrays-objects/).

<figure class="doc-sim data-assets-illustration" aria-label="Schema → Payload → Run">
<div class="sim-stage"><div class="sim-panel"><div class="ds-head"><strong>Parameters</strong></div><div class="sim-tabs"><span>Schema</span><span class="sim-active">Payload</span></div><div class="ds-code sim-focus"><code>{</code><code>  "recipient": "Tembuilder",</code><code>  "copies": 2,</code><code>  "showNotes": true</code><code>}</code></div></div></div>
<figcaption>Schema → Payload → Run</figcaption>
</figure>
