Getting Started with Google AppSheet

Published: December 16, 2025

← Back to Home

If you’ve built low-code apps with Microsoft PowerApps, AppSheet will feel familiar: both are data-first, low-code platforms that create UIs and automations on top of spreadsheet- or table-like sources. This guide focuses on a practical approach: start with your data, use the views AppSheet creates for you, then customize. I also dig into automation - events, bots, and actions - and explain why passing IDs consistently (rather than full objects) saves you headaches.

What is AppSheet - quick comparison to PowerApps

If you know PowerApps, think of AppSheet as the same general model (data → views → logic) with different connectors and slightly different event/automation models.

Start with the data (really - start here)

AppSheet is explicitly data-first. Your app is essentially a set of tables (sheets) plus metadata about how to present and interact with them. Follow this order:

  1. Prepare your data source: normalize where sensible, add explicit key columns (IDs), and ensure types (dates, enums, numbers) are consistent.
  2. Connect the data in AppSheet and let it generate the default app - AppSheet will create views and forms automatically.
  3. Design your column types, virtual columns, and computed values before spending time on UI polish.

AppSheet will generate rowkeys that are harder to track and less predictable when used in automations.

Example: SELECT with AND

Here’s a common AppSheet expression that selects a column from a table using an AND filter. The expression returns the OrderID values from Orders where Status is Open and Priority is High:

SELECT(
  Orders[OrderID],
  AND(
    [Status] = "Open",
    [Priority] = "High"
  )
)

And a slightly more contextual example that uses [_THISROW] to filter tasks assigned to the current row’s user and not completed:

SELECT(
  Tasks[TaskID],
  AND(
    ([AssignedTo] = [_THISROW].[UserEmail]),
    ([Completed] = FALSE)
  )
)

Use the views AppSheet creates (learn the defaults)

When you add a table, AppSheet scaffolds views: Deck, Table, Detail, Form, Map (if geodata). Spend time with the defaults:

Accept the defaults early; they often cover 80% of the use cases and let you focus on the data and automation.

Customizing views (small, iterative changes)

Automation: Events, Bots, and Workflows

AppSheet’s automation model centers on Bots and Processes. Bots respond to events (row added/updated, schedule, or webhook) and run processes made of tasks (e.g., change data, send email, call webhook).

Practical tips:

Passing IDs vs Objects to events - consistency matters

You can pass full row objects or just IDs between actions and automations. Both work, but pick one convention and stick to it.

My rule of thumb: pass IDs for events that will start asynchronous automations, and pass objects only for immediate, synchronous UI flows. Document the convention in your app’s README so future maintainers follow the same pattern.

Debugging and testing automations

Performance and data design

Quick Getting-Started Checklist

Example Flow: Bot → SELECT → Action → Update

Below is a concrete flow using the sample tables (Orders, Tasks) shown earlier.

1) Bot Event (trigger)

AND([
  [Status] = "Late",
  [Priority] = "High"
])

2) Select the Task IDs to process

Use SELECT to find Tasks for the current order that are not completed. The Bot/Process will pass these IDs to a “Run action on rows” task.

SELECT(
  Tasks[TaskID],
  AND(
    ([OrderID] = [_THISROW].[OrderID]),
    ([Completed] = FALSE)
  )
)

3) Table Action on Tasks (example)

Set the columns:
  Escalated = TRUE
  EscalationDate = NOW()

4) Process step: Run action on rows

Notes on passing IDs vs objects

Testing checklist for this flow

Closing notes

AppSheet is powerful when you work the way it was designed: treat the data as the source of truth, accept the auto-generated views, then customize minimally. Automations (Bots and Processes) let you replace many spreadsheet macros or manual workflows - but the key to maintainable automation is consistent patterns (IDs vs objects), small testable Bots, and clear data modeling.

Dream big!