---
schema_version: "1"
id: 0864f89bdad327809fc0beabdb881f9aa4c8ee3ae8b557981512a39fe95a920a
title: Use Functions in Rules
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/analytics/bi_dev_guide_wave_templates/guides/reference/bi-templatesdev-functions.md
canonical_url: https://developer.salesforce.com/docs/analytics/bi-dev-guide-wave-templates/guide/bi-templatesdev-functions.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: b9eef52441b2d4842aa860a5d9058deb360c2395c1b92561d210a8ac942f2027
products:
  - Analytics Templates Developer Guide
  - analytics
---

# Use Functions in Rules

Functions make rules more powerful. For example, use functions to apply rules iteratively to arrays or to make rules conditional on the content of a string or an array. CRM Analytics Templates supports string, array, and json functions as well as static math and sfdc_fma functions.

Use the `"Rules.CurrentNode"` property in conjunction with functions. It contains the last results of the JSON `'path'` argument supplied in the action of your rule.

Use the EL Expression Language to invoke custom functions with an expression. Functions can appear in the static text of an EL expression, for example:

```nolang
"name" : "my name in lowercase is
    ${string:toLowerCase(Variables.myName)}",
```

See the sections that follows for complete information about each function type.

- **[string Functions](https://developer.salesforce.com/docs/analytics/bi-dev-guide-wave-templates/guide/bi-templatesdev-functions-string.md)**


    Use `string` functions in rules to manipulate text strings in asset JSON at runtime.

- **[array Functions](https://developer.salesforce.com/docs/analytics/bi-dev-guide-wave-templates/guide/bi-templatesdev-functions-array.md)**


    Use `array` functions in rules to manipulate arrays in asset JSON at runtime.

- **[json Functions](https://developer.salesforce.com/docs/analytics/bi-dev-guide-wave-templates/guide/bi-templatesdev-functions-json.md)**


    Use json functions in rules to manipulate JSON at runtime. For example, find all the JSON paths in a dashboard that have a link widget and update the links at runtime.

- **[Static Functions](https://developer.salesforce.com/docs/analytics/bi-dev-guide-wave-templates/guide/bi-templatesdev-functions-static.md)**


    Static functions have specialized use in template rules.
