Change Log
A record of all notable changes made to the application.

  • Updated DPA to add Europe Data Residency option.

  • Added the option to select Europe (Germany) location for data residency. More info here.

  • Added Hebrew language for importer frontend

  • Added Time Column type validation.
  • The 100 column sheet restriction removed.

  • Added Virtual Columns. Create new columns by applying custom data transformation logic.

  • Added the Romanian language option for the importer frontend

  • You now have the option to specify a default filler value for the column in case the incoming data is blank.
Default Value

  • Added domain authorization option. You can provide a list of approved domains/sub-domains for embedding the importer. The embedded importer will work on the whitelisted domains only.

  • Added functionality to configure custom success or failure messages at import complete. More info here.

  • Added the Thai language option for the importer frontend.

  • Added options for controlling the close of importer dialog after the import is complete.

  • Added column_mappings object to the import complete webhook and the callback function. The column_mappings object contains the user-defined mappings between the columns of the sheet (template) and columns in the uploaded CSV file.
  • Added the Import ID column in the table on the Imports page of the CSVbox dashboard.
  • The dynamic columns now support multiple date validation.

  • Added an Export button that downloads the validation errors and row data in an Excel sheet. More info here.
  • Updated importer UI to show the truncated row count.

  • Added Max Rows option to the importer dashboard. It limits the number of rows per import.

  • Added phone number validation based on the libphonenumber.js library.
  • Minor UI changes to the import modal. Changes include:
    • The importer modal is now full screen across all devices.
    • The column mapping table & validation error text are center-aligned for better visibility.

  • New styling options added - upload logo and custom fonts.

  • Added the Arabic language (ltr) support for the importer frontend.

  • Added option to allow displaying the import fail error messages to the end-user.

  • Added Primary Color custom theme option. You can stylize the importer with the primary color of your brand. More styling options coming soon.

  • The importer will attach the custom user attributes as query parameters to the Dynamic List API request. csvbox_ prefix will be added to the custom user attribute query parameters. This will help you identify the users/environment and return back a relevant list of values.

  • Added Upsert operation to MySQL, PostgreSQL and MS SQL data destinations. Instead of directly inserting the file data to the databases, the importer will first check if the record exists. If the record exists, then the row will be updated. Only if the record does not exist then a new row will be added.

  • Added Dynamic List column type to accept valid list values via API, real-time.

  • New display options for the 'Select Header Row' page of the importer.
DIsplay options
  1. 1.
    Skip this step? - Hide/Show the 'Select header row' page to the users.
  2. 2.
    Show encoding - Hide/Show the character set selection list to the users.
  3. 3.
    Switch Row/Columns - Hide/Show the option to switch rows and columns to the users.
These settings help to remove the non-essential options from the importer and make the user experience cleaner.

  • Added the option (DELETE button on Accounts page) to delete and close down the CSVbox account permanently.

  • Added 'Multiple' option to Date Type columns. With this, you can provide multiple date formats that are allowed for the incoming data.

  • Added the option to receive the CSV data in JSON format in the callback function. More info here.

allow_invalid option

  • Ability to add help texts for each page (header selection, column mapping, data validation) on the importer
Help text on Select Header page

  • Fixed issue related to freezing of the importer
  • Updated the code from Laravel 8 to Laravel 9
  • Added new layers of database security
  • Fixed issue related to the downloading of the template files
  • Added custom attribute mapping for Airtable
  • UI enhancements

  • Custom message for regex validation.

  • Portuguese language support for the importer frontend.
  • language sheet option to select the frontend language while initializing the importer.

  • You can now view the translated texts for all supported languages and submit suggestions for changes.
Language Correction

  • Dutch language support for the importer frontend.

  • Unmapped Columns: Allowing users to submit columns not included in the sheet template.

  • Header row selection step in the importer.

  • Importer internationalization. The importer now supports German, French and Spanish languages.

  • max_rows config option to restrict the number of rows uploaded in a single sheet.

  • Included 'Custom' validation option for Date Type columns. Date formatting options available here.

  • Option to add data manually up copy-pasting from any spreadsheet.
Copy paste table data

  • The option to transpose (switch) rows and columns in the user datasheet. This helps to accept spreadsheets having horizontal data.

  • The list type column can now accept any number of valid values. Developers can configure the values via a CSV file.
  • The end users can search/select the list values from a popup.
List value selector

  • Made boolean column type case insensitive

  • Fixed dashboard bugs
  • Fixed UI bugs of the importer
  • Added Display Labels to List Column Type.

  • Usage stats on the app dashboard

  • The display order of the columns in the importer can now be changed by simply drag-dropping in the dashboard.
  • Ability to add rows directly in the importer.
  • Added Column Info Hints. Info Hints are help tooltips that will get displayed when the users hover the mouse over the Column Name (or click it) in the importer. They are useful to convey additional information about the Column.
