New UX app migration using card template

Anaplan Community Blog
edited November 2023 in Blog

Author: This blog was contributed by a consultant with Deloitte.

One of the key components of ALM functionality is the deployment or migration of code from a Dev model to Prod model. Since Anaplan does not provide an ALM sync for UX changes, the most common approach used is creating duplicate copies of Dev pages and changing the source of pages to Prod followed by deletion of the old Prod pages. While this approach is quite convenient, but also comes with a challenge that pages’ URLs are changed post migration. Frequently changing URLs can be challenging for users in case they bookmark the URLs for future reference.

In this blog post, we are presenting a new approach to migrate the changes on the pages using the existing Anaplan features. Card Template — which is now available in both board as well as worksheet — is the backbone of this approach.

Detailed walk though of the approach

Let us understand each step of the migration process with the help of examples. We have created a Dev app, Prod app, and made multiple enhancement changes in the Dev app — we will use one of them to simulate the steps involved in the migration process.

  1. If you have multiple source models added to your Dev app, select the relevant source model and cross check if any saved template exists on the app already, if yes, then delete them.
  2. Identify all the grids/cards that have undergone changes or newly added in the current release for the respective apps (keep a note of this during development phase).
    Prod app Dev app
  3. Once complete, validate it with the respective user story developer to confirm all have been correctly identified on the apps.
  4. Enter the edit mode of the app, and for the identified grids/cards click on the three dots at the right top corner of the grid/card, and select “save card as template”. Save it with the name as follows: <Serial Number>.Release <release number>_< Grid name >, here serial number we will start assigning numeric value starting with 1.
  5. Once done for all the grids/cards for the current app in Dev environment, move to Production environment to open the production app and add the same model selected in #1 as a source model.
  6. As you select the newly added model as a source model from the dropdown at the app, you will be able to see all your saved cards as template items in the edit mode under the card template library. Every grid/card that is part of our migration if already present on the app — then delete them and drag drop the relevant saved template in that area. If a new grid/card is to be published, then simply follow the Dev apps and place the saved template accordingly so that it matches Dev app's structure.
  7. Make sure the alignment of the grids/cards matches with the previous grid size or Dev apps design (if change was approved of the grid size in the current sprint) and keep a close watch on the context selectors to check if only relevant ones are turned on and if any filters were applied on context selectors needs to be reapplied here as well.
  8. Now select the Prod model from the dropdown of the source model and do a quick sanity check before you publish the changes. Remove the newly added model as a source model from Production app and delete all saved template.

Rules of the road

A few points to always keep in mind when you follow this approach for migration:

  • Alignment/size of the card will not be automatically adjusted and must be done manually to align with Dev apps.
  • Any updates to the context selectors must be done manually including filter, show/hide, or turn off.
  • Once all updates to the Prod apps are complete, make sure to delete all the saved template and remove additional model from the page source.

This approach is one of the most efficient ways for migration of UX changes to pages while retaining the same page URL. The risk to the Production page is also very low and requires very minimal manual work.


  • I Appreciate the great efforts and thought process, but I feel it's lot of re-work to identify, save, publish and delete cards (and it is repetitive process not one time) instead we can enable multiple source models and after sync changes will be replicated automatically.