Input Objects
Create variables and scenario parameters that you can change without rewriting queries.
What are Input Objects?
Input Objects are mutable data you create—variables, parameters, and small tables that you can edit anytime. Unlike Sources (which are immutable) and Views (which are calculated), Input Objects let you set values manually. They're perfect for scenario analysis, parameters, and "what-if" modeling.
They appear as yellow nodes in your graph.
Yellow nodes represent editable Input Objects
Why Input Objects Matter
Dynamic analysis: Change parameters without modifying Views or SQL.
Scenario modeling: Compare "what-if" scenarios by updating variables.
Configurable dashboards: Users can adjust thresholds or filters directly.
Reusable parameters: Define values once, reference them throughout your analysis.
No SQL editing: Change numbers, dates, or categories without touching code.
Types of Input Objects
Single Value Variables
One variable with one value:
Example: A discount percentage
- Variable name:
discount_rate - Type: Numeric
- Value:
0.15(15%)
Use case:
@[orders] Apply @[discount_rate] to calculate discounted prices
Change discount_rate to 0.20, and all dependent Views recalculate automatically.
Single value variable for reusable parameters
Multiple Single-Value Variables
A collection of related variables in one Input Object:
Example: Sales targets
q1_target: 500000q2_target: 600000q3_target: 550000q4_target: 700000
Each variable is a separate column you can edit independently.
Use case:
@[actual_sales] Compare to @[targets] and show variance
Multiple variables in one Input Object
Tabular Input Data
A small table you can edit like a spreadsheet:
Example: Product category mappings
| product_id | category | priority |
|---|---|---|
| A123 | Electronics | High |
| B456 | Apparel | Medium |
| C789 | Home | Low |
Use case:
Join @[orders] with @[category_mapping] to enrich product data
Small editable tables for lookup data and mappings
How to Create Input Objects
Creating New Input Objects
- Click the + icon next to "Inputs" in the sidebar
- Choose type: single variable, multiple variables, or table
- Name your Input Object
- Add an optional description
- Set initial values
From Spreadsheet Paste
Fastest method for tabular data:
- Copy data from Excel, Google Sheets, or any spreadsheet
- Create new Input Object
- Select "Tabular data"
- Paste directly
- Shadowfax auto-creates columns and rows
Paste spreadsheet data to create Input Objects instantly
With AI Assistance
Tell the AI what you need:
Create an Input Object with monthly budget targets for each region
The AI will create the structure. You can then edit the values.
Editing Input Objects
Changing Values
Right-click any Input Object node and select "Edit data":
- For variables: Type new values directly
- For tables: Edit cells inline like a spreadsheet
- Add rows/columns: Use the + buttons
Changes apply immediately—all dependent Views recalculate.
Right-click to edit Input Object values
Real-Time Reactivity
When you change Input Object values:
- Input Object updates instantly
- All Views referencing it recalculate automatically
- Visualizations refresh with new data
This makes scenario analysis incredibly fast.
Common Use Cases
Discount scenarios:
- Create
discount_ratevariable - Apply to revenue calculations
- Change rate to see impact instantly
Budget planning:
- Set target numbers in Input Object
- Compare actuals vs. targets
- Adjust targets and watch variance update
Date range filtering:
- Create
start_dateandend_datevariables - Reference in filters
- Change dates without rewriting queries
Threshold configuration:
- Define
high_value_thresholdvariable - Segment customers above/below threshold
- Adjust to see different segments
Category mappings:
- Create lookup table for product categories
- Join with transaction data
- Edit categories without changing source data
Forecasting assumptions:
- Set growth rates, churn rates, etc.
- Build forecast models referencing these
- Test different assumptions quickly
Scenario analysis using adjustable discount rates
Tips & Best Practices
Use descriptive names: monthly_target is clearer than variable_1
Add units in descriptions: "Discount rate (as decimal, e.g., 0.15 for 15%)"
Start with reasonable defaults: Set initial values that make sense for typical scenarios
Group related variables: Put Q1-Q4 targets in one Input Object rather than four separate ones
Document your assumptions: Use the description field to explain what values represent
Keep tables small: Input Objects work best for dozens/hundreds of rows, not thousands
Use for parameters, not data: Don't replace proper Sources with Input Objects—use them for configuration and scenarios
AI Integration
The AI understands Input Objects:
Using @[discount_rate], calculate the discounted revenue for each product
Compare @[actual_sales] to @[monthly_targets] and highlight where we missed targets
Apply @[category_mapping] to classify transactions
The AI knows these values are editable and will explain that you can update them for different scenarios.
Understanding the Yellow Node
In your graph:
- Yellow color distinguishes Input Objects from other nodes
- Mutable icon shows they're editable
- No upstream dependencies (usually)—they're starting points you control
- Downstream Views depend on them and update when changed
Yellow Input Objects feeding into View transformations
Collaboration and Sharing
When you share a Workbook:
- Input Objects are shared with the Workbook
- Team members with edit access can change values
- Everyone sees the same current values
- Great for collaborative scenario planning
Related Features
- Sources - Immutable data vs. mutable Input Objects
- Views - Transformations that reference Input Objects
- Reactive System - How changes propagate automatically
- Node Graph - Visual representation of Input Objects
- Workbooks - Where Input Objects live