LogoLogo
HomepageYouTube ChannelInstall from the AppExchange
  • Home
  • Dynamic Components
  • Flow Components
  • Experience Components
  • Projects
  • 👋Welcome
  • Getting Started
    • Product Tour
    • Quickstart Tutorial
    • Understanding The Essentials
      • Component Builder
      • Component Visibility
      • Target Page Object
      • Using Variables and Component Data
      • Publishing your Dynamic Components
      • Dynamic vs. Flow Components
    • Avonni Components App
      • Folders
      • Version management
    • Installation & Licenses Management
  • Tutorials
    • Projects
    • Components
      • Calendar
        • How to Create Events Quickly by Dragging
        • How to Add an Edit Action to Calendar Events
        • How to Add a New Event Button to the Calendar Header
        • How to Customize the Right-Click Menu
        • How to Reschedule Events with Drag and Drop
      • Columns
        • Creating a Responsive 3-Column Layout
      • Data Table
        • How to customize Data Table style
        • How to make a field editable
        • How to add clickable buttons
        • How to color-code badges
        • How to export data
        • How to configure search
        • How to set columns visibility
      • Kanban
        • Saving Changes on Drag-and-Drop
      • List
      • Metric
      • Record Detail
        • Saving Changes
    • Interactions
      • How to create an interaction to navigate to an object page
      • How to create an interaction to navigate to a record page
      • How to Pass Multiple Selected Records from a Dynamic Component to a Screen Flow
    • Reactive Components
      • Reactive Map and Data Table
      • Master-Detail Relationship with Data Tables
      • Vertical Tabs with Reactive Data Table
    • Style
      • How do you add space or a break between sections or fields?
    • Tips and Tricks
      • Using the Dynamic Component component
  • Component Builder
    • Overview
    • Configuring Components
      • Properties
      • Fields
      • Style
    • Data & Interactions
      • Data Sources
        • Manual
        • Picklist
      • Resources
        • Constant
        • Formula
        • Nested Queries
        • Query
        • Variable
      • Interactions
        • CRUD from Record Variable
        • Download
        • Execute Flow
        • Navigate
        • On Load
        • Open Alert Modal
        • Open Confirm
        • Open Dynamic Component Dialog
        • Open Dynamic Component Panel
        • Open Flow Panel
        • Open Flow Dialog
        • Show Toast
    • Advanced Topics
      • Undo / Redo
      • Copy and Paste
      • Keyboard Shortcut
  • Components
    • Explore All Components
    • Accordion
    • Alert
    • Audio Player
    • Avatar
    • Avatar Group
    • Badge
    • Barcode
    • Blockquote
    • Button
    • Button Group
    • Button Icon
    • Button Menu
    • Button Stateful
    • Calendar
    • Camera 🆕
    • Card
    • Carousel
    • Chart
    • Checkbox
    • Checkbox Button
    • Chip Container
    • Color Picker
    • Columns
    • Combobox
    • Container
    • Counter
    • Data LWC Container
    • Data Table
    • Date Picker
    • Date
    • Date Range
    • Dual Listbox
    • Dynamic Component
    • Formatted Address
    • Formatted Name
    • Formatted Value
    • Header
    • Icon
    • Icon Picker
    • Illustration
    • Image
    • Input Color
    • Input Date
    • Input Pen (Signature)
    • Input Text
    • Kanban
    • List
    • Map
    • Media Object
    • Metric
    • PDF Viewer 🆕
    • Pivot Table 🆕
    • Progress Bar
    • Progress Circle
    • Progress Indicator
    • Rating
    • Record Detail
    • Relationship Graph 🆕
    • Scope Notification
    • Section
    • Separator
    • Slider
    • Status
    • Tabbed Container
    • Tabs
    • Text
    • Text Area
    • Timeline
    • Toggle
    • Tree
    • Vertical Visual Picker
    • Video Player
    • Visual Picker
    • Visual Picker Link
  • Help
    • Contact Support
    • Security
    • Performance Guide
    • Deployment Process
    • Release Notes
    • Report Bugs
Powered by GitBook
LogoLogo

Company

  • About Us
  • Pricing

Policies

  • Privacy Policy
  • Terms of Service
On this page
  • Overview: Simple & Portable Deployment
  • How Dynamic Components are Stored: Custom Metadata Types
  • The Deployment Workflow
  • Using Common Deployment Tools
  • Change Sets
  • Salesforce DX (SFDX)
  • Third-Party Tools
  • In Summary

Was this helpful?

  1. Help

Deployment Process

Last updated 7 days ago

Was this helpful?

