Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

n8n Migration Guide

Migrating workflows and automations from n8n to General Bots.

General Bots

Overview

n8n is a workflow automation platform with a visual node-based editor. General Bots provides equivalent automation capabilities through BASIC scripting, offering more flexibility and integrated features without execution limits.

Why Migrate

Aspectn8nGeneral Bots
AutomationVisual workflowsBASIC scripts (more powerful)
PricingPer-execution limitsUnlimited executions
AI IntegrationVia API nodesNative LLM keywords
Chat/BotNot includedFull multi-channel
Productivity SuiteNot includedEmail, calendar, files, tasks
Knowledge BaseNot includedBuilt-in RAG
Self-hostingAvailableAvailable

Workflow Mapping

Triggers

n8n TriggerGeneral Bots Equivalent
Schedule TriggerSET SCHEDULE
WebhookWEBHOOK
Email Trigger (IMAP)ON "email:received"
Database TriggerON "table:tablename:insert"
Manual TriggerDirect script execution
CronSET SCHEDULE "cron expression"

Common Nodes

n8n NodeGeneral Bots Equivalent
HTTP RequestGET, POST, PUT, DELETE
SetVariable assignment
IFIF/THEN/ELSE/END IF
SwitchSWITCH/CASE/END SWITCH
Code (JavaScript)BASIC script
FunctionBASIC subroutines
MergeArray operations
Split In BatchesFOR EACH
WaitWAIT
Send EmailSEND MAIL
SlackPOST to Slack webhook
DiscordPOST to Discord webhook
Google SheetsGET/POST to Sheets API
AirtableGET/POST to Airtable API
MySQL/PostgreSQLFIND, INSERT, UPDATE, DELETE
MongoDBGET/POST to MongoDB API

Migration Examples

Scheduled Data Sync

n8n workflow:

Schedule Trigger → HTTP Request → IF → Google Sheets

General Bots equivalent:

SET SCHEDULE "every hour"

data = GET "https://api.example.com/data"

IF data.status = "active" THEN
    FOR EACH item IN data.items
        INSERT "synced_data", #{
            id: item.id,
            name: item.name,
            value: item.value,
            synced_at: NOW()
        }
    NEXT item
END IF

TALK "Synced " + LEN(data.items) + " items"

Webhook Processing

n8n workflow:

Webhook → Set → IF → Send Email + Slack

General Bots equivalent:

WEBHOOK "order-received"

order = body
customer_name = order.customer.name
order_total = order.total

IF order_total > 1000 THEN
    SEND MAIL TO "sales@company.com" SUBJECT "Large Order" BODY "Order from " + customer_name + ": $" + order_total
    
    POST "https://hooks.slack.com/services/xxx", #{
        text: "Large order received: $" + order_total
    }
END IF

Multi-Step API Orchestration

n8n workflow:

Webhook → HTTP Request (API 1) → Code → HTTP Request (API 2) → IF → Multiple outputs

General Bots equivalent:

WEBHOOK "process-lead"

lead = body

' Step 1: Enrich lead data
enriched = POST "https://api.clearbit.com/enrich", #{email: lead.email}

' Step 2: Score the lead
WITH lead_data
    .email = lead.email
    .company = enriched.company.name
    .industry = enriched.company.industry
    .size = enriched.company.employees
END WITH

score = SCORE LEAD lead_data

' Step 3: Route based on score
IF score.status = "hot" THEN
    POST "https://api.salesforce.com/leads", lead_data
    SEND MAIL TO "sales@company.com" SUBJECT "Hot Lead" BODY lead_data
ELSEIF score.status = "warm" THEN
    POST "https://api.hubspot.com/contacts", lead_data
ELSE
    INSERT "cold_leads", lead_data
END IF

Error Handling

n8n approach: Error Trigger node

General Bots equivalent:

SET SCHEDULE "every 5 minutes"

TRY
    result = GET "https://api.example.com/health"
    IF result.status <> "healthy" THEN
        THROW "Service unhealthy: " + result.message
    END IF
