n8n Migration Guide
Migrating workflows and automations from n8n to 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
| Aspect | n8n | General Bots |
|---|---|---|
| Automation | Visual workflows | BASIC scripts (more powerful) |
| Pricing | Per-execution limits | Unlimited executions |
| AI Integration | Via API nodes | Native LLM keywords |
| Chat/Bot | Not included | Full multi-channel |
| Productivity Suite | Not included | Email, calendar, files, tasks |
| Knowledge Base | Not included | Built-in RAG |
| Self-hosting | Available | Available |
Workflow Mapping
Triggers
| n8n Trigger | General Bots Equivalent |
|---|---|
| Schedule Trigger | SET SCHEDULE |
| Webhook | WEBHOOK |
| Email Trigger (IMAP) | ON "email:received" |
| Database Trigger | ON "table:tablename:insert" |
| Manual Trigger | Direct script execution |
| Cron | SET SCHEDULE "cron expression" |
Common Nodes
| n8n Node | General Bots Equivalent |
|---|---|
| HTTP Request | GET, POST, PUT, DELETE |
| Set | Variable assignment |
| IF | IF/THEN/ELSE/END IF |
| Switch | SWITCH/CASE/END SWITCH |
| Code (JavaScript) | BASIC script |
| Function | BASIC subroutines |
| Merge | Array operations |
| Split In Batches | FOR EACH |
| Wait | WAIT |
| Send Email | SEND MAIL |
| Slack | POST to Slack webhook |
| Discord | POST to Discord webhook |
| Google Sheets | GET/POST to Sheets API |
| Airtable | GET/POST to Airtable API |
| MySQL/PostgreSQL | FIND, INSERT, UPDATE, DELETE |
| MongoDB | GET/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
- In n8n, select the workflow
- Click the three-dot menu → Download
- Save the JSON file
- Analyze nodes and connections
- 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 Approach | General Bots Approach |
|---|---|
| Visual drag-and-drop | Text-based BASIC scripts |
| Node connections | Sequential code flow |
| Credentials UI | config.csv settings |
| Execution history UI | Log files + monitoring |
| Community nodes | HTTP 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
- SET SCHEDULE - Scheduling reference
- WEBHOOK - Webhook creation
- HTTP Keywords - API integration
- Platform Comparison - Full feature comparison