Putting a “Last Updated Date” on a Dashboard

Putting a “Last Updated date” on a Dashboard

Goal: display the last updated date of the dataset you're using

1) Include the “LastModifiedDate” field in your dataset coming from Salesforce.

2) create a new step to to be able to get the last modified date (it doesn't have to be a complicated one like this)

            "ActivityLastUpdateStep": {
                "datasets": [
                    {
                        "id": "0Fb30000000TNFvCAO",
                        "label": "SE_Activity",
                        "name": "SE_Activity",
                        "url": "/services/data/v42.0/wave/datasets/0Fb30000000TNFvCAO"
                    }
                ],
                "isFacet": true,
                "isGlobal": false,
                "query": {
                    "measures": [
                        [
                            "count",
                            "*"
                        ]
                    ],
                    "pigql": "q = load \"SE_Activity\";
                    q = filter q by 'Owner.ManagerL01.Name' == \"Marc Benioff\";
                    q = group q by 'Owner.ManagerL01.Name';
                    q = foreach q generate 'Owner.ManagerL01.Name' as 'Owner.ManagerL01.Name',
                    toString(toDate(max('LastModifiedDate_sec_epoch')),\"dd MMM yyyy HH:mm\") as 'LastUpdate';",
                    "groups": [
                        "LastUpdate"
                    ],
                    "filters": []
                },
                "selectMode": "single",
                "type": "aggregate",
                "useGlobal": true,
                "visualizationParameters": {
                    "options": {},
                    "visualizationType": "hbar"
                }
            }
        },
        "widgetStyle": {
            "backgroundColor": "#FFFFFF",
            "borderColor": "#E6ECF2",
            "borderEdges": [],
            "borderRadius": 0,
            "borderWidth": 1
        },

3) create a new text box and then go into the Dashboard json to replace the empty text with a “Binding” to display the information you grabbed above:

            "text_7": {
                "parameters": {
                    "fontSize": 10,
                    "text": "(Dataset Last Updated: {{cell(ActivityLastUpdateStep.result, 0, \"LastUpdate\").asString()}})",
                    "textAlignment": "right",
                    "textColor": "#FFFFFF"
                },
                "type": "text"
            },

A Custom Greeting with SOQL and Bindings

Custom Greeting with SOQL and Bindings

Of course you could do this with any other kind of step on the page as well...you just have to use the actual step name in the binding.

