--- title: String interpolation description: > Flux string interpolation evaluates string literals containing one or more placeholders and returns a result with placeholders replaced with their corresponding values. menu: v2_0_ref: parent: Flux specification name: String interpolation weight: 211 --- Flux string interpolation evaluates string literals containing one or more placeholders and returns a result with placeholders replaced with their corresponding values. ## String interpolation syntax To use Flux string interpolation, enclose embedded [expressions](/v2.0/reference/flux/language/expressions/) in a dollar sign and curly braces `${}`. Flux replaces the content between the braces with the result of the expression and returns a string literal. ```js name = "John" "My name is ${name}." // My name is John. ``` {{% note %}} #### Flux only interpolates string values Flux currently interpolates only string values ([IMP#1775](https://github.com/influxdata/flux/issues/1775)). Use the [string() function](/v2.0/reference/flux/stdlib/built-in/transformations/type-conversions/string/) to convert non-string values to strings. ```js count = 12 "I currently have ${string(v: count)} cats." ``` {{% /note %}} ## Use dot notation to interpolate object values [Objects](/v2.0/reference/flux/language/expressions/#object-literals) consist of key-value pairs. Use [dot notation](/v2.0/reference/flux/language/expressions/#member-expressions) to interpolate values from an object. ```js person = { name: "John", age: 42 } "My name is ${person.name} and I'm ${string(v: person.age)} years old." // My name is John and I'm 42 years old. ``` Flux returns each record in query results as an object. In Flux row functions, each row object is represented by `r`. Use dot notation to interpolate specific column values from the `r` object. ##### Use string interpolation to add a human-readable message ```js from(bucket: "example-bucket") |> range(start: -30m) |> map(fn: (r) => ({ r with human-readable: "${r._field} is ${r._value} at ${string(v: r._time)}." })) ``` ## String interpolation versus concatenation Flux supports both string interpolation and string concatenation. String interpolation is a more concise method for achieving the same result. ```js person = { name: "John", age: 42 } // String interpolation "My name is ${person.name} and I'm ${string(v: person.age)} years old." // String concatenation "My name is " + person.name + " and I'm " + string(v: person.age) + " years old." // Both return: My name is John and I'm 42 years old. ``` {{% note %}} Check and notification message templates configured in the InfluxDB user interface **do not** support string concatenation. {{% /note %}}