CATCH
    SEND MAIL TO "ops@company.com" SUBJECT "Alert: Service Down" BODY ERROR_MESSAGE
    POST "https://hooks.slack.com/services/xxx", #{text: "Service alert: " + ERROR_MESSAGE}
END TRY

Exporting n8n Workflows

Export Process

  1. In n8n, select the workflow
  2. Click the three-dot menu → Download
  3. Save the JSON file
  4. Analyze nodes and connections
  5. Translate to BASIC script

JSON Structure Analysis

n8n exports workflows as JSON:

{
  "nodes": [
    {"type": "n8n-nodes-base.httpRequest", "parameters": {...}},
    {"type": "n8n-nodes-base.if", "parameters": {...}}
  ],
  "connections": {...}
}

Map each node type to the equivalent BASIC keyword.

Feature Comparison

What You Gain

Native AI integration:

USE KB "company-docs"
response = LLM "Analyze this data and provide insights: " + data

Multi-channel chat:

TALK "How can I help you?"
HEAR question
answer = LLM question
TALK answer

Built-in productivity:

CREATE TASK "Follow up with " + customer_name DUE DATEADD(NOW(), 3, "day")
BOOK "Meeting with " + customer_name AT meeting_time
SEND MAIL TO customer_email SUBJECT "Confirmation" BODY message

Knowledge base:

USE KB "product-docs"
USE KB "pricing-info"
answer = LLM customer_question

What Changes

n8n ApproachGeneral Bots Approach
Visual drag-and-dropText-based BASIC scripts
Node connectionsSequential code flow
Credentials UIconfig.csv settings
Execution history UILog files + monitoring
Community nodesHTTP keywords + custom code

Credentials Migration

n8n Credentials

n8n stores credentials separately. Export and configure in General Bots:

config.csv:

key,value
slack-webhook-url,https://hooks.slack.com/services/xxx
api-key-clearbit,your-api-key
salesforce-token,your-token

Usage in BASIC:

slack_url = GET CONFIG "slack-webhook-url"
POST slack_url, #{text: "Message"}

Migration Checklist

Pre-Migration

  • Export all n8n workflows as JSON
  • Document active schedules and triggers
  • List all credentials and API keys
  • Identify critical workflows for priority migration
  • Set up General Bots environment

Migration

  • Translate workflows to BASIC scripts
  • Configure credentials in config.csv
  • Set up webhooks with same endpoints
  • Configure schedules
  • Test each workflow individually

Post-Migration

  • Run parallel execution for verification
  • Compare outputs between systems
  • Monitor for errors
  • Decommission n8n workflows
  • Document new BASIC scripts

Common Patterns

Batch Processing

n8n: Split In Batches node

General Bots:

items = GET "https://api.example.com/items"
batch_size = 10
total = LEN(items)

FOR i = 0 TO total - 1 STEP batch_size
    batch = SLICE(items, i, i + batch_size)
    FOR EACH item IN batch
        PROCESS_ITEM(item)
    NEXT item
    WAIT 1000  ' Rate limiting
NEXT i

Conditional Branching

n8n: IF node with multiple branches

General Bots:

SWITCH status
    CASE "new"
        HANDLE_NEW()
    CASE "pending"
        HANDLE_PENDING()
    CASE "complete"
        HANDLE_COMPLETE()
    DEFAULT
        HANDLE_UNKNOWN()
END SWITCH

Data Transformation

n8n: Set node or Code node

General Bots:

' Transform data
WITH transformed
    .full_name = data.first_name + " " + data.last_name
    .email = LOWER(data.email)
    .created = NOW()
    .source = "api"
END WITH

Best Practices

Start with simple workflows. Migrate straightforward automations first to build familiarity with BASIC syntax.

Use descriptive variable names. BASIC scripts are more readable than node graphs when well-written.

Add comments. Document your scripts for future maintenance:

' Daily sales report - sends summary to management
' Runs at 6 PM on weekdays
SET SCHEDULE "0 18 * * 1-5"

Leverage native features. Don’t just replicate n8n workflows—take advantage of General Bots’ integrated AI, chat, and productivity features.

Test incrementally. Verify each migrated workflow before moving to the next.

See Also