{
    "label": "Custom Greeting with SOQL",
    "state": {
        "dataSourceLinks": [],
        "gridLayouts": [
            {
                "name": "Default",
                "numColumns": 12,
                "pages": [
                    {
                        "widgets": [
                            {
                                "colspan": 3,
                                "column": 0,
                                "name": "listselector_1",
                                "row": 3,
                                "rowspan": 2,
                                "widgetStyle": {
                                    "borderEdges": []
                                }
                            },
                            {
                                "colspan": 6,
                                "column": 0,
                                "name": "text_1",
                                "row": 2,
                                "rowspan": 1,
                                "widgetStyle": {
                                    "backgroundColor": "#091A3E",
                                    "borderColor": "#E6ECF2",
                                    "borderEdges": [],
                                    "borderRadius": 0,
                                    "borderWidth": 1
                                }
                            },
                            {
                                "colspan": 4,
                                "column": 0,
                                "name": "text_2",
                                "row": 1,
                                "rowspan": 1,
                                "widgetStyle": {
                                    "backgroundColor": "#091A3E",
                                    "borderColor": "#E6ECF2",
                                    "borderEdges": [],
                                    "borderRadius": 0,
                                    "borderWidth": 1
                                }
                            }
                        ]
                    }
                ],
                "rowHeight": "normal",
                "selectors": [],
                "style": {
                    "alignmentX": "left",
                    "alignmentY": "top",
                    "backgroundColor": "#F2F6FA",
                    "cellSpacingX": 8,
                    "cellSpacingY": 8,
                    "fit": "original",
                    "gutterColor": "#C5D3E0"
                },
                "version": 1
            }
        ],
        "layouts": [],
        "steps": {
            "UserData": {
                "groups": [],
                "numbers": [],
                "query": "SELECT Username, Country, FirstName, LastLoginDate FROM User WHERE Name = '!{user.name}'",
                "selectMode": "single",
                "strings": [
                    "Username",
                    "Country",
                    "FirstName",
                    "LastLoginDate"
                ],
                "type": "soql"
            },

            "Account_Industry_Acc_1": {
                "datasets": [
                    {
                        "id": "0FbB00000000pkFKAQ",
                        "label": "Opportunities",
                        "name": "opportunity1",
                        "url": "/services/data/v40.0/wave/datasets/0FbB00000000pkFKAQ"
                    }
                ],
                "isFacet": true,
                "isGlobal": false,
                "query": {
                    "measures": [
                        [
                            "sum",
                            "Account.AnnualRevenue"
                        ],
                        [
                            "sum",
                            "Amount"
                        ]
                    ],
                    "groups": [
                        "Account.Industry",
                        "Account.AccountSource"
                    ]
                },
                "type": "aggregateflex",
                "useGlobal": true,
                "visualizationParameters": {
                    "parameters": {
                        "autoFitMode": "none",
                        "showValues": true,
                        "showPoints": true,
                        "legend": {
                            "showHeader": true,
                            "show": true,
                            "customSize": "auto",
                            "position": "right-top",
                            "inside": false
                        },
                        "axisMode": "multi",
                        "visualizationType": "combo",
                        "missingValue": "connect",
                        "title": {
                            "label": "",
                            "align": "center",
                            "subtitleLabel": ""
                        },
                        "trellis": {
                            "flipLabels": false,
                            "showGridLines": true,
                            "enable": false,
                            "type": "x",
                            "chartsPerLine": 4
                        },
                        "measureAxis2": {
                            "sqrtScale": false,
                            "showTitle": true,
                            "showAxis": true,
                            "title": "",
                            "customDomain": {
                                "showDomain": false
                            }
                        },
                        "measureAxis1": {
                            "sqrtScale": false,
                            "showTitle": true,
                            "showAxis": true,
                            "title": "",
                            "customDomain": {
                                "showDomain": false
                            }
                        },
                        "theme": "wave",
                        "dimensionAxis": {
                            "showTitle": true,
                            "customSize": "auto",
                            "showAxis": true,
                            "title": "",
                            "icons": {
                                "useIcons": false,
                                "iconProps": {
                                    "fit": "cover",
                                    "column": "",
                                    "type": "round"
                                }
                            }
                        }
                    },
                    "type": "chart",
                    "options": {}
                },
                "selectMode": "single"
            }
        },
        "widgetStyle": {
            "backgroundColor": "#FFFFFF",
            "borderColor": "#E6ECF2",
            "borderEdges": [],
            "borderRadius": 0,
            "borderWidth": 1
        },
        "widgets": {
            "text_1": {
                "parameters": {
                    "fontSize": 20,
                    "text": "Last Login Date: {{cell(UserData.result, 0, \"LastLoginDate\").asString()}}",
                    "textAlignment": "left",
                    "textColor": "#FFFFFF"
                },
                "type": "text"
            },
            "text_2": {
                "parameters": {
                    "fontSize": 20,
                    "text": "How the heck are ya, {{cell(UserData.result, 0, \"FirstName\").asString()}}",
                    "textAlignment": "left",
                    "textColor": "#FFFFFF"
                },
                "type": "text"
            },
            "listselector_1": {
                "parameters": {
                    "compact": false,
                    "displayTemplate": "[FirstName]- [Username]",
                    "exploreLink": false,
                    "instant": true,
                    "step": "UserData",
                    "title": "Users"
                },
                "type": "listselector"
            }
        }
    },
    "datasets": [
        {
            "id": "0FbB00000000pkFKAQ",
            "label": "Opportunities",
            "name": "opportunity1",
            "url": "/services/data/v40.0/wave/datasets/0FbB00000000pkFKAQ"
        }
    ]
}

How to Replicate the Einstein Opportunity Score field on other Objects Related to Opportunity

How to Replicate the Einstein Opportunity Score field on other Objects Related to Opportunity

Background

The Einstein Opportunity Score field that comes with the Sales Cloud Einstein license has been highly useful for me as I prioritize what to work on in List Views. As a specialist at Salesforce, most of my day to day work is done on objects related to the Opportunity and unfortunately the score is not accessible to put on another object out of the box. To complicate things further, as you try to use the Opportunity.IqScore field, it takes you down a black hole that might require coffee to get out of so this is an attempt to prevent you from having to do the same!

Solution

On the related object where you want to replicate the Einstein opportunity score, create a custom formula of type number (no precision decimals needed) and paste the following snippet in there:

Opportunity__r.OpportunityScore.Score

Note: make sure this field is shared with the Analytics Cloud integration user, security user, and any other Profile where you think it'd be useful.

Now your end users can go into any of their list views, and choose to Select a field to add to the list view and choose “Einstein Opportunity Score” or whatever you chose to name your new field. Then they can use this field to sort or group their Kanban on as you can see in the picture: