Patterns & Best Practices

Proven patterns for building reliable, maintainable workflows.

Error handling patterns

Retry with backoff

Repeat (3) →
  HTTP Request (call API) →
  If-Else (status === 200) →
    True: Stop Loop (success)
    False: Delay (2s, 4s, 8s — exponential) → continue
→ If-Else (final check) →
    Success: Continue workflow
    Failure: Send Error Alert → End

Fallback action

HTTP Request (primary API) →
If-Else (status === 200) →
  True: Process response
  False: HTTP Request (fallback API) →
    If-Else (fallback status === 200) →
      True: Process fallback response
      False: Log Error → Send Alert → End

Error notification

[Any node with Continue on Error enabled] →
If-Else (previous node succeeded) →
  True: Continue normally
  False: Send Email to Yourself (ERROR priority) → End or Continue

Data flow patterns

Enrich then store

Trigger → Person Enrichment → Company Enrichment → Create Record (save enriched data)

Transform then send

Trigger → Transformer (format message) → Send Slack → Send Email → Log

Aggregate then report

Schedule (daily) → Find All Records → For Each →
  Transformer (extract metrics) →
Loop End → TinyGPT (summarize) → Send Email (daily report)

Conditional routing

Priority-based routing

Trigger → TinyGPT (classify priority) → If-Else →
  urgent: Send SMS + Send Slack (#on-call) + Create JIRA (P0)
  high: Send Slack (#engineering) + Create JIRA (P1)
  normal: Create JIRA (P2)
  low: Add to spreadsheet

Role-based routing

Form Submission → If-Else (role field) →
  "Developer": → Technical onboarding workflow
  "Manager": → Enterprise onboarding workflow
  "Other": → General welcome email

Batch processing

Process with rate limiting

Find All Records → For Each →
  HTTP Request (call API) →
  Delay (1 second — respect rate limits) →
Loop End

Chunk large datasets

Schedule → Find All Records (LIMIT 100) →
For Each → Process → Update Record (mark processed) →
Loop End
[Runs every hour, processes 100 at a time]

Best practices

Naming

  • Name your workflow descriptively: "Slack → JIRA ticket on @mention" > "Untitled Workflow"
  • Name nodes by what they do: "Classify priority" > "TinyGPT"

Testing

  • Test with real data before publishing
  • Use "Send Email to Yourself" for quick debugging
  • Check execution history after the first few live runs

Reliability

  • Always handle errors; don't assume APIs never fail
  • Set timeouts on HTTP requests (default 30s may be too long for some APIs)
  • Use Delay in loops to avoid rate limiting
  • Keep workflows focused: one workflow per automation, not one mega-workflow

Monitoring

  • Check Execution History regularly for failed runs
  • Set up error notification workflows that alert you on failures
  • Monitor credit usage for AI-heavy workflows
Tip

Start simple: trigger + one action + publish. Get it working, then add complexity. The best workflows are built incrementally, not designed upfront.

Warning

Avoid long chains without error handling. If node 8 out of 10 fails, nodes 1-7 already executed; their effects (emails sent, records created) can't be undone. Add error checks after critical actions.