AutomationFlowsSlack & Telegram › Proxmox Vm Lifecycle Automation

Proxmox Vm Lifecycle Automation

Proxmox VM Lifecycle Automation. Uses telegram, httpRequest. Webhook trigger; 9 nodes.

Webhook trigger★★★☆☆ complexity9 nodesTelegramHTTP Request
Slack & Telegram Trigger: Webhook Nodes: 9 Complexity: ★★★☆☆ Added:

This workflow follows the HTTP Request → Telegram recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "Proxmox VM Lifecycle Automation",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "vm-lifecycle",
        "responseMode": "responseNode",
        "options": {}
      },
      "id": "webhook-vm-lifecycle",
      "name": "VM Lifecycle Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        240,
        300
      ]
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json.data.event_type}}",
              "operation": "equal",
              "value2": "created"
            }
          ]
        }
      },
      "id": "if-vm-created",
      "name": "VM Created?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        460,
        300
      ]
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json.data.event_type}}",
              "operation": "equal",
              "value2": "started"
            }
          ]
        }
      },
      "id": "if-vm-started",
      "name": "VM Started?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        460,
        500
      ]
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json.data.event_type}}",
              "operation": "equal",
              "value2": "stopped"
            }
          ]
        }
      },
      "id": "if-vm-stopped",
      "name": "VM Stopped?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        460,
        700
      ]
    },
    {
      "parameters": {
        "message": "\ud83d\ude80 New VM Created!\n\nVM ID: {{$json.data.vm.vmid}}\nName: {{$json.data.vm.name}}\nNode: {{$json.data.vm.node}}\nStatus: {{$json.data.vm.status}}\n\nTime: {{$json.timestamp}}",
        "chatId": "@proxmox_alerts"
      },
      "id": "telegram-vm-created",
      "name": "Notify VM Created",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1,
      "position": [
        680,
        200
      ]
    },
    {
      "parameters": {
        "message": "\u2705 VM Started Successfully!\n\nVM ID: {{$json.data.vm.vmid}}\nName: {{$json.data.vm.name}}\nNode: {{$json.data.vm.node}}\n\nTime: {{$json.timestamp}}",
        "chatId": "@proxmox_alerts"
      },
      "id": "telegram-vm-started",
      "name": "Notify VM Started",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1,
      "position": [
        680,
        400
      ]
    },
    {
      "parameters": {
        "message": "\u26a0\ufe0f VM Stopped!\n\nVM ID: {{$json.data.vm.vmid}}\nName: {{$json.data.vm.name}}\nNode: {{$json.data.vm.node}}\n\nTime: {{$json.timestamp}}\n\nPlease check if this was planned.",
        "chatId": "@proxmox_alerts"
      },
      "id": "telegram-vm-stopped",
      "name": "Notify VM Stopped",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1,
      "position": [
        680,
        600
      ]
    },
    {
      "parameters": {
        "url": "http://proxmox-mcp-server:8080/api/v1/vms/{{$json.data.vm.vmid}}/monitor",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "httpHeaderAuth": {
          "name": "Authorization",
          "value": "Bearer {{$credentials.proxmox_api_token}}"
        },
        "options": {}
      },
      "id": "start-monitoring",
      "name": "Start VM Monitoring",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 3,
      "position": [
        680,
        800
      ]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "{\n  \"status\": \"processed\",\n  \"event_type\": \"{{$json.data.event_type}}\",\n  \"vm_id\": \"{{$json.data.vm.vmid}}\",\n  \"timestamp\": \"{{$json.timestamp}}\"\n}"
      },
      "id": "webhook-response",
      "name": "Webhook Response",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1,
      "position": [
        900,
        300
      ]
    }
  ],
  "connections": {
    "VM Lifecycle Webhook": {
      "main": [
        [
          {
            "node": "VM Created?",
            "type": "main",
            "index": 0
          },
          {
            "node": "VM Started?",
            "type": "main",
            "index": 0
          },
          {
            "node": "VM Stopped?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "VM Created?": {
      "main": [
        [
          {
            "node": "Notify VM Created",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "VM Started?": {
      "main": [
        [
          {
            "node": "Notify VM Started",
            "type": "main",
            "index": 0
          },
          {
            "node": "Start VM Monitoring",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "VM Stopped?": {
      "main": [
        [
          {
            "node": "Notify VM Stopped",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notify VM Created": {
      "main": [
        [
          {
            "node": "Webhook Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notify VM Started": {
      "main": [
        [
          {
            "node": "Webhook Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notify VM Stopped": {
      "main": [
        [
          {
            "node": "Webhook Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Start VM Monitoring": {
      "main": [
        [
          {
            "node": "Webhook Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {},
  "versionId": "1",
  "id": "vm-lifecycle-automation",
  "tags": [
    "proxmox",
    "vm",
    "lifecycle",
    "automation"
  ]
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Proxmox VM Lifecycle Automation. Uses telegram, httpRequest. Webhook trigger; 9 nodes.

Source: https://github.com/adrianlizman/proxmox-mcp-server-v2/blob/Main/workflows/vm-lifecycle-automation.json — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Slack & Telegram

01_order_processing_tilda. Uses stickyNote, googleSheets, httpRequest, telegram. Webhook trigger; 25 nodes.

Google Sheets, HTTP Request, Telegram
Slack & Telegram

This workflow is an AI-powered style look transfer and quality control pipeline designed for VFX and editorial production. It transforms a new shot brief and a hero reference image into multiple style

HTTP Request, Slack, Gmail +3
Slack & Telegram

AIPA - BMF Work Logging. Uses telegram, telegramTrigger, supabase, httpRequest. Webhook trigger; 19 nodes.

Telegram, Telegram Trigger, Supabase +1
Slack & Telegram

Proxmox Maintenance Automation. Uses telegram, httpRequest. Webhook trigger; 19 nodes.

Telegram, HTTP Request
Slack & Telegram

Rodopi Dent - Public Booking (Calendar). Uses googleCalendar, telegram, httpRequest. Webhook trigger; 17 nodes.

Google Calendar, Telegram, HTTP Request