2

Many years ago, when Tableau CRM (TCRM) still was called Einstein Analytics, I created a Managed Extension Package leveraging it. It was complicated to understand what could be packaged and what not. For the Subscriber Admin, there were many manual steps, and many half-backed Add-on packages had to be used to make it work.

  1. What has changed since then?
  2. What can be packaged?
  3. Can I use SFDX and scratch orgs for a multi-developer process
  4. Are there good sample repositories that show SFDX package development for TCRM?
  5. Are there Trailhead modules and tutorials that cover the most topics in an easy-to-learn fashion?
4
  • As you alluded, this is a very broad set of questions and doesn't really fit with the expectations of this site (enumerating the specific challenges, pointing to research etc.). It would, of course, be a different situation if you had provided a lengthy self-answer covering how issues were solved. Because of this, I'm inclined to suggest this be closed for lack of detail. I think this would be better asked on the Partner Forums (which, I suspect, you already did)...
    – Phil W
    Commented Nov 18, 2022 at 11:52
  • Agreed with Phil -- this is too broad of a "question"
    – daveespo
    Commented Nov 18, 2022 at 14:17
  • 1
    I do not agree. Even though this is generic, it is asking for a development process. Maybe it could be reworded a bit. Commented Nov 19, 2022 at 1:33
  • @PhilW I seldomly ask on the Partner forum as the answers are slow and seldom of the quality of SFSE. Commented Nov 20, 2022 at 12:27

3 Answers 3

6

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

  1. Salesforce CLI
  2. Salesforce Extension for VSCode
  3. Tableau CRM CLI Plugin installed via

sfdx plugins:install @salesforce/analytics

  1. 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

enter image description here

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.

12
  • Great answer Mohit. Is there also some video or Trailhead modules that are related to packaging concepts? If so please add them to your link list. Commented Nov 19, 2022 at 15:02
  • Mohit another question that you maybe can cover is update behaviour. As an ISV partner packaging a Template. What can I update with my subscribers and what not? Commented Nov 19, 2022 at 16:16
  • @RobertSösemann I added some info on upgrade behavior. It overwrites any customization that's done. Also, no Trailhead module found for the packaging concepts for TCRM yet. Commented Nov 19, 2022 at 18:26
  • Why are you recommending 2GP packages? I didn't find any explanation in the docs that you provided. Commented Nov 20, 2022 at 12:26
  • 1
    2GP because of same reasons why one would want to use 2GP instead of 1GP in Salesforce development today. Commented Nov 20, 2022 at 13:45
1

I have created Analytics Apps under both the first generation and current approaches.

In the early days, you had to package the underlying analytics assets - apps, dataflows, datasets, lens, dashboards and xmd. There were many limitations and manual steps required by the admin after install.

Now, you create a CRM Analytics Template. The experience will be like the Sales, Service, Net-Zero, etc. templated apps. Users have the option to create from the template and answer interview like questions.

You still build the underlying starting analytics assets. Rather than packaging them directly, you create the Template by pointing it to the app. You can add customization logic in the template based on what the user should change. Then you package the Analytics Template in your managed package.

Once an admin install the managed package and assign licenses, there's an option for your template under Create | App in Analytics Studio.

0
1

Very comprehensive answer Mohith and Carl. Thanks so much. We, highly recommend templates although each analytics asset can be packaged individually. Upgrades, personalization etc can be challenging if you do not go the template route. I would also like to encourage you to check out this webinar recording that I posted on the partner community. Our engineers and architects show you step by step how to develop and package with templates. If you do not have access to the partner community, please dm me.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .