đź’¬ Process customer feedback with OpenAI, PDF reports, Gmail & Slack notifications

⚡ 292 views · 💬 Support Chatbots

Description

AI-Powered Feedback Automation with PDF Reports & Team Notifications

Transform customer feedback into actionable insights automatically with AI analysis, professional PDF reports, personalized emails, and real-time team notifications.

Table of Contents


Overview

AI-Powered Feedback Automation is a complete, production-ready n8n workflow that automatically processes customer feedback submissions with artificial intelligence, generates beautiful branded PDF reports, sends personalized email responses, logs data for analytics, and notifies your team in real-time.

What Problem Does This Solve?

Manual feedback processing is time-consuming and inconsistent. This workflow eliminates all manual work by:

Perfect For


Features

AI-Powered Analysis

Professional Report Generation

Automated Email Communications

Data Logging & Analytics

Team Notifications

Robust Error Handling


Demo

Workflow Overview

User Submits Feedback
        ↓
  Data Cleaning & Validation
        ↓
  AI Sentiment Analysis (OpenAI)
        ↓
  HTML Report Generation
        ↓
  PDF Conversion
        ↓
  Email Validation ─┬─ Valid → Send Email
                    └─ Invalid → Skip
        ↓
  Log to Google Sheets
        ↓
  Notify Team (Slack)
        ↓
  Webhook Response

Sample Input

{
  "name": "Sarah Johnson",
  "email": "sarah@example.com",
  "rating": 4,
  "comments": "Great product! Delivery was a bit slow but customer service was helpful.",
  "suggestions": "Improve shipping speed and tracking updates."
}

Sample Output


Prerequisites

Required Services & Accounts

  1. n8n Instance (v0.220.0 or higher)

  2. OpenAI Account

    • API key with GPT-3.5-turbo or GPT-4 access
    • Sign Up
  3. Google Account (Gmail + Google Sheets)

    • OAuth2 setup for Gmail API
    • OAuth2 setup for Google Sheets API
    • Setup Guide
  4. Slack Workspace

    • Admin access to create apps or OAuth
    • Bot token with chat:write and channels:read scopes
    • Create Slack App
  5. HTML to PDF API Service

  6. VerifiEmail API


Quick Start

1. Import Template

Option A: Import via URL

Copy the workflow JSON URL and paste in n8n:
Settings → Import from URL → [Paste URL]

Option B: Import via File

  1. Download workflow.json
  2. In n8n: Workflows → Import from File
  3. Select the downloaded JSON file
  4. Click “Import”

2. Configure Credentials (5 minutes)

Navigate to: Settings → Credentials and add:

3. Create Google Sheet (2 minutes)

Create a new Google Sheet named “Feedback Log” with these column headers:

Submission ID | Timestamp | Name | Email | Rating | Sentiment | Comments | Suggestions | AI Summary | PDF URL | PDF Available Until | Email Sent

4. Configure Workflow (3 minutes)

  1. Open the imported workflow
  2. Click “Log Feedback Data” node
  3. Select your “Feedback Log” spreadsheet
  4. Click “Notify Team” node
  5. Select your Slack channel (e.g., #feedback)

5. Test & Activate (5 minutes)

  1. Execute the “Webhook” node to get test URL
  2. Send test POST request (see test data below)
  3. Verify all nodes execute successfully
  4. Check email, Google Sheet, and Slack
  5. Click “Active” toggle to enable workflow

Total Setup Time: ~15-20 minutes


Configuration

Webhook Configuration

The workflow receives feedback via POST webhook:

URL Format:

https://your-n8n-domain.com/webhook/feedback-submission

Expected Payload:

{
  "name": "string (required)",
  "email": "string (optional, validated)",
  "rating": "integer 1-5 (required)",
  "comments": "string (optional)",
  "suggestions": "string (optional)"
}

Usage

Testing the Workflow

Using Postman/Insomnia:

  1. Create new POST request
  2. URL: https://your-n8n-domain.com/webhook/feedback-submission
  3. Headers: Content-Type: application/json
  4. Body (raw JSON):
{
  "name": "Test User",
  "email": "your-email@example.com",
  "rating": 5,
  "comments": "This is a test feedback submission. Everything works great!",
  "suggestions": "Maybe add more features in the future."
}
  1. Send request
  2. Expected response (200 OK):
{
  "success": true,
  "message": "Thank you for your feedback! We've sent you a detailed report via email.",
  "data": {
    "submissionId": "FB-1234567890123-abc123xyz",
    "name": "Test User",
    "email": "your-email@example.com",
    "rating": "5",
    "sentiment": "Positive",
    "emailSent": "true",
    "reportUrl": "https://generated-pdf-url.com/report.pdf",
    "reportAvailableUntil": "2025-11-10"
  }
}

Using cURL:

curl -X POST https://your-n8n-domain.com/webhook/feedback-submission \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Sarah Johnson",
    "email": "sarah@example.com",
    "rating": 4,
    "comments": "Great product! Delivery was a bit slow but customer service was helpful.",
    "suggestions": "Improve shipping speed and tracking updates."
  }'

