Describe the problem/error/question
Hello everyone, we have created a workflow for a voicebot on n8n. This voicebot is designed to record the working hours of employees who call the voicebot to submit their times. To ensure the times are imported into our system, the workflow needs to work with an Excel file containing three worksheets. The recorded times should be stored on an SFTP server, and a new version of the Excel file should also be retrieved from the SFTP server daily. Is it even possible to achieve this via n8n? I would appreciate any feedback. Thanks in advance. Regards, Lars
Translated with DeepL.com (free version)
What is the error message (if any)?
Please share your workflow
(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)
Share the output returned by the last node
Information on your n8n setup
- n8n version:
- Database (default: SQLite):
- n8n EXECUTIONS_PROCESS setting (default: own, main):
- Running n8n via (Docker, npm, n8n cloud, desktop app):
- Operating system:
Hi
@Lars_Kruger
You can try this as an example
Feel free to modify according to your use case
Welcome to n8n, @Lars_Kruger! Yes, this is absolutely achievable with n8n, and it’s a nice practical use case.
A couple of important notes on the Excel / multi-worksheet part specifically:
The Read/Write Files from Disk node (or the SFTP node’s download) will give you the Excel file as binary. To actually read or modify individual worksheets, you’ll want to use the Spreadsheet File node (under the “Files” category). It lets you specify which sheet to read from. However, writing back to a multi-sheet workbook is trickier: n8n’s native node creates a new file, so you can’t directly “update one sheet and keep the other two untouched” without some extra steps.
A practical pattern that works well:
- SFTP Download node: pull the current Excel file from the server
- Spreadsheet File node (Read): extract data from each worksheet you need
- Your processing logic (merge new voicebot data into the right sheet’s data)
- Spreadsheet File node (Write): create the updated file with all three sheets combined
- SFTP Upload node: push the updated file back
For combining multiple sheets into one write operation, you’ll need a Code node with the xlsx library (already available in n8n) to build a multi-sheet workbook properly.
Is your main question about the SFTP part, the Excel handling, or both? Happy to go deeper on whichever part is less clear!
@nguyenthieutoan Thanks for your feedback. Since I’m not familiar with automation, I’m looking for a professional who can support me with this. I’m looking for a workflow for the following scenario:
- The caller calls the voicebot
- The voicebot asks for a messenger number and a district number to verify the caller.
- The caller states his messenger number → Bot transfers the data to n8n to check if the messenger number exists in spreadsheet 1.
- n8n returns the message → messenger exists or does not exist
- If the result is positive, the bot asks for the district number for which the caller wants to report times.
- The caller states the district number → The bot transfers the data to n8n to check if this district number is assigned to the messenger number. (Multiple district numbers can exist for one messenger number)
- n8n returns the message whether the district numbers are assigned to the messenger number.
- If the result is positive, the bot asks for the times the caller wants to report for the district.
- The caller provides the times to the bot (e.g., 1.5 hours or 90 minutes, etc.)
- The bot sends this data to n8n.
- n8n checks in spreadsheet 2 whether the times match the target time for this district number
- If the result is positive, the bot asks if he wants to report another time.
- If yes = continue with step 5
- If no = The bot asks why there was a deviation from the target time
- The caller states the reason (bad weather or newspaper delivered late or similar)
- The bot sends this data to n8n
- n8n stores the collected data in a separate file (Excel = csv or xlsx) with the following columns: Date | Employee Number | District | Name | Minutes | Hours | Compensation Type | Reason
- This file is placed on the SFTP server daily at a specific time.
- A new file is also created daily with district numbers, messenger numbers, times, etc. n8n must also pick this up from the SFTP server every morning.
Summary:
- Daily SFTP synchronization of master data (Cron 05:00)
- Validation of messenger number + district against Sheet 1
- Storage of times in daily output file on SFTP (including district column)
- Plausibility check: Deviation > 40% from target time → Bot is prompted to request a reason
- Duplicate entry protection on messenger + district + date: a messenger can report multiple districts per day, but not the same district twice
- Target time is weekday- and condition-specific (STANDARD vs. TEMPORARY)
- Columns of the output file (Sheet
NZ Delivery Person Import Dialog):
Date | Employee Number | District | Name | Minutes | Hours | Compensation Type | Reason
Can you help me with this or recommend someone who can implement something like this? Also happy to pay for it.
Best regards Lars
Please post this under job catergory