---
title: Adding VRL Transform Templates
slug: telemetry-pipeline/adding-vrl-transform-templates
docTags: 
createdAt: 2025-11-26T08:54:11.297Z
---

### Parameter-Driven Transform Templates

The platform allows you to convert any transform function into a reusable, parameter-driven template. Instead of requiring users to write or understand the transform syntax, you can define dynamic parameters using the $parameterN$ format. Each parameter you define is automatically converted into a form field in the UI, enabling users to configure complex transforms simply by filling out values.

There is no limit to the number of parameters you can create. For example:

- $parameter1$&#x20;
- $parameter2$&#x20;
- $parameter3$&#x20;

Each of these becomes an editable input field when the template is used.

You can also add descriptions for each parameter by defining inline comments under the template using the #parameterN format. These explanations appear in the UI to guide the user when filling out the form fields. For example:

:::BlockQuote
\#parameter1 = "Description of what this parameter controls."
\#parameter2 = "Explanation of valid values or usage."
\#any\_other\_parameter = "Optional notes or constraints."
:::

By combining parameter placeholders and descriptive comments, you can create fully dynamic, user-friendly transform templates. Once created, templates can be saved in the library and reused across pipelines without requiring any knowledge of the underlying syntax.

**Uploaded files must have a .conf extension.** Only configuration files ending with this extension are accepted by the system to ensure correct parsing and format consistency.&#x20;

**Files may be uploaded even if they contain no parameters.** Empty or placeholder configuration files are supported and do not require predefined content.&#x20;

**Multiple configuration files can be uploaded at once.** This allows batch loading and streamlined configuration management during deployment or updates.

## To Upload a file:

1. Navigate to Library.
2. Click Template.
3. Click the Add Template button on the right hand corner.&#x20;
4. Select Transform Template.
5. Drop the .conf file in to the grey zone or click on the zone to browse and select the conf file(s).
6. Click Upload.

### Example Template

:::BlockQuote
.$parameter1$ = redact(to\_string!(.$parameter1$),&#x20;
&#x20;   filters: \[$parameter2$],&#x20;
&#x20;   redactor: \{ "type": "$parameter3$", "replacement": "$parameter4$" }
)
.message = .
:::

:::BlockQuote
\#parameter1 = "Represents the field that contains the value to be masked. This parameter identifies which specific data element in the log or event will be processed. It is typically used for sensitive fields such as user identifiers, emails, phone numbers, or authentication tokens. The value is converted to a string before masking, ensuring consistent processing across different data types."
\#parameter2 = "Specifies the list of filters or patterns that determine which parts of the field should be masked. This parameter may include built-in filter types such as 'email', 'credit\_card', or 'ip', or custom regular expressions defined by the system. It ensures that confidential information such as IDs, credentials, or structured patterns are properly detected and redacted."
\#parameter3 = "Defines the type of redaction to be applied during the masking process. Common redact types include 'literal', which replaces matched values with a constant string, 'hash', which transforms the value into a hashed representation, and 'partial', which masks only part of the original value. This parameter determines the masking strategy used across the redact operation."
\#parameter4 = "Specifies the replacement value that will be inserted during the redact operation.&#x20;
:::

This example should look like this in a text editor:

![](https://api.archbee.com/api/optimize/g9cApVza9NIhSh0pjZYtA/jGn0BzZ7MJYq2sNN4W7RN_image.png)

This uploaded file will look like this:&#x20;

![](https://api.archbee.com/api/optimize/g9cApVza9NIhSh0pjZYtA/WZkXUkg-D8XVKJUkDXTUi_image.png)

