Introduction
SpreadSmart connects CupixWorks data to Google Sheets, allowing you to generate reports in your company’s preferred format. Instead of manually copying text, numbers, or images, SpreadSmart automatically fills your spreadsheet templates with project data. This saves time and ensures consistent, accurate documentation.
Note: SpreadSmart is currently available as a Beta feature.
What is SpreadSmart?
SpreadSmart links your CupixWorks data with Google Sheets by using predefined variables in a template. You design the template once, placing variables where project data should appear. When you generate a report, SpreadSmart automatically replaces those variables with the actual text, numbers, dates, or images from your project—producing a fully formatted report.
Supported Report Types
- SpreadSmart currently supports OmniNote Reports
- Timeline Reports, Annotation Reports, and SiteInsights Reports are planned for release
How to Create a SpreadSmart Report
Step 1: Create a Template with Variables
SpreadSmart requires a Google Sheets template with predefined variable syntax that act as placeholders for project data. Insert the variables where you want text, numbers, dates, or images to appear, then save the template in your Google Drive.
To create a template:
- Review the available variables listed in Supported Template Variables below.
- Open Google Sheets and design your report template.
- Insert the exact variable syntax where you want CupixWorks data to appear.
Note: You can access a [sample template] here to get started.
Using the Sample Template:
- Open the template link and sign in with your Google account.
- Go to File → Make a copy and save it under a new name.
- Use this copy to test your first SpreadSmart report.
Step 2: Generate a Report
- Navigate to
Export OmniNote Report in SiteView.
- Enter a report title and description (optional), select which capture(s) to include OmniNotes from, and click Export to Sheets.
- Sign in with the Google account where your template is saved. (Pop-ups must be allowed.)
- Select your spreadsheet template file and choose the sheet that contains your template.
- Choose a layout option (downward, rightward, or one sheet per item) and set item spacing if needed.
- Choose the output type (create a new file or insert into the existing one) and click Submit.
- The system will automatically populate all data fields according to the variables placed in your template.
Step 3: Insert Images with the Add-on
If your template includes images, SpreadSmart inserts them as temporary links. To make them permanent, use the Cupix SpreadSmart add-on:
- Open the generated report in Google Sheets.
- Go to Extensions → Add-ons → Get add-ons.
- Search for Cupix SpreadSmart Tools and install it.
- In your report file, go to Extensions → Cupix SpreadSmart Tools → Insert Images.
Note: You must insert image files within 24 hours of creating the report; temporary links expire afterward.
Supported Template Variables
Team, Project, SiteView
| Field | Type | Description |
| [Team.Name] | Text | Team name |
| [Team.Logo] | Image | Team logo image |
| [Project.Name] | Text | Project name |
| [Project.Address] | Text | Project address |
| [SiteView.Link] | Link | SiteView link |
| [SiteView.Name] | Text | SiteView name |
Report
| Field | Type | Description |
| [Report.Title] | Text | Report title |
| [Report.Description] | Text | Report Description |
| [Today] | Date | The date of the report generation. |
| [Reporter.Name] | Text | Report generator's name |
| [Reporter.Email] | Report generator’s email |
Item Enumeration and Variations
Note: SpreadSmart currently supports only OmniNote item types. Use the syntax [ItemIter.OmniNote.Variable] when adding variables to your template.
| Field | Type | Description |
| [ItemIter.(ItemType).Image] | Image | Photo image |
| [ItemIter.(ItemType).Description] | Text | Description |
| [ItemIter.(ItemType).Location.Level] | Text | Level containing the object |
| [ItemIter.(ItemType).Location.Room] | Text | The nearest room name |
| [ItemIter.(ItemType).Location.Grid] | Text | The nearest grid name |
| [ItemIter.(ItemType).Location.Workarea] | Text | Work area containing the object (from the active work group) |
| [ItemIter.(ItemType).Floormap.Focused] | Image | Zoomed-in Reference Plan image showing the specific location |
| [ItemIter.(ItemType).Floormap.All] | Image | Complete Reference Plan image |
| [ItemIter.(ItemType).Capture.Date] | Date | Capture date associated with this object. |
| [ItemIter.(ItemType).Capture.Label] | Text | Capture Label |
| [ItemIter.(ItemType).Capturer.Name] | Text | Capturer’s name |
| [ItemIter.(ItemType).Capturer.Email] | Capturer’s email | |
| [ItemIter.(ItemType).Creator.Name] | Text | Item creator’s name |
| [ItemIter.(ItemType).Creator.Email] | Item creator’s email | |
| [ItemIter.(ItemType).Tag] | Text | OmniNote Tag |
Optional Image Sizing
You can define image size by adding pixel dimensions after the variable.
- Add 'width x height' in pixels after the image variable to set size
- Images maintain proportions while fitting within dimensions (similar to CSS
contain) - Set width or height to 0 to keep original proportions while fixing one dimension
Examples:
- [Project.Client.Logo.480x240]: Set width to 480 pixels and height to 240 pixels
- [ItemIter.OmniNote.Image.0x300]: Set height to 300 pixels, with width adjusted automatically