Saturday, July 17, 2021

Tableau CRM: Using Multi Value (2)

In the previous blog, the solution using dataflow (by adding isMultiValue and multiValueSeparator) only works if the multivalue field is originated from Salesforce as picklist (multi-select), but not for a field created by augment from parent to child object.

If you need to do the same in the scenario of augmenting from parent to child object, you need to use the mv_to_string() function, and please note this feature is still in beta (as of Summer 21 release), and there is a statement "Indexing multivalue fields can slow down dataflows", make sure you test your dataflow properly in a sandbox before turning on this feature.

ComputeExpression node does not support multi-value field, so this also means that we cannot use this feature in dataflow, but only in the dashboard.

Opportunity Text is the result of the mv_to_string('Opportunity.Name') added in the Table widget, while we maintain to use 'Opportunity.Name' field in the list or filter widget.

"query": "q = load \"Acct_Opty\";\nq = foreach q generate
mv_to_string('Opportunity.Name') as 'Opportunity Text',
'Opportunity.Name' as 'Opportunity.Name','Branch_Multi' as 'Branch_Multi',
'Branch__c' as 'Branch__c';\n\nq = order q by 'Name' asc;\nq = limit q 1000;",


Friday, July 16, 2021

Tableau CRM: Using Multi Value (1)

We discussed Multi-Select Value to Text two years ago. To get a field with multi-value:

  • source field in SFDC is picklist (multi select)
  • use augment node in dataflow, where child object as the right source

In this blog, we have another use scenario of using multi-select values related to the Filter/List and Table widget. This blog is only applicable for multivalue fields originated from Salesforce as picklist (multi-select).

Using multi-value field in a Filter or List widget
It is great to use a multi-value field as a filter or list widget, it will show you unique values of each, instead of combined the values with a delimiter.

multivalue in Filter

multivalue in List

Using multi-value field in Table widget
However, it does not looks good when you add that field in a table, it will only show you the 1st values, instead of all values for that field.

select Singapore, but show Indonesia, because Indonesia is the 1st value

The need, to show all values in the table, however, the filter only shows one unique value. 

Multi-value field limitation
We cannot use the multivalue field in the computeExpression node, so we cannot "clone" the field.

Solution use Dataflow
1. In sfdcDigest node, convert the field not as multivalue by adding "isMultiValue": false

2. In the computeExpression node, clone the text field (as per 1), so now we have a cloned multivalue field in the non-multivalue format.

3. Convert the clone field back as a multivalue field. Download the JSON file, edit the file and add with below parameters in the computeExpression node
"isMultiValue": true,
"multiValueSeparator": ";"

4. Upload back the JSON file updated

  • Branch_Multi is the new field created from computeExpression which now is a multivalue field.
  • Branch__c is the original field from sfdcDigest, where we "force" this as a non-multivalue field in sfdcDigest node.

Here is the result

select Singapore from List/Filter, but the table shows all values


Thursday, July 15, 2021

Tableau CRM: Broadcast and Facet across dataset

Tableau CRM offers dashboard creators to use more than 1 dataset in a dashboard, such as the Parent and Child dataset. Then we can link the dataset with a key using Connect Data Source. Selecting a chart or list view value will filter the other dataset too.

Let's see how this works. For this blog, I will just simply use the Account and Opportunity objects.

Account dataset
- Id
- Name

Opportunity dataset
- Id
- Account Id
- Name

Then, we connect Account.Id with Opportunity.AccountId in the dashboard using Connected Data Source.

1. Simply add Account Name and Opportunity Name only in the chart and list view

Clicking Account value does not filter Opportunity - FAIL

Clicking Opportunity value does not filter Account  - FAIL

2. Add (Account Name) and (Opportunity Name, Account ID) in the chart

Clicking Account value does not filter Opportunity - FAIL

Clicking Opportunity value filter Account - SUCCESS

3. Add (Account Name, Id) and (Opportunity Name, Account ID) in the chart

Clicking Account value filter Opportunity - SUCCESS

Clicking Opportunity value filter Account - SUCCESS

Lesson learned
We need the key use to link added to the chart of broadcast, otherwise, it will not facet the selected value as a filter to the other connected dataset.

