# Step 3 : Design forms

Next up in the process we will be using the [<mark style="color:purple;">**form builder**</mark>](https://docs.senpiper.com/form-builder/introduction) tool for collecting data.

### 1. Create the Item Master

1. Name the form "**Item master**"
2. Make this form a **master form.&#x20;**<mark style="color:purple;">**Click here**</mark> to learn how to make a form as a master to other forms.
3. Add fields as mentioned in the below table. Learn more on <mark style="color:purple;">**how to add fields in a form**</mark>
4. Learn how to <mark style="color:purple;">**Apply Auto-generated value**</mark> in a field. To generate below mentioned Item IDs select.&#x20;
   * Type: **Sequence**
   * Prefix: **#ITM-**
   * Length of the sequence: **3**
   * When this sequence should be reset?: **Never**

> Leave suffix empty

<table><thead><tr><th>Field Name</th><th width="120">Field Type</th><th width="192">Field Values</th><th width="121">Mandatory </th></tr></thead><tbody><tr><td>Item ID</td><td>Text</td><td>Each itemID should follow a pattern #ITM-001   #ITM-002 and so on</td><td>Yes</td></tr><tr><td>Item Name</td><td>Text</td><td>Any value </td><td>Yes</td></tr><tr><td>Item Description</td><td>Text</td><td>Any value</td><td>No</td></tr><tr><td>Unit price</td><td>Number</td><td>Any value</td><td>Yes</td></tr><tr><td>Item Unit</td><td>Drop down/Select field</td><td>gram, kilogram, liters, ml, count</td><td>Yes</td></tr></tbody></table>

5\. Once, you've finished adding the fields click on "**create form**". Voila your item master is ready

### 2. Create the reimbursement form

1. Click on "**Add a new form**" in the <mark style="color:purple;">**action pane**</mark> of the group
2. Name the form "**reimbursement form**"
3. Apply the "Item master" created above as a master to this form. Learn how to <mark style="color:purple;">**apply a master form**</mark>
4. Add the fields as mentioned in the below table.
5. Apply the user profile settings on the following fields. Learn <mark style="color:purple;">**how to apply user profile settings**</mark>&#x20;
   * Name of the Employee
   * Email of the employee
   * Phone number of the employee
6. Enable the values in "Name of item" to be shown as a dropdown via the item master form. Learn how to <mark style="color:purple;">**link fields from the master form**</mark>.
   * Map "name of the item" to "item name" in the "item master" and enable "**Allow users to search and populate master values from this field**" toggle
7. Map the following fields in this form with "item master" form&#x20;
   * Item Id
   * Item description
   * Unit Price
   * Unit
8. Disallow users to values in the following fields. Mark the following fields as "read only" Learn how to <mark style="color:purple;">**maintain the state of the form fields**</mark>
9. Apply a formula on the field " Total Amount" = "Quantity" \* "Unit price" Learn how to <mark style="color:purple;">**apply formulas on the form fields.**</mark>
10. Add a status field and add the relevant values.

<table><thead><tr><th width="188">Field name</th><th width="125">Field Type</th><th width="257">Field Value</th><th width="125">Mandatory </th><th width="150">Keep editable</th><th width="356">Remark</th></tr></thead><tbody><tr><td>Name of the employee</td><td>Text</td><td>It should be populated from user profile automatically</td><td>Yes</td><td>No</td><td></td></tr><tr><td>Email of the employee</td><td>Email</td><td>It should be populated from user profile automatically</td><td>Yes</td><td>No</td><td></td></tr><tr><td>Phone number of the employee</td><td>Phone</td><td>It should be populated from user profile automatically</td><td></td><td></td><td></td></tr><tr><td>Name of the item</td><td>Text</td><td>It should come from Item master. Values should be shown in a drop down</td><td>Yes</td><td>Yes</td><td></td></tr><tr><td>Item ID</td><td>Text</td><td>Populate from Item master.</td><td>Yes</td><td>No</td><td>Auto populated from item master</td></tr><tr><td>Item Description</td><td>Text</td><td>Populate from Item master.</td><td>No</td><td>No</td><td>Auto populated from item master</td></tr><tr><td>Unit Price</td><td>Number</td><td>Populate from Item master.</td><td>Yes</td><td>No</td><td>Auto populated from item master</td></tr><tr><td>Unit</td><td>Text</td><td>Populate from Item master.</td><td>Yes</td><td>No</td><td></td></tr><tr><td>Quantity</td><td>Number</td><td>Any value</td><td>Yes</td><td>Yes</td><td>User will provide the quantity</td></tr><tr><td>Total amount for reimbursement</td><td>Number</td><td>Quantity * Unit price</td><td>Yes</td><td>No</td><td>It should get auto-calculated based on inputs</td></tr><tr><td>Invoice Attachement</td><td>Doc/Image</td><td>PDF/JPEG/PNG</td><td>Yes</td><td>Yes</td><td></td></tr><tr><td>Approval Remarks</td><td>Text</td><td>Any value</td><td>No</td><td>Yes</td><td>Only the approver of the reimbursement amount will provide the remarks.</td></tr><tr><td>Status</td><td>Status</td><td>Submitted, Approved, Rejected</td><td>Yes</td><td>No</td><td></td></tr></tbody></table>

### Testing the data collection layer of your application&#x20;

Congratulations! you have created the data collection layer of your form successfully. Now to test your forms

* Add an entry to item master and try to see if you can use this in your reimbursement form

Your forms should look like these below forms

* <mark style="color:purple;">**Sample item master form**</mark>
* <mark style="color:purple;">**Sample Reimbursement form**</mark>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.senpiper.com/digitize-a-sample-process/step-3-design-forms.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
