Workflow: develop a modular n8n workflow that supports Splitout Executecommand Automate Scheduled
Integrations: executeCommand, manualTrigger, n8nTrigger, scheduleTrigger, set, splitOut

{"meta": {"instanceId": "2039b9ae6bdd2cfe7f6a132b7dee66390e92afbc2ec29f67cafa1edf6cad8d55"}, "nodes": [{"id": "cc07b2ca-27f2-4a0e-92f7-2d0fbc63ab04", "name": "libraries_set", "type": "n8n-nodes-base.set", "position": [-520, 260], "parameters": {"options": {"ignoreConversionErrors": false}, "assignments": {"assignments": [{"id": "ab1fe8b7-6706-4f59-bc39-1f80726d2890", "name": "libraries", "type": "string", "value": "axios,cheerio,node-fetch"}]}}, "typeVersion": 3.4}, {"id": "f5f22c1a-704b-47db-9f5e-88feb4db75b8", "name": "trigger_manual", "type": "n8n-nodes-base.manualTrigger", "position": [-720, 260], "parameters": {}, "typeVersion": 1}, {"id": "85f6ad54-a991-407e-b018-fedaa7fb3a4d", "name": "libraries_array", "type": "n8n-nodes-base.set", "position": [-300, 260], "parameters": {"options": {}, "assignments": {"assignments": [{"id": "6fb15a6a-7cda-4080-a255-10f85d188854", "name": "libraries", "type": "array", "value": "={{ $json.libraries.split(\",\") }}"}]}}, "typeVersion": 3.4}, {"id": "19caae56-6cb0-4f90-a4e9-533712a09d14", "name": "libraries_split", "type": "n8n-nodes-base.splitOut", "position": [-100, 260], "parameters": {"options": {"destinationFieldName": "library"}, "fieldToSplitOut": "libraries"}, "typeVersion": 1}, {"id": "fe06a42d-21a1-474a-8442-d703f1664c68", "name": "library_install", "type": "n8n-nodes-base.executeCommand", "position": [120, 260], "parameters": {"command": "=#!/bin/bash\n\n# Get library name from variable\nLIBRARY_NAME=\"{{$json.library}}\"\n\n# Check if library directory exists\nLIBRARY_DIR=\"/home/node/node_modules/$LIBRARY_NAME\"\n\n# Check if library is already installed\nif [ ! -d \"$LIBRARY_DIR\" ]; then\n  echo \"Installing $LIBRARY_NAME...\"\n  npm install \"$LIBRARY_NAME\"\n  \n  # Verify installation\n  if [ -d \"$LIBRARY_DIR\" ]; then\n    echo \"$LIBRARY_NAME was successfully installed.\"\n  else\n    echo \"Failed to install $LIBRARY_NAME. Please check for errors.\"\n    exit 1\n  fi\nelse\n  echo \"$LIBRARY_NAME is already installed at $LIBRARY_DIR.\"\nfi\n", "executeOnce": false}, "typeVersion": 1}, {"id": "8b31c25c-0076-4c71-ae70-80c73d1b8220", "name": "trigger_schedule", "type": "n8n-nodes-base.scheduleTrigger", "position": [-720, 100], "parameters": {"rule": {"interval": [{}]}}, "typeVersion": 1.2}, {"id": "a4a07417-00ce-478e-bcf7-3cc9dd0a75fa", "name": "trigger_instance", "type": "n8n-nodes-base.n8nTrigger", "position": [-720, 440], "parameters": {"events": ["init"]}, "typeVersion": 1}], "pinData": {}, "connections": {"libraries_set": {"main": [[{"node": "libraries_array", "type": "main", "index": 0}]]}, "trigger_manual": {"main": [[{"node": "libraries_set", "type": "main", "index": 0}]]}, "libraries_array": {"main": [[{"node": "libraries_split", "type": "main", "index": 0}]]}, "libraries_split": {"main": [[{"node": "library_install", "type": "main", "index": 0}]]}, "trigger_instance": {"main": [[{"node": "libraries_set", "type": "main", "index": 0}]]}, "trigger_schedule": {"main": [[{"node": "libraries_set", "type": "main", "index": 0}]]}}}