Using the setup from scenario (3), let us test further by selecting Account Name and Opportunity Name from the List widget.

Selecting Account list does not filter Opportunity - FAIL

Selecting Opportunity list does not filter Account - FAIL

4. Keep all set up as (3), then add Account ID to List widget for Opportunity Name

Selecting Account list does not filter Opportunity - FAIL

Selecting Opportunity list does not filter Account - SUCCESS

Lesson learned
Same as the previous lesson learned, we need to have the key in the widget that broadcast value for filtering. 

5. Adding Id in Account list view 

This will succeed as we have the key in the broadcaster widget.

For aesthetic reasons, we do not want to show ID in the list widget, we can remove it from the display, but not remove it from the widget, with this way, selecting a Name will still broadcast the key (in this case ID), select the widget, select "Customize display and format" then remove the[ ID].

Now, we don't have the "ugly" ID anymore appear as the list of values 😊

Wednesday, July 7, 2021

Salesforce: Default Opportunity Team

In the previous post, we discussed Default Account Team, this post would be on Default Opportunity Team. Opportunity Team defines additional users that are involved when working in an Opportunity, with or without giving extra access to the team members to that Opportunity.

Opportunity Team is pretty similar to Account Team, but there is a difference in some areas, let's see as below.

What the same?

1. Both are defined in the user detail

2. Both can add or not add extra access to users added with a team role as team members

3. Both have a list of Team Roles and share the same values

4. Both have a Default team for a user

5. Both can be set up automatically add the default team to accounts or open opportunities when the user own Account or Opportunity

6. Both can add users as the default team on existing accounts or open opportunities

7. Both can manually Add Default Team from the Account Team or Opportunity Team related list

8. One user can be added only once to the Account team and to the Opportunity team

What difference?

1. In the Account team, the user can give access to Account, Contact, Opportunity, and Case, while in the Opportunity team, only can give access to the Opportunity.

Default Account Team

Default Opportunity Team

2. You can add account team members as opportunity teams from Opportunity Team related list.

Manual add user to Account Team

Manual add user to Opportunity Team

Tuesday, July 6, 2021

Salesforce: Default Account Team

We have discussed Account Team and Opportunity Team quite a lot in this blog, here is the summary: 

  • Account Team Report: multiple report results by selecting different options in Show Me using Account with Account Teams report type, also the difference with Account report type.

So what is Account Team in short? Account Team defines additional users that are involved in an Account, in addition to the Account Owner. The additional users added as the Account Team can have extra access permission or without extra permission on the related Account, Contact, Opportunity, and Case

In this blog, we will discuss using Default Account Team, the keyword here is Default. One user can only have one default account team (and one default opportunity team). The default account team is defined at the user detail, which should be the Account Owner. This setting can be performed by the Account owner or users above the owner in the role hierarchy and having Read access on the account object.

Automatically add my default account team to accounts that I create or accounts that are transferred to me
Default Account Team can be set up to be automated, which means when the user owns an Account or Opportunity, the default team will be added automatically. To automate this, make sure "Automatically add my default account team to accounts that I create or accounts that are transferred to me" is selected. This setting applies to ALL users added as Account Team.

Similar to Account Team, you need to set access of Contact, Opportunity, Case access, and Team Role when adding each user into for Default Account Team.

Default Account Team

If the checkbox "Automatically add..." is not selected, the Account Team will only be added when the user clicks the "Add Default Team" button from the Account Team related list.

Manually add Account Team

Update account teams with these members
To add the new members added to the default team for all existing accounts owned by the user, select Update account teams with these members when adding the users. You also can add an existing user who has been added as Account Team by edit the user in the Account team and select Update the account teams of my existing accounts.

Automatically add my default account team to accounts that I create or accounts that are transferred to me -- apply to all users for an account owner.

Update account teams with these members -- apply only to selected users in the account team, this will only add users to the Account team. 

However, a user can be added to the Account Team only once, even with a different Team Role, so adding the same user to the Account Team will overwrite the existing user in the Account Team. The overwritten behavior applies to manually add the default Account Team from the "Add Default Team" button.


Page-level ad