What This Workflow Does
This workflow automatically changes CSV files into JSON format. It accepts CSV data sent as raw text or as files uploaded by HTTP POST. The system looks at what type of input it got and uses the right process to convert it. The final result is a neat JSON output sent back to the sender. If something goes wrong, it sends an error response and notifies a Slack channel. This saves time and avoids mistakes compared to doing the work by hand.
Who Should Use This Workflow
This workflow is good for people who get CSV files often and need JSON instead. Users with little technical knowledge can use this to stop doing manual work each day. It is useful if CSV files have commas or semicolons as delimiters. Also helpful for teams that want error alerts sent to Slack for quick fixes.
Tools and Services Used
- n8n Webhook: Receives CSV data via HTTP POST.
- Switch Node: Checks what type input data is.
- Extract From File Node: Reads uploaded CSV files.
- Set Node: Prepares raw CSV text.
- Code Node: Runs JavaScript to convert CSV into JSON.
- If Node: Checks if conversion worked.
- Aggregate Node: Gathers JSON items into one array.
- Respond To Webhook Node: Sends success or error response.
- Slack Node: Sends error notifications to a Slack channel.
Inputs, Processing, and Outputs Explained
Inputs
- HTTP POST requests to the webhook URL.
- CSV data as raw text with content-type text/plain.
- CSV files uploaded as binary data.
- JSON input with content-type application/json (partially supported).
Processing Steps
- The Switch node detects the input type and sends the workflow on the correct path.
- If it is a file, the Extract From File node reads the CSV text.
- If raw text, the Set node saves the CSV into a string field called ‘csv’.
- The Code node parses CSV rows and columns using commas or semicolons into JSON objects.
- The If node checks if the conversion created errors.
- The Aggregate node combines all JSON items into one array field.
Outputs
- On success, JSON response with status OK and data array is sent back.
- On error, JSON error message with HTTP 500 status is returned.
- Error details are posted to Slack to alert the team.
Beginner Step-by-Step: How to Use This Workflow in n8n Production
1. Import the Workflow
- Download the workflow file using the Download button on this page.
- Open n8n editor where you want to use the workflow.
- Click on the menu, select “Import from File” and upload the downloaded workflow.
2. Configure Credentials and Settings
- Add your Slack OAuth2 credentials in the Slack node.
- Update any IDs, emails, channels, or file properties in nodes that require it.
- Check the webhook URL generated on the Webhook node — this is where CSV files get posted.
- Review the Code node’s JavaScript if you want to change delimiters or behavior.
3. Test the Workflow
- Send a test CSV file or raw CSV text to the webhook URL using curl or similar.
- Watch if the JSON response returns as expected.
- Check Slack for any error messages if things fail.
4. Activate for Production
- Toggle the workflow ON in the n8n editor to enable live processing.
- Ensure the webhook URL is reachable externally if needed.
- Monitor executions in the n8n dashboard for any issues.
- If self hosting n8n, see self-host n8n for tips on making webhook accessible.
Customization Ideas
- Add more delimiters in the Code node regex to support tabs, pipes, or custom separators.
- Change Slack message content in the Slack node for different alert styles or mentions.
- Fully add JSON input handling by expanding the Switch node and adding JSON parse and response nodes.
- Insert a size check node before extraction to reject large files automatically.
Common Edge Cases and Failures
“No data to process” Error
This means the CSV input is empty or badly formatted.
Check that CSV has headers and data rows.
Also make sure the field named “csv” matches in the Set node.
Slack Notification Not Sent
OAuth2 credentials may be expired.
Re-authenticate in Slack node credentials settings.
Webhook Returns HTTP 404 or No Response
The webhook URL or HTTP method may be wrong.
Confirm HTTP Method is POST and URL matches the Webhook node.
Summary
→ Automatically converts CSV input (raw or files) to JSON data.
→ Detects input type and handles errors for reliable processing.
✓ Saves time by avoiding manual conversion steps.
✓ Sends JSON output back to the webhook caller neatly.
✓ Alerts teams in Slack for processing errors quickly.
