What is the Text Block?
The Text block uses Liquid templating to format and combine data from previous workflow steps. Think of it as a powerful text formatter that lets you create custom outputs by mixing static text with dynamic data. Common use cases:- Format data for human-readable output
- Combine multiple step outputs into one text
- Create structured reports or summaries
- Prepare content for Google Sheets or external APIs
- Format lists and arrays as readable text
- Transform JSON data into formatted text
How Does the Text Block Work?
- Write a template using Liquid syntax with placeholders
- Reference previous steps using
{{step_X.output}}syntax - Apply formatting using Liquid filters and tags
- Block executes and replaces placeholders with actual data
- Output is the formatted text ready for use
Configuration
Template (Required)
The template field where you write your Liquid template with placeholders for dynamic data. Basic examples: Simple output:Error Handling
Define what happens if the block fails to process the template. Options:- Terminate Workflow: Stop execution immediately
- Continue Execution: Proceed to next step with empty output
Use Cases and Examples
Use Case 1: Format Keyword Research Data
Input from Keyword Overview block:Use Case 2: Create Numbered List from Array
Input from Related Keywords block:Use Case 3: Filter and Format High-Volume Keywords
Input:Use Case 4: Combine Multiple Step Outputs
Inputs:- Step 1: Keyword Overview
- Step 2: Domain Overview
- Step 3: LLM-generated content
Use Case 5: Create CSV Format
Input:Use Case 6: Format Loop Results
Input from Loop block:Use Case 7: Conditional Formatting Based on Metrics
Input:Use Case 8: Extract and Format Specific Fields
Input:Use Case 9: Create Markdown Table
Input:Use Case 10: Summary Statistics
Input:Use Case 11: Nested Data Access
Input:Best Practices
Template Design
- Keep it readable: Use line breaks and indentation
- Test incrementally: Build complex templates step by step
- Comment your logic: Use
{% comment %}for complex sections - Handle missing data: Use default values or conditionals
Data Formatting
- Consistent formatting: Choose one style and stick to it
- Meaningful labels: Use clear section headers
- Visual hierarchy: Use headings, bullets, and spacing
- Units and context: Include units (searches/month, $, %)
Performance
- Avoid deep nesting: Keep loops and conditions simple
- Limit loop iterations: Process large arrays carefully
- Filter early: Apply filters before loops when possible
- Reuse variables: Assign once, use multiple times
Common Patterns
- Headers and footers: Add context at start and end
- Separators: Use
---or{% unless forloop.last %}for clean formatting - Conditional formatting: Show/hide sections based on data
- Data transformation: Convert formats for downstream blocks
Troubleshooting
Template Not Rendering
Problem: Output is empty or shows template code. Solution:- Check step references are correct (
step_X) - Verify previous steps completed successfully
- Test with simple template first:
{{step_1.output}}
Filter Not Working
Problem: Filter produces unexpected results. Solution:- Check filter syntax:
{{value | filter: "param"}} - Ensure data type matches filter (string/number/array)
- Chain filters step by step to debug
Loop Not Iterating
Problem: For loop doesn’t produce output. Solution:- Verify input is an array:
{{step_1.output | size}} - Check loop syntax:
{% for item in step_1.output %} - Ensure array is not empty
Property Access Error
Problem:{{step_1.output.keyword}} shows blank.
Solution:
- Check exact property name (case-sensitive)
- Verify object structure:
{{step_1.output}} - Use array index if needed:
{{step_1.output[0].keyword}}
Condition Not Working
Problem: If statement doesn’t behave as expected. Solution:- Check comparison operators:
==,>,<,>=,<=,!= - Convert strings to numbers:
{% assign num = value | plus: 0 %} - Use
and/orfor multiple conditions
What’s Next
Now that you understand the Text block:- Learn complete Liquid Templating syntax
- Process data with Code Block
- Convert to JSON with Convert to JSON
- Save formatted text to Google Sheets
- Use formatted output in LLM Block
- Loop through data with Loop Block
- Learn about Variable Referencing