In recent years, the product team for Tableau CRM Developer experience has worked to ensure the development workflow closely aligns with the regular Salesforce development.
Tools Needed
- Salesforce CLI
- Salesforce Extension for VSCode
- Tableau CRM CLI Plugin installed via
sfdx plugins:install @salesforce/analytics
- Salesforce org that has access to the Tableau CRM licenses
Prerequisites Needed
Make sure to create an app in the Tableau CRM Studio. Note down its Id. The ID becomes the folderId you use as you work with the WaveTemplate object.
More on how to obtain is included in this document.
High Level Overview of the Process
All of the rest of the process is described in the Analytics Template Developer Guide
You first build a Source App --> Create a template from it via CLI --> Pull and manage all source code via Salesforce CLI --> Package it up and push it downstream to other orgs --> End users create the downstream app from the template that gets installed.
Handy Documentation Links For Reference
What Cannot be packaged?
I recommend using 2GP Packaging. The packaging considerations are documented here.
Upgrade Behavior
If the admin upgrades the app from a new template version, any customizations made to downstream apps are overwritten. To preserve customizations, we advise admins to save customized app assets before upgrading so they can copy the customizations into the new version.
Admins can elect to not upgrade from a new version and preserve the original downstream app with its customizations. To help admins determine the value of upgrading, provide details about the new template version in the releaseNotes.html file referred to by template-info.json.
So the key is to back up everything using version control. Have clients back up their customizations so you can restore them as needed.