Show HN: Yobulk – Open-source CSV importer powered by GPT3
Hey Everybody,<p>We are really excited to open source YoBulk today.<p>YoBulk is an open source CSV importer for any SaaS application - It&#x27;s a free alternative to <a href="https:&#x2F;&#x2F;flatfile.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;flatfile.com&#x2F;</a><p>Why are we building YoBulk:<p>In our previous startup, we were receiving CSV files from various billboard screen owners every day, following a specific template that we defined. Despite the well-defined template, the CSV files we received often contained manual errors, which was a challenge to fix with the data provider.<p>We were receiving around 500,000 billboard data updates each day, including price changes and creative info data. It was a difficult and time-consuming job to clean and format the data to fit our database schema and upload it into the database. As a result, we wanted to automate the entire CSV importing process.
In our second startup, we encountered similar challenges when cleaning large CSV files with location and timestamp data.<p>We realised that more than 70% of business data is shared in CSV and Excel formats, and only a small percentage use API integrations for data exchange. As developers and product managers, we have experienced the difficulties of building a scalable CSV importer, and we know that many others face the same challenges. Our goal is to solve this problem by taking an open source AI and developer-centric approach<p>Who can use YoBulk:<p>YoBulk is a highly beneficial tool for a variety of professionals, such as Developers, Product Managers, Customer Success teams, and Marketers. It simplifies the process of onboarding and verifying customer data, making it an indispensable asset for those who deal with frequent CSV data uploads to a system with a predetermined schema or template.<p>This tool is particularly valuable for updating sales CRM or product catalog data, and it effectively solves the initial challenge of customer data ingestion.<p>The Problem:<p>Importing a CSV is a really hard problem to solve. Some of the key problems are:<p>1.Missing of Collaboration and Automation in CSV importing workflow:<p>In a usual situation, the customer success team responsible for receiving CSV data  has to engage in extensive back-and-forth communication with the customer to address unintentional manual errors present in a CSV. This process requires a high level of collaboration and may even necessitate assistance from the customer&#x27;s internal teams to correct the data. The entire workflow is currently manual and therefore needs to be automated.Being able to quickly see data errors and fix them on the spot in a collaborative way with the customer is the way forward.<p>2.Scale:CRM CSV files can sometimes reach sizes as large as 4 GB, making it nearly impossible to open them on a standalone machine for data correction. This presents a significant challenge for small businesses who cannot afford to invest in big data technologies such as EMR, Databrick, and ETL tools to address CSV import scaling problems.<p>3.Countless complex validation Types ::A single date format can have as many as 100 different variations, such as dd-mm-yyyy, mm-dd-yyyy, and dd.mm.yyyy. Manually setting validation rules for each of these formats is almost impossible, and correcting errors manually can also be difficult. Additionally, it can be challenging to comprehend errors without a human touch. Cross-validation between fields&#x2F;columns is always a challenge in a specific CSV. For example, if a CSV contains two fields such as first name and age, creating custom validation to flag an error if the first name is missing and the age is greater than 50 can be really difficult.<p>4.Data mapping issues:In a typical scenario, the recipient of CSV data provides a template to the data donor and creates a CSV column to template mapping before importing. However, in many cases, the CSV column names do not match the corresponding template column names. For instance, the data receiver may provide a field labeled &quot;EMP date of Joining,&quot; but the uploaded CSV may contain a field labeled &quot;EMP DOJ.&quot; These mapping issues can significantly slow down the CSV importing process.<p>5.Data Security and Privacy:It is always risky to share your customer data with third-party companies for data cleaning purposes.<p>6.Non-availability of low code&#x2F;No code tool: Product managers and customer success teams, who are typically no-code users, often rely on data analysts to create a programmed CSV template with validation rules, which must be shared with customers to receive CSV data in a specific format. However, in an ideal scenario, no-code users should be able to create a template independently, without depending on developers.<p>7.Vague error messages:Unclear error messages do not provide users with enough context to confidently resolve their issues before uploading their data. Without a specific explanation of the problem, users may have to try various fixes until they find one that works.Example:while uploading a CSV file to a portal, I had received an error like “baseID is null”.i was clueless:)<p>The Solution:<p>1. Smart Spreadsheet View: Designed to be a data exchange hub for any business that utilizes CSV files, YoBulk makes it easy to import and transform any CSV into a smart spreadsheet interface. This user-friendly interface highlights errors in a clear, concise manner, simplifying the task of cleaning data.<p>2. Bring your validation function: YoBulk offers a platform for Developers to create a custom CSV importer that includes personalized validation rules based on JSON schema. With this functionality, developers can design an importer that meets their specific needs and preferences.<p>3. AI first : YoBulk  harnesses the power of OpenAI to provide advanced column matching, data cleaning and JSON schema generation features.<p>4. Build for Scale: YoBulk is designed for large-scale CSV validation, with the ability to process files in the gigabyte range without any glitches or errors.<p>5. Embeddable: Take advantage of YoBulk&#x27;s customizable import button feature, which can be embedded on any SaaS or App. This allows you to receive CSV data in the exact format you require, streamlining your workflows.<p>Hosting and Deployment:<p>YoBulk can be self hosted and currently running on Mongo.<p>Github : git clone git@github.com:yobulkdev&#x2F;yobulkdev.git<p>Getting started is really simple :<p>Please refer <a href="https:&#x2F;&#x2F;doc.yobulk.dev&#x2F;GetStarted&#x2F;Installation" rel="nofollow">https:&#x2F;&#x2F;doc.yobulk.dev&#x2F;GetStarted&#x2F;Installation</a><p>Docker command:
git clone <a href="https:&#x2F;&#x2F;github.com&#x2F;yobulkdev&#x2F;yobulkdev.git">https:&#x2F;&#x2F;github.com&#x2F;yobulkdev&#x2F;yobulkdev.git</a>
cd yobulkdev 
docker-compose up -d
Or
docker run --rm -it -p 5050:5050&#x2F;tcp yobulk&#x2F;yobulk
Or
git clone <a href="https:&#x2F;&#x2F;github.com&#x2F;yobulkdev&#x2F;yobulkdev">https:&#x2F;&#x2F;github.com&#x2F;yobulkdev&#x2F;yobulkdev</a>
cd yobulkdev
yarn install
yarn run dev<p>Also please join our community at :<p>- Github : <a href="https:&#x2F;&#x2F;github.com&#x2F;yobulkdev&#x2F;yobulkdev">https:&#x2F;&#x2F;github.com&#x2F;yobulkdev&#x2F;yobulkdev</a>
- Slack  : <a href="https:&#x2F;&#x2F;join.slack.com&#x2F;t&#x2F;yobulkdev&#x2F;signup" rel="nofollow">https:&#x2F;&#x2F;join.slack.com&#x2F;t&#x2F;yobulkdev&#x2F;signup</a>.
- Twitter : <a href="https:&#x2F;&#x2F;twitter.com&#x2F;YoBulkDev" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;YoBulkDev</a>
- Reditt  : <a href="https:&#x2F;&#x2F;reddit.com&#x2F;r&#x2F;YoBulk" rel="nofollow">https:&#x2F;&#x2F;reddit.com&#x2F;r&#x2F;YoBulk</a><p>Would love to hear your feedback &amp; how we can make this better.<p>Thank you,<p>Team YoBulk