F-5 · GTM Foundation · 100 XP · ~20 min
How Bitscale Executes a Grid
When you click Run, Bitscale doesn’t process rows top to bottom. It executes in layers: Layer 1 — Input resolution: Raw input columns are validated and normalized. Bad domains get flagged. Empty rows are skipped. Layer 2 — Enrichment execution: All enrichment columns run in parallel across rows. Row 1’s enrichment and row 500’s enrichment run at the same time. Layer 3 — Dependent columns: Columns that depend on enrichment output (AI columns, formula columns) run after their dependencies complete. Layer 4 — Output routing: Any configured outputs (CRM sync, Slack notification, export) fire after the grid is complete. Understanding this layer model is critical for debugging. If a formula column is empty, it’s because its dependency column is empty — not because the formula is wrong.Column Dependency Mapping
Every column in a Bitscale grid has a dependency chain. Before building a complex grid, map it out:Designing for Scale: Five Rules
Rule 1 — Validate inputs early. Before enrichment runs, add a formula column that checks whether the domain is valid (not null, has a TLD, not a personal email domain). Filter out bad rows before they waste API calls. Rule 2 — Cache enrichment results. If you run the same company through the grid twice, it shouldn’t make a new API call. Enable caching on enrichment columns to avoid duplicate costs and rate-limit issues. Rule 3 — Use conditional AI columns. Don’t run an AI column on every row. Add a condition: only run the first-line generation if ICP score >= 5. This cuts AI costs by 60–80% and keeps quality high. Rule 4 — Separate enrichment grids from activation grids. Keep your “find and score” grid separate from your “personalize and send” grid. This modularity means you can rerun enrichment without triggering outreach, and vice versa. Rule 5 — Log everything. Add a Run Timestamp column and a Status column to every grid. When something breaks at 2am, you want to know exactly which rows failed and when.Triggers: How Grids Start Running
Grids don’t have to be run manually. Bitscale supports several trigger types:| Trigger Type | Use Case | Example |
|---|---|---|
| Manual | One-time or ad hoc runs | List for a conference |
| Scheduled | Regular cadence | New ICP leads every Monday morning |
| Webhook | Event-driven from external system | New deal created in CRM → enrich contact |
| API | Programmatic trigger from your codebase | Form fill → instant enrichment |
Debugging Checklist
When a grid run produces unexpected results:- Check input quality — null domains? Duplicate rows?
- Check enrichment coverage — which columns have high null rates?
- Check dependency order — is the formula column running before its dependencies?
- Check condition filters — are AI columns skipping rows they shouldn’t?
- Check rate limits — did the run hit an API rate limit and stop mid-grid?
F-5 Challenge: Design a Workflow Diagram (+100 XP)
Take your F-3 grid and draw its full dependency chain. Map every column, its type (input/enrichment/AI/formula), and its dependencies. Identify one single point of failure and describe how you’d add a fallback.Submit F-5 Challenge →
Submit your workflow dependency diagram and failure point analysis. +100 XP on approval.
Next: Foundation Knowledge Check →
Lock in everything from the Foundation track before moving to Outbound Automation.