A production-ready Next.js application that converts n8n workflows to Lamatic format with intelligent node mapping, dependency analysis, and automated conversion.
- File Upload: Drag & drop n8n JSON files for instant conversion
- Intelligent Node Mapping: Deterministic mapping of 40+ n8n node types to Lamatic equivalents
- Dependency Analysis: Converts n8n connections to Lamatic dependency structure
- Real-time Progress: Live migration progress with detailed step tracking
- Migration Reports: Comprehensive analytics and conversion statistics
- Error Handling: Graceful error handling with detailed warnings and error messages
- ✅ Webhook Trigger (
n8n-nodes-base.webhook) - ✅ Manual Trigger (
n8n-nodes-base.manualTrigger) - ✅ Schedule Trigger (
n8n-nodes-base.scheduleTrigger) - ✅ Chat Trigger (
@n8n/n8n-nodes-langchain.chatTrigger)
- ✅ Google Gemini Chat Model (
@n8n/n8n-nodes-langchain.lmChatGoogleGemini) - ✅ OpenAI Chat Model (
@n8n/n8n-nodes-langchain.lmChatOpenAi) - ✅ Groq Chat Model (
@n8n/n8n-nodes-langchain.lmChatGroq) - ✅ Window Buffer Memory (
@n8n/n8n-nodes-langchain.memoryBufferWindow) - ✅ Memory Manager (
@n8n/n8n-nodes-langchain.memoryManager) - ✅ LangChain Agent (
@n8n/n8n-nodes-langchain.agent)
- ✅ PostgreSQL Tool (
n8n-nodes-base.postgresTool) - ✅ Supabase (
n8n-nodes-base.supabase) - ✅ Airtable (
n8n-nodes-base.airtable)
- ✅ Slack (
n8n-nodes-base.slack) - ✅ Gmail (
n8n-nodes-base.gmail) - ✅ Google Sheets (
n8n-nodes-base.googleSheets) - ✅ Google Drive (
n8n-nodes-base.googleDrive) - ✅ Microsoft Teams (
n8n-nodes-base.microsoftTeams) - ✅ Notion (
n8n-nodes-base.notion) - ✅ HTTP Request (
n8n-nodes-base.httpRequest) - ✅ Code Node (
n8n-nodes-base.code) - ✅ Wikipedia Tool (
@n8n/n8n-nodes-langchain.toolWikipedia)
- ✅ If Node (
n8n-nodes-base.if) - ✅ Switch Node (
n8n-nodes-base.switch) - ✅ Filter Node (
n8n-nodes-base.filter)
- ✅ Set Data (
n8n-nodes-base.set) - ✅ Merge (
n8n-nodes-base.merge) - ✅ Aggregate (
n8n-nodes-base.aggregate) - ✅ Limit (
n8n-nodes-base.limit) - ✅ Execution Data (
n8n-nodes-base.executionData)
- ✅ Execute Workflow (
n8n-nodes-base.executeWorkflow) - ✅ Execute Workflow Trigger (
n8n-nodes-base.executeWorkflowTrigger) - ✅ Form Trigger (
n8n-nodes-base.formTrigger)
- ✅ Read/Write File (
n8n-nodes-base.readWriteFile) - ✅ Compression (
n8n-nodes-base.compression) - ✅ Edit Image (
n8n-nodes-base.editImage)
n8n-migration/
├── app/ # Next.js application routes
│ ├── api/ # API endpoints
│ │ └── migrate/ # Migration API endpoint
│ ├── layout.tsx # Root layout
│ └── page.tsx # Main application page
├── components/ # React components
│ ├── theme-provider.tsx # Theme context provider
│ └── theme-toggle.tsx # Theme toggle component
├── lib/ # Core library code
│ ├── migration/ # Migration engine
│ │ ├── parser.ts # n8n workflow parser
│ │ ├── mapper.ts # Node type mapper
│ │ ├── dependencies.ts # Dependency builder
│ │ ├── generator.ts # Lamatic workflow generator
│ │ ├── types.ts # TypeScript type definitions
│ │ ├── schemas.ts # Lamatic node schemas
│ │ └── schemaValidator.ts # Schema validation
│ └── lamatic-client.ts # Lamatic API client
├── actions/ # Server actions
│ └── orchestrate.ts # Main migration orchestration
├── package.json # Dependencies and scripts
├── next.config.mjs # Next.js configuration
├── tsconfig.json # TypeScript configuration
└── tailwind.config.js # Tailwind CSS configuration
Extracts and validates n8n workflow structure from JSON. Handles node normalization, connection parsing, and workflow validation.
Converts n8n node types to Lamatic equivalents with parameter and credential mappings. Supports 40+ node types with intelligent parameter transformation.
Builds workflow dependency structure from n8n connections. Handles special AI connection types (ai_tool, ai_memory, ai_languageModel) and calculates execution order.
Creates final Lamatic workflow JSON with proper structure, connections, and metadata. Validates node references and formats output.
Main migration pipeline that coordinates parsing, mapping, dependency building, and generation. Handles error recovery and progress tracking.
- Node.js 18+
- npm or yarn
# Install dependencies
npm install
# Start development server
npm run dev
# Open in browser
# http://localhost:3000-
Upload n8n Workflow
- Drag & drop your n8n JSON file
- Or click to browse and select a file
-
Processing
- Watch real-time progress as the file is processed
- See detailed migration steps and status
-
Results
- Review the migration report with node-by-node details
- Check for any warnings or errors
- Download the converted Lamatic workflow
Create a .env.local file:
# Lamatic API Configuration (optional)
LAMATIC_API_KEY=your_lamatic_api_key
LAMATIC_ENDPOINT=https://api.lamatic.ai
LAMATIC_PROJECT_ID=migration-tool
# Migration Settings
MAX_FILE_SIZE=10485760 # 10MB in bytes
NODE_ENV=development-
Get Lamatic Credentials
- Sign up at lamatic.ai
- Create a project
- Generate API key
-
Configure Settings
- Add your API key to
.env.local - Test the connection
- Add your API key to
-
Push to GitHub
git add . git commit -m "Ready for deployment" git push origin main
-
Import to Vercel
- Go to vercel.com
- Sign in with GitHub
- Click "Add New Project"
- Import your repository
-
Configure Environment Variables
- Add all variables from
env.example - Set
NODE_ENV=production - Add your
LAMATIC_API_KEY(if using)
- Add all variables from
-
Deploy
- Click "Deploy"
- Your app will be live in minutes
# Install Vercel CLI
npm i -g vercel
# Deploy
vercel
# Set environment variables
vercel env add LAMATIC_API_KEY
vercel env add LAMATIC_ENDPOINT
# Deploy to production
vercel --prodThis is a standard Next.js application and can be deployed to:
- Vercel (Recommended) - Zero-config deployment
- Netlify - Similar to Vercel
- AWS Amplify - AWS hosting
- Railway - Simple container deployment
- Docker - Container-based deployment
-
Update mapping engine (
lib/migration/mapper.ts)this.addMapping({ n8nType: 'n8n-nodes-base.newNode', lamaticType: 'lamatic_equivalent', isSupported: true, parameterMappings: [ { n8nParameter: 'param1', lamaticParameter: 'param1', required: true } ], credentialMappings: [ { n8nCredential: 'cred1', lamaticCredential: 'cred1', requiresReauth: true } ], notes: 'Description of the mapping' });
-
Add node creation logic in
createLamaticNode()method -
Update schemas (
lib/migration/schemas.ts) if needed -
Test with your own n8n workflow
The migration system follows a modular pipeline:
File Upload → Parser → Mapper → Dependency Builder → Generator → Output
Each component is independently testable and handles specific responsibilities:
- Parser: Validates and normalizes n8n structure
- Mapper: Converts node types and parameters
- Dependency Builder: Resolves connections and execution order
- Generator: Creates final Lamatic JSON structure
-
"Invalid n8n workflow"
- Ensure file is valid JSON
- Check n8n workflow structure
- Verify file isn't corrupted
-
"File size exceeds limit"
- Reduce file size (max 10MB)
- Remove unnecessary nodes
- Compress the JSON file
-
"Migration failed"
- Check migration report for details
- Verify n8n workflow is valid
- Try with simpler workflow first
-
"No trigger node found"
- Ensure workflow contains a valid trigger node
- Supported triggers: webhook, manual, schedule, chatTrigger
Enable debug logging:
NODE_ENV=development npm run devCheck browser console for detailed error messages.
import { processMigration } from '@/actions/orchestrate';
const result = await processMigration(file);
// Returns: MigrationResult with success status, nodes, and workflow// Parse n8n workflow
import { N8nParser } from '@/lib/migration/parser';
const parser = new N8nParser();
const workflow = parser.parseWorkflow(jsonContent);
// Map nodes to Lamatic
import { NodeMapper } from '@/lib/migration/mapper';
const mapper = new NodeMapper();
const result = mapper.mapNode(n8nNode, nodeId);
// Build dependencies
import { DependencyBuilder } from '@/lib/migration/dependencies';
const builder = new DependencyBuilder();
const deps = builder.buildDependencies(workflow, nodes);
// Generate Lamatic workflow
import { LamaticOutputGenerator } from '@/lib/migration/generator';
const generator = new LamaticOutputGenerator();
const lamaticWorkflow = generator.generateWorkflow(nodes, workflow, metadata, connections);This project is licensed under the MIT License.
-
Check Documentation
- Code comments and type definitions
- Component documentation
-
Test Your Workflow
- Upload your own n8n workflow JSON file
- Verify the migration works correctly
Happy Migrating! 🚀