Skip to content

Formatter Task

Overview

The Formatter Task transforms data between different formats and types. Use it to convert dates, format numbers, manipulate strings, change case, extract text, or prepare data for display or storage.

When to use this task:

  • Format dates for display or storage
  • Convert strings to numbers or vice versa
  • Change text case (uppercase, lowercase, title case)
  • Trim whitespace and clean data
  • Extract substrings or specific characters
  • Format currency and percentages
  • Concatenate or split strings
  • Parse and transform data types

Key Features:

  • Multiple transformation types
  • Date/time formatting
  • Number formatting (currency, decimals)
  • String manipulation
  • Case conversion
  • Text extraction
  • Type conversion
  • Chainable transformations

[SCREENSHOT NEEDED: Formatter task configuration showing transformation type selector and format options]

Quick Start

  1. Add Formatter task
  2. Select transformation type
  3. Input data to format
  4. Configure format options
  5. Test output
  6. Save

Simple Example:

Type: Date Format
Input: {{task_49001_submitted_date}}
Format: MM/DD/YYYY
Output: {{task_20001_formatted}}

Transformation Types

Date & Time Formatting

Input Date:

Input: {{task_49001_date}}

Format Options:

Format Output Example Use Case
MM/DD/YYYY 02/08/2026 US date display
DD/MM/YYYY 08/02/2026 International date
YYYY-MM-DD 2026-02-08 Database storage
MMMM DD, YYYY February 08, 2026 Formal display
HH:mm:ss 14:30:00 Time only
YYYY-MM-DD HH:mm:ss 2026-02-08 14:30:00 Full timestamp
Relative 2 days ago User-friendly

Example:

Input: 2026-02-08T14:30:00Z
Format: MMMM DD, YYYY at HH:mm
Output: {{task_20001_formatted}} → "February 08, 2026 at 14:30"

Number Formatting

Currency:

Type: Number Format
Input: {{task_43001_total}}
Format: Currency
Currency Symbol: $
Decimals: 2
Output: {{task_20001_formatted}} → "$1,234.56"

Percentage:

Type: Number Format
Input: 0.847
Format: Percentage
Decimals: 1
Output: {{task_20001_formatted}} → "84.7%"

Thousands Separator:

Input: 1234567
Format: Number with commas
Output: {{task_20001_formatted}} → "1,234,567"

Decimals:

Input: 3.14159265
Format: Fixed decimals
Decimals: 2
Output: {{task_20001_formatted}} → "3.14"

String Manipulation

Uppercase:

Type: Change Case
Input: {{task_49001_name}}
Case: UPPERCASE
Output: JOHN DOE

Lowercase:

Type: Change Case
Input: {{task_49001_email}}
Case: lowercase
Output: john@example.com

Title Case:

Type: Change Case
Input: hello world from basecloud
Case: Title Case
Output: Hello World From Basecloud

Sentence Case:

Type: Change Case
Input: THE QUICK BROWN FOX
Case: Sentence case
Output: The quick brown fox

Text Extraction

Substring:

Type: Extract Text
Input: {{task_49001_phone}}
Method: Substring
Start: 0
Length: 3
Output: {{task_20001_formatted}} → First 3 characters

Split:

Type: Split Text
Input: john@example.com
Delimiter: @
Get Part: 1 (second part)
Output: {{task_20001_formatted}} → "example.com"

Trim:

Type: Trim
Input: "  hello world  "
Trim: Both sides
Output: {{task_20001_formatted}} → "hello world"

Remove Characters:

Type: Remove
Input: (555) 123-4567
Remove: ( ) -
Output: {{task_20001_formatted}} → "5551234567"

Concatenation

Join Strings:

Type: Concatenate
Inputs:
  - {{task_49001_first_name}}
  - " "
  - {{task_49001_last_name}}
Output: {{task_20001_formatted}} → "John Doe"

Template:

Type: Template
Template: Hello {{name}}, your order {{order_id}} is ready!
Variables:
  name: {{task_49001_name}}
  order_id: {{task_46001_order_id}}
Output: "Hello John, your order ORD-5560 is ready!"

Type Conversion

String to Number:

Type: Convert Type
Input: "123.45"
Convert To: Number
Output: {{task_20001_formatted}} → 123.45 (numeric)

Number to String:

Type: Convert Type
Input: {{task_43001_total}}
Convert To: String
Output: {{task_20001_formatted}} → "1234.56" (text)

Boolean:

Type: Convert Type
Input: {{task_9001_condition_result}}
Convert To: Boolean
Output: {{task_20001_formatted}} → true/false

URL Encoding

Encode:

Type: URL Encode
Input: Hello World & Special Characters!
Output: {{task_20001_formatted}} → "Hello%20World%20%26%20Special%20Characters%21"

Decode:

Type: URL Decode
Input: Hello%20World%20%26%20Special
Output: {{task_20001_formatted}} → "Hello World & Special"

Real-World Examples

Example 1: Clean and Format Contact Data

Workflow: 1. Website Form - Website form 2. Formatter - Clean email (lowercase) 3. Formatter - Format phone (remove special chars) 4. Formatter - Title case name 5. Match to Client - Find existing contact

Format Email:

Type: Change Case
Input: {{task_49001_email}}
Case: lowercase
Output: {{task_20001_formatted}}

Format Phone:

Type: Remove Characters
Input: {{task_49001_phone}}
Remove: ( ) - . spaces
Output: {{task_6002_formatted}}

Format Name:

Type: Change Case
Input: {{task_49001_name}}
Case: Title Case
Output: {{task_6003_formatted}}

Match to Client:

Email: {{task_20001_formatted}}
Phone: {{task_6002_formatted}}
Name: {{task_6003_formatted}}

Example 2: Invoice Date Formatting

Workflow: 1. CRM Trigger - Order created 2. MySQL Query - Get order details 3. Formatter - Format invoice date 4. Formatter - Format due date 5. Formatter - Format currency 6. PDF Task - Generate invoice

Format Invoice Date:

Type: Date Format
Input: {{task_48001_current_datetime}}
Format: MMMM DD, YYYY
Output: {{task_20001_formatted}} → "February 08, 2026"

Format Due Date:

Type: Date Format
Input: {{task_43001_due_date}}
Format: DD/MM/YYYY
Output: {{task_6002_formatted}} → "08/03/2026"

Format Total:

Type: Currency
Input: {{task_43001_total}}
Currency: $
Decimals: 2
Separator: ,
Output: {{task_6003_formatted}} → "$1,234.56"

Use in PDF:

Invoice Date: {{task_20001_formatted}}
Due Date: {{task_6002_formatted}}
Total Amount: {{task_6003_formatted}}

Example 3: Email Template Builder

Workflow: 1. Timer Trigger - Weekly newsletter 2. MySQL Query - Get customers 3. Loop - For each customer 4. Formatter - Format currency (LTV) 5. Formatter - Format date (last login) 6. Formatter - Build personalized subject 7. Email - Send newsletter

Format LTV:

Type: Currency
Input: {{task_29001_lifetime_value}}
Currency: $
Decimals: 0
Output: {{task_20001_formatted}} → "$12,345"

Format Last Login:

Type: Date Format
Input: {{task_29001_last_login}}
Format: Relative
Output: {{task_6002_formatted}} → "3 days ago"

Build Subject:

Type: Template
Template: {{first_name}}, you've saved {{savings}}!
Variables:
  first_name: {{task_29001_first_name}}
  savings: {{task_20001_formatted}}
Output: {{task_6003_formatted}}

Email:

To: {{task_29001_email}}
Subject: {{task_6003_formatted}}
Body:
Hi {{task_29001_first_name}},

As a valued customer, you've generated {{task_20001_formatted}} in value!
You last logged in {{task_6002_formatted}}.

...

Example 4: Data Export Formatting

Workflow: 1. Timer Trigger - Daily export 2. MySQL Query - Get records 3. Loop - For each record 4. Formatter - Format date for CSV 5. Formatter - Format decimal values 6. Formatter - Clean special characters 7. Google Sheets - Append to sheet

Format Date for CSV:

Type: Date Format
Input: {{task_29001_created_date}}
Format: YYYY-MM-DD
Output: {{task_20001_formatted}}

Format Decimal:

Type: Number Format
Input: {{task_29001_amount}}
Decimals: 2
No Thousands Separator: true
Output: {{task_6002_formatted}} → "1234.56"

Clean Description:

Type: Remove Characters
Input: {{task_29001_description}}
Remove: " , \n
Replace With: (space)
Output: {{task_6003_formatted}}

Google Sheets:

Append Row:
  {{task_20001_formatted}}, {{task_6002_formatted}}, {{task_6003_formatted}}

Example 5: Dynamic URL Builder

Workflow: 1. Form Submission - Lead form 2. Formatter - URL encode name 3. Formatter - URL encode message 4. Formatter - Build tracking URL 5. Webhook Out - Send to CRM with URL

Encode Name:

Type: URL Encode
Input: {{task_49001_name}}
Output: {{task_20001_formatted}}

