Idea: Upsert component

A new component that looks like a table, but… 1) allows the user to pick the fields in the component like the table component does now 2) automatically creates a UI only model that is mapped to the fields chosen in the component 3) allows for manual record creation/updating through data entry 4) allows CSV upload to the UI only model 5) once all data is entered/loaded into the table, user hits the “upsert” button and all The fields in the UI only model are pushed to the target model and saved to the database.

Hi Raymond! I think there are a number of interesting features wrapped in this, each of which could be its own thing. CSV upload in particular. How many records are you wanting to upload for your use case?

There have been various use cases that come up from time to time where we have needed to mass update records based on info from another database or make manual adjustments to records in mass. Some of this is handled by the existing “mass update” function on tables, but I would love a cloud-based, user-friendly option for importing records, reviewing the imported records and committing to the database. Data loader requires a download an is kind of a cluster to use when you aren’t used to it.  Some use cases call for a few dozen records to be updated and others call for a few hundred, others a few thousand. There are obviously some big data issues with this concept, but you could probably do something like you do for exporting where you pull in groups of records at a time and write them to the export so that you can successfully export thousands of records. If you could pull in 200 rows at a time from a CSV, then commit those to the database, then load then next 200 and commit those, then the next 200…etc… you could load thousands of records. Maybe give the user the option of reviewing each record batch before they are committed or just committing the whole CSV file without review.

A few ideas I forgot to put in my suggestion was :

  1. to automatically load into the UI only model the required fields for the object as you cannot create new records without those fields. 
  2. create a process for creating records in related/parent objects. For example, in order to import a new contact record that is associated with a new account, you have to create the account record first.  We have many objects that use Contact as either a related object or a parent object.  Having a system that would say “The object you are importing to has the following parent and related objects. Select the related objects for which you would need to create new records”.
    3)Then during the upsert process an alert that would say “You are trying to create new records that have parent relationships to another object but no parent record specified. Please review the records below and choose a parent record to associate with each.” Then it would display a table with the record you are trying to create and the first field would be the parent relationship field and could select the parent just like you can currently in edit mode. AND there would be a plus sign icon to the left of each row where you could create a new parent record if one did not already exist. 
  3. Optional auto-pairing to parent and related records based on Name, Email, phone, address, or custom fields.“Choose the field that you would like to auto-pair these records to their matching parent or related records”