---
schema_version: "1"
id: ff2eb5db2a5a96d3d7b49a37ad2c778d8bda8980139ba8f261c91748ac0b6fc6
title: WaveTemplateConfigurationModifier Methods
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/analytics/bi_dev_guide_wave_templates/guides/concept/bi-templatesdev-apex-class-methods.md
canonical_url: https://developer.salesforce.com/docs/analytics/bi-dev-guide-wave-templates/guide/bi-templatesdev-apex-class-methods.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 5e56979688a2a20009de5e1cc095d1f99ba351da89a89604145fcb2eb2aed877
products:
  - Analytics Templates Developer Guide
  - analytics
---

# WaveTemplateConfigurationModifier Methods

Extend `WaveTemplateConfigurationModifier` with the following methods.

- `onConfigurationRetrieval`. Runs before the wizard starts. This method is for standard apps only. If the org lacks required data or settings, you can customize the wizard (variables) based on the org data check or disable app creation. Requires `WaveTemplateInfo`:

  ```nolang
  onConfigurationRetrieval(wavetemplate.WaveTemplateInfo waveTemplate)
  ```

- `beforeAppCreate`. Runs after completion of the wizard for standard apps or on app creation for embedded apps. Use this method to avoid errors during app creation as the result of invalid user selections or org settings. Requires `WaveTemplateInfo` and `Answers`:

  ```nolang
  beforeAppCreate(wavetemplate.WaveTemplateInfo template, wavetemplate.Answers answers)
  ```

- `beforeAppUpdate`. Runs before app updates based on new version of the template for standard and embedded apps. Use this method to validate that org data is compatible with new version. Requires `WaveTemplateInfo`, `Answers`, and the previous app version:

  ```nolang
  beforeAppUpdate(wavetemplate.WaveTemplateInfo template, String previousAppVersion, wavetemplate.Answers answers)
  ```

The methods are optional and all of them can be overridden.
