Flexi Kanban
  • Introduction
    • πŸ“ƒAbout Flexi Kanban
    • βš–οΈFlexi Kanban in Comparison with Other
    • πŸ“˜What are Kanbans?
    • πŸ“•User's Guide to the Kanban Boards
  • Standard Dashboard
    • πŸš€Getting started
      • How to Build a Simple Kanban Using Creation Wizard Abilities
      • Demo Example: Task Dashboard
      • Demo Example: Events Dashboard
      • Demo Example: Opportunities Dashboard
      • Demo Example: Gantt Dashboard
      • Demo Example: Cases Dashboard
    • πŸ“Basics
      • How to Create Standard Dashboard
      • How to Create Child Dashboard
      • How to Incorporate Child Dashboard into Lightning Page
      • How to Open Dashboard in builder (Edit)
      • How to Share Dashboard
      • How to Clone Dashboard
    • πŸ—οΈConfigure Dashboard
      • Working with Dashboard Layout
      • How to Configure Dashboard Basic Properties
      • How to Configure Dashboard Filters
      • How to Add Dashboard Statistics
      • How to Configure Variables
      • How to Configure Events
      • How to add Dashboard Buttons and Menus
    • πŸ™οΈConfigure Column
      • How to Π‘onfigure Column Properties
      • How to Set Column Groups
      • How to Set and Use Column Custom Attributes
      • How to configure Column Data Source
      • How to work with Related Objects
      • How to configure Column Header
      • How to configure Column Body
      • How to configure Column Footer
      • How to configure Column Container and Filters
    • 🎫Configure Card
      • How to configure Card Properties
      • How to configure Card Data Source and Conditions
      • How to configure Card Compact Layout
      • How to configure Card Layout
      • How to configure and use Card Custom Attributes
      • Configuring Card Movement and Column Junctions
      • Configuring Card Actions
    • πŸ“šGroups of Cards
      • How to configure Card Grouping
    • πŸ”§Tools
      • Using Merge Field Picker
      • Using Formula Editor
      • Configuring CSS styles
      • Configuring Rows, Cells, Menus and Buttons
      • Configuring Handlers
    • πŸ‘“Using Dashboard
      • How to use Kanban API actions
      • How to Incorporate Dashboard into Lightning Page
      • How to build the link to the Dashboard
      • How to Work with Variables
      • How to debug Dashboard
      • How to Work with Filters and Orders
    • ✨Howtos and Best Practices
      • How to configure communication between Dashboards
      • How to configure communication between Dashboard and Form
      • How to display different layouts for the same kanban card
      • How to design kanban for your needs
        • How to colorize cards
        • How to add a quick-filter column
      • What inactive column can be used for
      • Tips and Tricks
  • Composite Dashboard
    • πŸ—„οΈIntroduction
      • πŸ”§How to Create a Composite Dashboard
    • πŸͺ›Working with Composite Dashboard Layout
      • Configuring Parent Dashboard
      • Configuring Child Dashboard
    • πŸ–‡οΈConnections Between Dashboards
    • πŸ”¬Examples
      • !! Calendar Dashboard
    • πŸ₯‡Howtos and Best Practices
      • How to Pass Variables Between Parent and Child Dashboards
  • Components
    • πŸ“‹Forms
      • πŸ“‘Basics
        • Form Building Overview
        • Working with Form Settings
        • Working with Source Object fields
        • How to Preview the Form
        • How to configure the Form Sharing Rules
        • Understanding the Form Dependencies
        • Working with Conditional Styles
        • Working with Conditions
        • Search Over the Form
      • πŸͺ›Tools
        • Variables
        • Additional Fields
        • Context Object
        • Form Action
        • Event
      • Components
        • Add and Remove Form Components
        • Components Basic Properties
        • Components Validation Rules
        • Styling Form and Form Components
        • String Field
        • Text Area Field
        • Rich Text Field
        • Lookup Field
        • Date Field
        • Datetime Field
        • Time Field
        • Number Field
        • Currency Field
        • Multi-Select Field
        • Picklist Field
        • Option: Section
        • Option: Static Text
        • Option: Image
        • Option: Blank Space
        • Option: File
        • Option: Custom Button
        • Option: Custom URL
        • Option: Nested Form
        • Option: Lightning Component
        • List. Related Lists.
      • Using Form
        • How to incorporate Form into the Lightning Page
        • How to incorporate Form into Screen Flow
        • How to build the link to the Form
        • (unpublished, empty)How to incorporate Form into the Lightning Component
        • How to run Form Action from Lightning Component
      • Tricks, Hints and Best Practices
        • How to configure communication between Forms
        • How to pre-populate form fields
        • Deployment of Forms
        • What Are Parameters?
    • 🀾Actions/Action Groups
      • Basics
        • Working with Actions
        • Working with Action Groups
        • Working with Functions
        • Working with Context objects
        • Working with Conditions
      • Types
        • Validation Rule Action
        • Define Variable Action
        • Create Record Action
        • Update Records Action
        • Delete Records Action
        • Send Email Action
        • Callout Action
        • Execute Apex Action
        • KanBan API Action
      • Using Actions
        • !!unpublished empty!! How to execute Action/Group from the SF Process/Flow Builder
        • How to execute Action/Group through the REST api
        • !!unpublished empty!! How to execute Action/Group from the Einstain Bot
        • !!unpublished empty !! How to execute Action/Group from APEX
      • Best Practices
        • !! How to use Execute in background option
        • !! Deployment Actions/Action Groups
  • πŸ“–References
    • βš™οΈApplication Settings
    • ♾️Functions
      • SObject
      • Text
      • Logical
      • Numeric
      • Date and Time
      • JSON
      • System
      • Charts
    • πŸ—ƒοΈQuery Conditions
    • Apex Data Provider
    • πŸ“How to add a Kanban to Navigation Items Panel
    • πŸ‘₯Manage Licenses
    • πŸͺͺAssign Permission Sets
    • πŸ“¦Deployment
      • Deploying Using Standard Credentials
      • Deploying Using Connected App Authentication
      • How to configure the Salesforce Connected Application for Flexi Kanban deployment
  • Grant Login Access to Support
  • Subscription Plans
  • Support Agreement
  • Access License Agreement
  • Privacy Policy
Powered by GitBook
On this page
  • Create new dashboard
  • Configure dashboard
  • Configure columns
  • Configure Card
  • Configure Column Junctions
  • Configure Card Actions
  1. Standard Dashboard
  2. Getting started

Demo Example: Cases Dashboard

Last updated 5 months ago

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

  • 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:

background-position: bottom center;
background-repeat: no-repeat;
background-size: 100% auto;
background-color: #E6EBE5;

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:

  • Type = Text

  • Value =

FORMULA[
  IF(
    OR(
      ISBLANK({$Variables.SelectedCaseReason}),
      {$Variables.SelectedCaseReason} = ''
    ),
    'Cases without reason',
    {$Variables.SelectedCaseReason} cases
  )
]

Set CSS Styles to this cell:

z-index: 1;
align-items: center;
justify-content: center;
display: flex;
background-color: #F7F7F7;
position: absolute;
font-size: 1.5rem;
top: 0;
left: 0;
height: 100%;
padding: 0 1.25em;
#
Variable Name
Variable Value

1

SelectedCaseReason

Installation

2

CurrentKanbanId

{$KanBan.Id}

Configure columns

  • 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)

    • 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

  • 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:

position: absolute;
top: 20px;
left: 84px;
width: calc(100% - 94px);
height: 47px;
border-radius: 4px 4px 0 0;
border-right: 0px none;
background-color: rgba(255,255,255,0.3);
border-bottom: 0px none;
border-top: 8px solid #CCCCCC;
padding: 0.5rem 0.75rem 0.5rem;
    • Type = Text

    • CSS Styles = Font-size: 1rem;

  • Set the cell Value to the following formula:

New FORMULA[
  IF(
    OR(
      ISBLANK({$Variables.SelectedCaseReason}),
      {$Variables.SelectedCaseReason} = ''
    ),
    'Cases without reason',
    {$Variables.SelectedCaseReason} cases
  )
]
  • 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:

  • Type = Kanban API

  • Value = Update Variables

  • Parameters:

    • kanbans = {$Variables.CurrentKanbanId}

    • variables = {"SelectedCaseReason":"Installation"}

Success handler:

  • Type = Kanban API

  • Value = Refresh Kanbans

  • Parameters:

    • kanbans = {$Variables.CurrentKanbanId}

2

utility:custom_apps

Cases with "Equipment Complexity" reason.

Cell handler:

  • Type = Kanban API

  • Value = Update Variables

  • Parameters:

    • kanbans = {$Variables.CurrentKanbanId}

    • variables = {"SelectedCaseReason":"Equipment Complexity"}

Success handler:

  • Type = Kanban API

  • Value = Refresh Kanbans

  • Parameters:

    • kanbans = {$Variables.CurrentKanbanId}

3

utility:graph

Cases with "Performance" reason.

Cell handler:

  • Type = Kanban API

  • Value = Update Variables

  • Parameters:

    • kanbans = {$Variables.CurrentKanbanId}

    • variables = {"SelectedCaseReason":"Performance"}

Success handler:

  • Type = Kanban API

  • Value = Refresh Kanbans

  • Parameters:

    • kanbans = {$Variables.CurrentKanbanId}

4

utility:warning

Cases with "Breakdown" reason.

Cell handler:

  • Type = Kanban API

  • Value = Update Variables

  • Parameters:

    • kanbans = {$Variables.CurrentKanbanId}

    • variables = {"SelectedCaseReason":"Breakdown"}

Success handler:

  • Type = Kanban API

  • Value = Refresh Kanbans

  • Parameters:

    • kanbans = {$Variables.CurrentKanbanId}

5

utility:palette

Cases with "Equipment Design" reason.

Cell handler:

  • Type = Kanban API

  • Value = Update Variables

  • Parameters:

    • kanbans = {$Variables.CurrentKanbanId}

    • variables = {"SelectedCaseReason":"Equipment Design"}

Success handler:

  • Type = Kanban API

  • Value = Refresh Kanbans

  • Parameters:

    • kanbans = {$Variables.CurrentKanbanId}

6

utility:comments

Cases with "Feedback" reason.

Cell handler:

  • Type = Kanban API

  • Value = Update Variables

  • Parameters:

    • kanbans = {$Variables.CurrentKanbanId}

    • variables = {"SelectedCaseReason":"Feedback"}

Success handler:

  • Type = Kanban API

  • Value = Refresh Kanbans

  • Parameters:

    • kanbans = {$Variables.CurrentKanbanId}

7

utility:world

Cases with "Other" reason.

Cell handler:

  • Type = Kanban API

  • Value = Update Variables

  • Parameters:

    • kanbans = {$Variables.CurrentKanbanId}

    • variables = {"SelectedCaseReason":"Other"}

Success handler:

  • Type = Kanban API

  • Value = Refresh Kanbans

  • Parameters:

    • kanbans = {$Variables.CurrentKanbanId}

8

utility:error

Cases without reason set.

Cell handler:

  • Type = Kanban API

  • Value = Update Variables

  • Parameters:

    • kanbans = {$Variables.CurrentKanbanId}

    • variables = {"SelectedCaseReason":null}

Success handler:

  • Type = Kanban API

  • Value = Refresh Kanbans

  • Parameters:

    • kanbans = {$Variables.CurrentKanbanId}

Configure Card

  • Set Data Source Type to "Case"

  • Set card layout header to show the number of active Case record:

padding-left: 44px;
  • 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):

