# 🚀 Quick Setup Guide ## Your n8n Webhook Configuration Based on your webhook URL: `https://workflows.tech4bizsolutions.com/webhook-test/04e677f5-ec57-4772-bf12-96f2610d4b9c` --- ## Step 1: Create `.env` File Create a `.env` file in your project root with these settings: ```env # ============================================ # n8n Webhook Configuration (YOUR SETUP) # ============================================ N8N_WEBHOOK_URL=https://workflows.tech4bizsolutions.com N8N_WEBHOOK_PATH=webhook-test N8N_WEBHOOK_ID=04e677f5-ec57-4772-bf12-96f2610d4b9c # ============================================ # Database # ============================================ DB_HOST=localhost DB_PORT=3306 DB_NAME=centralized_reporting DB_USER=root DB_PASSWORD=your_password # ============================================ # JWT & Encryption # ============================================ JWT_SECRET=your_jwt_secret_change_this JWT_EXPIRES_IN=1h ENCRYPTION_KEY=changeme # ============================================ # Server # ============================================ PORT=3000 NODE_ENV=development API_PREFIX=/api/v1 # ============================================ # OAuth Credentials # ============================================ # Zoho ZOHO_CLIENT_ID=your_zoho_client_id ZOHO_CLIENT_SECRET=your_zoho_client_secret ZOHO_REDIRECT_URI=centralizedreportingsystem://oauth/callback # Salesforce SALESFORCE_CLIENT_ID=your_salesforce_client_id SALESFORCE_CLIENT_SECRET=your_salesforce_client_secret SALESFORCE_REDIRECT_URI=centralizedreportingsystem://oauth/callback SALESFORCE_INSTANCE_URL=https://login.salesforce.com # Redis (Optional) REDIS_HOST=localhost REDIS_PORT=6379 ``` --- ## Step 2: Install Dependencies ```bash npm install ``` --- ## Step 3: Setup Database ```bash # Create database mysql -u root -p CREATE DATABASE centralized_reporting; exit # Run migrations node src/db/migrate.js ``` --- ## Step 4: Verify n8n Webhook Test your n8n webhook is accessible: ```bash curl -X POST https://workflows.tech4bizsolutions.com/webhook-test/04e677f5-ec57-4772-bf12-96f2610d4b9c \ -H "Content-Type: application/json" \ -d '{ "body": { "provider": "zoho", "service": "crm", "module": "leads", "acces_token": "test_token" }, "query": { "per_page": 100, "page": 1 } }' ``` **Expected:** Should return response from n8n (or error if workflow not active) --- ## Step 5: Start Server ```bash npm start ``` **Server will start at:** `http://localhost:3000` --- ## Step 6: Test Health Check ```bash curl http://localhost:3000/health ``` **Expected Response:** ```json { "status": "success", "message": "OK", "data": { "db": "up", "env": "development" }, "timestamp": "2025-10-09T..." } ``` --- ## Step 7: Test n8n Integration ### 7.1 Get Supported Providers ```bash # Login first to get JWT token curl -X POST http://localhost:3000/api/v1/auth/login \ -H "Content-Type: application/json" \ -d '{ "email": "user@example.com", "password": "password" }' # Save the accessToken from response TOKEN="your_jwt_token_here" # Get supported providers curl -X GET http://localhost:3000/api/v1/n8n/providers \ -H "Authorization: Bearer $TOKEN" ``` ### 7.2 Authenticate with Provider ```bash # For Zoho (after OAuth flow in frontend) curl -X GET "http://localhost:3000/api/v1/users/oauth/callback?authorization_code=ABC123&user_uuid=user-id&service_name=zoho" # For Salesforce curl -X GET "http://localhost:3000/api/v1/users/oauth/callback?authorization_code=XYZ789&user_uuid=user-id&service_name=salesforce" ``` ### 7.3 Fetch Data ```bash # Fetch Zoho CRM Leads curl -X GET "http://localhost:3000/api/v1/n8n/zoho/crm/leads?limit=10" \ -H "Authorization: Bearer $TOKEN" # Fetch Salesforce Accounts curl -X GET "http://localhost:3000/api/v1/n8n/salesforce/crm/accounts?limit=10" \ -H "Authorization: Bearer $TOKEN" ``` --- ## 📊 How the Webhook URL is Constructed ### Configuration ```env N8N_WEBHOOK_URL=https://workflows.tech4bizsolutions.com N8N_WEBHOOK_PATH=webhook-test N8N_WEBHOOK_ID=04e677f5-ec57-4772-bf12-96f2610d4b9c ``` ### Code (src/integrations/n8n/client.js) ```javascript const url = `${this.baseUrl}/${this.webhookPath}/${this.webhookId}`; ``` ### Result ``` https://workflows.tech4bizsolutions.com/webhook-test/04e677f5-ec57-4772-bf12-96f2610d4b9c ``` --- ## 🔍 Verification Checklist - [ ] `.env` file created with correct values - [ ] Database created and migrated - [ ] n8n webhook accessible - [ ] Server starts without errors - [ ] Health check returns success - [ ] Can login and get JWT token - [ ] OAuth callback works - [ ] Can fetch data via n8n --- ## 🐛 Common Issues ### Issue: "n8n workflow execution failed" **Cause:** n8n webhook not accessible or workflow not active **Solution:** 1. Check n8n is running 2. Verify workflow is activated 3. Test webhook URL manually: ```bash curl https://workflows.tech4bizsolutions.com/webhook-test/04e677f5-ec57-4772-bf12-96f2610d4b9c ``` ### Issue: "Cannot connect to database" **Cause:** Database credentials incorrect **Solution:** 1. Check DB_HOST, DB_PORT, DB_NAME in `.env` 2. Verify MySQL is running 3. Test connection: ```bash mysql -h localhost -u root -p ``` ### Issue: "JWT token invalid" **Cause:** JWT_SECRET mismatch or expired token **Solution:** 1. Login again to get fresh token 2. Verify JWT_SECRET in `.env` 3. Check JWT_EXPIRES_IN setting --- ## 📚 Next Steps 1. **Configure OAuth Apps** - Set up Zoho OAuth app - Set up Salesforce Connected App - Update credentials in `.env` 2. **Test Full Flow** - Register user - Authenticate with Zoho/Salesforce - Fetch data via n8n endpoints 3. **Frontend Integration** - Use API endpoints in your frontend - Implement OAuth flow - Display fetched data 4. **Production Deployment** - Use strong JWT_SECRET - Use HTTPS - Enable rate limiting - Set up monitoring --- ## 📖 Documentation - **Full Integration Guide**: `docs/N8N_INTEGRATION.md` - **Environment Variables**: `docs/ENVIRONMENT_VARIABLES.md` - **Salesforce Pagination**: `docs/SALESFORCE_PAGINATION.md` - **Quick Reference**: `docs/N8N_QUICK_REFERENCE.md` --- ## 🆘 Need Help? Check the logs: ```bash # Server logs tail -f logs/app.log # n8n workflow execution logs # Check in n8n UI: Executions tab ``` --- **You're all set! Happy coding! 🎉**