# Templates

1. [Home](https://www.agilicus.com/)
2. [Agilicus AnyX Administrative Web Interface](https://www.agilicus.com/anyx-guide/agilicus-anyx-administrative-web-interface/)
3. [Resources](https://www.agilicus.com/anyx-guide/agilicus-anyx-administrative-web-interface/resources/)
4. Templates

![](https://www.agilicus.com/www/f36fb10f-featured-anyx-admin-resourcestemplates.png)## Templates

[CONTACT](/contact-us/)

The **Templates** pages (routes `/template-overview` and `/template-new`) manage file templates. A template is a file whose contents are modified on a case-by-case basis depending on who or what is accessing it. Users request or download the template, and the platform fills in per-user values such as an embedded application programming interface key. See [Resources (concepts)](/anyx-guide/agilicus-anyx-administrative-web-interface/concepts/resources/) and [End-user experience](/anyx-guide/agilicus-anyx-administrative-web-interface/concepts/end-user-experience/) for where templates fit in the platform.

## Purpose

A template uploads a base file and associates it with one or more resources. When a user with permission downloads the template, the platform renders the file with values substituted for that user and that resource, for example the user's email address and an application programming interface key. This is how mobile and desktop applications receive connection details tailored to each user.

The Templates overview lists every template with its file name, file type, descriptive text and associated resources, and lets you create, edit, replace, download and delete templates. The New Template wizard steps through the description, file upload, file information, associated resources, a review and a done step.

## Why use it

- Deliver a configuration file that is customised per user, such as a connection template with an embedded application programming interface key. See [Databases](/anyx-guide/agilicus-anyx-administrative-web-interface/resources/databases/) for the database connection template example.
- Give users a document template they can request or download, with their own details filled in.
- Automate provisioning: the template is rendered at download time, so there is nothing to update when a user changes.

## When to use it

- When an application on a user's device needs a text-based configuration file (for example XML or INI) that locates a resource and includes per-user credentials.
- When you want to distribute a standard document or file with values that differ per user.
- Whenever you add, change or remove a template, or change which resources it applies to.

**Prerequisite**: permission to administer templates (an owner or administrator role). Without it, the page shows a *no permissions* message.

## How to use it

### Templates overview

1. Open **Resources &gt; Templates &gt; Overview** from the left navigation.

![Templates overview](https://www.agilicus.com/www/b4dd2bc8-templates-overview.png)    The table lists every template with its file name, file type, descriptive text, associated resources and an actions menu. Use the toolbar buttons to **ADD TEMPLATE** or delete selected rows.

1. Open the **more** menu on a template row for the row actions:

![Templates overview row actions](https://www.agilicus.com/www/147cb269-templates-overview-row-actions.png)    - **Download Template**: downloads the template rendered with your own values.
- **Replace Template**: uploads a new file to replace the template's contents.
- **Test Template**: downloads the template in a test mode so you can verify the rendering.
- **Configure Resources**: opens the resources dialog to choose which resources the template applies to.

### Creating a template with the wizard

1. Open **Resources &gt; Templates &gt; New**. The wizard has six steps: **Description**, **Upload File**, **File Information**, **Resources**, **Apply**, and **Done**.

\#### Step 1: Description

1. Enter a **description**. The tooltip explains that this description helps to identify the template. It is the label shown to users as a button.

![Template wizard: step 1, description](https://www.agilicus.com/www/ec9c7084-templates-new-step1-description.png)    \#### Step 2: Upload File

1. Select **UPLOAD TEMPLATE FILE** (or drag a file onto the drop area) to choose the base file. A check mark confirms the file is staged for upload.

![Template wizard: step 2, upload](https://www.agilicus.com/www/6c526573-templates-new-step2-upload.png)    ![Template wizard: step 2, upload complete](https://www.agilicus.com/www/6c526573-templates-new-step2-upload-complete.png)    \#### Step 3: File Information

1. Enter the **file name** the template will be downloaded as, and the **content type** of the template file (for example `text/plain` or `text/xml`). The content type lets applications recognise and open the file automatically.

![Template wizard: step 3, file information](https://www.agilicus.com/www/1e1274a5-templates-new-step3-file-info.png)    \#### Step 4: Resources

1. Optionally select the resources the template applies to. The template is offered alongside these resources, so users can request it when they access the resource.

![Template wizard: step 4, resources](https://www.agilicus.com/www/7a727594-templates-new-step4-resources.png)    \#### Step 5: Apply

1. Review the summary, which restates the description, file name, file content type and resources. Select **APPLY** to create the template. Creation runs asynchronously; the wizard advances to Done automatically when it succeeds.

\#### Step 6: Done

1. The Done step confirms the template for the file was created and points you to the overview page (Resources &gt; Templates &gt; Overview) to see all templates in the organisation.

### Creating a template from a resource's Done step

Templates are often created for a specific resource. After creating a database, the wizard's Done step offers *I would like to create a template for this database now*. Choosing **Yes** and then **CREATE TEMPLATE** opens the **New Template** dialog, pre-scoped to that database: the Resources step is skipped because the resource is already known.

![Template dialog: step 1, description](https://www.agilicus.com/www/352ce639-template-stepper-dialog-step1.png)    ![Template dialog: step 2, upload](https://www.agilicus.com/www/73da301f-template-stepper-dialog-step2-upload.png)    ![Template dialog: step 3, file information](https://www.agilicus.com/www/ed88bc54-template-stepper-dialog-step3-file-info.png)    ![Template dialog: step 4, apply](https://www.agilicus.com/www/ed88bc54-template-stepper-dialog-step4-apply.png)    ## Fields and controls reference

| Control | Purpose | Required | Default | Valid values | Notes |
|---|---|---|---|---|---|
| Description | The template's label and identifier | Yes | n/a | Up to 32 characters | Shows to users as a button |
| File | The base file to upload | Yes | n/a | Any file | Rendered with per-user values at download |
| File name | Name the file is downloaded as | Yes | n/a | A file name |  |
| Content type | MIME type of the template file | Yes | n/a | For example text/plain, text/xml | Lets applications open the file |
| Resources | Resources the template applies to | No | n/a | One or more resources | Omitted when created from a resource's Done step |
| File type | The template's file type | Read-only | n/a | Derived from the upload | Shown on the overview |

## Dialogs and popups

- **New Template dialog**: the file-template-stepper-dialog, opened from **CREATE TEMPLATE** on a resource's Done step or from the row menu's **Create Template** on the Databases overview. It follows the same steps as the wizard minus the Resources step.
- **Configure Resources dialog**: the two-pane resource assignment dialog opened from the row menu's **Configure Resources**.
- **Confirmation dialog**: deleting a template confirms before acting.

## Configuration versus diagnostics versus confirmation

- **Configuration**: creating templates, replacing the file, file information, and associated resources are persistent configuration.
- **Diagnostics**: **Test Template** downloads a rendered copy so you can verify the substitution before relying on it.
- **Confirmation**: deleting a template is permanent and removes the download users rely on. Confirm before proceeding.

## Pagination and async behaviour

- The Templates overview pages at **25 rows per page**; the paginator shows the current page and totals. The demo organisation had no templates when captured.
- Template creation runs asynchronously. After selecting **APPLY**, wait a few seconds; the wizard advances to Done automatically. New templates appear on the overview shortly after creation.
- Replacing a template's file applies shortly after the upload; reload to confirm.

## Troubleshooting

- **The template will not create**: check the description is present, a file has been uploaded, and the file name and content type are filled in. Validation errors appear on the relevant step.
- **The Resources step will not advance**: the step completes only when at least one resource is selected. If no resources of the required type exist, create one first (see [Databases](/anyx-guide/agilicus-anyx-administrative-web-interface/resources/databases/)).
- **The downloaded file has empty values**: confirm the template contains the expected substitution variables and that the user has permission to access the associated resource.
- **A user cannot see the template**: assign permissions and ensure the user can access an associated resource. See [Resource permissions](/anyx-guide/agilicus-anyx-administrative-web-interface/access/resource-permissions/).

## See also

- [Resources (concepts)](/anyx-guide/agilicus-anyx-administrative-web-interface/concepts/resources/)
- [Zero trust architecture](/anyx-guide/agilicus-anyx-administrative-web-interface/concepts/zero-trust-architecture/)
- [End-user experience](/anyx-guide/agilicus-anyx-administrative-web-interface/concepts/end-user-experience/)
- [Resource permissions](/anyx-guide/agilicus-anyx-administrative-web-interface/access/resource-permissions/)
- [Resource groups](/anyx-guide/agilicus-anyx-administrative-web-interface/access/resource-groups/)
- [Policies](/anyx-guide/agilicus-anyx-administrative-web-interface/access/policies/)
- [Databases](/anyx-guide/agilicus-anyx-administrative-web-interface/resources/databases/)
- [Shares](/anyx-guide/agilicus-anyx-administrative-web-interface/resources/shares/)
- [Getting started: expose a resource](/anyx-guide/agilicus-anyx-administrative-web-interface/getting-started/expose-resource/)

## Web guide

- [Variable expansion](https://www.agilicus.com/variable-expansion)
- [Databases in the AnyX guide](https://www.agilicus.com/anyx-guide/databases/)
- [Launchers](https://www.agilicus.com/product-guide/launchers)