Info Hints

  • The settings now allow skipping of the CSV data to be stored in csvbox s3 storage.
Skip S3

  • Multiple Encoding support. The users can now select/change the Character Set when they upload a CSV.
Select Character Set
  • Display options for adding customizable title, help text and downloadable sample CSV on the importer.
Display Options

  • VueJs integration.

  • Increased the size of the file drop area on the importer.
  • Required columns will now have a * mark on the column mapping page of the importer.

  • Intermitted failed imports problem. It was related to the Cloudflare CDN issue.

  • 'Remove All' button to delete the invalid rows all at once.
Remove All button
  • Big-endian validation for date type columns.

It was been a busy month for the csvbox team as we reworked the entire architecture and introduced some new features.

  • A new Plus plan with an increased limit of 500,000 rows per import
Plus Plan
  • Intelligent Column Mapping - Based on the historical columns mapped by the users, the importer will now automatically map the columns for new imports so that the users don't have to.
  • Matching Keywords - You can provide a set of keywords as alternative matching options to help users match column names automatically. For example, let's say you have a column name 'First Name'. If you think a lot of your users might have sheets with columns as 'F_Name' or simply 'First', then you can add two matching keywords 'F_Name' and 'First'. The importer will then automatically match columns to the specified keywords to speed up column mapping.
  • MySQL Data Destination - Push customer CSV data directly to your MySQL Database Tables.

  • UI bugs

  • In addition to the Column Name, you can now add Display Label for any sheet column. Display Labels will replace the Column Names in the header row that the user will see while doing an import.

  • Fixed Date validation bug.

  • Angular Integration

  • React Integration

  • A new Data variable is returned via the callback function of the integration code. This variable contains the details of the completed import. More information here. This change is backward compatible with the old integration code.

  • Fixed UI bugs.
  • Optimized importer for faster speed.

  • New column type 'List'. You can now specify a list of allowed values for a column. The importer will validate the column data with the list of values configured.
  • Min, Max values validation for Number type columns.
  • Min, Max character length validation option for Text type columns.

  • A sheet copy button to quickly make duplicate sheets.

  • A new optional method setUser() to the sheet integration code. With the setUser() method you can reference the user by providing the value to the user_id option. This helps you identify and match imports to their respective users from within your system.

  • Updated pricing plans.
New Pricing Plans

  • Support for adding custom headers for all webhooks.

  • Fixed a few edge case data input scenarios for CSV files.
  • Improved the speed of import.

  • Boolean, Regex, IP, URL, Credit Card type validations for sheet columns.

  • branding for paid plans.

  • Amazon S3 destination type. You can now push the user uploaded files directly to your S3 bucket

  • Encryption for the user-uploaded files.
  • Validation check for restricting files more than 15MB in size.

  • Enhancements for faster uploads

  • Settings page under the top right menu
Settings Page
  • Delete Files Policy to provide an option to get all the user files deleted as soon as the upload is complete.
File Delete Policy

  • Filter UI on the Import Page

  • Date type validation for the sheet columns

  • UI bugs on the importer widget

  • You can now subscribe to a webhook that will be triggered each time an import event is completed.

  • CDN file caching problem.

  • Added a callback function to the sheet integration code. This function will be invoked client side each time an import event is completed.

  • UI errors on the Imports page.

  • Location of the plans page. Moved it under the User menu.

  • Introduced to the world
Copy link
On this page
30 Sep 2022
22 Sep 2022
05 Sep 2022
01 Sep 2022
30 Aug 2022
26 Aug 2022
25 Aug 2022
24 August 2022
23 August 2022
16 August 2022
10 August 2022
08 August 2022
03 August 2022
01 August 2022
29 July 2022
22 July 2022
20 July 2022
07 July 2022
01 July 2022
30 June 2022
29 June 2022
27 June 2022
24 June 2022
23 June 2022
22 June 2022
10 June 2022
30 May 2022
23 May 2022
20 May 2022
19 May 2022
12 May 2022
11 May 2022
04 May 2022
02 May 2022
26 April 2022
22 April 2022
13 April 2022
07 March 2022
01 March 2022
23 February 2022
22 February 2022
11 February 2022
08 February 2022
07 February 2022
03 February 2022
17 January 2022
10 January 2022
4 January 2022
29 December 2021
15 December 2021
07 December 2021
26 November 2021
14 November 2021
28 October 2021
11 October 2021
05 October 2021
28 September 2021
15 September 2021
09 September 2021
31 August 2021
30 August 2021
26 July 2021
20 July 2021
13 July 2021
07 July 2021
30 June 2021
11 June 2021
09 June 2021
28 May 2021
24 May 2021
21 May 2021
18 May 2021
29 April 2021
20 April 2021
12 April 2021
19 Mar 2021
03 Mar 2021
18 Feb 2021
10 Feb 2021
20 Dec 2020
14 Dec 2020