> ## Documentation Index
> Fetch the complete documentation index at: https://resources.athenaintel.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Smarter run forms

> Build text, dropdown, and file inputs, then define the structure of your AOP's reply

Give your Monday assistant the inputs it needs for each run. You will use prompt placeholders to build a form for your Agent Operating Procedure (AOP), then add a JSON schema to shape its reply. This lets you ask for consistent inputs and prepare output that another AOP can use.

**Before you start:** Watch [Files and data](02-files-and-data.mdx). Open your AOP and have a document ready to select.

<Frame caption="AOPs in depth · Episode 3 · Smarter run forms · 3:46">
  <video controls muted={false} playsInline preload="metadata" className="w-full aspect-video" poster="/images/courses/aops-in-depth/ep3-poster.jpg" src="https://mintcdn.com/athenaintelligence-e46bc9d3/PqPuebc_5Izuo949/images/courses/aops-in-depth/ep3.mp4?fit=max&auto=format&n=PqPuebc_5Izuo949&q=85&s=2d8236f4f19d52b11e56d5c85589f4cd" data-path="images/courses/aops-in-depth/ep3.mp4" />
</Frame>

<Accordion title="Steps in this video">
  1. Three input chips
  2. Insert and rename placeholders
  3. The run form it builds
  4. Pick a file and run
  5. Shape the reply
  6. When a schema is invalid
  7. What comes back
  8. Which input fits which job
</Accordion>

## Build the run form

1. In **Configuration**, find **Prompt Configuration** and **Variable Chips**. Choose **Variable Input** for free text, **Text Options** for a dropdown, or **File Selector** for an asset picker.

2. Tick **\[required]** before inserting a required input. Click a chip to insert its placeholder at the cursor in **Prompt**. Rename the placeholders and edit their parameters. For the course example, use:

   ```text theme={null}
   Prepare my Monday briefing.
   Focus area: [[ Focus area | required=true ]]
   Priority: [[ Priority | type=textOptions | options=Low,Medium,High | required=false ]]
   Project files: [[ Project files | type=assetSelector | filterType=document | required=false ]]
   ```

3. Open **AOP**. The placeholder names become form labels. Fill the required focus area and choose a priority. If you click **Run** with a required field empty, you see **Please fill in all required input fields**.

4. Click **Select asset (document)**. In **Select Assets (document)**, select a file and click **Select Assets**. Use **Change** to replace it. Click **Run** once your inputs are ready.

## Shape the reply

1. Return to **Configuration**. Under **Advanced Options**, open **Structured Output Schema (optional)**. A JSON schema describes the fields and types the reply should contain.
2. Under **Quick Examples - Click to Apply:**, choose **With Required Fields**. Look for **Valid JSON schema**. This example requires `answer` and `confidence`, with confidence defined as a number from 0 to 1.
3. If your edit shows **Object schema must have at least one property defined**, add a property or choose a valid example. Use **Clear Schema** to return to free-form replies.

## Good to know

* **Variable Input** accepts markdown and @mentions. **Text Options** uses the comma-separated values in `options=`. **File Selector** uses `filterType=` to filter assets.
* Only an object schema with at least one property is valid. Invalid edits are not saved; the last valid schema stays in place. A schema already saved but invalid shows **Invalid Schema**.
* Structured output is optional. If Athena cannot generate it, the run shows **Structured response could not be generated**.
* The video's reply diagram is illustrative. Episode 5 shows how a chained AOP can take inputs from the parent's output fields.

## Previous and next

[Previous: Files and data](02-files-and-data.mdx) · [Next: Know when it finishes](04-know-when-it-finishes.mdx)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.