# ohmymint/n8n architecture

> Architecture diagram of the GitHub repository ohmymint/n8n, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ohmymint/n8n
- Repository: https://github.com/ohmymint/n8n

## Overview

n8n is a self-hostable workflow-automation platform: users configure workflows in the editor, combining integrations and code, then run automations. Its repository also includes AI workflow-building and node-discovery capabilities, workflow package import, and binary-data storage. The graph combines README-level product capabilities with relationships visible in sampled source and the SOURCE INDEX; several runtime connections are not shown, so they are omitted or marked unverified.

Main entry points: [`packages/frontend/editor-ui/src/features/ai/assistant/composables/useReviewChanges.ts`](https://github.com/ohmymint/n8n/blob/master/packages/frontend/editor-ui/src/features/ai/assistant/composables/useReviewChanges.ts) (Visual editor), [`packages/cli/src/modules/n8n-packages/engine/import-pipeline.ts`](https://github.com/ohmymint/n8n/blob/master/packages/cli/src/modules/n8n-packages/engine/import-pipeline.ts) (Workflow package import), [`packages/core/src/execution-engine/execution-context.service.ts`](https://github.com/ohmymint/n8n/blob/master/packages/core/src/execution-engine/execution-context.service.ts) (Workflow execution), [`packages/@n8n/ai-workflow-builder.ee/src/agents/planner.agent.ts`](https://github.com/ohmymint/n8n/blob/master/packages/%40n8n/ai-workflow-builder.ee/src/agents/planner.agent.ts) (Workflow builder agents)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_authoring["Workflow authoring"]
  node_editor["Visual editor"]
  node_webhook_ui["Webhook URL display<br/>[useWebhookUrls.ts]"]
end

subgraph group_runtime["Execution and integrations"]
  node_execution["Workflow execution"]
  node_integration_nodes["Integration nodes"]
  node_azure_node["Azure integration"]
end

subgraph group_ai["AI capabilities"]
  node_node_catalog["Node catalog search<br/>[search-engine.ts]"]
  node_lean_node_types["Lean node types<br/>[lean-node-type.ts]"]
  node_builder_search["Builder node search"]
  node_instance_search["Instance AI search"]
  node_builder_agent["Workflow builder agents<br/>[planner.agent.ts]"]
  node_workflow_loop["Workflow loop state"]
end

subgraph group_management["Workflow management"]
  node_workflow_api["Workflow API"]
  node_package_import["Workflow package import<br/>[import-pipeline.ts]"]
  node_package_reader["Package reader"]
  node_workflow_serializer["Workflow serializer"]
  node_credential_importer["Credential importer"]
end

subgraph group_storage["State and storage"]
  node_binary_storage[("Binary file storage")]
  node_db_snapshot[("AI run snapshots")]
  node_session_storage[("Builder session storage<br/>[session-storage.ts]")]
  node_workflow_list_prefs[("Editor preferences")]
end

node_user(("Workflow author"))
node_google_storage_service{{"Google Cloud Storage"}}
node_azure_storage_service{{"Azure Storage"}}

node_user -->|"authors workflows"| node_editor
node_editor -.->|"submits workflows"| node_workflow_api
node_editor -->|"shows webhook URLs"| node_webhook_ui
node_webhook_ui -->|"reads node metadata"| node_editor
node_workflow_api -.->|"starts execution"| node_execution
node_execution -.->|"dispatches nodes"| node_integration_nodes
node_integration_nodes -->|"calls API"| node_google_storage_service
node_azure_node -->|"calls API"| node_azure_storage_service
node_user -.->|"requests workflow"| node_builder_agent
node_builder_search -.->|"searches nodes"| node_node_catalog
node_node_catalog -->|"converts node types"| node_lean_node_types
node_builder_agent -.->|"discovers nodes"| node_builder_search
node_instance_search -.->|"supports workflow changes"| node_workflow_loop
node_package_import -->|"reads package"| node_package_reader
node_package_import -->|"uses serializer"| node_workflow_serializer
node_package_import -->|"imports credentials"| node_credential_importer
node_editor -.->|"saves preferences"| node_workflow_list_prefs
node_execution -.->|"stores binary data"| node_binary_storage
node_workflow_loop -.->|"persists run state"| node_db_snapshot
node_builder_agent -.->|"stores sessions"| node_session_storage

click node_editor "https://github.com/ohmymint/n8n/blob/master/packages/frontend/editor-ui/src/features/ai/assistant/composables/useReviewChanges.ts"
click node_webhook_ui "https://github.com/ohmymint/n8n/blob/master/packages/frontend/editor-ui/src/features/setupPanel/composables/useWebhookUrls.ts"
click node_workflow_api "https://github.com/ohmymint/n8n/blob/master/packages/cli/src/workflows/workflows.controller.ts"
click node_execution "https://github.com/ohmymint/n8n/blob/master/packages/core/src/execution-engine/execution-context.service.ts"
click node_integration_nodes "https://github.com/ohmymint/n8n/blob/master/packages/nodes-base/nodes/Google/CloudStorage/GoogleCloudStorage.node.ts"
click node_azure_node "https://github.com/ohmymint/n8n/blob/master/packages/nodes-base/nodes/Microsoft/Storage/AzureStorage.node.ts"
click node_node_catalog "https://github.com/ohmymint/n8n/blob/master/packages/%40n8n/ai-utilities/src/node-catalog/search-engine.ts"
click node_lean_node_types "https://github.com/ohmymint/n8n/blob/master/packages/%40n8n/ai-utilities/src/node-catalog/lean-node-type.ts"
click node_builder_search "https://github.com/ohmymint/n8n/blob/master/packages/%40n8n/ai-workflow-builder.ee/src/tools/engines/node-search-engine.ts"
click node_instance_search "https://github.com/ohmymint/n8n/blob/master/packages/%40n8n/instance-ai/src/tools/nodes/node-search-engine.ts"
click node_builder_agent "https://github.com/ohmymint/n8n/blob/master/packages/%40n8n/ai-workflow-builder.ee/src/agents/planner.agent.ts"
click node_workflow_loop "https://github.com/ohmymint/n8n/blob/master/packages/%40n8n/instance-ai/src/workflow-loop/workflow-loop-state.ts"
click node_package_import "https://github.com/ohmymint/n8n/blob/master/packages/cli/src/modules/n8n-packages/engine/import-pipeline.ts"
click node_package_reader "https://github.com/ohmymint/n8n/blob/master/packages/cli/src/modules/n8n-packages/io/tar/tar-package-reader.ts"
click node_workflow_serializer "https://github.com/ohmymint/n8n/blob/master/packages/cli/src/modules/n8n-packages/entities/workflow/workflow.serializer.ts"
click node_credential_importer "https://github.com/ohmymint/n8n/blob/master/packages/cli/src/modules/n8n-packages/entities/credential/credential-importer.ts"
click node_binary_storage "https://github.com/ohmymint/n8n/blob/master/packages/core/src/binary-data/file-system.manager.ts"
click node_db_snapshot "https://github.com/ohmymint/n8n/blob/master/packages/cli/src/modules/instance-ai/storage/db-snapshot-storage.ts"
click node_session_storage "https://github.com/ohmymint/n8n/blob/master/packages/%40n8n/ai-workflow-builder.ee/src/types/session-storage.ts"
click node_workflow_list_prefs "https://github.com/ohmymint/n8n/blob/master/packages/frontend/editor-ui/src/app/composables/useN8nLocalStorage.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_editor,node_webhook_ui toneBlue
class node_execution,node_integration_nodes,node_azure_node,node_google_storage_service,node_azure_storage_service toneAmber
class node_node_catalog,node_lean_node_types,node_builder_search,node_instance_search,node_builder_agent,node_workflow_loop toneMint
class node_workflow_api,node_package_import,node_package_reader,node_workflow_serializer,node_credential_importer toneRose
class node_binary_storage,node_db_snapshot,node_session_storage,node_workflow_list_prefs,node_user toneIndigo
```

## Components

### Workflow authoring

- [Visual editor](https://github.com/ohmymint/n8n/blob/master/packages/frontend/editor-ui/src/features/ai/assistant/composables/useReviewChanges.ts): `packages/frontend/editor-ui/src/features/ai/assistant/composables/useReviewChanges.ts`
- [Webhook URL display](https://github.com/ohmymint/n8n/blob/master/packages/frontend/editor-ui/src/features/setupPanel/composables/useWebhookUrls.ts): `packages/frontend/editor-ui/src/features/setupPanel/composables/useWebhookUrls.ts`

### Execution and integrations

- [Workflow execution](https://github.com/ohmymint/n8n/blob/master/packages/core/src/execution-engine/execution-context.service.ts): `packages/core/src/execution-engine/execution-context.service.ts`
- [Integration nodes](https://github.com/ohmymint/n8n/blob/master/packages/nodes-base/nodes/Google/CloudStorage/GoogleCloudStorage.node.ts): `packages/nodes-base/nodes/Google/CloudStorage/GoogleCloudStorage.node.ts`
- [Azure integration](https://github.com/ohmymint/n8n/blob/master/packages/nodes-base/nodes/Microsoft/Storage/AzureStorage.node.ts): `packages/nodes-base/nodes/Microsoft/Storage/AzureStorage.node.ts`

### AI capabilities

- [Node catalog search](https://github.com/ohmymint/n8n/blob/master/packages/%40n8n/ai-utilities/src/node-catalog/search-engine.ts): `packages/@n8n/ai-utilities/src/node-catalog/search-engine.ts`
- [Lean node types](https://github.com/ohmymint/n8n/blob/master/packages/%40n8n/ai-utilities/src/node-catalog/lean-node-type.ts): `packages/@n8n/ai-utilities/src/node-catalog/lean-node-type.ts`
- [Builder node search](https://github.com/ohmymint/n8n/blob/master/packages/%40n8n/ai-workflow-builder.ee/src/tools/engines/node-search-engine.ts): `packages/@n8n/ai-workflow-builder.ee/src/tools/engines/node-search-engine.ts`
- [Instance AI search](https://github.com/ohmymint/n8n/blob/master/packages/%40n8n/instance-ai/src/tools/nodes/node-search-engine.ts): `packages/@n8n/instance-ai/src/tools/nodes/node-search-engine.ts`
- [Workflow builder agents](https://github.com/ohmymint/n8n/blob/master/packages/%40n8n/ai-workflow-builder.ee/src/agents/planner.agent.ts): `packages/@n8n/ai-workflow-builder.ee/src/agents/planner.agent.ts`
- [Workflow loop state](https://github.com/ohmymint/n8n/blob/master/packages/%40n8n/instance-ai/src/workflow-loop/workflow-loop-state.ts): `packages/@n8n/instance-ai/src/workflow-loop/workflow-loop-state.ts`

### Workflow management

- [Workflow API](https://github.com/ohmymint/n8n/blob/master/packages/cli/src/workflows/workflows.controller.ts): `packages/cli/src/workflows/workflows.controller.ts`
- [Workflow package import](https://github.com/ohmymint/n8n/blob/master/packages/cli/src/modules/n8n-packages/engine/import-pipeline.ts): `packages/cli/src/modules/n8n-packages/engine/import-pipeline.ts`
- [Package reader](https://github.com/ohmymint/n8n/blob/master/packages/cli/src/modules/n8n-packages/io/tar/tar-package-reader.ts): `packages/cli/src/modules/n8n-packages/io/tar/tar-package-reader.ts`
- [Workflow serializer](https://github.com/ohmymint/n8n/blob/master/packages/cli/src/modules/n8n-packages/entities/workflow/workflow.serializer.ts): `packages/cli/src/modules/n8n-packages/entities/workflow/workflow.serializer.ts`
- [Credential importer](https://github.com/ohmymint/n8n/blob/master/packages/cli/src/modules/n8n-packages/entities/credential/credential-importer.ts): `packages/cli/src/modules/n8n-packages/entities/credential/credential-importer.ts`

### State and storage

- [Binary file storage](https://github.com/ohmymint/n8n/blob/master/packages/core/src/binary-data/file-system.manager.ts): `packages/core/src/binary-data/file-system.manager.ts`
- [AI run snapshots](https://github.com/ohmymint/n8n/blob/master/packages/cli/src/modules/instance-ai/storage/db-snapshot-storage.ts): `packages/cli/src/modules/instance-ai/storage/db-snapshot-storage.ts`
- [Builder session storage](https://github.com/ohmymint/n8n/blob/master/packages/%40n8n/ai-workflow-builder.ee/src/types/session-storage.ts): `packages/@n8n/ai-workflow-builder.ee/src/types/session-storage.ts`
- [Editor preferences](https://github.com/ohmymint/n8n/blob/master/packages/frontend/editor-ui/src/app/composables/useN8nLocalStorage.ts): `packages/frontend/editor-ui/src/app/composables/useN8nLocalStorage.ts`

### Other components

- **Workflow author**
- **Google Cloud Storage**
- **Azure Storage**

## Connections

- Workflow author → Visual editor: authors workflows (evidence: `README.md`)
- Visual editor → Workflow API: submits workflows
- Visual editor → Webhook URL display: shows webhook URLs (evidence: `packages/frontend/editor-ui/src/features/setupPanel/composables/useWebhookUrls.ts`)
- Webhook URL display → Visual editor: reads node metadata (evidence: `packages/frontend/editor-ui/src/features/setupPanel/composables/useWebhookUrls.ts`)
- Workflow API → Workflow execution: starts execution
- Workflow execution → Integration nodes: dispatches nodes
- Integration nodes → Google Cloud Storage: calls API (evidence: `packages/nodes-base/nodes/Google/CloudStorage/GoogleCloudStorage.node.ts`)
- Azure integration → Azure Storage: calls API (evidence: `packages/nodes-base/nodes/Microsoft/Storage/AzureStorage.node.ts`)
- Workflow author → Workflow builder agents: requests workflow
- Builder node search → Node catalog search: searches nodes
- Node catalog search → Lean node types: converts node types (evidence: `packages/@n8n/ai-utilities/src/node-catalog/search-engine.ts`)
- Workflow builder agents → Builder node search: discovers nodes
- Instance AI search → Workflow loop state: supports workflow changes
- Workflow package import → Package reader: reads package (evidence: `packages/cli/src/modules/n8n-packages/engine/import-pipeline.ts`)
- Workflow package import → Workflow serializer: uses serializer (evidence: `packages/cli/src/modules/n8n-packages/engine/import-pipeline.ts`)
- Workflow package import → Credential importer: imports credentials (evidence: `packages/cli/src/modules/n8n-packages/engine/import-pipeline.ts`)
- Visual editor → Editor preferences: saves preferences
- Workflow execution → Binary file storage: stores binary data
- Workflow loop state → AI run snapshots: persists run state
- Workflow builder agents → Builder session storage: stores sessions
