#!/bin/bash ############################################################################### # n8n Workflow Import Script # # Purpose: Import all Telegram Assistant workflows into n8n via API # Usage: ./import_workflows.sh ############################################################################### set +e echo "🚀 Importing Telegram Assistant workflows into n8n" echo "==================================================" # Configuration N8N_URL="https://flow.egonetix.de" N8N_API_KEY="n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1" WORKFLOW_DIR="/home/icke/assistant/workflows" # Workflows to import (in order) WORKFLOWS=( "telegram-receiver.json" "telegram-router.json" "telegram-deck.json" "telegram-email.json" "telegram-ai.json" ) # Function to import a single workflow import_workflow() { local workflow_file="$1" local workflow_path="$WORKFLOW_DIR/$workflow_file" if [ ! -f "$workflow_path" ]; then echo "❌ Workflow file not found: $workflow_path" return 1 fi echo "" echo "📤 Importing: $workflow_file" # Import workflow via n8n API response=$(curl -s -w "\n%{http_code}" -X POST "$N8N_URL/api/v1/workflows" \ -H "X-N8N-API-KEY: $N8N_API_KEY" \ -H "Content-Type: application/json" \ -d @"$workflow_path") # Extract HTTP status code (last line) http_code=$(echo "$response" | tail -n1) body=$(echo "$response" | head -n-1) if [ "$http_code" = "200" ] || [ "$http_code" = "201" ]; then # Extract workflow ID and name from response workflow_id=$(echo "$body" | grep -o '"id":"[^"]*"' | head -1 | cut -d'"' -f4) workflow_name=$(echo "$body" | grep -o '"name":"[^"]*"' | head -1 | cut -d'"' -f4) echo "✅ Successfully imported: $workflow_name (ID: $workflow_id)" return 0 else echo "❌ Failed to import: $workflow_file" echo " HTTP Status: $http_code" echo " Response: $body" return 1 fi } # Import all workflows success_count=0 fail_count=0 for workflow in "${WORKFLOWS[@]}"; do if import_workflow "$workflow"; then ((success_count++)) else ((fail_count++)) fi done # Summary echo "" echo "==================================================" echo "📊 Import Summary" echo "==================================================" echo "✅ Successfully imported: $success_count workflows" echo "❌ Failed: $fail_count workflows" echo "" if [ $fail_count -eq 0 ]; then echo "🎉 All workflows imported successfully!" echo "" echo "Next steps:" echo "1. Open n8n: $N8N_URL" echo "2. Activate all workflows (toggle switch in UI)" echo "3. Configure Telegram webhook:" echo " curl -X POST \"https://api.telegram.org/bot/setWebhook\" \\" echo " -H \"Content-Type: application/json\" \\" echo " -d '{\"url\":\"$N8N_URL/webhook/8f3f59db-aaa5-4762-9416-94be04131fd2\"}'" echo "" echo "4. Test with: /start command in Telegram" else echo "⚠️ Some workflows failed to import. Check errors above." exit 1 fi