Files
mortimer/import_workflows.sh
2025-12-19 09:54:03 +01:00

102 lines
3.1 KiB
Bash
Executable File

#!/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<YOUR_BOT_TOKEN>/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