# Expressions and programs

In the Flow Connect platform, FlowScript is variously used as an *expression language*, a *template language* and a *programming language*. The purpose of this section is to give you a feel for what these three categories mean.

### Expression language

FlowScript is used as an expression language in, among other places, **Assertion steps** and **Decision steps**, when defining custom conditions.

<figure><img src="/files/ROUZdg2agJUbMmDimnLe" alt=""><figcaption><p>An Assertion step demonstrating the use FlowScript expressions to specify custom logic in an application.</p></figcaption></figure>

An *expression* is a string of symbols that denotes some *value.*

* The expression `numberOfItems` denotes the value of some [variable ](/flow-connect/reference/reference/flowscript/walkthrough/variables.md)called "numberOfItems".
* The expression `1` denotes the number one.
* The expression `numberOfItems < 1` denotes a [truth value](/flow-connect/reference/reference/flowscript/walkthrough/simple-types.md#boolean) indicating whether a variable named numberOfItems contains a number that is less than the number one.

### Template language

A *template* in Flow Connect is a way to specify text that may contain the values of expressions.

In the screen shot below, a Header item in a User step has been configured to display the template `Hello, {name}!` in which the curly braces contain an expression referring to some variable called "name", assumed to have been created by some previous step. When the application is run, the expression surrounded by curly braces will be replaced by the value of the variable name. If the variable contains the text "Annie",  the header will read "Hello, Annie!".

<figure><img src="/files/0t1qUr605gv7NPAqbaFx" alt=""><figcaption><p>A user step demonstraing the use of FlowScript templates to customize text on the screen.</p></figcaption></figure>

### Programming language

In script steps, the full possibilities of the FlowScript language become available. Unlike expressions and templates, script steps allow you do declare variables, write conditional blocks, define functions, loop over sequences and more.


---

# 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.novacura.com/flow-connect/reference/reference/flowscript/walkthrough/expressions-and-programs.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.
