Skip to main content

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?

  1. Write a template using Liquid syntax with placeholders
  2. Reference previous steps using {{step_X.output}} syntax
  3. Apply formatting using Liquid filters and tags
  4. Block executes and replaces placeholders with actual data
  5. 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:
Access object properties:
Loop through array:
Conditional formatting:
Learn more: See Liquid Templating for complete syntax guide, filters, control flow, and examples.

Error Handling

Define what happens if the block fails to process the template. Options:
  1. Terminate Workflow: Stop execution immediately
  2. Continue Execution: Proceed to next step with empty output
Select based on whether subsequent steps require the formatted text.

Use Cases and Examples

Use Case 1: Format Keyword Research Data

Input from Keyword Overview block:
Text block template:
Output:

Use Case 2: Create Numbered List from Array

Input from Related Keywords block:
Text block template:
Output:

Use Case 3: Filter and Format High-Volume Keywords

Input:
Text block template:
Output:

Use Case 4: Combine Multiple Step Outputs

Inputs:
  • Step 1: Keyword Overview
  • Step 2: Domain Overview
  • Step 3: LLM-generated content
Text block template:

Use Case 5: Create CSV Format

Input:
Text block template:
Output:

Use Case 6: Format Loop Results

Input from Loop block:
Text block template:

Use Case 7: Conditional Formatting Based on Metrics

Input:
Text block template:

Use Case 8: Extract and Format Specific Fields

Input:
Text block template:

Use Case 9: Create Markdown Table

Input:
Text block template:
Output:

Use Case 10: Summary Statistics

Input:
Text block template:

Use Case 11: Nested Data Access

Input:
Text block template:

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/or for multiple conditions

What’s Next

Now that you understand the Text block: