---
title: "Building an App over Workflow Data"
canonical: https://trickest.com/docs/using-the-app/agent/building-a-data-app
description: "Ask the Agent for one read-only screen over a verified table and inspect its preview."
---

# Building an App over Workflow Data

## Start with a verified table

Choose one Live Table whose records and indexing state you have checked. You need Agent access, a workflow connected to the conversation and permission to read that table. Use the table’s exact identity, primary key and a few field names; do not ask the Agent to guess a similarly named table.

For this example, use an issue inventory with `source`, `source_id`, `title` and `state`, keyed by `(source, source_id)`. If your table differs, replace those fields in the request. Keep a known record ID for a later data check.

## Ask for one screen

Send a scoped request in the workflow’s Agent conversation:

```text
Build a read-only issue inventory app for this workflow.
First inspect the Live Tables available to this workflow and confirm the exact
issue table, its composite key, field names and row count. Stop and ask if the
source is ambiguous or required fields are absent.
Use the verified table through the server-side Trickest SDK. Keep credentials
on the server. Show source, source_id, title and state, with a state filter,
pagination and distinct loading, empty and error states. Show when data was
last fetched. Do not replace failed reads with sample records.
Keep this app read-only. List the files you changed, explain the data query,
run the available checks and start the local preview. Do not publish it.
```

The request defines the task; it is not evidence that an app has already been built. Keep any write actions out of the first version. Let the Agent inspect the actual schema before implementing the query.

## Inspect the implementation

Open **Show workspace** if the work area is hidden, then **Files**. Read the changed page and data-access files. Check that server-side code selects the intended table and projects only required fields. Credentials must not appear in a client component or returned browser data.

For the SDK data contract, see [Database](/docs/developer-tools/sdk/database). Data queries and pagination belong on the server. Avoid fetching an entire large table merely to render the first screen. Confirm that query errors produce a visible error rather than a zero count or invented sample rows.

## Verify the preview

Select **App** in the connected workflow’s workspace. Opening Files or App can start or resume its sandbox. Ask the Agent to inspect terminal output when the preview is blank, the server has stopped or the page cannot load. A successful file edit does not establish a running app.

<Frame editorial maxWidth="560px" darkSrc="https://res.cloudinary.com/db14crach/image/upload/v1792713883/www/docs/release-1-2-1-2026-10-23/product/workspace-views-dark-8e7e99c2c094c480.png" caption="Files and App belong to the workflow workspace. Database is selected here; no app build or sandbox start is shown.">
  <img src="https://res.cloudinary.com/db14crach/image/upload/v1792713884/www/docs/release-1-2-1-2026-10-23/product/workspace-views-light-d82e1a9d14cc24a4.png" alt="Workflow view controls for Workflow, Database, Files, App, Computer and Mobile." />
</Frame>

Use the preview’s reload and address controls to load the intended page, then switch to phone width. Check these cases against the real table:

1. Find the known record by its key and compare its displayed fields with **Database > Values**.
2. Apply the state filter and check a matching and a nonmatching record.
3. Move between pages without repeating or skipping records.
4. Check loading, a valid empty selection and a failed read as distinct states.
5. Make sure the phone layout keeps the record identity and controls usable.

<Frame editorial maxWidth="300px" darkSrc="https://res.cloudinary.com/db14crach/image/upload/v1792713886/www/docs/release-1-2-1-2026-10-23/product/row-view-controls-dark-9fdd662bee7ad1bf.png" caption="Use the table’s Values view to check a known record against the app. This crop is a data-check control, not a generated app screenshot.">
  <img src="https://res.cloudinary.com/db14crach/image/upload/v1792713887/www/docs/release-1-2-1-2026-10-23/product/row-view-controls-light-b7396ffaad4076e5.png" alt="Values and History controls in the table record panel." />
</Frame>

Ask the Agent to run the app’s available checks and report their actual output. If a preview fails, keep the error and fix its cause before accepting a screenshot as evidence.

## Save and recover

Review the workspace’s **Save** control and keep a copy of important files. Files edited in an active sandbox and files saved durably are different states. See [Files, Terminal and Previews](/docs/using-the-app/agent/files-terminal-previews) for downloads and workspace resources.

**Reset sandbox** deletes the current sandbox and its saved files; copy work you need before confirming it. Resetting is not a routine fix for a query or UI error.

An App preview is a review surface, not public publication. This tutorial does not establish a hosted public URL or a deployment procedure. The request and data checks above are a reproducible build plan; no new app build, sandbox start or model call was executed for this local review.

---
_Markdown source of https://trickest.com/docs/using-the-app/agent/building-a-data-app._
