# Functions

FlowScript has a number of built-in functions to transform or query the variables in your workflow. FlowScript uses a function call syntax identical to that of common programming languages such as C, Java and Visual Basic, where the function name is followed by an opening parenthesis, a commaseparated list of inputs (if required by the function) and a closing parenthesis:

```
{function(input1, input2)}
```

Functions that require no parameters (such as the Now function, which returns today's date and time) must still be written with opening and closing parentheses, i.e. `{now()}`.

Functions in Flow never have side effects; that is, they never modify their input.&#x20;

![](/files/-M-sPuos_eJb9q29cHTW)

*Screen shot: A User Task configuration dialog showing the user of the Upper function, which transforms the value of the variable "firstName" into uppercase. Note that the content of the firstName variable is not affected by this; all FlowScript functions return new values, leaving the input value(s) untouched.*&#x20;

![](/files/-M-sPy1J6RR-nNUsB8Qf)

*Screen shot: The same User Task running in the web client. Note that the name "Richard" has been transformed to all-uppercase by the Upper function.*

Another example is the *Left* function that returns the first N characters of the input text, where N is the value of the second parameter. If *firstName* has value "Richard" and *lastName* "Feynman" the result of this example would be "Your initials: R F".

```fsharp
Your initials: {left(firstName, 1)} {left(lastName, 1)}
```


---

# 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://help.novacuraflow.com/6.12/development/flow-studio/flowscript/functions.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.
