Process Customer Feedback with OpenAI, PDF Reports, Gmail & Slack Notifications
Go to WorkflowDescription
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
Features
Demo
Prerequisites
Quick Start
Configuration
Usage
Troubleshooting
License
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:
Automatically analyzing** sentiment and extracting key insights using OpenAI
Generating professional** PDF reports with custom branding
Sending personalized** thank-you emails to customers
Logging everything** to Google Sheets for analytics and reporting
Notifying your team** instantly via Slack with actionable summaries
Perfect For
Product Teams** - Collect and analyze user feedback systematically
Educational Institutions** - Process student/parent feedback efficiently
Customer Support** - Track customer satisfaction and sentiment trends
E-commerce** - Manage product reviews and customer suggestions
Healthcare** - Collect patient feedback and satisfaction scores
Event Management** - Gather attendee feedback post-event
Consulting Firms** - Streamline client feedback collection
Features
AI-Powered Analysis
Sentiment Classification** - Automatically categorizes feedback as Positive, Neutral, or Negative
Key Highlights Extraction** - Identifies the most important points from customer comments
Actionable Recommendations** - AI generates specific suggestions based on feedback
Executive Summaries** - Creates concise 2-3 sentence overviews of each submission
Professional Report Generation
Beautiful PDF Reports** - Branded, professional documents with custom styling
Visual Elements** - Star ratings, color-coded sentiment badges, organized sections
Responsive Design** - Mobile-friendly and print-optimized layouts
30-Day Hosting** - PDF reports automatically hosted with expiration dates
Automated Email Communications
Personalized Messages** - Thank-you emails customized with customer name and feedback
PDF Attachments** - Direct download links to full feedback reports
Sentiment Indicators** - Color-coded visual feedback summaries
Professional Templates** - Modern, responsive email designs
Data Logging & Analytics
Google Sheets Integration** - Automatic logging of all feedback submissions
Complete Audit Trail** - Tracks submission IDs, timestamps, and processing status
Analytics Ready** - Structured data perfect for dashboards and trend analysis
Historical Records** - Permanent storage of all feedback data
Team Notifications
Slack Integration** - Real-time alerts to team channels
Rich Formatting** - Structured messages with highlights and action items
Direct Links** - Quick access to full PDF reports from Slack
Thread Discussions** - Enable team conversations around feedback
Robust Error Handling
Email Validation** - Automatically checks and handles invalid email addresses
Fallback Mechanisms** - Continues workflow even if email sending fails
Data Cleaning** - Sanitizes and normalizes all input data
Graceful Degradation** - AI parsing failures handled with intelligent fallbacks
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": "[email protected]",
"rating": 4,
"comments": "Great product! Delivery was a bit slow but customer service was helpful.",
"suggestions": "Improve shipping speed and tracking updates."
}
Sample Output
✅ AI Analysis: "Positive" sentiment with 3 key highlights
✅ PDF Report: Professional 2-page document with branding
✅ Email Sent: Personalized thank-you message delivered
✅ Data Logged: New row added to Google Sheet
✅ Team Notified: Slack message with summary posted
✅ Webhook Response: 200 OK with submission details
Prerequisites
Required Services & Accounts
n8n Instance (v0.220.0 or higher)
Self-hosted or n8n Cloud
Installation Guide
OpenAI Account
API key with GPT-3.5-turbo or GPT-4 access
Sign Up
Google Account (Gmail + Google Sheets)
OAuth2 setup for Gmail API
OAuth2 setup for Google Sheets API
Setup Guide
Slack Workspace
Admin access to create apps or OAuth
Bot token with chat:write and channels:read scopes
Create Slack App
HTML to PDF API Service
GET at: PDFMunk
API key required
VerifiEmail API
GET at: VerfiEmail
API key required
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
Download workflow.json
In n8n: Workflows → Import from File
Select the downloaded JSON file
Click "Import"
2. Configure Credentials (5 minutes)
Navigate to: Settings → Credentials and add:
✅ OpenAI API - Add API key from OpenAI dashboard
✅ Gmail OAuth2 - Connect and authorize your Gmail account
✅ Google Sheets OAuth2 - Use same Google account
✅ Slack OAuth2 - Install app to workspace and authorize
✅ HTML to PDF API - Add API key from your PDF service
✅ VerifiEmail API - Add API key from VerifiEmail dashboard
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)
Open the imported workflow
Click "Log Feedback Data" node
Select your "Feedback Log" spreadsheet
Click "Notify Team" node
Select your Slack channel (e.g., #feedback)
5. Test & Activate (5 minutes)
Execute the "Webhook" node to get test URL
Send test POST request (see test data below)
Verify all nodes execute successfully
Check email, Google Sheet, and Slack
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:
Create new POST request
URL: https://your-n8n-domain.com/webhook/feedback-submission
Headers: Content-Type: application/json
Body (raw JSON):
{
"name": "Test User",
"email": "[email protected]",
"rating": 5,
"comments": "This is a test feedback submission. Everything works great!",
"suggestions": "Maybe add more features in the future."
}
Send request
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": "[email protected]",
"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": "[email protected]",
"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:
Check Slack for new feedback notifications
Review Google Sheet for any anomalies
Weekly:
Verify workflow execution success rate
Check OpenAI API usage and costs
Review sentiment trends in Google Sheet
Monthly:
Analyze feedback patterns and trends
Update AI prompts if needed
Check PDF service usage limits
Review and optimize workflow performance
Best Practices
Rate Limiting
Monitor for spam submissions
Add rate limiting to webhook if needed
Use n8n's built-in throttling
Data Privacy
Ensure GDPR/privacy compliance
Add data retention policies
Implement data deletion workflow
Error Handling
Set up error notifications
Create error logging workflow
Monitor execution failures
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:
Webhook node shows no executions
Forms submit but nothing happens
Solutions:
✅ Verify workflow is Active (toggle at top right)
✅ Check webhook URL is correct in form
✅ Test webhook with Postman/cURL first
✅ Check n8n logs for errors: Settings → Log Streaming
✅ Verify firewall/network allows incoming webhooks
Issue 2: OpenAI Node Fails
Symptoms:
Error: "API key invalid"
Error: "Insufficient credits"
Node times out
Solutions:
✅ Verify API key is correct and active
✅ Check OpenAI account has sufficient credits
✅ Check API usage limits: platform.openai.com/usage
✅ Increase node timeout in workflow settings
✅ Try with shorter feedback text
Issue 3: PDF Not Generating
Symptoms:
"PDF generation failed" error
Empty PDF URL
404 when accessing PDF
Solutions:
✅ Verify PDF API key is valid
✅ Check API service status
✅ Verify HTML content is valid (test in browser)
✅ Check API usage limits/quota
✅ Try alternative PDF service
Issue 4: Email Not Sending
Symptoms:
Gmail node shows error
Email doesn't arrive
"Permission denied" error
Solutions:
✅ Re-authenticate Gmail OAuth2 credential
✅ Check email address is valid
✅ Check spam/junk folder
✅ Verify Gmail API is enabled in Google Console
✅ Check daily sending limits not exceeded
✅ Test with different email address
Issue 5: Google Sheets Not Updating
Symptoms:
No new rows added
"Spreadsheet not found" error
Permission errors
Solutions:
✅ Verify spreadsheet ID is correct
✅ Check sheet name matches exactly (case-sensitive)
✅ Verify column headers match exactly
✅ Re-authenticate Google Sheets credential
✅ Check spreadsheet isn't protected/locked
✅ Verify spreadsheet isn't full (limit: 10M cells)
Issue 6: Slack Not Posting
Symptoms:
Slack node fails
Message doesn't appear in channel
"Channel not found" error
Solutions:
✅ Verify bot is invited to channel: /invite @BotName
✅ Check bot has chat:write permission
✅ Re-authenticate Slack credential
✅ Verify channel ID is correct
✅ Check Slack workspace isn't on free plan limits
✅ Test with different channel
Debugging Tips
Enable Debug Mode
Settings → Executions → Save execution progress
Watch each node execute step-by-step
Check Execution Logs
Click on failed node
View "Input" and "Output" tabs
Check error messages
Test Nodes Individually
Click "Execute Node" on each node
Verify output before proceeding
Use Browser Console
Open Developer Tools (F12)
Check for JavaScript errors
Monitor network requests
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.