#!/bin/bash # Automated n8n Workflow Testing Script # Tests mem0 API integration via n8n workflow set -e WORKFLOW_ID="y5W8hp1B3FZfocJ0" API_CONTAINER="172.21.0.14" echo "=== n8n Workflow Test Script ===" echo "" # Step 1: Get latest execution echo "1. Checking latest workflow execution..." LATEST_EXEC=$(curl -s "http://localhost:5678/api/v1/executions?workflowId=${WORKFLOW_ID}&limit=1" | jq -r '.data[0]') EXEC_ID=$(echo "$LATEST_EXEC" | jq -r '.id') EXEC_STATUS=$(echo "$LATEST_EXEC" | jq -r '.status') EXEC_TIME=$(echo "$LATEST_EXEC" | jq -r '.startedAt') echo " Latest Execution: $EXEC_ID" echo " Status: $EXEC_STATUS" echo " Started: $EXEC_TIME" echo "" # Step 2: If successful, get detailed results if [ "$EXEC_STATUS" = "success" ]; then echo "2. ✅ Workflow executed successfully!" echo "" echo "3. Fetching execution details..." # Get execution data (using MCP pattern) EXEC_DATA=$(curl -s "http://localhost:5678/api/v1/executions/${EXEC_ID}") # Extract node results echo "" echo " Node Results:" echo " - Health Check: $(echo "$EXEC_DATA" | jq -r '.data.resultData.runData["1. Health Check"][0].data.main[0][0].json.status // "N/A"')" echo " - Memories Created: $(echo "$EXEC_DATA" | jq -r '.data.resultData.runData["2. Create Memory 1"][0].data.main[0][0].json.memories | length // 0')" echo " - Test Summary: $(echo "$EXEC_DATA" | jq -r '.data.resultData.runData["Test Summary"][0].data.main[0][0].json.test_status // "N/A"')" echo "" echo "✅ All tests passed!" exit 0 else echo "2. ❌ Workflow execution failed or not run yet" echo "" echo "To run the test:" echo " 1. Open n8n UI: http://localhost:5678" echo " 2. Open workflow: Claude: Mem0 API Test Suite" echo " 3. Click 'Execute Workflow' button" echo "" echo "Then run this script again to see results." exit 1 fi