# Learn Expression syntax and tiny math, where?

**URL:** <https://discuss.elastic.co/t/learn-expression-syntax-and-tiny-math-where/381953>\
**Category:** Kibana\
**Tags:** canvas\
**Created:** [September 15, 2025, 1:19pm UTC](https://discuss.elastic.co/t/learn-expression-syntax-and-tiny-math-where/381953 "2025-09-15T13:19:15Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![JensHaglof](https://avatars.discourse-cdn.com/v4/letter/j/eb8c5e/32.png) [@JensHaglof](https://discuss.elastic.co/u/JensHaglof)\
**Post date:** [September 15, 2025, 1:19pm UTC](https://discuss.elastic.co/t/learn-expression-syntax-and-tiny-math-where/381953/1 "2025-09-15T13:19:15Z")

</div>

Hi!

Is there an online course that teaches this? I struggle to understand the syntax and how to use it to change things in the Canvas.

The expression syntax, is that unique to Kibana, or is it a “real” language used outside of Kibana? I want to get an overview, like how everything is connected, the essql query and the expression syntax afterwards.

I have red the function reference but struggle to apply it to my canvases.

/Jens

---

<div class="post-metadata">

**Author:** ![nickpeihl](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nickpeihl/32/112622_2.png) [@nickpeihl](https://discuss.elastic.co/u/nickpeihl)\
**Post date:** [September 15, 2025, 4:51pm UTC](https://discuss.elastic.co/t/learn-expression-syntax-and-tiny-math-where/381953/2 "2025-09-15T16:51:07Z")

</div>

Hi @JensHaglof . Sorry to hear about your trouble with Canvas expressions.

> The expression syntax, is that unique to Kibana, or is it a “real” language used outside of Kibana?

It is unique to Kibana. But it uses pipe-able expressions which is a construct used in some other languages.

> I want to get an overview, like how everything is connected, the essql query and the expression syntax afterwards.

When using the Function Reference it can be helpful to see what argument(s) the function accepts and what it returns. For example, the [`essql` function](https://www.elastic.co/docs/reference/data-analysis/kibana/canvas-functions#essql_fn) accepts a `kibana_context` and returns a `datatable`. And the [`pointseries` function](https://www.elastic.co/docs/reference/data-analysis/kibana/canvas-functions#pointseries_fn) can accept a `datatable` and return a `pointseries`. The [`plot` function](https://www.elastic.co/docs/reference/data-analysis/kibana/canvas-functions#plot_fn) accepts a `pointseries` and returns a `render`. The `render` function accepts the `render` returned from the `plot` function and draws the chart on the screen.

There are a few helpful examples that demonstrate this in the function reference like [this one under `axisConfig`](https://www.elastic.co/docs/reference/data-analysis/kibana/canvas-functions#axisconfig_fn)`.`

Also, I’ve found many complex examples of expressions from the community [here on Discuss.](https://discuss.elastic.co/search?q=canvas%2520expression) And if you run into a specific issue, you can always create a new post in Discuss and ask the community for help.

---

<div class="post-metadata">

**Author:** ![JensHaglof](https://avatars.discourse-cdn.com/v4/letter/j/eb8c5e/32.png) [@JensHaglof](https://discuss.elastic.co/u/JensHaglof)\
**Post date:** [September 16, 2025, 6:31am UTC](https://discuss.elastic.co/t/learn-expression-syntax-and-tiny-math-where/381953/3 "2025-09-16T06:31:56Z")

</div>

Hi Nick! Thanks for the answer. 🙂

I just find it hard to know how to write the syntax. From the reference:  
```

| staticColumn name="totalA" value={var "logs" | getCell "a"}

| alterColumn column="totalA" type="number"

```

Sometimes you use “{“ sometimes not. And sometimes you need to put a pipe in there. If I understand it correctly, when you put a pipe in the code you change which variable you affect with your code?

---

<div class="post-metadata">

**Author:** ![nickpeihl](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nickpeihl/32/112622_2.png) [@nickpeihl](https://discuss.elastic.co/u/nickpeihl)\
**Post date:** [September 16, 2025, 5:31pm UTC](https://discuss.elastic.co/t/learn-expression-syntax-and-tiny-math-where/381953/4 "2025-09-16T17:31:43Z")

</div>

Hi Jens. I believe the syntax for using brackets is `{some-expression}` which is what your `staticColumn` example is doing. The `value` is being constructed via some expression where the “logs” `var` is being passed into the `getCell` function. In the `alterColumn` example, the `column` and `type` properties are literals, not expressions.

---

<div class="post-metadata">

**Author:** ![JensHaglof](https://avatars.discourse-cdn.com/v4/letter/j/eb8c5e/32.png) [@JensHaglof](https://discuss.elastic.co/u/JensHaglof)\
**Post date:** [September 18, 2025, 1:44pm UTC](https://discuss.elastic.co/t/learn-expression-syntax-and-tiny-math-where/381953/5 "2025-09-18T13:44:09Z")

</div>

**Ok, thank you, Nick!** It’s still a bit confusing, but I’ll post here if I run into any issues.

I have another question:  
On the Canvas page under **My Workpads** , is it possible to organize workpads into folders? We currently have a lot—close to 40—including ones used in production, test workpads, and bug check dashboards. And the list is increasing. Is there a way to group them, or do we just have to scroll through the full list every time?

---

<div class="post-metadata">

**Author:** ![nickpeihl](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nickpeihl/32/112622_2.png) [@nickpeihl](https://discuss.elastic.co/u/nickpeihl)\
**Post date:** [September 25, 2025, 5:48pm UTC](https://discuss.elastic.co/t/learn-expression-syntax-and-tiny-math-where/381953/6 "2025-09-25T17:48:41Z")

</div>

Hi Jens. Sorry for the delay. No, it is not possible to organize workpads into folders.
