Overview
This workflow provides a reliable and secure system for uploading and managing documents.
It accepts files via form or webhook, validates file size and type, generates unique metadata, detects duplicates using file hashing, and stores records in Postgres. It ensures clean, consistent, and duplicate-free document intake.
How It Works
-
Document Upload
Users upload files through a form or webhook endpoint.
-
Configuration
Defines:
- Maximum file size
- Allowed file types
- Storage settings
-
File Validation
The workflow checks:
- File size against limits
- MIME type against allowed formats
Invalid files are rejected with a clear error response.
-
Metadata Generation
Generates:
- Unique document ID (UUID)
- File hash (SHA-256)
- File name, size, and type
- Upload timestamp and source
-
Duplicate Detection
Uses the file hash to check if the document already exists in the database.
-
Conditional Processing
- Duplicate found → returns existing document reference
- New document → proceeds to storage
-
Database Storage
Stores document metadata in Postgres with a received status.
-
Response Handling
- Success → returns document ID
- Duplicate → returns existing document ID
- Error → returns validation details
Setup Instructions
- Configure form trigger or webhook endpoint
- Set max file size and allowed MIME types in config node
- Connect Postgres credentials
- Create a
documents table with required fields
- Update configuration values as needed
- Test with sample document uploads
- Activate the workflow
Use Cases
- Secure document upload systems
- Preventing duplicate file storage
- Building document intake APIs
- Managing tax or financial documents
- Creating audit-ready upload pipelines
Requirements
- n8n instance with form/webhook support
- Postgres database
- File upload handling enabled
Notes
- SHA-256 hashing ensures accurate duplicate detection.
- You can extend storage to cloud services like S3 or Google Cloud Storage.
- Add authentication to webhook endpoints for production use.
- Customize validation rules based on your business requirements.