Smartsheet Foundations
Sheet Architecture & Column Types
Understand the Smartsheet data model — column types, hierarchies, dependencies, and the structural decisions that determine whether your sheet handles 50 rows or 50,000.
Smartsheet vs. Excel — The Mental Model Shift
Smartsheet looks like a spreadsheet but thinks like a database. Understanding this distinction is the key to building sheets that scale.
Excel is cell-based: any cell can contain anything. You can put a date in a column labeled "Name," a formula where you expected text, or free-form notes anywhere. This flexibility is powerful but chaotic — data quality degrades fast in shared Excel workbooks.
Smartsheet is column-typed: each column has a defined type (Text/Number, Date, Contact List, Dropdown, Checkbox, Symbol, Duration, etc.). This constraint is a feature. It enforces data quality, enables automations, powers Gantt scheduling, and makes the platform intelligent about your data.
Think of it this way:
- Excel rows = cells in a grid
- Smartsheet rows = records in a database table
Columns in Smartsheet are fields. Every row must conform to the column's type. This is closer to Airtable or a relational database than to a traditional spreadsheet.
Column Types and When to Use Each
Text/Number
Free-form data — the default type. Use for names, descriptions, amounts, IDs. Unlike Excel, numbers stored in a Text/Number column can still be used in formulas.
Date
Enables Gantt chart visualization, date-based automations, and NETWORKDAYS calculations. When you enable Dependencies on a sheet (Project Settings > Dependencies), Smartsheet uses Start Date + Duration + Predecessor columns to automatically calculate schedules.
Contact List
Stores email addresses tied to Smartsheet users. This isn't just text — it creates live links to users. Enables:
- @mentions in row comments and automations
- Resource management and capacity views
- Assignment tracking with profile photos
- Send update requests directly to the assigned person
Critical for accountability in team workflows. Use it instead of a plain Text column for any "Assigned To" or "Owner" field.
Dropdown (Single Select / Multi Select)
Constrained choices from a predefined list. Use for Status, Priority, Category, Department. The key benefit: enforces consistency. No more "In Progress" vs "in progress" vs "In-progress" — the dropdown forces everyone to pick from the same set of values. This matters enormously when you're filtering, counting, or triggering automations based on status values.
Multi Select allows more than one option per cell. Use for tags, skills, or department affiliation where a row can belong to multiple categories.
Checkbox
Boolean (checked/unchecked). Use for completion tracking, approval gates, and as triggers for automations. A common pattern: when the "Approved" checkbox is checked → automation sends a notification and locks the row.
Symbol
Visual indicators: stars, flags, colored dots, traffic lights, arrows. Use for priority, risk level, health status. Limited to Smartsheet's predefined symbol sets (you can't create custom symbols). The value is visual communication — a red traffic light in a status column communicates faster than reading the word "At Risk."
Duration
Stores time durations as text that Smartsheet understands: "5d" (5 days), "2w" (2 weeks), "4h" (4 hours). Used with Start Date and Predecessor columns for dependency-based scheduling. When you enable Dependencies, changing a predecessor's dates automatically shifts dependent tasks.
Predecessor
Defines task dependencies. Syntax: row number + relationship type:
- 3 or 3FS — Finish-to-Start: task 3 must finish before this starts
- 3SS — Start-to-Start: this starts when task 3 starts
- 3FF — Finish-to-Finish: this finishes when task 3 finishes
- 3FS+2d — Finish-to-Start with 2-day lag
Combined with Duration and Start Date, Predecessors drive automatic schedule calculation across the Gantt chart.
Auto-Number
Auto-incrementing integer. Use as a unique identifier for cross-sheet references and formulas. You can format it: "TKT-{00001}" for support tickets, "REQ-{001}" for requests. Once set, cannot be manually edited.
Created/Modified Date and By
System columns that automatically track who created or modified a row and when. Essential for audit trails. You can't write to these columns — Smartsheet manages them automatically.
Row Hierarchy
Indent rows to create parent-child relationships. This is essential for project management structures:
Phase 1: Discovery (parent)
Task 1.1: Stakeholder interviews (child)
Task 1.2: Requirements gathering (child)
Task 1.3: Technical assessment (child)
Phase 2: Design (parent)
Task 2.1: Wireframes (child)
Task 2.2: Database schema (child)
How to indent: Select a row, then press Tab (or use the indent button in the toolbar).
Parent row behavior:
- Numbers in parent rows automatically roll up (sum of children for numeric columns, earliest start date, latest end date)
- Expand/collapse parents to show different levels of detail
- Use for executive vs. team views of the same data
Formulas on parent rows: Use the CHILDREN() function to aggregate child data explicitly:
=SUM(CHILDREN()) // Sum of child row values for this column
=AVG(CHILDREN()) // Average
=COUNT(CHILDREN()) // Count of child rows
=MAX(CHILDREN()) // Maximum child valueSheet Design Patterns
Project Tracker
Task Name (Primary) | Assigned To (Contact) | Status (Dropdown)
Priority (Symbol) | Start Date | End Date | Duration | Predecessor
% Complete | NotesEnable Gantt view for timeline visualization. Use hierarchy for Phase → Task → Subtask.
Intake / Request Tracker
Request Name (Primary) | Requester (Contact) | Date Submitted (Created Date)
Category (Dropdown) | Description | Priority (Dropdown) | Status (Dropdown)Attach a Form for external submission. Automate routing based on Category.
Inventory / Asset Tracker
Item Name (Primary) | SKU (Auto-Number) | Category (Dropdown)
Quantity | Location | Last Updated (Modified Date) | Owner (Contact)Budget Tracker
Line Item (Primary) | Category (Dropdown) | Budgeted | Actual
Variance (formula: =[Budgeted]-[Actual]) | Status (Symbol) | NotesSheet Limits and Scaling
- 20,000 rows per sheet (non-Admin plans)
- 500,000 cells (rows × columns) — whichever limit hits first
- 400 columns per sheet
For data that exceeds one sheet: split into multiple sheets and aggregate with cross-sheet references, cell links, or reports. This is the Smartsheet architecture pattern for enterprise use — covered in Lesson 3.
Example
// Column reference syntax examples
// Reference a column in the current row
=[Status]@row // Status column, current row
=[Assigned To]@row // Contact column, current row
=[Due Date]@row // Date column, current row
=[% Complete]@row // Percent column, current row
// Hierarchy-aware formulas (on parent rows)
=SUM(CHILDREN()) // Sum all child values
=AVG(CHILDREN()) // Average of child values
=COUNT(CHILDREN()) // Count of child rows
=MAX(CHILDREN()) // Maximum child value
// Variance formula (budget tracker)
=[Budgeted]@row - [Actual]@row
// Days until due date
=[Due Date]@row - TODAY()
// Status based on completion
=IF([% Complete]@row = 1, "Complete",
IF([Due Date]@row < TODAY(), "Overdue",
IF([Start Date]@row > TODAY(), "Not Started", "In Progress")))