Simple Task Made Complex - Can't upload a CSV via Interface

My objective is super simple. A CSV that contains multiple columns, must be converted into a copy of that, but only with 3 columns in a specific order. [Then the data must be cleaned. (This part works easily with find and replace)]

The original file must be uploaded via an interface, and the final, smaller clean file must be emailed back.

I have spent the whole day with Gummie – eventually just running into ‘sorry, I misunderstood, do you want try a different way.’

CSV Reader does not accept dynamic input (file upload) from a prior node — only a direct upload. There is no input port and there is nowhere to paste a url. Would really like to get this but working as it should if anyone can perhaps help. Thanks kindly

Hey @Dennis - I think you should probably use a « File Reader » here instead. CSV Reader we don’t have dynamic file input because we need to know what the CSV looks like before we run it to have the proper column outputs

1 Like

Thanks mate, but that kicks the can down the road so to speak. The File Reader (which I did try) has a single output port, so I still don’t get to see/access the data.

I tried to ‘edit interface’ and copied that link https://www.gumloop.com/interface/Prepare-The-Voucher-List-ktB28hoXLgtqy8C5NuWChc) but that does not pull in the file either)

I try to connect the file reader to a Sheet reader, but that also fails. How do I get a uploaded CSV to be accessible for data transformations? I have watched every single YT video and ALL of them ‘hard code’ a file and no examples of dynamic file uploads.

That makes sense. We’re currently improving the CSV Reader node and your concerns should be addressed in that. It should be live in the next update and I’ll ping you here as well.

That said, to unblock you for now, you can use a Extract Data node connected with File Reader that extracts the column values from the CSV. You can enable Extract List for that.

If you’re still facing any issues, please share the run link here with share access set to ‘anyone with the link can view’. You can find the run link here: https://www.gumloop.com/history

1 Like

Cheers, Here is where I landed. https://www.gumloop.com/pipeline?workbook_id=oidbyMdjDLf7jdENi861mc&run_id=eP39GPp8fn58mFdtDLdmF7 — It started off with having Get Lists and Join List nodes … Gummie sent me from Batch on to Batch off and everything in between. Eventually instructed me to remove the get list, so obviously the Jon list had to go too.

FWIW:

If you want to get some real world feedback, here is it:

As a general observation. I come from a retail background & then corporate. Most of the GPT wrappers are geared towards digital marketing & content creation, and most automation tools are geared towards shovelling data between Gmail and Slack - and similar - sll very much geared at what I imagine the environment and required tools are for startups. Out there in the world of plumbers and shoe shops and restaurants and builders, the need for automation is HIGH and the applicability of the tools is LOW or COMPLEX. This example I am working on is to do this. Client has a pet store, They have ‘loyalty points’ that are tracked in an archaic POS system with no webhooks or APIs. They get a PDF or a CSV at best. Then they want to text their clients from a 3rd party SMS platform that needs the data in specific format. They don’t even know how to do conditional formatting/ concatenation / adding or removing leading zeroes etc in Excel. AI is their future. But he currently has someone spending 30 minutes downloading, copying & pasting and then cleaning up the data.

Another example is simply to take customer names, addresses and phone numbers from Shopify, that stores data in a specific format. They need to extract this and reformat the mobile number because the Courier Company who sends delivery SMS needs the manifest to be formatted differently. Busy store, and she had a staff member spend half the day (I kid you not) manually reformatting. I have given her a simple 2-module MAKE solution with a small MACRO to clean it up. Which now requires zero work. Except that Make is writing this to a Sheet, and every transaction (hundred per day) are APPENDED to the sheet which makes navigating things tedious very quickly. A simple automation solution should fix this.

I have played around with Make, Vectorshift and N8N and others and the problem are still pretty much the same. If simple data manipulation/ cleanup is going to require 6 steps and multiple settings like to extract data, the extract list and then split and join and aggregate and write and then back up and down. It’s crazy.

I have a client that is a media company specialising in drone/ video content. He has offered me $15K to give him a solution that will:

Take incoming leads from email form and phone calls, and analyse the request, reply with request for more information if required, or otherwise go ahead and create OR UPDATE the customer in the Accounting Package, create a Card in ClickUp, and prepare a draft quote based on the product/price list in the Accounting package. When sent to a customer, and approval is received, update the task, generate the invoice and notify.

This shouldn’t be too hard. But doing that on a platform that is simple enough for them to then EDIT and tweak once it is implemented, is the stumbling block.

I hope this helps.

1 Like

Hey Dennis, appreciate the feedback here!

You’re right that it’s difficult to find a balance between a tool that does everything 80% as needed or others that do a few things very well (but not what we need).

We’re working on making different primitives (whether that’s nodes, formatting etc.) available so you can do anything you need and it’s with feedback like this (csv reader as an input to an interface) that we’ll be able to get there.

We’ll let you know when the CSV reader is available as an input to interfaces and keep the feedback coming!

Hey @Dennis - The new CSV Reader/Writer nodes are now live. You can pass the CSV file dynamically and define the CSV headers to expose them as outputs to the node.

Let me know if this works as expected for you.

1 Like

Legend – thanks Aron

D

This topic was solved and automatically closed 3 days after the last reply. New replies are no longer allowed.