Skip to main content
Glama
aegntic

Obsidian Elite RAG MCP Server

transactional-updates-example.md3.32 kB
# Transactional Updates Example This example demonstrates the new transactional update capabilities in v2.7.0. ## Before (v2.6.x and earlier) Previously, you had to carefully order operations to ensure nodes existed before connecting them: ```json { "id": "workflow-123", "operations": [ // 1. First add all nodes { "type": "addNode", "node": { "name": "Process", "type": "n8n-nodes-base.set", ... }}, { "type": "addNode", "node": { "name": "Notify", "type": "n8n-nodes-base.slack", ... }}, // 2. Then add connections (would fail if done before nodes) { "type": "addConnection", "source": "Webhook", "target": "Process" }, { "type": "addConnection", "source": "Process", "target": "Notify" } ] } ``` ## After (v2.7.0+) Now you can write operations in any order - the engine automatically handles dependencies: ```json { "id": "workflow-123", "operations": [ // Connections can come first! { "type": "addConnection", "source": "Webhook", "target": "Process" }, { "type": "addConnection", "source": "Process", "target": "Notify" }, // Nodes added later - still works! { "type": "addNode", "node": { "name": "Process", "type": "n8n-nodes-base.set", "position": [400, 300] }}, { "type": "addNode", "node": { "name": "Notify", "type": "n8n-nodes-base.slack", "position": [600, 300] }} ] } ``` ## How It Works 1. **Two-Pass Processing**: - Pass 1: All node operations (add, remove, update, move, enable, disable) - Pass 2: All other operations (connections, settings, metadata) 2. **Operation Limit**: Maximum 5 operations per request keeps complexity manageable 3. **Atomic Updates**: All operations succeed or all fail - no partial updates ## Benefits for AI Agents - **Intuitive**: Write operations in the order that makes sense logically - **Reliable**: No need to track dependencies manually - **Simple**: Focus on what to change, not how to order changes - **Safe**: Built-in limits prevent overly complex operations ## Complete Example Here's a real-world example of adding error handling to a workflow: ```json { "id": "workflow-123", "operations": [ // Define the flow first (makes logical sense) { "type": "removeConnection", "source": "HTTP Request", "target": "Save to DB" }, { "type": "addConnection", "source": "HTTP Request", "target": "Error Handler" }, { "type": "addConnection", "source": "Error Handler", "target": "Send Alert" }, // Then add the nodes { "type": "addNode", "node": { "name": "Error Handler", "type": "n8n-nodes-base.if", "position": [500, 400], "parameters": { "conditions": { "boolean": [{ "value1": "={{$json.error}}", "value2": true }] } } } }, { "type": "addNode", "node": { "name": "Send Alert", "type": "n8n-nodes-base.emailSend", "position": [700, 400], "parameters": { "to": "alerts@company.com", "subject": "Workflow Error Alert" } } } ] } ``` All operations will be processed correctly, even though connections reference nodes that don't exist yet!

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aegntic/aegntic-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server