Smartsheet
Manage your spreadsheets and data with Smartsheet’s collaborative work management platform for project management, task tracking, and team collaboration.
Overview
The Smartsheet skill provides functionality for:
- Reading and managing spreadsheet data
- Accessing sheet information and metadata
- Working with rows, columns, and cells
- Handling sheet relationships and hierarchies
- Integrating with Smartsheet’s collaborative features
Connection Requirements
This skill requires a Smartsheet connection configured through:
- Connection ID:
custom.smartsheet
- Integration: Uses Paragon custom integration for Smartsheet API access
Basic Usage
// Get list of all sheets
const integrationId = config.paragonIntegrations.smartsheet;
const url = PROXY_URL + "custom/" + integrationId + "/2.0/sheets";
// Read data from a specific sheet
const sheetUrl = PROXY_URL + "custom/" + integrationId + "/2.0/sheets/[SheetId]";
Key Features
Sheet Management
- List Sheets: Get all sheets accessible to your account
- Read Sheet Data: Access complete sheet contents including rows, columns, and cells
- Sheet Metadata: Retrieve sheet properties and configuration
- Sheet Relationships: Handle parent-child relationships between sheets
Data Access
- Column Information: Access column definitions and properties
- Row Data: Read row contents and cell values
- Cell Values: Extract individual cell data and formatting
- Sheet Structure: Understand sheet organization and hierarchy
Common Operations
List All Sheets
GET: custom/{integrationId}/2.0/sheets
Read Sheet Data
GET: custom/{integrationId}/2.0/sheets/{sheetId}
// Get sheet with specific options
GET: custom/{integrationId}/2.0/sheets/{sheetId}?include=attachments,discussions,format
Understanding Sheet Response Structure
Sheet Object Hierarchy
{
"id": 123456789,
"name": "Project Tracker",
"columns": [
{
"id": 987654321,
"index": 0,
"title": "Task Name",
"type": "TEXT_NUMBER",
"primary": true
}
],
"rows": [
{
"id": 111222333,
"rowNumber": 1,
"cells": [
{
"columnId": 987654321,
"value": "Project Setup",
"displayValue": "Project Setup"
}
]
}
]
}
Key Relationships
- Sheets contain Columns and Rows
- Rows contain Cells that reference Column IDs
- Column IDs are used to map cell values to column headers
- Row IDs are used to identify and update specific rows
Data Processing Pattern
Reading Sheet Data
// 1. Get sheet structure
const sheet = await fetchSheet(sheetId);
// 2. Map column IDs to column names
const columnMap = {};
sheet.columns.forEach(col => {
columnMap[col.id] = col.title;
});
// 3. Process rows and cells
sheet.rows.forEach(row => {
const rowData = {};
row.cells.forEach(cell => {
const columnName = columnMap[cell.columnId];
rowData[columnName] = cell.value;
});
// Process rowData...
});
Column Types
Available Column Types
- TEXT_NUMBER: Text and numeric values
- DATE: Date values
- DATETIME: Date and time values
- CONTACT_LIST: Contact information
- DROPDOWN: Predefined dropdown options
- CHECKBOX: Boolean checkbox values
- SYMBOL: Symbol indicators (stars, flags, etc.)
- PICKLIST: Single or multi-select lists
API Endpoint Structure
Base URL Pattern
const baseUrl = PROXY_URL + "custom/" + integrationId + "/2.0/";
Common Endpoints
- Sheets:
sheets
- List all sheets
- Sheet Details:
sheets/{sheetId}
- Get specific sheet
- Rows:
sheets/{sheetId}/rows
- Sheet rows
- Columns:
sheets/{sheetId}/columns
- Sheet columns
- Cells:
sheets/{sheetId}/rows/{rowId}/cells
- Specific cells
Query Parameters
Common Parameters
- include: Include additional data (attachments, discussions, format)
- exclude: Exclude specific data types
- columnIds: Specify which columns to include
- rowIds: Specify which rows to include
- pageSize: Number of items per page
- page: Page number for pagination
Important Notes
- Column ID Mapping: Always map column IDs to column titles for readable data processing
- Row Processing: Loop through columns first, then rows and cells for efficient data access
- API Version: Always include
/2.0/
in the API URL path
- Integration ID: Use the correct Paragon integration ID for your Smartsheet connection
- Rate Limits: Respect Smartsheet API rate limits for large data operations
- Data Types: Handle different column types appropriately when processing cell values
Best Practices
- Efficient Data Access: Map column IDs to names once, then reuse the mapping
- Error Handling: Check for missing columns or cells before processing
- Batch Operations: Use include parameters to get all needed data in one request
- Data Validation: Validate cell values against expected column types
- Performance: Use pagination for large sheets to avoid timeouts
- Caching: Cache sheet structure if making multiple requests to the same sheet
- Type Safety: Handle null or undefined cell values gracefully
Responses are generated using AI and may contain mistakes.