Get started with AppSheet by using the sample apps that demonstrate common use cases. The sample apps are summarized in the following table.
See also the product App templates .
To use a sample app, click its link to open it in the AppSheet editor (in a new tab). Then, do one of the following:
- View and interact with the app to learn more about the sample use case and its implementation. (The sample app is read-only.)
- Copy the app to use it as a an initial starting point for your own app.
Track a student's extracurricular activities.
Students use the app to track schedules as well as important notes for each individual activity.
Note the following about the sample app:
- The app uses two worksheets within one workbook: a table for
Activity
and a table forNotes
. See How to use multiple sheets in your app . - The tables each have a
_ComputedKey
row of typeMultiColumnKey
that combinesActivity
andDay
for theActivity
table andActivity
andDate
for theNotes
table using theCONCATENATE()
function. The combined values of each of the columns form a unique key AppSheet can use to uniquely identify each row. In theNotes
worksheet, notice that each activity is listed with a day next to it. -
The
Notes
table defines aRef
column,Activity
, that is a reference to theActivity
table. When the user adds a note to an activity, the drop-down displays the_ComputedKey
values that combineActivity: Day
. For example:Swim Practice: Monday
andSwim Practice: Friday
. So it's quick and easy to reference which activity on which day you want to write a note for. - The Notes reference view
and its associated system-generated views (Notes_Detail, Notes_Form, and Notes_Inline) enable users to view or add notes to a student's activity details.
Add multiple photos to a single row.
In the Animal
table, each animal has multiple animal photos.To support this, there is a table called Animal Photo
that has a reference
to the Animal
table. The Ref
column has Is a part of?turned on, so that when adding a new animal, a nested form is displayed to enable users to add multiple photos.
Prevent setting more than one status value to Yes
.
The sample app has a column called Status
of type Yes/No
. The following Valid if
expression is applied to this column so that at most one row in the table can have Status
set to Yes
:
OR(
[Status] = FALSE,
COUNT(
FILTER(
"Data",
AND(
[Key] <> [_THISROW],
[Status] = TRUE
)
)
) = 0
)
If the current row's status is set to No
, then the row is always valid (since there is no restriction on the status No
). If the current row's status is set to Yes
, then the row is valid only if there are 0 other rows whose status is Yes
as calculated by the COUNT()
expression.
Track attendance by clicking thumbs up or thumbs down icons.
The app defines actions to trigger the following updates:
- Change an attendee's status to Present or Absent
- Allow you to set the Building and Room for attendance tracking.
The Roster
table keeps track of the most recent data. The Attendance Records
table keeps track of all attendance records.
Apply an action to multiple rows using bulk select.
Click the checkbox in the upper-right corner of the app to select multiple rows. Then, click More to select an action. On mobile devices, you can long press on a row to enable bulk action mode. See also Use bulk actions
.
The sample app:
- Defines three slices
of
Tasks
data, Not Started, Started, and Finished, with the Row filter condition based on theStatus
column value. - Provides table views for viewing each slice of data.
- Defines actions to change an item's status from Not Started to Started and from Started to Finished. You can also edit an item directly to change its status.
Calculate the distance from a user's current location to a designated location (such as the location of a building), identified as a LatLong
.
The sample app:
- Calculates the distance using the
DISTANCE()
function based on the user's current location (HERE()
) and theLatLong
value. - Provides a Distances deck view
that lists the users and their distance from the
LatLong
location. - Provides a Map map view that identifies a user's location as a point on a map.
- Requires location services to be turned on. At this time distances can only be computed between
LatLong
data types.
Record the timestamp when specific columns are changed.
Change type columns are useful for keeping track of how many changes have happened to a row and when they happened.
A set of columns are used to track changes to the Color
and Decimal
columns using the ChangeTimestamp
and ChangeCounter
data types. Change the Color and Decimal values to see a demo.
Dynamically change views based on row selection.
This sample app defines an action
called Change View that uses the LINKTOVIEW()
function to change the current view based on the View Name
column in the Views
table. The action is bound to the view's Row Selected event.
Display a chart view ( histogram ) of the related records for a particular row.
Each row in the Item
table is associated with a particular Person
row using the Owner
column.
The sample app provides the following views:
- Person table view that lists each person and the number of related items.
- Chart chart view (histogram) that displays the related items for the person by size.
Try selecting a person to see a chart of the person's related items by size.
Keep track of contractor project costs.
The sample app is connected to a spreadsheet where all the project information, including costs, is tracked for a project. The contractor can track the project estimate, actual costs, and progress of the different jobs performed in the project.
Each view displays a slice
of the Remodel
data that excludes the Total Cost Overrun
value. This allows the contractor to share the app with the customer so they can track expenditures and overall progress, but not data the contractor regards as more sensitive.
The sample app allows you to do the following:
- View a chart of type Col Series that shows the actual costs.
- List data by status or by area (as a table view ).
Give visual instructions to employees of a company on how to administer CPR in the event of a medical emergency.
The app uses a spreadsheet with four rows: Step
, Title
, Details
, and Image
.
One of the most important aspects of this sample app is the imagesit features that show employees exactly how to perform each step. The spreadsheet includes an Image
column that define the file names of each image that corresponds to the step.
The sample app provides a Steps deck view that allows you to view each step in a specific order. This is necessary as it could be a matter of life and death if steps are not followed in the correct order. In the Steps deck view, the app gives general information; clicking each item gives a more detailed description of how to perform the step.
Builds the following drop-downs from a simple list of values:
- Select one type of fruit from a list (using an
Enum
) - Select multipletypes of fruit from a list (using an
EnumList
)
The following illustrates how the drop-downs appear in the app.
For more information, see Display a drop-down with a simple list of values .
Sort your data by a column.
The sample app provides two table views
, one that sorts by values in the Price
column and one that sorts alphabetically by values in the Name
column.
Include an image in a form that is not stored in your data.
The app includes a table with a Show
type
column called Show Image
. In the Type Details for the column, the Category is set to Image
and Content is set to the URL of the image.
Develop an interactive dashboard view using a map. (View app in full-screen mode.)
The sample app provides the following views:
- Dash dashboard view that allows you to display multiple views in one place; specifically, the Countries and Sites Map views.
- Countries table view that displays the list of countries. Select a country to focus the map view.
- Sites Map map view that displays location and details for world heritage sites.
Access the value of a column that corresponds to the column value in the same row.
In the Form
table, the following LOOKUP()
functions find the row of Lookup Table
whose Email
column equals the email address entered by the user. Then, it returns the Name
or Color
value for that row.
LOOKUP([Chosen Email], "Lookup Table", "Email", "Name")
LOOKUP([Chosen Email], "Lookup Table", "Email", "Color")
Review budgeting data by time period and by media type.
You can view how a marketing budget has been spent in different media and the total amount of marketing budget by quarter. The app also lets you review all items in the budget and update them if necessary. The app doesn't let you add data but it lets you edit any entry to the budget section. Additionally, it enables you to search the key partners involved in each marketing initiative and details their duties.
The sample app provides the following views:
- Items table view shows all the items in the budget for review.
- By Media chart view lets the user filter information by quarter when they select the filters in the top of the chart. This is a quick way to see how expenditures will be made over time and a quick way to compare between different media.
- By Quarter chart view allows the user to compare expenditures by different type of media in a specific quarter. This is a quick way to review all expenditures happening over the same period and helps the user compare quarter to quarter information.
- Key Partners table view in the hamburger menu enables users to see which projects partners are working as well as to see the main duties each partner is assigned to.
Manage customers, products, and orders.
The sample app allows you to:
- Create and edit a customer list.
- Create and edit a product list.
- Create orders associated with a customer. Orders can have three statuses: Open, Complete, or Canceled
- Add products to each order, specifying an amount. The app will calculate the total value of the order and the total cost per product.
The sample app leverages the following AppSheet features:
- References between tables
.
Customers
,Orders
, and Order Details
are connected by references between tables. When an order is created, there's a drop-down listing all the customers. That list is dynamically updated every time the customer list is updated. Additionally, every time the user opens the details of a customer, a new order can be created from that view. - Spreadsheet formulas . A set of formulas are calculated after the app is synced with the spreadsheet. The Order Total formula in the Orders view is calculated after the spreadsheet is synced with the app.
- Slices to access open orders, open orders by customer, open order details, and closed order details.
Use reference actions.
Reference actions are used to modify a row in one table using an action defined in another table. In this sample app:
- The Parent table has an action called +1 All that adds 1 to the
Number
column of its associated children records. The action is of type Data: execute an action on a set of rows . - The Child table has an action called +1that adds 1 to the
Number
column of the current record. The action is of type Data: set the values of some columns in this row .
Provide an instruction manual to employees or customers.
The app is created from three tables. In each case:
-
The
Title
column contains the name of each step, while theDescription
column contains the actual instructions on how to perform the step. -
The
Image
column automatically activates theImage
type in the app editor and app. In this case, images are being rendered using publicly hosted URLs. Images can also be rendered with a filename that exactly matches the filename in the app’s folder in the cloud provider. See Display images and documents . -
All tables in the app are marked as read-only so the app user can view the contents but can't edit, add, or delete any data.
The deck view displays steps in a vertical presentation in the order that they are intended to be performed accompanied by helpful images that demonstrate the step.
Count the number of times a row has been viewed in your app.
Each row has a Counter
column that holds the view count. When you click on a row in the table view, it increments the counter.
The app defines custom actions to override the default behavior when you click a row in a table view, including:
- Navigate: Navigates to the detail view of the row. The action type is App: go to another view within this app .
- Increment: Increments the counter of the row. The action type is Data: set the values of some columns in this row.
- Increment and Navigate: Does both of the above actions. The action type is Grouped: execute a sequence of actions, namely the Increment and Navigate actions.
The Row Selected behavior in the View Counter1 view is configured to call the Increment and Navigate action.