Validate incoming file rows and load valid records into a database table.
Mark spreadsheet rows needing correction before import.
Your reporting table gets valid new spreadsheet rows every 15 minutes, with import counts and row-specific fixes waiting in the sheet.
Add valid email submissions to the table and reply with their IDs.
Turn emailed entry requests into database rows, with a reply that confirms the ID or tells the sender what to fix.