Monitoring & Maintenance

Daily:

Weekly:

Monthly:

Best Practices

  1. Rate Limiting

    • Monitor for spam submissions
    • Add rate limiting to webhook if needed
    • Use n8n’s built-in throttling
  2. Data Privacy

    • Ensure GDPR/privacy compliance
    • Add data retention policies
    • Implement data deletion workflow
  3. Error Handling

    • Set up error notifications
    • Create error logging workflow
    • Monitor execution failures
  4. Performance

    • Keep Google Sheet under 50,000 rows
    • Archive old data quarterly
    • Use database for high volume (1000+/month)

Troubleshooting

Common Issues

Issue 1: Webhook Not Receiving Data

Symptoms:

Solutions:

  1. âś… Verify workflow is Active (toggle at top right)
  2. âś… Check webhook URL is correct in form
  3. âś… Test webhook with Postman/cURL first
  4. ✅ Check n8n logs for errors: Settings → Log Streaming
  5. âś… Verify firewall/network allows incoming webhooks

Issue 2: OpenAI Node Fails

Symptoms:

Solutions:

  1. âś… Verify API key is correct and active
  2. âś… Check OpenAI account has sufficient credits
  3. âś… Check API usage limits: platform.openai.com/usage
  4. âś… Increase node timeout in workflow settings
  5. âś… Try with shorter feedback text

Issue 3: PDF Not Generating

Symptoms:

Solutions:

  1. âś… Verify PDF API key is valid
  2. âś… Check API service status
  3. âś… Verify HTML content is valid (test in browser)
  4. âś… Check API usage limits/quota
  5. âś… Try alternative PDF service

Issue 4: Email Not Sending

Symptoms:

Solutions:

  1. âś… Re-authenticate Gmail OAuth2 credential
  2. âś… Check email address is valid
  3. âś… Check spam/junk folder
  4. âś… Verify Gmail API is enabled in Google Console
  5. âś… Check daily sending limits not exceeded
  6. âś… Test with different email address

Issue 5: Google Sheets Not Updating

Symptoms:

Solutions:

  1. âś… Verify spreadsheet ID is correct
  2. âś… Check sheet name matches exactly (case-sensitive)
  3. âś… Verify column headers match exactly
  4. âś… Re-authenticate Google Sheets credential
  5. ✅ Check spreadsheet isn’t protected/locked
  6. ✅ Verify spreadsheet isn’t full (limit: 10M cells)

Issue 6: Slack Not Posting

Symptoms:

Solutions:

  1. âś… Verify bot is invited to channel: /invite @BotName
  2. âś… Check bot has chat:write permission
  3. âś… Re-authenticate Slack credential
  4. âś… Verify channel ID is correct
  5. ✅ Check Slack workspace isn’t on free plan limits
  6. âś… Test with different channel

Debugging Tips

  1. Enable Debug Mode

    • Settings → Executions → Save execution progress
    • Watch each node execute step-by-step
  2. Check Execution Logs

    • Click on failed node
    • View “Input” and “Output” tabs
    • Check error messages
  3. Test Nodes Individually

    • Click “Execute Node” on each node
    • Verify output before proceeding
  4. Use Browser Console

    • Open Developer Tools (F12)
    • Check for JavaScript errors
    • Monitor network requests
  5. Enable Verbose Logging

    # For self-hosted n8n
    N8N_LOG_LEVEL=debug npm start

đź“„ License

This template is licensed under the MIT License - see the LICENSE file for details.

đź”— Nodes Used

Google Sheets, Slack, Webhook, Gmail, OpenAI

📥 Import

Download workflow.json and import into n8n: Workflow menu → Import from File

📖 Importing guide · 🔑 Credential setup