Skip to content

[Syed.Atyab@Codeline.rihal.om] One-Click Survey Upload #68

Description

@CodelineAtyab

📝 User Story

As a Voice-of-Customer (VOC) analyst, I want to drag-and-drop an Excel survey file into an n8n web form so that the responses are automatically parsed and stored in the database for downstream analysis.


🎯 Acceptance Criteria

# Requirement Details
1 Secure Upload • n8n workflow exposes a password-protected web form.
• Accepts .xlsx files up to 5 MB via drag-and-drop or file-picker.
2 Automatic Parsing • Workflow reads the .xlsx directly or converts it to CSV behind the scenes.
• No manual intervention required.
3 Dynamic Question Handling • A Python node scans all column headers.
• Columns whose headers start with “Q” are bundled into a single JSON field called questions.
• The remaining 20 fixed columns stay unchanged.
4 Metadata Logging • Write upload metadata to feedback_files table:
 – filename
 – uploader
 – timestamp
 – row_count
5 Row-Level Storage • Each survey response becomes one row in the feedback table.
• The questions JSON column is fully populated.
6 User Feedback • Workflow returns a clear success or error message to the browser.
7 Containerized Deployment • Entire solution (n8n + Postgres) ships with Docker containers.
• Start locally with docker-compose up (single command).

🛠️ Technical Notes (added for clarity)

  • Recommended image sizes:
    n8nio/n8n:latest for the automation workflow
    postgres:15-alpine for the database
  • Environment variables (sample):
    N8N_BASIC_AUTH_USER=voc_analyst
    N8N_BASIC_AUTH_PASSWORD=strongPassword123
    POSTGRES_USER=voc
    POSTGRES_PASSWORD=voc_pass
    POSTGRES_DB=voc_db
    
  • Ensure proper CORS settings if the web form will be embedded in external dashboards.
  • Configure file-size limits and MIME-type checks in the n8n HTTP Request node for additional security.

✅ When all criteria are met, the VOC analyst can seamlessly upload survey data and immediately proceed with analysis—no manual data wrangling required.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions