Sigma has always been known as a leader in analytics, with its cloud-built platform designed to support today's massive data scale challenges.
Sigma has been extended to enable customers to build rich, interactive applications, automate workflows, and take action customized to their team's needs—all without writing any code.
This transformation has occurred in stages, and we are now in stage three, as shown in the image below.
This QuickStart demonstrates how to use Sigma to build a data application (app) entirely within the Sigma UI. The data used will come from, and be stored in, Snowflake. During this demonstration, we will build a fully functional project tracking data app that, in the past, may have taken significant time to get up and running.
This QuickStart is a bit longer than usual, and we understand that people can be pressed for time. While it is well worth the investment, if you can't spare the time, you can instead watch this 5-minute video to see how impactful Sigma data apps can be for your organization.
The Project Tracker
will support the following:
Category | Description |
Projects | Top Level reporting. |
Tasks | Tasks are children of projects. Each project may have 1 or more tasks. |
Status | Project status changes over time. Create a flow to track status over time while displaying just the latest status for a project. |
Approvals | All projects must be reviewed and approved prior to being marked as complete. |
UI | Able to see all project details in one place. |
Some of the core Sigma functionalities we will touch are:
After completing this QuickStart we will have built a fully functional data app based on a project management use case.
The finished can look something like this (depending on your styling choices!):
For more information on Sigma's product release strategy, see Sigma product releases.
Developers evaluating Sigma embedding and the security options.
The following is a guideline for the different parts of the Sigma interface so that we are oriented to the terms that will be used throughout this QuickStart. Not every item is called out, but the most used ones are.
For more information, see Getting around in Sigma
Input tables are dynamic workbook elements that support structured data entry. They allow you to integrate new data points into your analysis and augment existing data from your data platform to facilitate rapid prototyping, advanced modeling, forecasting, what-if analysis, and more—without overwriting source data.
Use input tables as sources for tables, pivot tables, and visualizations, or incorporate the data using lookups and joins. And when you create warehouse views for input tables, you can reuse the manually entered data across your broader data ecosystem.
There are many options to control how users are permitted to use input tables.
For more information on this topic, see: Configure data governance options in input tables
Log into Sigma and select the + Create New
> Workbook
from the homepage:
For more information on Sigma's release strategy, see Sigma product releases
There is also a QuickStart each month that covers all the release activity for the previous months. For more information, see First Friday Features
Create an empty input table on Sigma Sample Database by clicking on Input
in the element bar and dragging an Empty
input table onto the page.
Click the Select connection
button and choose the Sigma Sample Database
. Click Create
.
Change the title of the new input table (by double-clicking its current title) to Project Tracker Input Table
:
In this step, we will create three new columns: two as text
and one as date
format.
First, rename the existing Text
column to Project Name
.
Next, create two additional text
and one date
columns:
Rename the new columns to Project Owner
, Project Type
, and Project Due Date
respectively:
Rename the workbook page to Project Tracker
and add a new page, by clicking the +
icon in the footer. Rename it to Data Validation
:
In this step we will create three additional input tables, reloading them with data from csv files.
Click the button below to download the files (in zip format). Extract them to a known location to make the easy to find.
The download will contain three csv files once extracted:
Now that we have the files, we can add three CSV
input tables using the element bar as we previously did.
The only different thing is this workflow is we need to Upload CSV
using the csv input table button:
Browse
to where the csv files downloaded are stored and select the first one.
After selecting the first csv file, Sigma allows you to adjust the Parsing Options
and review the parsed data. This ensures the data makes it to the input table as expected. If everything looks correct, click Save
.
Once all three input tables are added, rename them to match the content:
On the Project Tracker
page, open the menu for the Project Owner
column on the Project Tracker Input Table
and select Data validation
:
For Value source
, select the Data Validation
page and then Employees
. Click Save
.
Now when the Project Owner
column is restricted to the list of Employees
from that input table:
Repeat this step for the Project Type
column, using the Project Type
input table as the source of validation value.
Delete any rows that may be present in the Project Tracker Input Table
while we were building.
Add the following row of data to the Project Tracker Input Table
.
Click the Save as
button and name workbook as Data Apps Fundamentals
.
Using the element barm, in the Controls
group, add a Text Input
control above the input table:
Rename it Project Name
.
With the Project Name
control selected, change the Control ID
to cp-ProjectName
in the properties panel:
Add a List Values
control element titled Project Owner
.
In the properties panel under Value Source
, select Data Validation
> Employee
and set the Source column
to Name
.
Ensure that only the Show Clear Button
and Show Search Box
are selected.
Rename the Control ID
to cp_ProjectOwner
:
Repeat step 10 for Project Type
.
In the properties panel under Value Source
, select Data Validation
> Project Type
and the Project Type
column.
Rename the Control ID
to cp_ProjectType
.
Add a Date
control titled Project Due Date
with a Control ID
of cp_ProjectDueDate
.
The page should look like this now:
Add a button from the element bar, UI
group to the page and set its name to Create Project
:
On the Actions
panel of the Create Project
button, add a new action and select Insert Row
.
Ensure the values align for each control to the Project Tracker Input Table
:
What this action does is add a new row to the input table, containing whatever values are set in the four controls on our page.
If you click the button with no values provided, an empty row is added to the input table. Right click that empty row and select Delete 1 row
if needed.
Click Publish
.
Once the action has been set up we may want to adjust the size of each control and the Create Project
button.
Now let's create some projects. It does not really matter what your decide to use for the control, it is test data anyway.
For more information on this topic, see: Configure data governance options in input tables
Click the Create Project
button to test if everything was set up correctly:
Select each control (shift+click) and the Create Project
button.
At the top right, choose the Create container
option from the selected elements menu:
Rename the container Create Project Container
Click on your Create Project
button, and go to Actions
.
Create a second action set to Clear control
applied to Container
with our newly created Create Project Container
. This will set the action to automatically target all four control elements:
Add an additional row of data to test the clear action on each control element within the container.
The updated Project Tracker
Input Table should look as follows, with a new row of data and the controls cleared once the Create Project
button is clicked:
Click on the Create Project
container, and then click the icon at the top right of the container.
Select the Move to
> New Modal
option.
Name the modal Modal - Create Project
by changing the workbook page name.
By now, we assume you are familiar with where elements are accessed and configured in Sigma, so we may not show all steps.
Rename the title from New Modal
to Create a New Project
.
Deselect both Primary
and Secondary
button options under Footer
in the selected element panel.
Move the various elements around and resize everthing to suit. Trim any unnecessary space:
Create a new button and rename it to Clear Form
.
In the actions panel, set the action to clear the Create Project Container.
This is a good best practice for improving user experience.
Add an action to the Create Project
button to Close Modal
:
Actions can be added in series to create dynamic behavors. For more information see Configure an action sequence
Return to the Project Tracker
page and add a button titled Create Project
.
Add an action to Open a Modal
for the Modal - Create Project
:
Click the Create Project
button to test the action. Modal - Create Project
should opens. Check that add a record, clear and create project works to add a new row in the Project Tracker
.
Congratulations You have now successfully built a form to do controlled data entry into the Project Table!
Considering how easy that was AND data is being written automatically to the cloud data warehouse, that is pretty slick. Let's go further still.
On the Project Tracker Input Table
page, create filters for the Project Name
, Project Owner
, and Project Type
one at a time.
For more information on keyboard shortcuts in Sigma, check out these docs:
Convert to each filter to a page control by selecting the vertical ellipsis:
Rename each of the control IDs
to have filter-
prepended as:
Click Publish
.
Select the filters and place them into a container titled Filters Container
,
Move this container to a new modal titled Modal - Filters
.
Add a Filters
title and this time keep the footer buttons naming the primary Close Modal
and the secondary Clear Filters
. Deselect the checkbox for Show close icon
, since we will have a button to do that.
On the actions tab of Modal - Filters
configure the Close Modal
button to Close a Modal
.
The secondary configure Clear Filters
to Clear control
on the Filters
Container:
Back on the Project Tracker
page, add another button for Project Filters
with an action to Open Modal
on Modal - Filters
.
Add an additional button named Clear Filters
.
Select all three buttons and place those into a container titled Buttons Container
.
Set the action on the Clear Filters
button to clear the Filters Container (Modal - Filters)
.
Test that the new buttons work as expected.
Our Data App is beginning to take form by mixing and matching Sigma building blocks.
Customize the title for the Project Filters
button by adding a (
followed by the =
sign, which will open a pop up for use to use a custom formula:
Use the following formula:
Sum(If(ArrayLength([filter-Project-Name]) > 0, 1, 0) +
If(ArrayLength([filter-Project-Type]) > 0, 1, 0) +
If(ArrayLength([filter-Project-Owner]) > 0, 1, 0))
Once the formula is good, click the green checkmark:
Add one more )
to make the value surrounded by ()
.
Click the Project Filters
button and set a few filters.
This results in a count when filters are selected:
Add a new page named Control Panel
.
This will be the central hub and spine for the Data App which ensures governance over the circular flow of data.
On the Project Tracker
page, add three new columns using any of the drop downs for Last Updated At
, Last Updated By
, and ID
.
Rename ID
to Project ID
, click it's column header and drag it over so that it is in the first position on the table:
Create a child table
from the Project Tracker Input Table
and rename the child Project Tracker Stable Table
:
Move the Project Tracker Stable Table
to the Control Panel
page.
On the Control Panel
page, from the Project Tracker Stable Table
filter Project ID
and convert it to a page control.
Rename the Control ID to master-ProjectID
:
Add another page control filter, this time for Project Name
.
Rename the Control ID to master-Project-Name
.
The Control Panel page should look as follows at this stage:
On the Project Tracker
page, add a new Empty
input table, connect it to the Sigma Sample Database
and rename it to Task Tracking Input Table
.
Add two Text
columns, Task Name
, Task Owner
and a Due Date
column as Date
data type:
Add an additional text column for Project ID
:
This column will be tied to the Project Tracker Input Table
to link tasks to projects.
Add a text input
control, List values
control, and Date
control above the Task Tracking Input Table
.
Rename these to Task Name
, Task Owner
, and Task Due Date
.
Set each Control Id
as:
Task Name | ct-Task-Name |
Task Owner | ct-Task-Owner |
Task Due Date | ct-Task-Due- Date |
Ensure the Task Owner
column is sourced to the Data Validation - Employee
table with the correct items deselected as shown:
Create a container titled "Create Task Container" with the three controls.
Move this container to a New modal
and rename the modal page to Modal - Create Task
.
Change the model tile to Create Task
Using the existing primary and secondary buttons, change the names to Clear Form
and Create Task
.
Configure the actions for these buttons as follows:
Create Task (primary button): Add an Insert Row
and make sure you're inserting into the Task Tracking Table
:
Add two more actions after the Insert Row
action to clear the controls in the container and then close the modal:
Clear Form (secondary button): Add a Clear control
for the Container
with the action set as:
We will use the modals X
to close the modal.
On the Project Tracker Input Table
, select the dropdown and add a calculation.
The formula for this calculation will be "Add Task" (with quotation marks included) in the formula bar.
Rename this column to Add a Task
:
Click to select the Project Tracker Input Table
and add an action.
Configure the action to When selecting cells in column
for the column Add a Task
.
Configure the rest of the action to set the Project Id
.
Add conditional formatting to the Add a Task
column to make it appear as a hyperlink:
Test this action by selecting an Add Task
cell from Create New Task
and check the Control Panel
page for the Project ID
control element. The value that was clicked will appear in the filter as:
We also want to set the Project Name
when the user clicks Add Task
.
Add another action under the Set Project ID
and configure it as follows:
Add a third action for Opening a Modal
, and select Modal - Create Task
:
When the modal appears, we want the project name to appear in the title so the user is oriented.
On the Modal - Create Task
page, revise the title to include the project name.
Select the text Create Task
and append it with for
followed by =
, which opens the formula bar.
Type [master_Project-Name]
and click the green checkmark:
Lets test this by clicking Add Task
from any row and entering some test data. When done, click Create Task
:
The new task should appear in the Task Tracking Input Table
:
Try this multiple times to add new tasks to the task tracking table.
On the Project Tracker
page, add a new Column via lookup
to the Task Tracking Input Table
.
This time we used the selected element panel, COLUMNS
menu to add a new column to demonstrate another way to do it:
We need to let Sigma know which column(s) we want to bring in and how to "match" the two input tables (ie: join them). We could also pre-aggregate the columns as we bring them in, but in this case, that is not wanted:
Rename the new lookup column to Project Name
and move it to the first column:
For more information on lookups in Sigma, see Add columns through Lookup
Move the the Task Tracking Input Table
to the Control Panel
page. Now that we have the Project Name
we don't need to show that information to the user.
Add an additional task record for the same project and sort by Project Name
.
On the Control Panel
page, create a new blank input table and rename it to Status Update Input Table
.
Connect to the Sigma Sample Database
again.
Create the following columns:
Project ID | type = text |
Project Status | type = text |
Status Owner | type = text |
Status Date | type = date |
Add the Last updated at
, Last updated by
, and row ID
columns using the menu options.
Rename the row ID
column name to Status ID
.
Delete any blank rows:
Add a new modal and change the title to Update Project Status
.
Add a List control
and rename it to Project Status
.
Set its Value source
to Data Validation
and Source column
to Status
.
Uncheck Display columns
as shown below.
Set the Control ID
value ups_Project-Status
:
Rename the modal page to Modal - Update Status
.
Change the Label
> Label position
under Format
to put the Project Status
title on the left:
Disable the Primary
and Secondary
buttons from the input tables Format
options.
Add a button and rename it to
Update Project Status`:
On the Project Tracker
page and the Project Tracker Input Table
, add a new column via Calculation
after the Add Task
field and rename it to Update Project Status
with a formula of "Update Status".
Lets use conditional formatting to set the new columns apperance to the same as the Add a Task
column.
This is made easy by adding the Update Project Status
column to the Apply to
list and changing the Formatting rule
to Is not null
as shown in the screenshot below:
On the actions panel for Project Tracker Input Table
, click the +
to add a new action which will be Update Project Status
.
Add an action to set control value of Project ID
from the Control Panel
.
Set the value as Column
> Project ID
:
Repeat adding an Set Control Value
action for Project Name
and the Open Modal
action for Modal - Update Status
:
In the header of the Modal - Update Status
page, add in the following text: Project Name:
followed by an =
sign and set the formula to [master_ProjectName]:
Set the action Insert Row
on the Update Project Status
button.
Ensure this is inserting a row into the Status Update Table
with Project ID
which if you recall is located on the Control Panel
page.
Notice that two columns are mapped to two formulas; CurrentUserFullName()
and Now()
and that the mapping for Project ID
and Project Status
are different in the screenshot below:
As we have done before, add an action for Clearing Project Status
and set the third action to Navigate
to the Project Tracker
page > Top of Page
.
Saving clicks is always appreciated!
Back on the Project Tracker
page, select Update Status
for any project and test out the functionality of Modal - Update Status
.
After setting a status and clicking the Update Project Stauts
button we are returned to the Control Panel
where we can see the row added with the new status:
On the Control Panel
page > Project Status Input Table
, add a new field via lookup
on the Status Update Table
adding Project Status
based on Project ID
.
Rename the new column Project Status
and move to the column to just after Update Project Status
column:
Now update a project with a second status and see the "multiple values" result under Project Status
.
This happens when a lookup is one to many
instead of one to one
and requires a different approach to enable proper data app functionality.
Create a Child
table off the Control Panel
> Status Update Table
.
Rename this table to Status Update - Latest Status Table
.
Set the Status Date
to Truncate date
> Second
:
Add a new column to the table, set the calculation to be:
lookup(max([Second of Status Date]), [Project ID], [Project ID]
For more information about functions in Sigma, see Function index
Add a new column of Latest Update
with calculation:
[Max of Second of Status Date] = [Second of Status Date]
This will result in a true
or false
:
Filter
this Latest Update
column to only show the True
status updates.
The Status Update Input Table
operates as the transaction log, while the Latest Status Table
provides just the latest value:
Having both tables for this and other potential analytics can be powerful.
Update the lookup
on the Project Tracker Input Table
to now look at the Latest Status Table
adding Project Status
based off Project ID
:
Now our table shows the most recent Project Status
:
Select the Status Update - Latest Status Table
and Status Update Input Table
and place them in a container named Status Tracking
container:
On the Project Tracker Input Table
, create a new Calculation
column and rename it to Project Details
.
Set the column's formula to "ⓘ".
This will be used to pop up a modal with project details.
Create a new Modal
page and rename it to Modal - Project Details
.
Change the modal's title to Project Details for Project:
and the add the =
sign.
Using the formula bar, set it to reference [master-Project-Name]
and click the green checkmark:
From the elements bar, in the UI
group, add a Text
control with Project Owner
and type =[Pr
into the formula bar. This will return all the matching items. Select Project Tracker Stable Table
:
The list will then show all the columns from the selected table. Now we can choose the column we want, Project Owner
:
Click the green check mark to accept the entry of [Project Tracker Stable Table/Project Owner]
.
Repeat the process by adding two more line beneath the first one for:
[Project Tracker Stable Table/Project Status]
[Project Tracker Stable Table/Project Due Date]
We now have:
Create another Child
table of the Status Update Input Table
on the Control Panel
page. Then move it to the modal titled Modal - Project Details
.
Rename the title of the table to Details
:
Hide all columns except those shown below:
On the Control Panel
page, select the Project ID
control and select TARGETS
in the selected element panel.
Add filter target
to update the Project ID
on the Details
table on the Project Details for Project
modal:
On Format
> Table components
, uncheck the Show summary bar
option and modify the title to include the project name as we have done previously.
We also want to include all the related tasks for the selected project.
Repeat the steps for used for the Details
table to add a Tasks
table.
On the Control Panel
page, create a Child table
on the Task Tracking Input Table
and move it to the Modal - Project Details
.
Open the modal by clicking the ⓘ
or by directly opening the modal page.
Remove the summary bar
and add change the table's name to Tasks
.
Set the Master Project Name
control on the Control Panel
to target the the Tasks
table and the column Project Name
:
It may be useful to be able to add tasks for this modal as well.
One the Project Details for Project modal
, add a button titled Add New Task
that uses an action to open the modal for Modal - Create Task
.
CLick the Add another task
and test the workflow, to add another task to the list:
For completeness, it may be useful to include an Update Status
button here as well:
Configure its action to open the modal Modal - Update Status
.
That was super quick and easy to extend the workflow now that our "base" data app pages and modals are setup!
Going one step further, lets add a Charts
> Bar chart
to the Project Details for Project
modal.
We now have:
We can apply some styling by we will touch on that in the last section. Syling in Sigma is really easy so it is best to make sure the functionality all works first, and then make it look pleasing to the eye.
For more information on how Sigma supports responsive design, see Responsive design for desktop and mobile layouts
On the Project Tracker
page, add a Controls
> Segmented Control
Configure the Values
as Project Owner View
and Project Reviewer View
.
Remove the label (title) as we have done the previous steps. The page will look like this:
Add a new Calculation
column to the Project Tracker Input Table
called Reviewer Approval
.
Set the formula to Click to Review
and add it to the existing conditional formatting we have done before:
Select the segmented control and add an action.
Add a Condition
:
And select the `Project Owner View:
Configure the action to:
Repeat this process for the Project Reviewer View
, this time setting the What to modify
to Show columns
:
On the Data Validation
page, create a child table off Status Type
and call it Status Type Stable Table
.
Move this table to the Control Panel
.
One the Control Panel
page, add a filter for Status Category
and convert it to a page control.
Set the page control to only Show Clear Button
and Show Search Button
. Update the Control ID
to use the pattern we established earlier. Configure the Value source
and Source column
too:
Set the TARGETS
to
Return to the Project Tracker
page and select the Project Tracker Input Table
.
In actions
, add an action in the third position, it the sequence shown below. Configure to match:
On the Modal - Update Status
control titled Project Status
.
Switch the Value Source
to the Status Type
and the column switch to Status
on the selected element panel:
Go back to the Project Tracker
page and select theProject Tracker Input Table
.
Click a cell with Update Status
to test that only 4 options appear on the modal's list control:
On the Project Tracker
page, click the Project Reviewer View
button in the segmented control.
Now select the Project Tracker Input Table
> Actions
and duplicate the Update Project Status
action.
Scroll to the bottom of the actions list to see the duplicate action.
Change the target to Reviewer Approval
.
Change Set Status Category
to be Reviewer
too:
Select Click to Review
in any cell and confirm again that the Modal - Update Status
only shows the values that cooresponding to the category Project Reviewer View
.
Test the view comparing Project Owner
and Project Reviewer Views
to test conditional actions and how these scenarios direct access, inputs, and functionality.
Hide all pages except the Project Tracker
page and click Publish
.
Switch to the Published version
and test the entire data app:
The data app should look like this now:
Sigma Review the data lineage view to review and confirm all connections and lookups.
Click the green button, and then click the edit
link.
Open the workbook's lineage:
When workbooks become large, working with the lingeage is a great way to find what you are after, jump right to the desired element and even see the SQL use to create the data for an element too.
Here is a quick demo:
To learn more about workbook data lineage in Sigma see View workbook data lineage
With the bulk of the data app functionality complete, visual design and accessibility is the next step.
Sigma provide many "out-of-the-box" themes; experiment with them and adjust from there are desired too.
This enables a range of functionality including the ability to toggle between light and dark modes, preset swapping, custom colors that affect elements throughout the workbook (big time saver), fonts, layouts, and additional design settings:
It is a good practice to package elements in containers in a manner that will be easy for users to access and understand.
We have also demonstrated the other cool benefit of using containers; they can be targeted by an action!
With Sigma, your data apps can support whatever branding may be required.
You can ustomize to match your own branding and style considerations while maintaining accessibility and visual design best practices.
Images and icons can be added for additional personalization:
Here are some example of styled data apps in Sigma:
In this QuickStart, we built a fully functional project tracking application using Sigma and sample data. Hopefully, this was a smooth and eye-opening process that showed just how easy building data apps can be with Sigma. Additional resources are provided below.
Additional Resource Links
Blog
Community
Help Center
QuickStarts
Be sure to check out all the latest developments at Sigma's First Friday Feature page!