Encode Message:

Type: URL Encode
Input: {{task_49001_message}}
Output: {{task_6002_formatted}}

Build URL:

Type: Template
Template: https://crm.example.com/lead?name={{name}}&message={{msg}}&source={{src}}
Variables:
  name: {{task_20001_formatted}}
  msg: {{task_6002_formatted}}
  src: website-form
Output: {{task_6003_formatted}}

Webhook:

URL: https://external-crm.com/api/leads
Body:
{
  "name": "{{task_49001_name}}",
  "crm_link": "{{task_6003_formatted}}"
}

Chaining Formatters

Multiple formatters for complex transformations:

1. Formatter - Extract domain from email
   Input: john@EXAMPLE.COM
   Type: Split
   Delimiter: @
   Part: 2
   Output: EXAMPLE.COM

2. Formatter - Lowercase domain
   Input: {{task_20001_formatted}}
   Type: Change Case
   Case: lowercase
   Output: example.com

3. Formatter - Check if business
   Input: {{task_6002_formatted}}
   Type: Template
   Template: {{domain}} is {{type}}
   Variables:
     domain: {{task_6002_formatted}}
     type: [business email logic]

Best Practices

Data Quality

  1. Clean at source - Format as early as possible in workflow
  2. Validate before format - Check data exists and is expected type
  3. Handle nulls - Provide defaults for empty values
  4. Test edge cases - Empty strings, special characters, long text
  5. Be consistent - Use same formats throughout application

Performance

  1. Batch when possible - One formatter for multiple operations
  2. Cache formatted values - Use Variable task if used multiple times
  3. Don't over-format - Only format what's needed
  4. Use appropriate types - Format for display, not storage
  5. Minimize formatters in loops - Pre-format outside loop when possible

Maintainability

  1. Document format choices - Why this format?
  2. Use named formats - Standard date/currency formats
  3. Centralize common formats - Reusable workflow templates
  4. Test with real data - Use actual production examples
  5. Keep it simple - Prefer simple transforms over complex chains

Type Safety

  1. Know input types - String, number, date, boolean
  2. Explicit conversions - Convert types when needed
  3. Validate after format - Ensure expected output
  4. Handle failures - Fallback if formatting fails
  5. Document expectations - Input/output types in workflow

Troubleshooting

Formatter Returns Empty

Check: 1. Input data exists? 2. Input type matches formatter expectation? 3. Format string correct? 4. Null/empty input handled?

Debug:

Add Variable task before formatter:
Store: {{task_x_input_field}}
View actual input value

Date Formatting Fails

Issue: "Invalid date format"

Causes: - Input not a date - Date format unrecognized - Timezone issues

Solutions: - Verify input is date type - Try different format string - Use Date Formatter task instead

Number Formatting Wrong

Issue: Decimals incorrect or thousands separator missing

Check: - Input is numeric type? - Decimal places set correctly? - Locale settings?

Solution: Convert to number first:

1. Formatter - String to Number
2. Formatter - Format Currency

Case Conversion Not Working

Issue: Text remains same case

Cause: Input might contain non-text characters

Solution: Clean special characters first, then convert case.

Concatenation Has Extra Spaces

Issue: "John Doe" (double space)

Cause: Empty middle name or extra spaces in data

Solution:

1. Formatter - Trim each part
2. Formatter - Concatenate
3. Formatter - Trim final result

Frequently Asked Questions

Can I format multiple fields at once?

No, each Formatter task handles one transformation. Chain multiple formatters or use Code task for complex multi-field formatting.

What's the difference between Formatter and Date Formatter?

  • Formatter: General transformations (strings, numbers, basic dates)
  • Date Formatter: Specialized date operations (timezone, calculations, parsing)

Can formatters handle arrays?

No, formatters work on single values. Use Loop task to format array items individually.

How do I format for specific locales?

Use appropriate format strings: - US: MM/DD/YYYY, $1,234.56 - EU: DD/MM/YYYY, 1.234,56€ - International: YYYY-MM-DD

Can I reverse a formatting operation?

Not directly. Keep original unformatted value if needed later.

What happens if input is wrong type?

Formatter attempts conversion or returns empty. Always validate inputs.

Can formatters call external APIs?

No. Use Webhook Out or Code task for external formatting services.

How to format JSON?

Use Code task for JSON manipulation. Formatter is for simple scalar values.


  • Date Formatter - Advanced date operations
  • Phone Formatter - Phone number formatting
  • Code Task - Complex custom formatting
  • Variable Task - Store formatted values
  • Regex Task - Pattern-based extraction