Structuring your workbookStart here
Your workbook is the App Specification. Each sheet plays one role — a form, a dropdown list, a set of rules — and the sheet's name prefix tells Sheetward which. Start each tab name with one of these:
Form_ sheets, section markers and rule text are always English — never translated. Other languages come afterwards, and live in only two places: the Translation_ sheet (field labels and your validation messages) and the language columns of your List_ sheets (dropdown values). That's what lets one workbook serve every language your app offers.| Sheet name starts with | What it becomes |
|---|---|
| Form_<Name> | A data-entry form — an expense claim, a purchase order, a timesheet. Each Form_ sheet becomes its own page in the app. |
| List_ / Master_ / LOV_ | A lookup table (master data) that fills your dropdown fields — cost centers, departments, suppliers. |
| Rules_ / Rule_ / Validation_ | Checks on what people enter — required fields, minimums and maximums, valid formats (see Rules below). |
| Formula_ / Formulas_ / Logic_ | Fields the app calculates for you, live: arithmetic ("hotel + meals"), line-item totals ("sum of hotel from LINE ITEMS" — count and average work too), and IF logic for yes/no results. Line formulas may also use HEADER fields. See Formulas below. |
| Info_ | Free-text notes about the app — purpose, instructions, contacts — shown at the top of the app's Help guide. |
| Translation_ | Your translations of the app's own field labels, dropdown values and validation messages, per language. |
| Report_ / Analytics_ | A dashboard — KPI tiles, charts and a pivot table, built live from the app's records (see Dashboards). |
| AI_History | Sheetward's own log of your AI authoring — every prompt, with its date, type (Draft / Revise / Reshape with AI) and author. It's a history, not part of the app: it builds nothing, and you can delete it. |
Master data that reads well everywhere (List_): the first row holds the column headers, and the first column is the ID that gets stored on records — keep it short and stable (CUST-001). Put a Name or Description column right beside it: that text is what the dropdown shows while picking, and printed records pair the two as ID - description — so a filed copy reads "CUST-001 - Acme Corp", not a bare code. A list with only an ID column still works; its values just stand alone.
Header plus line items: one Form_ sheet can hold a header section and a repeating line-items table — think of a purchase order: one set of order details, many item rows. Sheetward links the two automatically, and exports and imports keep that link through a Record ID column.
Section markers: for document-style layouts, put HEADER or LINE ITEMS on a row of its own to say what comes next. Under HEADER, write label/value pairs — several pairs can sit side by side. Under LINE ITEMS, the next row holds the table's column names. A title row above is fine. The marker text is also the name the Section column in your Rules and Logic sheets points at. A LINE TOTALS block (document totals) is stored with the header. A form can carry several line grids — but each needs its own ALL-CAPS banner ending in LINES or LINE ITEMS, and a second grid without one stops the upload until you fix it (see Laying out a form).
Several sections for a long form: twenty fields in one unbroken column is hard to read — and hard to fill in. So a sheet may carry several header sections — up to the six-section limit below: give each block its own banner row in CAPITALS — IDENTIFICATION, WARRANTY, LOCATION. The app draws one card per block, in sheet order. Two rules apply once a form groups: every banner must be in CAPITALS, and no two may repeat. Grouping is layout only — the fields still save as one record, so exports, imports, rules and formulas carry on unchanged. Section titles can be translated from the Translation_ sheet.
Form name: a heading row above the first marker — say a merged, centered "Travel Expenses" banner — becomes the form's display name. Leave it out and the name comes from the sheet name after Form_. Add several Form_ sheets and each becomes its own page in the app; the first one is the landing page.
About the app (Info_): add a sheet named Info_ and write free-text notes — what the app is for, how to use it, who to contact. That content greets your users at the top of the generated app's Help guide. Each row becomes a line, and blank rows stay as paragraph breaks. Formatting carries over: cell bold and italic (even a few words styled within a cell) become emphasis, and light markdown works too — ## headings, - bullets, and [links](https://…). The sheet can also set the app's region with country:, currency: or locale: rows (e.g. country: DE), which seed the app's regional settings.
Translations (Translation_): want the app's field labels, dropdown values and validation messages in more than one language? Add a Translation_ sheet plus per-language columns on your List_ sheets. The Localization topic has the full walkthrough.
| Size limits | Up to |
|---|---|
| Sheets in the workbook | 30 |
| Sections on one Form_ sheet | 6 |
| Fields on one Form_ sheet (all sections together) | 50 |
| Rows on any sheet | 200 |
| Columns on any sheet | 40 |
Size limits: an app specification workbook can contain up to 30 sheets, and each Form_ sheet can have up to 6 sections and 50 fields in total. Sheets are capped at 200 rows and 40 columns.