This page explains how Avonni Dynamic Components are stored within Salesforce and how you can easily deploy them between your different Salesforce environments (e.g., from a Sandbox to Production, or between developer orgs).

Overview: Simple & Portable Deployment

One of the key advantages of Avonni Dynamic Components is their portability. Because they are built and stored natively on the Salesforce platform, moving your custom-built components between organizations is straightforward using standard Salesforce deployment tools.

How Dynamic Components are Stored: Custom Metadata Types

When you create and save a component using the visual Avonni Component Builder (the drag-and-drop interface), its entire definition – the layout, component configurations, data source details, interactions, styling – is stored as a record within a specific Custom Metadata Type (CMDT) provided by the Avonni Dynamic Components managed package.

(Think of each Dynamic Component you build, like "Enhanced Related List" or "Account Dashboard", as a single record in this special Avonni CMDT).

Using Custom Metadata Types for storage is what makes your components easily deployable. You are essentially deploying data (the CMDT records) that the installed Avonni package understands and renders.

The Deployment Workflow

The general process for deploying your Dynamic Components follows standard Salesforce practices:

  1. Build & Test: Create, configure, and thoroughly test your Dynamic Component in a source environment (typically a Sandbox). Remember to Save and Activate the component within the Avonni Component Builder.

  2. Identify Components: Determine which specific Dynamic Component definitions (i.e., which CMDT records) need to be moved to the target environment.

  3. Choose Deployment Tool: Select your preferred standard Salesforce deployment method: Change Sets, Salesforce DX (SFDX), Ant Migration Tool, or third-party solutions like Gearset or Copado.

  4. Include CMDT Records: Add the specific Custom Metadata Type records representing your Dynamic Components to your deployment package (e.g., add them to your outbound Change Set or list them in your package.xml for SFDX). The relevant CMDT name will likely be similar to avonnidc__Dynamic_Component__mdt (check your org's Custom Metadata Types for the exact name installed by the package).

  5. Deploy: Use your chosen tool to deploy the package or Change Set to the target Salesforce org.

  6. Verify & Configure in Target Org:

    • Confirm the CMDT records were deployed successfully.

    • Open the Avonni Components app in the target org to see your deployed components. They may initially be in a 'Draft' state and require Activation within the builder in the target org before use.

    • Use the Lightning App Builder to add your activated Dynamic Components to the desired Lightning Pages.

Using Common Deployment Tools

Change Sets

  1. Create an outbound Change Set in your source org.

  2. Under "Component Type," select "Custom Metadata Type".

  3. Click "Add" and select the specific records corresponding to the Dynamic Components you want to deploy.

  4. Add any other necessary dependent components (like custom fields/objects referenced, Apex classes called by interactions, Flows, etc.).

  5. Upload the Change Set and deploy it in the target org.

Salesforce DX (SFDX)

  1. Ensure your package.xml manifest file includes the Custom Metadata Type for Avonni Dynamic Components. It will look something like this (verify the exact name Avonni_Dynamic_Component__mdt in your org):XML

    <types>
        <members>*</members>
        <name>CustomMetadata</name>
    </types>
    <types>
        <members>Avonni_Dynamic_Component__mdt.*</members>
        <name>CustomObject</name>
    </types>

    (Note: CMDT records are often retrieved/deployed via the CustomObject metadata type definition in package.xml) Alternatively, or for more granularity, you might reference the specific records within the CustomMetadata type entry if you only want to deploy certain components.

  2. Use SFDX commands (sf project retrieve start / sf project deploy start) to retrieve the CMDT records from the source org and deploy them to the target org.

Third-Party Tools

Tools like Gearset and Copado typically support the deployment of custom metadata types and their associated records. Follow the specific instructions for your chosen tool, ensuring you select the Avonni Dynamic Component CMDT records for deployment.

Important Considerations

  • Activation in Target Org: Deployed components often arrive in a 'Draft' state in the target org. You will likely need to open them in the Avonni Component Builder in the target org and Activate them before adding them to Lightning Pages.

  • Dependencies: Ensure any underlying components your Dynamic Component relies on (custom objects, fields, Apex classes called by interactions, Flows, etc.) are also included in your deployment or already exist in the target org.

  • Permissions & Licenses: Verify that users and administrators in the target org have the necessary Avonni licenses and permission sets assigned to use the builder and view the deployed components.

  • Managed Package Updates: Ensure both the source and target orgs are on the same (or compatible) version of the Avonni Dynamic Components managed package before deploying component definitions.

In Summary

Avonni Dynamic Components are designed for easy deployment across Salesforce environments. By storing component definitions as standard Custom Metadata Type records, you can leverage familiar tools like Change Sets and SFDX to manage your application lifecycle effectively