FORMULA[
  CASE(
    {Case.Priority},
    low, 'utility:like',
    medium, 'utility:touch_action',
    high, 'utility:dislike',
    'utility:waits'
  )
]
  • Set its Title to the following formula (it will dynamically change the icon tooltip depending on case priority):

Priority FORMULA[CASE({Case.Priority}, low, ': low', medium, ': medium', high, ': high', 'not set')]
  • Do not set handlers

  • Set CSS Styles to these:

width:24px;
background-color:FORMULA[CASE({Case.Priority}, low, #04A300, medium, #F88D00, high, #F73B00, #7799DD)];
color:#FFFFFF;
border-radius:24px;
height:24px;
display:flex;
justify-content:center;
align-items:center;
top:50%;
position:absolute;
margin-top:-12px;
left:10px;
  • 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

    • Drag-n-drop allowed to ALL columns

    • Drop behavior for source column: Remove card

    • Drop behavior for target column: Refresh

Configure Card Actions

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}

Go to and create new standard dashboard.

Go to . Add which will overlay unnecessary views selector:

Go to tab. Add these variables:

Add 5 to the dashboard

to all columns:

Add to each column with name = Status and value equal to column name

Add to the footer of "New" column. Set these properties to the cell:

to dashboard

Set to necessary type. In this example it is set to SObject and Record ID is set to {Case.Id}:

Open and add these styles to the Card settings:

Set for card on each column:

To add a sense to Cards dragging are necessary. In this example action will be the same for all columns, so, no need to configure them separately.

πŸš€
height: calc(100% - (28px + 39px + 20px));
left: 64px;
width: calc(100% - 94px);
top: calc(28px + 39px);
position: absolute;
margin: 0 10px 20px 20px;
border-right: 0px none;
background: rgba(255,255,255,0.3);
border-radius: 0 0 4px 4px;
border-radius: 0 0 4px 4px;
background: rgba(255,255,255,0.3);
border-right: 0px none;
margin: 0 10px 20px 10px;
border-radius: 0 0 4px 4px;
background: rgba(255,255,255,0.3);
border-right: 0px none;
margin: 0 20px 20px 10px;
height: 100%;
max-width: 64px;
width: 64px;
padding: 0;
border-bottom: 0;
cursor: pointer;
border-radius: 4px 4px 0 0;
border-right: 0px none;
background-color: rgba(255,255,255,0.3);
border-bottom: 0px none;
margin: 20px 10px 0 10px;
border-top: 8px solid #7799DD;
padding: 0.5rem 0.75rem 0.5rem;
border-radius: 4px 4px 0 0;
border-right: 0px none;
background-color: rgba(255,255,255,0.3);
border-bottom: 0px none;
margin: 20px 10px 0 10px;
border-top: 8px solid #F73B00;
padding: 0.5rem 0.75rem 0.5rem;
border-radius: 4px 4px 0 0;
border-right: 0px none;
background-color: rgba(255,255,255,0.3);
border-bottom: 0px none;
margin: 20px 10px 0 10px;
border-top: 8px solid #F88D00;
padding: 0.5rem 0.75rem 0.5rem;
border-radius: 4px 4px 0 0;
border-right: 0px none;
background-color: rgba(255,255,255,0.3);
border-bottom: 0px none;
margin: 20px 20px 0 10px;
border-top: 8px solid #04A300;
padding: 0.5rem 0.75rem 0.5rem;
top: 0;
color: FORMULA[IF({$Variables.SelectedCaseReason} = 'Installation',#FFFFFF,#7799DD)];
border-bottom: 0.125px solid #DDDBDA;
transform-origin: top left;
transform: scale(2);
align-items: center;
justify-content: center;
display: flex;
height: 32px;
width: 32px;
position: absolute;
background: FORMULA[IF({$Variables.SelectedCaseReason} = 'Installation',#7799DD,#FFFFFF)];
margin-left: -1px;
margin-left: -1px;
background: FORMULA[IF({$Variables.SelectedCaseReason} = 'Equipment Complexity',#7799DD,#FFFFFF)];
position: absolute;
width: 32px;
height: 32px;
display: flex;
justify-content: center;
align-items: center;
transform: scale(2);
transform-origin: top left;
border-bottom: 0.125px solid #DDDBDA;
color: FORMULA[IF({$Variables.SelectedCaseReason} = 'Equipment Complexity',#FFFFFF,#7799DD)];
top: 63px;
position: absolute;
width: 32px;
height: 32px;
display: flex;
justify-content: center;
align-items: center;
transform: scale(2);
transform-origin: top left;
border-bottom: 0.125px solid #DDDBDA;
color: FORMULA[IF({$Variables.SelectedCaseReason} = 'Performance',#FFFFFF,#7799DD)];
top: 126px;
background: FORMULA[IF({$Variables.SelectedCaseReason} = 'Performance',#7799DD,#FFFFFF)];
margin-left: -1px;
margin-left: -1px;
background: FORMULA[IF({$Variables.SelectedCaseReason} = 'Breakdown',#7799DD,#FFFFFF)];
top: 189px;
color: FORMULA[IF({$Variables.SelectedCaseReason} = 'Breakdown',#FFFFFF,#7799DD)];
border-bottom: 0.125px solid #DDDBDA;
transform-origin: top left;
transform: scale(2);
align-items: center;
justify-content: center;
display: flex;
height: 32px;
width: 32px;
position: absolute;
margin-left: -1px;
background: FORMULA[IF({$Variables.SelectedCaseReason} = 'Equipment Design',#7799DD,#FFFFFF)];
top: 252px;
color: FORMULA[IF({$Variables.SelectedCaseReason} = 'Equipment Design',#FFFFFF,#7799DD)];
border-bottom: 0.125px solid #DDDBDA;
transform-origin: top left;
transform: scale(2);
align-items: center;
justify-content: center;
display: flex;
height: 32px;
width: 32px;
position: absolute;
margin-left: -1px;
background: FORMULA[IF({$Variables.SelectedCaseReason} = 'Feedback',#7799DD,#FFFFFF)];
top: 315px;
color: FORMULA[IF({$Variables.SelectedCaseReason} = 'Feedback',#FFFFFF,#7799DD)];
border-bottom: 0.125px solid #DDDBDA;
transform-origin: top left;
transform: scale(2);
align-items: center;
justify-content: center;
display: flex;
height: 32px;
width: 32px;
position: absolute;
margin-left: -1px;
background: FORMULA[IF({$Variables.SelectedCaseReason} = 'Other',#7799DD,#FFFFFF)];
top: 378px;
color: FORMULA[IF({$Variables.SelectedCaseReason} = 'Other',#FFFFFF,#7799DD)];
border-bottom: 0.125px solid #DDDBDA;
transform-origin: top left;
transform: scale(2);
align-items: center;
justify-content: center;
display: flex;
height: 32px;
width: 32px;
position: absolute;
margin-left: -1px;
background: FORMULA[IF(OR(ISBLANK({$Variables.SelectedCaseReason}), {$Variables.SelectedCaseReason} = ''),#7799DD,#FFFFFF)];
top: 441px;
position: absolute;
width: 32px;
height: 32px;
display: flex;
justify-content: center;
align-items: center;
transform: scale(2);
transform-origin: top left;
border-bottom: 0.125px solid #DDDBDA;
color: FORMULA[IF(OR(ISBLANK({$Variables.SelectedCaseReason}), {$Variables.SelectedCaseReason} = ''),#FFFFFF,#7799DD)];
dashboard creation wizard
Variables Configuration
columns
Set these properties
custom attribute
Add 1 card
card layout
Card Compact Layout editor
column junctions
some actions
Statistics Configuration
the cell
one row with one cell
This image is taken by author of this example and can be used by any person for any purpose, commercial or not, without any restrictions.