8.2 Configuring Rate Limits โ
You understand why rate limits matter. Now let's configure them in your taibles. This section shows you exactly where to click, what to enter, and how to set up rate limiting for reliable, cost-controlled automation.
Where Rate Limits Are Configured โ
Column-Level Rate Limits โ
Rate limits are configured per column in the column edit sidebar.
Why column-level?
- Each column may call different APIs
- Each API has different limits
- Fine-grained control
- Independent configuration
Example:
Column A: Enrich with Clearbit
- Rate limit: 10 per second
Column B: Send Email
- Rate limit: 50 per hour
Column C: Update HubSpot
- Rate limit: 100 per minute
Each column respects its own limit independently.
๐ก ๐ก Independent Limits
Step-by-Step: Enabling Rate Limiting โ
Step-by-Step Guide
Step 1 of 6Open Column Configuration
Click the column header, then click the settings icon (โ๏ธ) or three-dot menu (โฎ) โ "Edit Column"
Visual: column-header
Detailed Instructions โ
Step 1: Open Column Configuration โ
From taible view:
Locate the column you want to rate limit
- Look at column headers across the top
- Example: "Enrich with Clearbit"
Click the column header
- The column name at the top of the table
Click the settings icon (gear icon โ๏ธ)
- Usually in top-right of column header
- OR: Click three-dot menu (โฎ) โ "Edit Column"
Result: Column edit sidebar opens on the right side of screen
Step 2: Navigate to Rate Limiting Settings โ
In column edit sidebar:
Scroll down past these sections:
- Column Name
- Display Label
- Node Type Configuration
- Dependencies (if any)
- Conditions (if any)
Find "Run Configuration" section
- Usually toward the bottom
- Expandable section (click to expand if collapsed)
- Contains execution settings
Look for rate limiting option
- Toggle switch labeled "Rate limit the calculation of rows"
Step 3: Enable Rate Limiting โ
In Run Configuration section:
Find the toggle switch
- Label: "Rate limit the calculation of rows"
- OFF by default (gray)
Click the toggle to turn ON
- Switch slides to right
- Changes from gray to cyan/teal
- Additional fields appear below
Result: Rate limit configuration fields appear
๐ก ๐ก Visual Feedback
Step 4: Configure Rate Limit Parameters โ
Run Configuration
Configure how and when this column executes
Control how many cells execute per time period
Three fields appear when rate limiting is enabled:
Field 1: Maximum Executions โ
What it is: How many executions are allowed?
Enter a number:
- Example:
10(for 10 executions) - Example:
100(for 100 executions) - Example:
1000(for 1000 executions)
Type: Positive whole number
Rules:
- โ Must be greater than 0
- โ Typically between 1 and 10,000
- โ Cannot be negative
- โ Cannot be zero
Field 2: Time Window โ
What it is: In what time period?
Enter a number:
- Example:
1(for "per 1 unit") - Example:
5(for "per 5 units") - Example:
60(for "per 60 units")
Type: Positive whole number
Rules:
- โ Must be greater than 0
- โ Cannot be negative
Field 3: Unit โ
What it is: What unit of time?
Dropdown menu with options:
- Seconds - for very high-frequency operations
- Minutes - most common for API calls
- Hours - for email sending, batch operations
- Days - for expensive operations, free tier APIs
Select one:
- Click dropdown
- Choose appropriate unit
- Click to confirm
Understanding Your Configuration โ
Example 1: API Rate Limit
โ Enable Rate Limiting: ON
Maximum Executions: 10
Time Window: 1
Unit: SecondsReads as: "10 executions per 1 second" = 10 per second
Example 2: Email Sending
โ Enable Rate Limiting: ON
Maximum Executions: 50
Time Window: 1
Unit: HoursReads as: "50 executions per 1 hour" = 50 per hour
Example 3: Expensive API
โ Enable Rate Limiting: ON
Maximum Executions: 100
Time Window: 1
Unit: DaysReads as: "100 executions per 1 day" = 100 per day
๐ก ๐ Reading Rate Limits
Step 5: Save Configuration โ
At the bottom of sidebar:
Click "Save" button
- Usually blue/cyan button
- Bottom-right of sidebar
Wait for confirmation
- Success message appears
- Sidebar may close
Result: Rate limiting is now active for this column! โ
Common Rate Limit Configurations โ
Standard API
Most REST APIs
10 API calls per second
Email Sending
SMTP, transactional email
50 emails per hour
Free Tier API
Limited monthly quotas
50 API calls per day
Cost Control
Budget protection
100 API calls per hour
Configuration 1: Standard API (Per Second) โ
Use case: Most REST APIs
Settings:
- Count: 10
- Window: 1
- Unit: Seconds
Means: 10 API calls per second
When to use:
- Typical API rate limits
- Real-time integrations
- High-volume processing
Configuration 2: Email Sending (Per Hour) โ
Use case: SMTP, transactional email
Settings:
- Count: 50
- Window: 1
- Unit: Hours
Means: 50 emails per hour
When to use:
- Gmail SMTP (500/day limit)
- Avoid spam filters
- Gradual delivery
Configuration 3: Free Tier API (Per Day) โ
Use case: Limited monthly quotas
Settings:
- Count: 50
- Window: 1
- Unit: Days
Means: 50 API calls per day
Why per day?
- Monthly limit: 1,500 (50 ร 30 days)
- Spreads usage evenly
- Prevents quota exhaustion
- Sustainable usage
๐ก ๐ก Free Tier Strategy
Configuration 4: Burst Allowance (Multiple per Second) โ
Use case: APIs that allow bursts
Settings:
- Count: 100
- Window: 10
- Unit: Seconds
Means: 100 API calls per 10 seconds = 10 per second average
Benefit: Allows short bursts while respecting overall limit
Configuration 5: Cost Control (Per Hour) โ
Use case: Budget protection
Settings:
- Count: 100
- Window: 1
- Unit: Hours
If API costs $1 per call:
- Max: $100 per hour
- Max: $2,400 per day
- Max: $72,000 per month
Review regularly: Adjust limit based on results and budget
Advanced Configuration โ
Buffer Below Provider Limit โ
Best practice: Set your limit lower than the provider's limit
Why?
- Account for timing variations
- Prevent hitting the hard limit
- Safety margin for errors
- Handle retries gracefully
Example:
Provider limit: 100 requests per minute
Your configuration:
- Count: 90
- Window: 1
- Unit: Minutes
Buffer: 10 requests (10% safety margin)
Result: You never hit the provider's hard limit โ
๐ก โ ๏ธ Safety Margins
Multiple Time Windows โ
Some APIs have multiple limits:
Example: OpenAI GPT-4
- Limit 1: 10,000 tokens per minute
- Limit 2: 500 requests per minute
Your configuration (more restrictive):
- Count: 60
- Window: 1
- Unit: Minutes
Why 60?
- Average prompt: ~150 tokens
- 60 requests ร 150 tokens = 9,000 tokens
- Stays under both limits โ
Scaling Rate Limits Over Time โ
Testing strategy: Start conservative, increase gradually
Week 1: Testing
- Count: 10
- Window: 1
- Unit: Hours
Actions:
- Test with small volume
- Verify correctness
- Check costs
Week 2: Ramp Up
- Count: 50
- Window: 1
- Unit: Hours
Actions:
- Increase 5ร if tests passed
- Monitor closely
Week 3: Production
- Count: 200
- Window: 1
- Unit: Hours
Actions:
- Full production volume
- Monitoring and alerts active
Safe rollout โ
๐ก โ Gradual Scaling
Token-Based Rate Limiting (AI Columns) โ
Special Case: AI Columns โ
AI columns (like GPT-4, Claude) have token-based rate limiting.
What's different?
- Not counting requests
- Counting tokens (word pieces)
- Variable per request
Configuring Token Limits โ
In AI column configuration:
Open column edit sidebar (same as before)
Navigate to "Run Configuration" section
Enable Rate Limiting (toggle ON)
Select rate limit type:
- Dropdown: "Request-based" vs "Token-based"
- Choose: Token-based
Configure token limit:
- Maximum Tokens: 10000
- Time Window: 1
- Unit: Minutes
Save configuration
How Token Counting Works โ
The system automatically tracks tokens:
Before execution:
- Estimate tokens needed
- Check current usage
- If under limit โ Execute
- If over limit โ Wait (Rate Limited)
After execution:
- Count actual tokens used
- Add to current window
- Update usage tracking
Example:
Limit: 10,000 tokens per minute
Current usage: 8,500 tokens
Request 1: ~200 tokens โ Allowed (total: 8,700)
Request 2: ~300 tokens โ Allowed (total: 9,000)
Request 3: ~1,500 tokens โ Rate Limited (would exceed 10,000)
โ
Wait until next minute
โ
Usage resets to 0
โ
Request 3: AllowedToken Limit Presets โ
Common configurations:
GPT-4 (OpenAI):
- Maximum Tokens: 10000
- Window: 1
- Unit: Minutes
(Matches OpenAI's TPM limit)
GPT-3.5 (OpenAI):
- Maximum Tokens: 90000
- Window: 1
- Unit: Minutes
(Higher limit for cheaper model)
Claude (Anthropic):
- Maximum Tokens: 100000
- Window: 1
- Unit: Minutes
(Higher default limits)
๐ก ๐ Tokens vs Requests
Rate Limit Templates โ
Template 1: Conservative Testing โ
When: First time setting up automation
Configuration:
- Count: 5
- Window: 1
- Unit: Minutes
Why:
- Very slow (5 per minute)
- Easy to monitor
- Catch issues early
- Minimal cost impact
Test: 5-10 rows, verify success, then increase
Template 2: Free Tier Protection โ
When: Using free APIs with monthly quotas
Configuration:
- Count: 50
- Window: 1
- Unit: Days
Math:
- 50 per day ร 30 days = 1,500 per month
- Adjust based on your quota
Example:
- Clearbit free: 50 enrichments per month
- Set to: 1 per day (30 per month)
- Leaves buffer for manual tests
Template 3: Standard Production API โ
When: Typical REST API integration
Configuration:
- Count: 90
- Window: 1
- Unit: Minutes
Assumes:
- Provider limit: 100 per minute
- Your limit: 90 (10% buffer)
Adjust based on provider documentation
Template 4: Email Delivery (Gmail SMTP) โ
When: Sending emails via Gmail
Configuration:
- Count: 450
- Window: 1
- Unit: Days
Why:
- Gmail limit: 500 per day
- Your limit: 450 (10% buffer)
- Leaves room for manual emails
Alternative (hourly):
- Count: 18
- Window: 1
- Unit: Hours
(450 รท 24 hours โ 18 per hour)
Template 5: Cost Control ($100/day) โ
When: Expensive API ($1 per call)
Configuration:
- Count: 100
- Window: 1
- Unit: Days
Math:
- 100 calls per day
- $1 per call
- = $100 per day
- = $3,000 per month
Adjust based on your budget
Template 6: High-Volume Processing โ
When: Large-scale operations with generous limits
Configuration:
- Count: 1000
- Window: 1
- Unit: Hours
Means:
- 1,000 per hour
- ~16-17 per second
- 24,000 per day
Use when:
- Provider allows high volume
- Costs are low
- Infrastructure can handle it
๐ก ๐ก Template Selection
Editing Existing Rate Limits โ
Change Rate Limit Settings โ
To adjust existing rate limit:
Open column edit sidebar
- Click column header
- Click settings icon โ๏ธ
Navigate to "Run Configuration" section
- Scroll to Run Configuration
- Find Rate Limiting subsection
Modify values:
- Count: Change number
- Window: Change number
- Unit: Change dropdown selection
Save changes
- Click "Save" button
Takes effect immediately: New rate limit applies to future executions
Currently executing cells: Complete under old limit
Queued cells: Use new limit
Disable Rate Limiting โ
To turn off rate limiting:
Open column edit sidebar
Navigate to "Run Configuration" section
Toggle OFF
- Click toggle switch
- Changes from cyan to gray
- Fields disappear
Save changes
Result: Column executes without rate limiting (unlimited speed)
๐ก โ ๏ธ Warning: Disabling Rate Limits
Without rate limits, your automation can quickly exhaust API quotas or generate unexpectedly high costs!
Testing Rate Limit Configuration โ
Method 1: Small Batch Test โ
Test new rate limit before full rollout:
Configure rate limit (very conservative)
- Count: 5
- Window: 1
- Unit: Minutes
Create test rows:
- Add 10 rows manually
- Fill required dependencies
- Wait for column to execute
Observe behavior:
- First 5 rows: Execute immediately (within 1 minute)
- Next 5 rows: Rate Limited (wait for next minute)
- After 1 minute: Next 5 execute
Check timing:
- Look at cell execution timestamps
- Should see 1-minute gaps between batches
Verify success:
- All 10 cells: Done (green checkmark)
- No failures
- No errors
Increase limit gradually:
- Count: 50
- Window: 1
- Unit: Minutes
Test again with larger batch (50-100 rows)
Method 2: Monitor Cell States โ
Column: Enrich with API
Rate Limit: 10 executions per 1 second
What's happening: The first 10 cells executed immediately (within 1 second). The remaining 5 cells are waiting because the rate limit of "10 per second" has been reached. They will execute in the next second.
Watch cells transition through states:
Visual monitoring:
Add multiple rows that will trigger rate-limited column
Watch cell states change:
- Row 1-10: Idle โ Queued โ Running โ Done
- Row 11+: Idle โ Queued โ Rate Limited โธ
Confirm Rate Limited state:
- Cell background: Yellow
- Icon: Pause icon โธ
- Text: "Rate Limited" (italic)
Wait for window to pass
Watch cells proceed:
- Row 11-20: Rate Limited โ Running โ Done
If cells proceed as expected: Rate limit is working โ
๐ก ๐๏ธ Visual Indicators
Method 3: Check Timestamps โ
Verify timing mathematically:
Execute rate-limited column on 20 rows
After completion, check execution timestamps:
- Click each cell
- Look for execution time
- Note the time
Calculate gaps:
Rate limit: 10 per second Expected: 10 rows per second Row 1: 12:00:00 Row 11: 12:00:01 (1 second later) โ Row 21: 12:00:02 (2 seconds later) โIf gaps match rate limit: Working correctly โ
Visual Indicators in UI โ
Column Header Indicators โ
When rate limiting is active:
Column header shows:
- Tooltip: Information about rate limiting when hovering
When cells are rate limited:
- Count indicator: Shows number of cells in various states
- Example: Multiple cells waiting for rate limit
Cell Visual States โ
Rate Limited cells display:
Background color:
- Yellow (waiting)
Icon:
- Pause icon โธ
Text:
- "Rate Limited" in italic style
Color:
- Yellow-600 (#ca8a04)
๐ก ๐จ Color Coding
Best Practices for Configuring Rate Limits โ
Best Practice 1: Always Start Conservative โ
Don't guess high:
- โ Bad: Set to 1,000/second (hoping it's okay)
- โ Good: Set to 10/second (test, then increase)
Safer to start low:
- Test with small volume
- Verify no errors
- Gradually increase
You can always increase: Can't undo expensive mistakes
Best Practice 2: Check Provider Documentation โ
Before setting rate limit:
- Find provider's API documentation
- Look for "Rate Limits" section
- Note the exact limits:
- Requests per second/minute/hour
- Tokens per minute (for AI)
- Daily/monthly quotas
- Set yours lower (add buffer)
Example:
- Provider: "100 requests per minute"
- Your config: 90 per minute (10% buffer)
๐ก โ Documentation First
Best Practice 3: Match Business Constraints โ
Consider downstream capacity:
Example: Order fulfillment
- Warehouse: 20 orders per hour capacity
- Your rate limit: 20 per hour
- Match digital to physical โ
Don't overwhelm downstream systems
Best Practice 4: Use Cost Calculators โ
For expensive APIs:
Calculate cost per execution:
- Example: $1 per enrichment
Determine daily budget:
- Example: $100 per day
Set rate limit to match:
- Cost per call: $1
- Daily budget: $100
- Rate limit: 100 per day
Monitor actual spend vs. limit
Best Practice 5: Consider Time Zones โ
For time-sensitive operations:
Example: Email campaigns
Bad configuration:
- Count: 1000
- Window: 1
- Unit: Days
(All 1,000 might send at midnight)
Better configuration:
- Count: 40
- Window: 1
- Unit: Hours
(Spreads throughout day: 40 ร 24 = 960 per day)
Plus: Add conditional execution for business hours
Best Practice 6: Plan for Retries โ
Assume some requests will fail:
Your rate limit should account for retries:
Example:
- Provider limit: 100 per minute
- Expected failure rate: 5%
- Expected retries: 5 per minute
- Your limit: 90 per minute (leaves room for 10 retries)
Buffer protects against retry spikes
๐ก ๐ก Retry Buffer
Troubleshooting Rate Limit Configuration โ
Problem 1: Cells Stay Rate Limited Forever โ
Symptom: Cells never leave Rate Limited state
Possible causes:
1. Rate limit too restrictive
- Example: 1 per day with 1,000 rows queued
- Will take 1,000 days to complete!
Solution: Increase rate limit
- Change from: 1 per day
- Change to: 100 per hour
2. Time unit mismatch
- You thought you set "per second" but set "per day"
Solution: Check configuration
- Open column config
- Verify Unit dropdown
- Correct if wrong
3. Rate limit conflict
- Multiple rate limits applying
- Organization-level limit hit
Solution: Check organization settings
- Organization dashboard
- Look for global limits
- Contact admin if needed
Problem 2: All Cells Fail (Not Rate Limited) โ
Symptom: Cells go Running โ Failed (not Rate Limited)
Diagnosis: Rate limit is too aggressive for provider
What happens:
Your limit: 100 per second
Provider limit: 10 per second
โ
Your system sends: 100 per second
Provider rejects: 90 requests (error)
โ
90 cells: FailedSolution: Lower your rate limit
- Change from: 100 per second
- Change to: 9 per second (under provider limit)
๐ก โ ๏ธ Failed vs Rate Limited
Problem 3: Rate Limit Not Working โ
Symptom: All cells execute immediately (no throttling)
Possible causes:
1. Rate limiting not enabled
Solution: Check configuration
- Open column config
- Rate Limiting section
- Toggle is ON? (cyan)
- If OFF: Turn ON and save
2. Rate limit too high
- Example: 10,000 per second
- If you only have 100 rows, all execute immediately
Solution: Verify row count
- Is your row count under the rate limit?
- If yes: This is normal (limit not reached)
3. Caching or dependencies
- Column not actually executing
- Using cached results
Solution: Check run mode
- Run mode: Is it set to only run once?
- Clear cache and retry
Problem 4: Costs Higher Than Expected โ
Symptom: Bill is higher than rate limit math suggests
Example:
Rate limit: 100 per day
Cost per call: $1
Expected: $100 per day
Actual: $500 per day (?!)Possible causes:
1. Multiple columns calling APIs
- Column A: 100 calls per day ($100)
- Column B: 200 calls per day ($200)
- Column C: 200 calls per day ($200)
- Total: $500 per day
Solution: Check all columns, not just one
2. Retries not counted in rate limit
- Failed requests retry
- Retries consume API quota
- But may not respect rate limit
Solution: Monitor actual API usage vs. configuration
3. Sub-taibles
- Parent taible: 10 rows
- Each has 100 child rows
- Child column runs: 10 ร 100 = 1,000 times
- Rate limit on parent doesn't apply to child
Solution: Set rate limits on child taible columns too
๐ก โ ๏ธ Sub-Taible Multiplication
Summary: Configuring Rate Limits โ
You now know how to:
โ Find rate limit settings: Column edit sidebar โ Run Configuration โ Rate Limiting toggle
โ Enable rate limiting: Toggle ON, configure three parameters
โ Configure parameters:
- Count (how many executions)
- Window (time period length)
- Unit (seconds/minutes/hours/days)
โ Use common templates:
- Testing: 5 per minute
- Free tier: 50 per day
- Standard API: 90 per minute
- Email: 450 per day
- Cost control: Based on budget
โ Advanced configurations:
- Buffer below provider limit (10% safety margin)
- Token-based limits for AI columns
- Scaling over time (start low, increase gradually)
โ Test configurations:
- Small batch test (10 rows)
- Monitor cell states (yellow = rate limited)
- Check timestamps (verify timing)
โ Visual indicators:
- Cell state: Yellow background with pause icon
- Text: "Rate Limited" in italic
- Color: Yellow-600
โ Best practices:
- Start conservative (test first)
- Check provider documentation (know the limits)
- Match business constraints (don't overwhelm systems)
- Use cost calculators (budget protection)
- Plan for retries (add buffer)
โ Troubleshoot issues:
- Cells stuck: Increase rate limit or check unit
- Failures: Lower rate limit to match provider
- Not working: Verify toggle is ON
- High costs: Check all columns and sub-taibles
Next Steps โ
Now that you know how to configure rate limits, Section 8.3 will show you:
- How to monitor rate limit usage
- Dashboard indicators
- Real-time statistics
- Understanding rate limit metrics
- Optimizing for performance and cost
Let's learn to monitor your rate limits! ๐