Demo Example: Cases Dashboard
The given Cases Dashboard represents a way to show cases by their reasons, manage them and change their statuses. Here is how this dashboard can look like:
This dashboard shows cases in 5 columns; each column corresponds to one of case statuses. By dragging the case card from one column to another user can easily change its status. Left tab bar allows user to display cases corresponding to different reasons. Click on them to apply selected reason to all columns - this acts like tabs or filter.
To make a such dashboard administrator should do actions listed below:
Create new dashboard
Go to dashboard creation wizard and create new standard dashboard.
Give it a name and description.
Select "White" theme.
Save dashboard and go to Kanban Builder.
Configure dashboard
Set these CSS Styles to Dashboard on Basics Configuration Tab:
Add the background-image CSS property and set it to: url('data:image/jpeg;base64,...')
, where URL is a proper image encoded in base64 format (to embed image into dashboard and to avoid loading it from another source). In this example this image is used:
Go to Statistics Configuration. Add the cell which will overlay unnecessary views selector:
Type = Text
Value =
Set CSS Styles to this cell:
Go to Variables Configuration tab. Add these variables:
# | Variable Name | Variable Value |
---|---|---|
1 | SelectedCaseReason | Installation |
2 | CurrentKanbanId | {$KanBan.Id} |
Configure columns
Add 5 columns to the dashboard
Name columns accordingly to the table below
Leave columns widths default ("auto") except the column with "New" name (set it width to 24%)
Leave columns "Is Active" checkboxes default (checked)
Set these properties to all columns:
Data Source Type = SObject
Data Source = Case
Order = Case ID, asc
Set conditions to the columns accordingly to the table below (leave conditions logic empty in all columns):
Column | Field Name | Operator | Type | Value |
---|---|---|---|---|
New | Case Reason Status Status Status Status | equals not equal to not equal to not equal to not equal to | Formula Value Value Value Formula | {$Variables.SelectedCaseReason} Working Escalated Closed Active |
Active | Case Reason Status | equals equals | Formula Formula | {$Variables.SelectedCaseReason} Active |
Escalated | Case Reason Status | equals equals | Formula Value | {$Variables.SelectedCaseReason} Escalated |
Working | Case Reason Status | equals equals | Formula Value | {$Variables.SelectedCaseReason} Working |
Closed | Case Reason Status | equals equals | Formula Value | {$Variables.SelectedCaseReason} Closed |
Add custom attribute to each column with name = Status and value equal to column name
Set the following styles for column bodies on Body Configuration tab:
# | Column | Column Body CSS styles |
---|---|---|
1 | New | |
2 | Active | |
3 | Escalated | |
4 | Working | |
5 | Closed |
Set these styles to column headers on the Header Configuration tab:
# | Column | Column Header CSS styles |
---|---|---|
1 | New | |
2 | Active | |
3 | Escalated | |
4 | Working | |
5 | Closed |
Set these styles to the footer of "New" column on the Footer Configuration tab:
Add one row with one cell to the footer of "New" column. Set these properties to the cell:
Type = Text
CSS Styles = Font-size: 1rem;
Set the cell Value to the following formula:
Add the following cells with Type = Icon to the header of "New" column. Set these properties to them:
# | Value | Title | CSS Styles | Handlers |
---|---|---|---|---|
1 | utility:setup | Cases with "Installation" reason. | Cell handler:
Success handler:
| |
2 | utility:custom_apps | Cases with "Equipment Complexity" reason. | Cell handler:
Success handler:
| |
3 | utility:graph | Cases with "Performance" reason. | Cell handler:
Success handler:
| |
4 | utility:warning | Cases with "Breakdown" reason. | Cell handler:
Success handler:
| |
5 | utility:palette | Cases with "Equipment Design" reason. | Cell handler:
Success handler:
| |
6 | utility:comments | Cases with "Feedback" reason. | Cell handler:
Success handler:
| |
7 | utility:world | Cases with "Other" reason. | Cell handler:
Success handler:
| |
8 | utility:error | Cases without reason set. | Cell handler:
Success handler:
|
Configure Card
Add 1 card to dashboard
Set Data Source Type to "Case"
Set card layout to necessary type. In this example it is set to SObject and Record ID is set to {Case.Id}:
Set card layout header to show the number of active Case record:
Open Card Compact Layout editor and add these styles to the Card settings:
By default Card Compact Layout contains one component of text type; this component contains Record ID. Click on it and change its Value to {Case.CaseNumber} - {Case.SuppliedName}
Leave its Title empty
Set its width to 100 (leave default)
Leave Handler and Styles empty
Add Icon component #2 at the left of the previous
Set its Value to the following formula (it will dynamically set icon depending on case priority):
Set its Title to the following formula (it will dynamically change the icon tooltip depending on case priority):
Do not set handlers
Set CSS Styles to these:
Add text component #3 below
Set its value to Reason: {Case.Reason}
Do not set its Title, handlers and styles
Add text component #4 below
Set its value to Type: {Case.Type}
Do not set its Title, handlers and styles
Add text component #5 below
Set its value to Origin: {Case.Origin}
Do not set its Title, handlers and styles
Add text component #6 below
Set its value to
FORMULA[IF(ISBLANK({Case.ClosedDate}), '',Closed: {Case.ClosedDate})]
Do not set its Title, handlers and styles
Configure Column Junctions
Set column junctions for card on each column:
Drag-n-drop allowed to ALL columns
Drop behavior for source column: Remove card
Drop behavior for target column: Refresh
Configure Card Actions
To add a sense to Cards dragging some actions are necessary. In this example action will be the same for all columns, so, no need to configure them separately.
Click on card and add a new action with these properties:
Name = Update Case Status
Type = Field Update
Execute = Always
Status = Active
Context Object Type = Case
In the Field Update Settings section configure this:
Object Name = Case
Fields:
Name = Status
Value = {$TargetColumn.a__Status}
Conditions:
Case ID eqials {case.id}
Last updated