4.3 Templates & Data Flow β
You've learned about dependencies and how to configure them. Now let's master how columns access data from each other and explore common data flow patterns for building reliable automations.
How Columns Access Data β
When you configure a column, you often need to use data from other columns in the same row. The system provides an intuitive way to do this.
The Basic Concept β
Think of it like filling in a form where you can reference answers from previous questions. When configuring a column, you can insert data from other columns by typing the column name.
How it works:
- Press CTRL + SPACE or start typing a column name
- A dropdown appears showing available columns
- Select the column you want to use
- The system displays it as a green badge
What you see:
- As you type, matching columns appear in a dropdown
- Selected columns show as green badges with the column label
- Nested data (like company information) shows as arrows: Company β Name
Accessing Data Step by Step β
Step 1: Basic Column Access β
The simplest case: use data from a single column.
Example: Email Column
When you need to use an email address in another column:
- Click in the input field
- Press CTRL + SPACE
- Type "email" or scroll to find it
- Click to select
- You see a green badge: Email
The system automatically inserts the email value when the column runs.
Step 2: Accessing Nested Properties β
Some columns contain complex data with multiple pieces of information. You can access specific parts.
Example: Company Enrichment Data
If a column called "Company Data" contains:
- Company name
- Location (city, state)
- Employee count
- Revenue
You can access specific pieces:
To get the company name:
- Type "Company Data"
- Select it
- Type a period (.)
- Dropdown shows: Name, Location, Employees, Revenue
- Select "Name"
- Badge shows: Company Data β Name
Company Name: Acme Corp
Location:
- City: Seattle
- State: WA
Employees: 2500
Revenue: $500MCommon patterns:
- Company Data β Name - Get company name
- Company Data β Location β City - Get city from nested location
- Company Data β Employees - Get employee count
Step 3: Using Multiple Columns β
You can combine data from multiple columns in a single field.
Example: Personalized Email
Create a message using first name, company name, and job title:
Hi [First Name],
I see you're the [Job Title] at [Company Name].
I'd love to schedule a quick call to discuss...How to build this:
- Type "Hi "
- Press CTRL + SPACE, select First Name
- Type ", I see you're the "
- Select Job Title
- Type " at "
- Select Company Name
- Continue with your message
I see you're the VP of Sales at Acme Corp.
I'd love to schedule a quick call to discuss...
The result automatically fills in the actual values for each row.
Understanding Data Flow Patterns β
Now that you know how to access data, let's explore common patterns for organizing your automations.
Pattern 1: Linear Pipeline β
What it is: Columns execute one after another in a chain.
Visual representation:
- β’ Simple to understand
- β’ Easy to debug
- β’ Clear cause-and-effect
- β’ Slower (runs sequentially)
- β’ One failure stops the chain
- β’ No parallel processing
When to use:
- Each step needs the result from the previous step
- Simple, sequential operations
- Easy to understand and debug
Example: Lead Enrichment
Email β Validate Email β Find Company β Extract Company Name β Update CRMCharacteristics:
- β Simple and clear
- β Easy to follow and debug
- β οΈ Slower (runs one at a time)
- β οΈ If one step fails, chain stops
Pattern 2: Parallel Enrichment β
What it is: Multiple columns run at the same time, then results combine.
Visual representation:
When to use:
- Gathering data from multiple sources
- Maximize speed
- Want backup data sources
Example: Multi-Source Company Research
ββ Clearbit API ββ
Email Address ββΌβ Apollo API ββββΌβ Combined Results
ββ Hunter API ββββ
(all run simultaneously)Characteristics:
- β Fast (runs in parallel)
- β If one source fails, others still work
- β More complete data
- β οΈ More API calls = higher costs
Pattern 3: Branching Logic β
What it is: Different paths based on conditions.
Visual representation:
- β’ Cost-effective
- β’ Flexible paths
- β’ Optimized processing
- β’ More complex logic
- β’ Need to define conditions
- β’ Testing multiple paths
When to use:
- Different actions for different data
- Save costs by skipping unnecessary operations
- Tiered processing (basic vs. premium)
Example: Lead Qualification
Email β Basic Research β Lead Score
β
βββββββββ΄βββββββββ
Score > 80 Score 50-80 Score < 50
β β β
Premium Research Standard Research Skip (save money)Characteristics:
- β Cost-effective (skip what's not needed)
- β Flexible paths
- β Optimized processing
- β οΈ More complex setup
Pattern 4: Human-in-the-Loop β
What it is: Automation stops for human review before continuing.
Visual representation:
- 1. System automatically generates email draft
- 2. You review the draft and make any edits
- 3. You check an "Approved" checkbox when ready
- 4. Send Email column only runs if approved
- 5. You manually click "Send" button for final safety
- β’ Safe (human oversight)
- β’ Can edit before sending
- β’ Accountability tracked
- β’ Prevents mistakes
- β’ Slower (waits for human)
- β’ Requires attention
- β’ Need review process
- β’ Not fully automated
When to use:
- Sending emails or messages
- Making purchases or commitments
- AI-generated content that needs review
- Actions that can't be undone
Example: AI Email Campaign
Research β Draft Email β [HUMAN REVIEWS] β Send Email
(automatic) (automatic) (manual check) (manual trigger)How it works:
- System automatically generates email draft
- You review the draft and make edits
- You check an "Approved" checkbox
- Final column only runs if approved
- You manually click "Send" button
Characteristics:
- β Safe (human oversight)
- β Can edit before sending
- β Accountability
- β οΈ Slower (waits for human)
- β οΈ Requires attention and process
Understanding Cell States β
As your automation runs, cells change states to show progress. Here's what you actually see:
| State | Color | Icon | Meaning |
|---|---|---|---|
| Ready | Gray | β | Not processed yet |
| Queued | Blue | β± | Waiting to execute |
| Running | Blue (pulse) | β³ | Currently executing |
| Completed | Green | β | Success with data |
| Error | Red | β | Execution failed |
| Rate Limited | Yellow | βΈοΈ | Throttled by rate limit |
| Skipped | Gray | β | Intentionally skipped |
State Meanings β
Ready (gray)
- Column hasn't run yet
- Waiting for dependencies
Queued (gray with clock icon, pulsing)
- Column is in line to run
- Will start soon
Running (gray with spinning gear)
- Column is currently executing
- Processing data
Rate Limited (yellow with pause icon)
- Column is waiting due to rate limits
- Protecting API from too many requests
Completed (green badge)
- Column finished successfully
- Data is available
Error (blue badge with lightning bolt)
- Column failed
- Click to see error details
Skipped (Condition failed) (gray with option icon)
- Column didn't run because condition was false
- Intentional skip
Skipped (Dependencies not present) (gray with slash icon)
- Required dependency data is missing
- Column can't run without it
Troubleshooting Guide β
When things don't work as expected, here's how to diagnose and fix common issues.
Issue 1: "Column Never Executes" β
Symptom: Cells stay gray (Ready), never change
Diagnosis A: Dependencies Not Satisfied
- Click the gray cell
- Look at the detail panel on the right
- Check which dependencies are not complete
Fix: Wait for or fix the blocking dependencies
Diagnosis B: Condition Failed
The column shows "Skipped (Condition failed)"
Fix:
- Check if the skip is intentional
- Review the condition to ensure it's correct
- Modify the condition if needed
Diagnosis C: Run Mode is Manual
The column is set to only run when you click it.
Fix:
- If it should run automatically: Change to "Once" or "Always"
- If it should stay manual: Click the Run button
Issue 2: "Column Executes But Fails" β
Symptom: Cell turns from gray to blue (Running) to blue (Error)
Column "emaail" not foundCannot access property "name" on null401 UnauthorizedDiagnosis A: Column Name Typo
Error says: "Column 'emaail' not found"
Fix:
- Open column configuration
- Find the typo (emaail β email)
- Use CTRL + SPACE to select correctly
- Save and re-run
Diagnosis B: Missing Data
Error says: "Cannot access property 'name' on null"
Cause: A previous column returned no data
Fix Option 1 - Add Condition: Only run this column if the data exists
Fix Option 2 - Use Custom Code: Handle missing data gracefully (covered in advanced sections)
Diagnosis C: Authentication Failed
Error says: "401 Unauthorized"
Fix:
- Go to Settings β Accounts
- Find the integration (e.g., "Clearbit")
- Click "Reconnect"
- Re-authenticate
- Re-run failed cells
Issue 3: "Wrong Data in Cell" β
Symptom: Cell shows "Completed" but data is incorrect
Diagnosis: Wrong Selection
Example problem:
- Column should show: "John Smith"
- Actually shows: "John"
Cause: Selected only First Name instead of both First Name and Last Name
Fix:
- Open column configuration
- Review what's selected
- Correct the selection
- Re-run the column
Issue 4: "Too Slow" β
Symptom: Cells stay "Queued" for a long time
- β’ Wait (usually the right choice)
- β’ Increase rate limit carefully if you know it's safe
- β’ Accept the wait time
- β’ Use a faster API if available
- β’ Contact API provider about performance
- β’ Only add dependencies you actually need
- β’ Remove unnecessary dependencies
- β’ Consider parallel processing
Diagnosis A: Rate Limiting
Cells show "Rate Limited" (yellow)
This is usually intentional:
- Protects external APIs
- Prevents hitting usage limits
- Follows service provider rules
Options:
- Wait (usually the right choice)
- Increase rate limit carefully (if you know it's safe)
Diagnosis B: Slow External Service
Cells stay "Running" for minutes
Cause: External API is slow to respond
Options:
- Accept the wait time
- Use a faster API if available
- Contact API provider about performance
Diagnosis C: Too Many Dependencies
Column depends on 15 other columns
Problem: Must wait for all 15 to complete first
Fix: Only add dependencies you actually need
Debugging Checklist β
When something doesn't work, follow these steps:
- Check cell state: What does it show? Ready, Running, Error, Skipped?
- Click the cell: View details in the right panel
- Check dependencies: Are they all completed?
- Check condition: Is it evaluated correctly?
- Check selections: Any typos or wrong columns?
- Check run mode: Is it set correctly?
- Check column header: Do all cells in this column have the same issue?
- Try manual re-run: Click Run button to test
- Simplify: Remove complexity until it works
- Check error details: Click error badge to see full message
Best Practices β
Design Principles β
1. Only Depend on What You Use
β Good: Column depends only on "Company Data"
β Bad: Column depends on "Company Data", "Email", "Validation", "Social Profiles" but only uses Company Data
Why: Fewer dependencies = faster execution
2. Maximize Parallelism
β Good: Run independent operations at the same time
ββ Clearbit ββ
Email βββΌβ Apollo βββββΌβ Merge
ββ Hunter βββββ Bad: Run everything in sequence when it could be parallel
Email β Clearbit β Apollo β Hunter β MergeWhy: Parallel = faster
3. Handle Missing Data
Always consider what happens if data is missing.
Use conditions to skip when data is absent:
- Add condition: "Only run if Company Data exists"
Or handle gracefully in custom code:
- Provide default values
- Show helpful messages
4. Use Appropriate Run Modes
- Once: For expensive operations (API calls with costs)
- Always: For calculations that should update
- Manual: For actions requiring approval
- Regularly: For scheduled checks
5. Add Conditions to Save Costs
Skip unnecessary operations:
Example: Only enrich high-value leads
- Condition: "Lead Score > 50"
- Saves money by skipping low-value leads
6. Rate Limit Wisely
Protect external APIs and control costs:
- Follow API provider's rate limits
- Start conservative, increase if needed
- Monitor usage
Common Data Flow Structures β
Most automations follow these proven patterns:
The Fundamental Pattern β
Input β Process β Extract β Analyze β ActExample: Lead Qualification
Email β Find Company β Extract Name β Calculate Score β Send to CRM
(input) (process) (extract) (analyze) (act)Multi-Source Enrichment β
ββ Source 1 ββ
Input βββΌβ Source 2 βββΌβ Combine β Process
ββ Source 3 ββExample: Comprehensive Research
ββ LinkedIn βββ
Email βββΌβ Twitter βββββΌβ Profile β Analysis
ββ GitHub βββββConditional Processing β
Input β Check β High: Premium Process
β
Low: Basic ProcessExample: Tiered Service
Customer β Check Plan β Pro: Full Analysis ($5)
β
Free: Basic Info ($0)Testing Strategy β
Test with One Row First β
- Add a single test row
- Watch the entire pipeline execute
- Verify each column produces correct data
- Check that conditions work as expected
Check Edge Cases β
Test unusual situations:
- What if email is invalid?
- What if company not found?
- What if API returns no data?
Verify Conditions β
Test both scenarios:
- Rows that meet the condition (should run)
- Rows that don't meet it (should skip)
Monitor Performance β
- Check how long each column takes
- Identify slow columns
- Optimize where needed
Review Costs β
- Track API call counts
- Monitor rate limit usage
- Optimize expensive operations
Summary: What You've Mastered β
In this chapter, you've learned:
β Data Access: How columns reference each other
- Using column names
- Accessing nested properties
- Combining multiple columns
β Data Flow Patterns: Five essential patterns
- Linear pipeline (sequential)
- Parallel enrichment (simultaneous)
- Branching logic (conditional)
- Aggregation (combining)
- Human-in-the-loop (approval)
β Cell States: What each state means
- Ready, Queued, Running, Rate Limited
- Completed, Error
- Skipped (condition failed or missing dependencies)
β Troubleshooting: How to diagnose and fix issues
- Columns not executing
- Execution failures
- Wrong data
- Performance issues
β Best Practices: Design principles for reliable automations
- Minimize dependencies
- Maximize parallelism
- Handle missing data
- Use appropriate run modes
- Add conditions to save costs
Next Steps β
You now have complete mastery of dependencies and data flow. Ready to level up?
Immediate Practice:
- Review your previous automations - can you optimize them?
- Try a parallel pattern - use multiple data sources
- Add conditions - skip operations to save costs
- Build a complete pipeline - use multiple patterns
Continue Learning:
- Chapter 5: Advanced Execution Control - Rate limiting and scheduling
- Chapter 6: Triggers - Automate row creation
- Chapter 9: Custom Code - Handle complex scenarios
π Congratulations! You now understand how data flows through your automations. With this knowledge, you can design sophisticated, reliable workflows that handle real business processes.
You're equipped to:
- Design complex data flow patterns
- Access data between columns intuitively
- Troubleshoot any issue quickly
- Optimize for performance and cost
- Build production-ready automations
Happy building! π