102 lines
3.1 KiB
Bash
Executable File
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
|