> For the complete documentation index, see [llms.txt](https://v5docs.keyfax.biz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://v5docs.keyfax.biz/reference/expression-reference/additional-functions/transform.md).

# Transform

Applies an XSLT stylesheet to a databox holding XML, to turn it into something presentable — typically an HTML table for an email.

```
Transform('Transform/Services.xsl')
```

The argument is the path of a stylesheet held as a web resource for that script version. The most common use is with a Services system value databox, formatting every service recorded in a conversation into a table for a task.

**What changed in Keyfax V5**

In earlier releases the stylesheet was a file installed alongside Keyfax, and only one was supplied. In V5 it is a resource belonging to the script version, and **there is no system default** — the stylesheet has to exist as a web resource for that version, or the expression fails with a message saying so. Upgrading an older script means making sure its stylesheet came across with it.

Because the stylesheet belongs to a version, two versions can format the same data differently, and a change to the formatting is published along with the script rather than separately.

`Transform` only runs during a real conversation. Evaluated anywhere else — in a design-time preview, for instance — it returns `Transform only available at run-time` rather than a result.

**This page still needs**

* How to upload a stylesheet as a web resource
* The shape of the XML a Services databox produces
