[System] You are a VTEX documentation expert. You provide accurate, detailed information about VTEX platform, APIs, apps, and Store Framework development.

[User] How do I use the VTEX store components backtotopbutton app? Provide documentation and configuration details.

[Assistant]
Documentation

[Feedback](https://read.calvincode.net/reader?url=https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com%26entry.1799503232=)

[GuidesLearn how to use our APIs and extend the VTEX platform.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides)

[API ReferenceExplore detailed information about our endpoints.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/api-reference)

[App DevelopmentLearn how to build cloud-based apps and integrations.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/app-development)

[Storefront DevelopmentExpress your brand identity creating unique storefronts.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/storefront-development)

[VTEX IO AppsFind pre-built solutions to grow your business.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/vtex-io-apps)

[TroubleshootingFind practical solutions to common development issues.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/troubleshooting)

[Release NotesStay up to date with our latest releases and bug fixes.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/updates/release-notes)

VTEX IO Apps

[Basic components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides/basic-components)

---

[Store Components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides/store-components)

[Autocomplete Result List](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/autocompleteresults)

[Availability Subscriber](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/availabilitysubscriber)

[Back To Top Button](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/backtotopbutton)

[Image](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/image)

[Info Card](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/infocard)

[Logo](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/logo)

[Notification](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/notification)

[Product Brand](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/productbrand)

[Product Description](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/productdescription)

[Product Images](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/productimages)

[Product Name](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/productname)

[Product SKU Attributes](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/productskuattributes)

[Search Bar](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/searchbar)

[Share](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/share)

[Shipping Simulator](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/shippingsimulator)

[SKU Selector](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/skuselector)

---

[Advanced components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides/advanced-components)

---

[B2B components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides/b2b-components)

---

[B2B Suite](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.b2b-suite)

---

[Functional Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides/functional-apps)

---

[Layout Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides/layout-apps)

---

[Pixel Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides/pixel-apps)

---

[My Account - StoreV2 version](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.my-account)

---

[VTEX IO deprecated apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides/vtex-io-deprecated-apps)

---

[Guides](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides)

[API Reference](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/api-reference)

[App Development](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/app-development)

[Storefront Development](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/storefront-development)

[VTEX IO Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/vtex-io-apps)

[Troubleshooting](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/troubleshooting)

---

[Release Notes](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/updates/release-notes)

VTEX IO Apps

[Basic components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides/basic-components)

---

[Store Components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides/store-components)

[Autocomplete Result List](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/autocompleteresults)

[Availability Subscriber](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/availabilitysubscriber)

[Back To Top Button](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/backtotopbutton)

[Image](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/image)

[Info Card](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/infocard)

[Logo](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/logo)

[Notification](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/notification)

[Product Brand](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/productbrand)

[Product Description](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/productdescription)

[Product Images](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/productimages)

[Product Name](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/productname)

[Product SKU Attributes](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/productskuattributes)

[Search Bar](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/searchbar)

[Share](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/share)

[Shipping Simulator](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/shippingsimulator)

[SKU Selector](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/skuselector)

---

[Advanced components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides/advanced-components)

---

[B2B components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides/b2b-components)

---

[B2B Suite](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.b2b-suite)

---

[Functional Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides/functional-apps)

---

[Layout Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides/layout-apps)

---

[Pixel Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides/pixel-apps)

---

[My Account - StoreV2 version](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.my-account)

---

[VTEX IO deprecated apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides/vtex-io-deprecated-apps)

---

[VTEX IO Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/vtex-io-apps)

[Store Components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/guides/store-components)

Back To Top Button

[vtex.store-components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components)

Version: 3.178.5

Latest version: 3.178.5

The `back-to-top-button` component is a button that redirects users to the top of the page when clicked.

![{"base64":"  ","img":{"width":1586,"height":713,"type":"png","mime":"image/png","wUnits":"px","hUnits":"px","length":56394,"url":"https://user-images.githubusercontent.com/28419764/77644893-9238af80-6f40-11ea-8ceb-7355d0c12686.png"}}](https://read.calvincode.net/reader?url=https://user-images.githubusercontent.com/28419764/77644893-9238af80-6f40-11ea-8ceb-7355d0c12686.png)

_Back To Top Button rendered as a text button_

![{"base64":"  ","img":{"width":1574,"height":683,"type":"png","mime":"image/png","wUnits":"px","hUnits":"px","length":1687084,"url":"https://user-images.githubusercontent.com/28419764/79279983-a60f6b80-7e85-11ea-9a8d-48abd655e559.png"}}](https://read.calvincode.net/reader?url=https://user-images.githubusercontent.com/28419764/79279983-a60f6b80-7e85-11ea-9a8d-48abd655e559.png)

_Back To Top Button rendered as a caret icon_

## Configuration

1. Import the `vtex.store-components` app to your theme's dependencies in the `manifest.json` file as in the following example:

`1

 "dependencies": {

2

 "vtex.store-components": "3.x"

3

 }

`

1. Add the `back-to-top-button` block into a store template of your choice. In the example, it will be added to the home page:

`1

 "store.home": {

2

 "blocks": [

3

+ "back-to-top-button",

4

 ]

5

 },

`

1. Then, declare the `back-to-top-button` block using the props stated in the [Props](#props) table. For example:

`1

 "store.home": {

2

 "blocks": [

3

 "back-to-top-button",

4

 ]

5

 },

6

+ "back-to-top-button":{

7

+ "props":{

8

+ "displayThreshold": 800,

9

+ }

10

+ }

`

### Props

| Prop name        | Type   | Description                                                                                | Default Value |
| ---------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| display          | enum   | Defines the component rendering. Possible values are: button to display a button with a Back To Top label text or caret-icon to display just an icon. | button        |
| displayThreshold | number | Defines the window Y pixel in which the button will be displayed.                                                                                | 600           |

## Customization

To apply CSS customizations in this and other blocks, follow the [Using CSS handles for store customization](https://read.calvincode.net/reader?url=https://developers.vtex.com/vtex-developer-docs/docs/vtex-io-documentation-using-css-handles-for-store-customization) guide.

| CSS Handles              |
| ------------------------ |
| backToTopButtonActive    |
| backToTopButtonContainer |
| backToTopButtonHidden    |

[Availability Subscriber« Previous](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/availabilitysubscriber)[ImageNext »](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/image)

See also

[Vtex.store ComponentsVTEX IO Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components)[VTEX App StoreVTEX IO Apps](https://read.calvincode.net/reader?url=https://apps.vtex.com/)

ON THIS PAGE

[Configuration](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/backtotopbutton%23configuration)

[Props](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/backtotopbutton%23props)

[Customization](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.store-components/backtotopbutton/docs/apps/vtex.store-components/backtotopbutton%23customization)

Was this helpful?

[Github](https://read.calvincode.net/reader?url=https://github.com/vtex-apps)[Help Center](https://read.calvincode.net/reader?url=https://help.vtex.com/)[Community](https://read.calvincode.net/reader?url=https://community.vtex.com/?%5Fga=2.198523433.743584735.1647618303-1974737580.1645714642)[Feedback](https://read.calvincode.net/reader?url=https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com%26entry.1799503232=)


[System] You are a VTEX documentation expert. You provide accurate, detailed information about VTEX platform, APIs, apps, and Store Framework development.

[User] Provide a guide on guides storefront performance in VTEX.

[Assistant]
Documentation

[Feedback](https://read.calvincode.net/reader?url=https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com%26entry.1799503232=)

[GuidesLearn how to use our APIs and extend the VTEX platform.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides)

[API ReferenceExplore detailed information about our endpoints.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/api-reference)

[App DevelopmentLearn how to build cloud-based apps and integrations.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/app-development)

[Storefront DevelopmentExpress your brand identity creating unique storefronts.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/storefront-development)

[VTEX IO AppsFind pre-built solutions to grow your business.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/vtex-io-apps)

[TroubleshootingFind practical solutions to common development issues.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/troubleshooting)

[Release NotesStay up to date with our latest releases and bug fixes.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/updates/release-notes)

Storefront Development

[Getting started with storefront solutions](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/getting-started-with-storefront-solutions)

---

[FastStore](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/faststore)

---

[Store Framework](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/store-framework)

---

(Legacy) CMS Portal

---

[Storefront best practices](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-best-practices)

[Accessibility](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-accessibility)

[Analytics](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-analytics)

[Performance](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-performance)

[Getting started with Lighthouse](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-getting-started-with-lighthouse)

[SEO](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-seo)

---

[Guides](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides)

[API Reference](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/api-reference)

[App Development](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/app-development)

[Storefront Development](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/storefront-development)

[VTEX IO Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/vtex-io-apps)

[Troubleshooting](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/troubleshooting)

---

[Release Notes](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/updates/release-notes)

Storefront Development

[Getting started with storefront solutions](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/getting-started-with-storefront-solutions)

---

[FastStore](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/faststore)

---

[Store Framework](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/store-framework)

---

(Legacy) CMS Portal

---

[Storefront best practices](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-best-practices)

[Accessibility](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-accessibility)

[Analytics](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-analytics)

[Performance](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-performance)

[Getting started with Lighthouse](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-getting-started-with-lighthouse)

[SEO](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-seo)

---

[Storefront Development](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/storefront-development)

[Storefront best practices](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-best-practices)

[Performance](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-performance)

Performance

Explore best practices and tools for continuously optimizing website performance.

In ecommerce, website performance directly impacts the shopper experience. It may affect **sales conversion rate**, **user session time**, and other relevant metrics. Every millisecond counts, influencing the shopper's decision-making process and affecting your store's **search engine ranking**. Therefore, ensuring that your website is as fast and performant as possible is crucial, which leads to **high scores in [Lighthouse](https://read.calvincode.net/reader?url=https://developer.chrome.com/docs/lighthouse/overview) audits**.

## Performance slowdowns

As your project becomes more complex, many factors may slow down website performance. For this reason, maintaining optimal website performance is a **continuous effort** that requires commitment.

Some things to keep in mind:

* **Third-party scripts:** Third-party scripts are one of the leading causes of performance slowdowns. These scripts trigger additional network requests to multiple servers and are likely to block DOM construction, keeping the main thread busy and delaying page rendering.
* **Page weight:** Page weight is the total size of a web page, including all the resources that need loading (i.e., images, stylesheets, and other static files). The heavier the files and data your website sends to the client, the longer the browser takes to render your page. Hence, reducing page weight is a great opportunity to improve website performance.
Page weight issues are mainly related to:
   * Uncompressed files.
   * Unoptimized images.
   * Unoptimized fonts.
   * Unclean code.
* **HTTP requests:** When a user visits a web page, the browser sends multiple HTTP requests to load all the resources (i.e., images, stylesheets, fonts, etc.) needed to render the web page. Downloading these resources, however, significantly impacts the loading time of the page. Therefore, besides optimizing images, compressing files, and reducing download size, it is also important to consider minimizing download frequency.
* **Render-blocking resources:** Render-blocking resources are scripts, stylesheets, and code files sequentially downloaded, parsed, and executed by the browser. When the browser faces a render-blocking resource, it stops the entire rendering process until these critical files are processed first. Although these resources take a considerable time for the browser to process, they may not be crucial for the user experience.

## Monitoring tools

There are several tools available for identifying performance issues and helping improve website performance, such as:

* [Lighthouse](https://read.calvincode.net/reader?url=https://developer.chrome.com/docs/lighthouse/overview)/[PageSpeed Insights](https://read.calvincode.net/reader?url=https://pagespeed.web.dev/): An open-source automated tool created by Google used to identify common problems related to the quality of a webpage through audits.
* [SpeedCurve](https://read.calvincode.net/reader?url=https://speedcurve.com/): Live dashboards that monitor web application experience across different browsers and platforms and provide visibility over performance.
* [PartyTown](https://read.calvincode.net/reader?url=https://partytown.builder.io/): A lazy-loaded library to help relocate resource-intensive scripts into a [web worker](https://read.calvincode.net/reader?url=https://developer.mozilla.org/en-US/docs/Web/API/Web%5FWorkers%5FAPI), keeping them off the [main thread](https://read.calvincode.net/reader?url=https://developer.mozilla.org/en-US/docs/Glossary/Main%5Fthread).
* [Google DevTools](https://read.calvincode.net/reader?url=https://developer.chrome.com/docs/devtools/): A set of web developer tools built directly into the Google Chrome browser.

Contributors

1

[![Photo of the contributor](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/_next/image?url=https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F112641072%3Fv%3D4%26w=64%26q=75)](https://github.com/barbara-celi)

Was this helpful?

Yes

No

[Suggest Edits (GitHub)](https://read.calvincode.net/reader?url=https://github.com/vtexdocs/dev-portal-content/edit/main/docs/guides/vtex-io/Storefront-Guides/storefront-best-practices/storefront-performance.md)

[Analytics« Previous](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance//docs/guides/storefront-analytics)[Getting started with LighthouseNext »](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance//docs/guides/storefront-getting-started-with-lighthouse)

Contributors

1

[![Photo of the contributor](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/_next/image?url=https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F112641072%3Fv%3D4%26w=64%26q=75)](https://github.com/barbara-celi)

ON THIS PAGE

[Performance slowdowns](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-performance%23performance-slowdowns)

[Monitoring tools](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-performance%23monitoring-tools)

Was this helpful?

 Send feedback

[Suggest edits (GitHub)](https://read.calvincode.net/reader?url=https://github.com/vtexdocs/dev-portal-content/edit/main/docs/guides/vtex-io/Storefront-Guides/storefront-best-practices/storefront-performance.md)

Copy page

On this page

ON THIS PAGE

[Performance slowdowns](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-performance%23performance-slowdowns)

[Monitoring tools](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/storefront-performance/docs/guides/storefront-performance%23monitoring-tools)

On this page

[Github](https://read.calvincode.net/reader?url=https://github.com/vtex-apps)[Help Center](https://read.calvincode.net/reader?url=https://help.vtex.com/)[Community](https://read.calvincode.net/reader?url=https://community.vtex.com/?%5Fga=2.198523433.743584735.1647618303-1974737580.1645714642)[Feedback](https://read.calvincode.net/reader?url=https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com%26entry.1799503232=)


[System] You are a VTEX documentation expert. You provide accurate, detailed information about VTEX platform, APIs, apps, and Store Framework development.

[User] Provide a guide on guides using dynamic expressions on master data v2 in VTEX.

[Assistant]
Documentation

[Feedback](https://read.calvincode.net/reader?url=https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com%26entry.1799503232=)

[GuidesLearn how to use our APIs and extend the VTEX platform.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides)

[API ReferenceExplore detailed information about our endpoints.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/api-reference)

[App DevelopmentLearn how to build cloud-based apps and integrations.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/app-development)

[Storefront DevelopmentExpress your brand identity creating unique storefronts.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/storefront-development)

[VTEX IO AppsFind pre-built solutions to grow your business.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/vtex-io-apps)

[TroubleshootingFind practical solutions to common development issues.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/troubleshooting)

[Release NotesStay up to date with our latest releases and bug fixes.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/updates/release-notes)

Guides

[VTEX Platform Overview](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/vtex-platform-overview)

---

[API usage](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/api-usage)

---

[Getting started](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/getting-started)

---

Integration Guides

---

[Catalog](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/catalog-integration)

---

[Checkout](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/checkout-api-overview)

---

[Master Data](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/master-data)

[Understanding Master Data](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/understanding-master-data)

[Master Data best practices](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/master-data-best-practices)

[Master Data v2](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/master-data-v2)

Schemas

Triggers

[Master Data v2 document saving flow](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/master-data-v2-document-saving-flow)

[Creating relationships between data entities using Master Data v2](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/creating-relationships-between-data-entities-using-master-data-v2)

[Using dynamic expressions on Master Data v2](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/using-dynamic-expressions-on-master-data-v2)

[Searching by geocoordinates in Master Data v2](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/searching-by-geocoordinates-in-master-data-v2)

[Setting up alternate keys in Master Data v2](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/setting-up-alternate-keys-in-master-data-v2)

[Setting up an auto increment field in Master Data v2](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/setting-up-an-auto-increment-field-in-master-data-v2)

[Master Data v1](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/master-data-v1)

---

Payments

---

Orders

---

Logistics

---

B2B Suite

---

VTEX Sales App

---

UI Customization

---

Message Center

---

Pricing

---

Promotions

---

Infrastructure

---

Search

---

Storefront Permissions

---

[VTEX Activity Flow](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/activity-flow)

---

[VTEX Ads](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/vtex-ads)

---

VTEX Session

---

VTEX Shield

---

[Data Protection Plus](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/data-protection-plus)

---

Weni by VTEX

---

[Guides](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides)

[API Reference](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/api-reference)

[App Development](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/app-development)

[Storefront Development](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/storefront-development)

[VTEX IO Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/vtex-io-apps)

[Troubleshooting](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/troubleshooting)

---

[Release Notes](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/updates/release-notes)

Guides

[VTEX Platform Overview](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/vtex-platform-overview)

---

[API usage](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/api-usage)

---

[Getting started](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/getting-started)

---

Integration Guides

---

[Catalog](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/catalog-integration)

---

[Checkout](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/checkout-api-overview)

---

[Master Data](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/master-data)

[Understanding Master Data](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/understanding-master-data)

[Master Data best practices](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/master-data-best-practices)

[Master Data v2](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/master-data-v2)

Schemas

Triggers

[Master Data v2 document saving flow](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/master-data-v2-document-saving-flow)

[Creating relationships between data entities using Master Data v2](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/creating-relationships-between-data-entities-using-master-data-v2)

[Using dynamic expressions on Master Data v2](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/using-dynamic-expressions-on-master-data-v2)

[Searching by geocoordinates in Master Data v2](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/searching-by-geocoordinates-in-master-data-v2)

[Setting up alternate keys in Master Data v2](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/setting-up-alternate-keys-in-master-data-v2)

[Setting up an auto increment field in Master Data v2](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/setting-up-an-auto-increment-field-in-master-data-v2)

[Master Data v1](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/master-data-v1)

---

Payments

---

Orders

---

Logistics

---

B2B Suite

---

VTEX Sales App

---

UI Customization

---

Message Center

---

Pricing

---

Promotions

---

Infrastructure

---

Search

---

Storefront Permissions

---

[VTEX Activity Flow](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/activity-flow)

---

[VTEX Ads](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/vtex-ads)

---

VTEX Session

---

VTEX Shield

---

[Data Protection Plus](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/data-protection-plus)

---

Weni by VTEX

---

[Guides](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides)

[Master Data](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/master-data)

[Master Data v2](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/master-data-v2)

[Using dynamic expressions on Master Data v2](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/using-dynamic-expressions-on-master-data-v2)

Using dynamic expressions on Master Data v2

Learn how to automate processes based on Document updates using dynamic expressions.

Dynamic expressions on Master Data v2 enable you to populate document fields dynamically, making it easier to automate tasks like sending personalized marketing emails or processing document updates. This guide explains how to configure and use dynamic expressions with JSON schemas.

## Syntax

Dynamic expressions use placeholders to reference and retrieve values from Document fields, including nested fields. These expressions enable dynamic data usage in actions like sending emails or saving data to another entity.

* **Basic syntax:** Use `{!fieldName}` to reference a top-level field. For example:
`1
{!email}
`
* **Nested fields:** Use dot notation to reference fields within nested objects. For example:
`1
{!order.clientProfileData.email}
`

## Before you begin

Before using dynamic expressions, ensure you have a [JSON schema](https://read.calvincode.net/reader?url=https://json-schema.org/) configured for your Data Entity in Master Data v2\. For more information, refer to [Creating JSON Schemas for a Data Entity](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/working-with-json-schemas-in-master-data-v2).

## Instructions

### Step 1: Creating a trigger

Follow the instructions in the [Setting up triggers](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/setting-up-triggers-on-master-data-v2) guide to create a trigger in Master Data v2\. This defines when the action will be triggered (e.g., Document creation) and what action will be taken.

### Step 2: Configuring a trigger to use dynamic expressions

In the trigger's `action` object, use dynamic expressions to populate the desired fields. For example:

`1

{

2

 "v-triggers": [

3

 {

4

 "name": "email-notification",

5

 "active": true,

6

 "action": {

7

 "type": "email",

8

 "provider": "default",

9

 "to": "{!email}",

10

 "subject": "Welcome, {!name}!",

11

 "body": "Hello, {!name}. Your order ID is {!order.id}."

12

 }

13

 }

14

 ]

15

}

`

In this example, the `to` field dynamically retrieves the value of the `email` field from the Document, while the `subject` and `body` incorporate values from `name` and `order.id`.

> Ensure all fields referenced in your dynamic expressions exist in the JSON schema of your Data Entity.

### Step 3: Testing the trigger

Test the configuration using a sample document to validate your trigger configuration and the dynamic expressions. Here’s an example document:

`1

{

2

 "email": "customer@example.com",

3

 "name": "Alice",

4

 "order": {

5

 "id": "98765"

6

 }

7

}

`

The expected output in the triggered email would be:

`1

To: customer@example.com

2

Subject: Welcome to Our Store, Alice!

3

Body: Hi Alice, thank you for your order #98765.

`

Contributors

1

[![Photo of the contributor](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/_next/image?url=https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F77292838%3Fv%3D4%26w=64%26q=75)](https://github.com/julia-rabello)

Was this helpful?

Yes

No

[Suggest Edits (GitHub)](https://read.calvincode.net/reader?url=https://github.com/vtexdocs/dev-portal-content/edit/main/docs/guides/Master-Data/master-data-v2/using-dynamic-expressions-on-master-data-v2.md)

[Creating relationships between data entities using Master Data v2« Previous](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2//docs/guides/creating-relationships-between-data-entities-using-master-data-v2)[Searching by geocoordinates in Master Data v2Next »](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2//docs/guides/searching-by-geocoordinates-in-master-data-v2)

See also

[Setting up triggers on Master Data v2Guides](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/setting-up-triggers-on-master-data-v2)

Contributors

1

[![Photo of the contributor](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/_next/image?url=https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F77292838%3Fv%3D4%26w=64%26q=75)](https://github.com/julia-rabello)

ON THIS PAGE

[Syntax](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/using-dynamic-expressions-on-master-data-v2%23syntax)

[Before you begin](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/using-dynamic-expressions-on-master-data-v2%23before-you-begin)

[Instructions](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/using-dynamic-expressions-on-master-data-v2%23instructions)

[Step 1: Creating a trigger](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/using-dynamic-expressions-on-master-data-v2%23step-1-creating-a-trigger)[Step 2: Configuring a trigger to use dynamic expressions](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/using-dynamic-expressions-on-master-data-v2%23step-2-configuring-a-trigger-to-use-dynamic-expressions)[Step 3: Testing the trigger](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/using-dynamic-expressions-on-master-data-v2%23step-3-testing-the-trigger)

Was this helpful?

 Send feedback

[Suggest edits (GitHub)](https://read.calvincode.net/reader?url=https://github.com/vtexdocs/dev-portal-content/edit/main/docs/guides/Master-Data/master-data-v2/using-dynamic-expressions-on-master-data-v2.md)

Copy page

On this page

ON THIS PAGE

[Syntax](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/using-dynamic-expressions-on-master-data-v2%23syntax)

[Before you begin](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/using-dynamic-expressions-on-master-data-v2%23before-you-begin)

[Instructions](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/using-dynamic-expressions-on-master-data-v2%23instructions)

[Step 1: Creating a trigger](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/using-dynamic-expressions-on-master-data-v2%23step-1-creating-a-trigger)[Step 2: Configuring a trigger to use dynamic expressions](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/using-dynamic-expressions-on-master-data-v2%23step-2-configuring-a-trigger-to-use-dynamic-expressions)[Step 3: Testing the trigger](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/using-dynamic-expressions-on-master-data-v2/docs/guides/using-dynamic-expressions-on-master-data-v2%23step-3-testing-the-trigger)

On this page

[Github](https://read.calvincode.net/reader?url=https://github.com/vtex-apps)[Help Center](https://read.calvincode.net/reader?url=https://help.vtex.com/)[Community](https://read.calvincode.net/reader?url=https://community.vtex.com/?%5Fga=2.198523433.743584735.1647618303-1974737580.1645714642)[Feedback](https://read.calvincode.net/reader?url=https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com%26entry.1799503232=)


[System] You are a VTEX documentation expert. You provide accurate, detailed information about VTEX platform, APIs, apps, and Store Framework development.

[User] How do I use the VTEX rich text app? Provide documentation and configuration details.

[Assistant]
Documentation

[Feedback](https://read.calvincode.net/reader?url=https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com%26entry.1799503232=)

[GuidesLearn how to use our APIs and extend the VTEX platform.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides)

[API ReferenceExplore detailed information about our endpoints.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/api-reference)

[App DevelopmentLearn how to build cloud-based apps and integrations.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/app-development)

[Storefront DevelopmentExpress your brand identity creating unique storefronts.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/storefront-development)

[VTEX IO AppsFind pre-built solutions to grow your business.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/vtex-io-apps)

[TroubleshootingFind practical solutions to common development issues.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/troubleshooting)

[Release NotesStay up to date with our latest releases and bug fixes.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/updates/release-notes)

VTEX IO Apps

[Basic components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/basic-components)

[Add To Cart Button](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.add-to-cart-button)

[Autocomplete](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.search/Autocomplete)

[Banner](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.search/banner)

[Breadcrumb](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.breadcrumb)

[Footer](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.store-footer)

[Google One-Tap Login](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/google-one-tap-login)

[Header](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.store-header)

[Locale Switcher](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.locale-switcher)

[Login](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.login)

[Menu](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.menu)

[Minicart](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.minicart)

[Order Placed](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.order-placed)

[Product Customizer](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-customizer)

[Product Highlights](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-highlights)

[Product Identifier](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-identifier)

[Product List](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-list)

[Product Price](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-price)

[Product Quantity](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-quantity)

[Product Specifications](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-specifications)

[Product Summary](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary)

[Product Summary Attachment List](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummaryattachmentlist)

[Product Summary Buy Button](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummarybuybutton)

[Product Summary Description](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummarydescription)

[Product Summary Image](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummaryimage)

[Product Summary List](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummarylist)

[Product Summary Name](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummaryname)

[Product Summary Shelf](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummaryshelf)

[Product Summary SKU Selector](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummaryskuselector)

[Product Summary SKU Name](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummaryskuname)

[Rich Text](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.rich-text)

[Search](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.search)

[Suggestions](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.search/suggestions)

[DidYouMean](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.search/didyoumean)

[Search Result](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.search-result)

[Store Image](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.store-image)

---

[Store Components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/store-components)

---

[Advanced components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/advanced-components)

---

[B2B components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/b2b-components)

---

[B2B Suite](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.b2b-suite)

---

[Functional Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/functional-apps)

---

[Layout Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/layout-apps)

---

[Pixel Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/pixel-apps)

---

[My Account - StoreV2 version](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.my-account)

---

[VTEX IO deprecated apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/vtex-io-deprecated-apps)

---

[Guides](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides)

[API Reference](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/api-reference)

[App Development](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/app-development)

[Storefront Development](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/storefront-development)

[VTEX IO Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/vtex-io-apps)

[Troubleshooting](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/troubleshooting)

---

[Release Notes](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/updates/release-notes)

VTEX IO Apps

[Basic components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/basic-components)

[Add To Cart Button](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.add-to-cart-button)

[Autocomplete](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.search/Autocomplete)

[Banner](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.search/banner)

[Breadcrumb](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.breadcrumb)

[Footer](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.store-footer)

[Google One-Tap Login](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/google-one-tap-login)

[Header](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.store-header)

[Locale Switcher](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.locale-switcher)

[Login](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.login)

[Menu](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.menu)

[Minicart](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.minicart)

[Order Placed](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.order-placed)

[Product Customizer](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-customizer)

[Product Highlights](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-highlights)

[Product Identifier](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-identifier)

[Product List](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-list)

[Product Price](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-price)

[Product Quantity](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-quantity)

[Product Specifications](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-specifications)

[Product Summary](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary)

[Product Summary Attachment List](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummaryattachmentlist)

[Product Summary Buy Button](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummarybuybutton)

[Product Summary Description](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummarydescription)

[Product Summary Image](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummaryimage)

[Product Summary List](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummarylist)

[Product Summary Name](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummaryname)

[Product Summary Shelf](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummaryshelf)

[Product Summary SKU Selector](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummaryskuselector)

[Product Summary SKU Name](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummaryskuname)

[Rich Text](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.rich-text)

[Search](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.search)

[Suggestions](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.search/suggestions)

[DidYouMean](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.search/didyoumean)

[Search Result](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.search-result)

[Store Image](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.store-image)

---

[Store Components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/store-components)

---

[Advanced components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/advanced-components)

---

[B2B components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/b2b-components)

---

[B2B Suite](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.b2b-suite)

---

[Functional Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/functional-apps)

---

[Layout Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/layout-apps)

---

[Pixel Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/pixel-apps)

---

[My Account - StoreV2 version](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.my-account)

---

[VTEX IO deprecated apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/vtex-io-deprecated-apps)

---

[VTEX IO Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/vtex-io-apps)

[Basic components](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/guides/basic-components)

Rich Text

Official extension

Version: 0.16.1

Latest version: 0.16.1

The Rich Text block converts text written in Markdown to HTML and displays it on your storefront.

![{"base64":"  ","img":{"width":1792,"height":1250,"type":"png","mime":"image/png","wUnits":"px","hUnits":"px","length":452544,"url":"https://cdn.jsdelivr.net/gh/vtexdocs/dev-portal-content@main/images/vtex-rich-text-0.png"}}](https://read.calvincode.net/reader?url=https://cdn.jsdelivr.net/gh/vtexdocs/dev-portal-content@main/images/vtex-rich-text-0.png)

For example, the following Markdown content

`1

[Help](https://read.calvincode.net/reader?url=https://developers.vtex.com/vtex-developer-docs/docs/welcome).\n**Be Bold!**\n*This is italic*

`

would be rendered as

`1

2

3

 Help

4

 Be Bold!

5

 This is italic

6

7

`

Learn more in [Markdown documentation](https://read.calvincode.net/reader?url=https://www.markdownguide.org/cheat-sheet/).

## Configuration

1. Add the `rich-text` app to your theme’s dependencies in the `manifest.json` file:

`1

 "dependencies": {

2

 "vtex.rich-text": "0.x"

3

 }

`

1. Add the `rich-text` block to your block files in the desired template position. Example:

`1

"rich-text": {

2

 "props": {

3

 "textAlignment": "CENTER",

4

 "textPosition": "CENTER",

5

 "text": "Visit our [help](https://read.calvincode.net/reader?url=https://developers.vtex.com/) section.\n**Be Bold!**\n*This is italic*",

6

 "textColor": "c-on-emphasis",

7

 "font": "t-heading-5",

8

 "blockClass": "help-message"

9

 }

10

}

`

## Props

| Prop name     | Type              | Description                                               |
| ------------- | ----------------- | --------------------------------------------------------- |
| blockClass    | string            | Unique class name appended to block classes. Default: ''  |
| font          | string            | Tachyon token used as font. Default: t-body.              |
| htmlId        | String            | HTML ID of the element.                                   |
| textColor     | string            | Tachyon token used as text color. Default: c-on-base.     |
| text          | string            | Text written in Markdown.                                 |
| textAlignment | TextAlignmentEnum | Text alignment inside the component. Default: "LEFT".     |
| textPosition  | TextPostionEnum   | Text position relative to the component. Default: "LEFT". |

* **`TextAlignmentEnum` possible values**

| Enum name | Enum value | Description                |
| --------- | ---------- | -------------------------- |
| Left      | 'LEFT'     | Aligns text to the left.   |
| Center    | 'CENTER'   | Aligns text to the center. |
| Right     | 'RIGHT'    | Aligns text to the right.  |

* **`TextPostionEnum` possible values**

| Enum name | Enum value | Description                                                  |
| --------- | ---------- | ------------------------------------------------------------ |
| Left      | 'LEFT'     | Positions content at the left of the component.              |
| Center    | 'CENTER'   | Positions content at the horizontal center of the component. |
| Right     | 'RIGHT'    | Positions content at the right of the component.             |

## Customization

To apply CSS customizations to this and other blocks, follow the guide [Using CSS handles for store customization](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/vtex-io-documentation-using-css-handles-for-store-customization).

| CSS Handle    |
| ------------- |
| container     |
| heading       |
| headingLevel1 |
| headingLevel2 |
| headingLevel3 |
| headingLevel4 |
| headingLevel5 |
| headingLevel6 |
| image         |
| italic        |
| link          |
| list          |
| listItem      |
| listOrdered   |
| paragraph     |
| strong        |
| table         |
| tableBody     |
| tableHead     |
| tableTd       |
| tableTh       |
| tableTr       |
| wrapper       |

[Product Summary SKU Name« Previous](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.product-summary/productsummaryskuname)[SearchNext »](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.search)

See also

[VTEX App StoreVTEX IO Apps](https://read.calvincode.net/reader?url=https://apps.vtex.com/)

ON THIS PAGE

[Configuration](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.rich-text%23configuration)

[Props](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.rich-text%23props)

[Customization](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/apps/vtex.rich-text/docs/apps/vtex.rich-text%23customization)

Was this helpful?

[Github](https://read.calvincode.net/reader?url=https://github.com/vtex-apps)[Help Center](https://read.calvincode.net/reader?url=https://help.vtex.com/)[Community](https://read.calvincode.net/reader?url=https://community.vtex.com/?%5Fga=2.198523433.743584735.1647618303-1974737580.1645714642)[Feedback](https://read.calvincode.net/reader?url=https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com%26entry.1799503232=)


[System] You are a VTEX documentation expert. You provide accurate, detailed information about VTEX platform, APIs, apps, and Store Framework development.

[User] Provide a guide on guides developing services on vtex io in VTEX.

[Assistant]
Documentation

[Feedback](https://read.calvincode.net/reader?url=https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com%26entry.1799503232=)

[GuidesLearn how to use our APIs and extend the VTEX platform.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides)

[API ReferenceExplore detailed information about our endpoints.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/api-reference)

[App DevelopmentLearn how to build cloud-based apps and integrations.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/app-development)

[Storefront DevelopmentExpress your brand identity creating unique storefronts.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/storefront-development)

[VTEX IO AppsFind pre-built solutions to grow your business.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/vtex-io-apps)

[TroubleshootingFind practical solutions to common development issues.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/troubleshooting)

[Release NotesStay up to date with our latest releases and bug fixes.](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/updates/release-notes)

App Development

[What is VTEX IO](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-what-is-vtex-io)

---

[What is a VTEX App](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-what-is-a-vtex-app)

---

[Governance and shared security in VTEX IO apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/governance-and-shared-security-in-vtex-io-apps)

---

[Code samples and templates](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/code-samples)

---

[Getting Started](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-getting-started)

---

Project structure

---

[VTEX IO CLI](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-vtex-io-cli-installation-and-command-reference)

---

[Workspace](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-workspace)

---

Managing apps

---

Development guides

---

[Node apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/app-development-guides)

[Services](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-service)

[Developing services on VTEX IO](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/developing-services-on-vtex-io)

[1\. Getting started with the boilerplate](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/services-1-getting-started-with-the-boilerplate)

[2\. Handling and receiving events](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/services-2-handling-and-receiving-events)

[3\. Using the Analytics client](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/services-3-using-the-analytics-client)

[4\. Using events as triggers](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/services-4-using-events-as-triggers)

[5\. Using the Master Data client](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/services-5-using-the-master-data-client)

[6\. Using GraphQL to retrieve data from Master Data](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/services-6-graphql-retrieving-data-from-master-data)

[7\. Using GraphiQL](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/services-7-using-graphiql)

[Services - Conclusion](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/services-conclusion)

[Calling commerce APIs on VTEX IO](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/calling-commerce-apis-on-vtex-io)

[Clients](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-clients)

Handling events

[Path patterns](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/service-path-patterns)

[Configuring dynamic routes in VTEX IO services](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/configuring-dynamic-routes-in-vtex-io-services)

[Developing service configuration apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-developing-service-configuration-apps)

[Node builder 7.x migration guide](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/node-builder-7x-migration-guide)

---

[GraphQL in VTEX IO](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/graphql-in-vtex-io)

---

[Policies and permissions](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-policies)

---

[A/B tests](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/ab-tests)

---

[Deployment](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-making-your-new-app-version-publicly-available)

---

[VTEX App Store](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-app-store)

---

[Edition Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/managing-edition-apps)

---

[Frequently asked questions](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-frequently-asked-questions)

---

[Guides](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides)

[API Reference](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/api-reference)

[App Development](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/app-development)

[Storefront Development](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/storefront-development)

[VTEX IO Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/vtex-io-apps)

[Troubleshooting](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/troubleshooting)

---

[Release Notes](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/updates/release-notes)

App Development

[What is VTEX IO](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-what-is-vtex-io)

---

[What is a VTEX App](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-what-is-a-vtex-app)

---

[Governance and shared security in VTEX IO apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/governance-and-shared-security-in-vtex-io-apps)

---

[Code samples and templates](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/code-samples)

---

[Getting Started](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-getting-started)

---

Project structure

---

[VTEX IO CLI](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-vtex-io-cli-installation-and-command-reference)

---

[Workspace](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-workspace)

---

Managing apps

---

Development guides

---

[Node apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/app-development-guides)

[Services](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-service)

[Developing services on VTEX IO](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/developing-services-on-vtex-io)

[1\. Getting started with the boilerplate](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/services-1-getting-started-with-the-boilerplate)

[2\. Handling and receiving events](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/services-2-handling-and-receiving-events)

[3\. Using the Analytics client](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/services-3-using-the-analytics-client)

[4\. Using events as triggers](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/services-4-using-events-as-triggers)

[5\. Using the Master Data client](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/services-5-using-the-master-data-client)

[6\. Using GraphQL to retrieve data from Master Data](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/services-6-graphql-retrieving-data-from-master-data)

[7\. Using GraphiQL](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/services-7-using-graphiql)

[Services - Conclusion](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/services-conclusion)

[Calling commerce APIs on VTEX IO](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/calling-commerce-apis-on-vtex-io)

[Clients](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-clients)

Handling events

[Path patterns](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/service-path-patterns)

[Configuring dynamic routes in VTEX IO services](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/configuring-dynamic-routes-in-vtex-io-services)

[Developing service configuration apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-developing-service-configuration-apps)

[Node builder 7.x migration guide](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/node-builder-7x-migration-guide)

---

[GraphQL in VTEX IO](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/graphql-in-vtex-io)

---

[Policies and permissions](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-policies)

---

[A/B tests](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/ab-tests)

---

[Deployment](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-making-your-new-app-version-publicly-available)

---

[VTEX App Store](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-app-store)

---

[Edition Apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/managing-edition-apps)

---

[Frequently asked questions](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-frequently-asked-questions)

---

[App Development](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/app-development)

[Node apps](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/app-development-guides)

[Services](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/vtex-io-documentation-service)

[Developing services on VTEX IO](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/developing-services-on-vtex-io)

Developing services on VTEX IO

The VTEX IO platform allows developers to create unique commerce experiences using Web technologies. It’s possible to create frontend blocks for Store Framework, backend services exposing REST or GraphQL APIs, and combine a series of VTEX modules into a complete solution, packaging it into an app.

As VTEX IO powers big ecommerce operations, they require running code on a server. **Services** are how we run **Node.js** or **.NET** code on VTEX IO infrastructure, backed by API abstractions to improve developer experience.

By the end of this tutorial, you will be able to export routes, handle events, and connect with internal and external applications, in order to make your application even better and make the most of VTEX's infrastructure.

* [service-course-template](https://read.calvincode.net/reader?url=https://github.com/vtex-trainings/service-course-template)
* [events-example](https://read.calvincode.net/reader?url=https://github.com/vtex-apps/events-example)

## Understanding services

A **Service** must be exported from a VTEX IO app, just like themes or store blocks, using `node` or `dotnet` builders. With these, you are able to develop a REST API without having to set up a server, GraphQL APIs and routes.

Services in VTEX IO support one-command rollbacks and continuous integration. They can export internal and external routes and run on top of Kubernetes. You can count on VTEX IO to manage the scalability of your services.

Inside the `/node` folder of a service is a `service.json` file, where it's possible to declare routes that the service must respond to and other configurations like timeout and memory.

During this course, you will implement some services in VTEX IO and learn more about the possibilities they offer to your development.

## Overview

1. [Getting started with the boilerplate](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/services-1-getting-started-with-the-boilerplate)
2. [Handling and receiving events](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/services-2-handling-and-receiving-events)
3. [Using the Analytics client](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/services-3-using-the-analytics-client)
4. [Using events as triggers](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/services-4-using-events-as-triggers)
5. [Using the Master Data client](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/services-5-using-the-master-data-client)
6. [GraphQL: Retrieving data from Master Data](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/services-6-graphql-retrieving-data-from-master-data)
7. [Using GraphiQL](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/services-7-using-graphiql)
8. [Conclusion](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/services-conclusion)

## Before you begin

Make sure you check the technical requirements to complete this project:

* Basic knowledge of [GraphQL](https://read.calvincode.net/reader?url=https://graphql.org/learn/).
* Experience developing in [Typescript](https://read.calvincode.net/reader?url=https://www.typescriptlang.org/) language.
* The VTEX IO CLI is installed on your computer.

Contributors

1

[![Photo of the contributor](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/_next/image?url=https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F60782333%3Fv%3D4%26w=64%26q=75)](https://github.com/carolinamenezes)

Was this helpful?

Yes

No

[Suggest Edits (GitHub)](https://read.calvincode.net/reader?url=https://github.com/vtexdocs/dev-portal-content/edit/main/docs/guides/vtex-io/services/developing-services-on-vtex-io.mdx)

[Services« Previous](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io//docs/guides/vtex-io-documentation-service)[1\. Getting started with the boilerplateNext »](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io//docs/guides/services-1-getting-started-with-the-boilerplate)

Contributors

1

[![Photo of the contributor](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/_next/image?url=https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F60782333%3Fv%3D4%26w=64%26q=75)](https://github.com/carolinamenezes)

ON THIS PAGE

[Understanding services](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/developing-services-on-vtex-io%23understanding-services)

[Overview](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/developing-services-on-vtex-io%23overview)

[Before you begin](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/developing-services-on-vtex-io%23before-you-begin)

Was this helpful?

 Send feedback

[Suggest edits (GitHub)](https://read.calvincode.net/reader?url=https://github.com/vtexdocs/dev-portal-content/edit/main/docs/guides/vtex-io/services/developing-services-on-vtex-io.mdx)

Copy page

On this page

ON THIS PAGE

[Understanding services](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/developing-services-on-vtex-io%23understanding-services)

[Overview](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/developing-services-on-vtex-io%23overview)

[Before you begin](https://read.calvincode.net/reader?url=https://developers.vtex.com/docs/guides/developing-services-on-vtex-io/docs/guides/developing-services-on-vtex-io%23before-you-begin)

On this page

[Github](https://read.calvincode.net/reader?url=https://github.com/vtex-apps)[Help Center](https://read.calvincode.net/reader?url=https://help.vtex.com/)[Community](https://read.calvincode.net/reader?url=https://community.vtex.com/?%5Fga=2.198523433.743584735.1647618303-1974737580.1645714642)[Feedback](https://read.calvincode.net/reader?url=https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com%26entry.1799503232=)