SmartUpload is an intelligent tool that focuses on 1 goal: uploading data into Salesforce in the safest way possible.
We started with development of SmartUpload when we saw that current data loading tools for Salesforce all have gaps:
Many tools only support .CSV files. These can be very unreliable:
Users need to escape any comma's that they want to put into values
Users can switch American (mm/dd/yyyy) with European (dd/mm/yyyy) date-formats. This means that '01-04-2020' can be interpreted as “the 1st of April”, as well as “the 4th of January”.
There is no data-validation whatsoever: any input from users is put into Salesforce verbatim.
Most tools require users to map their fields to Salesforce Objects and fields by themselves, often for every single upload. This cumbersome work can be very sensitive to errors, and should be reserved for Salesforce Admins only.
Mismatches when updating data on non-ID fields, for instance on ’Name’. SmartUpload can both validate the Name-format (using regular expressions), as well as lookup IDs before updating. This means that you do not have to export IDs from Salesforce first, but can use other fields as unique keys.
This is the reason that we created SmartUpload, which mitigates all of the mentioned problems using it's unique architecture.
SmartUpload is built around the concept of the seperation of responsibilities:
An admin should define how data is imported into Salesforce using Excel templates
A regular user shouldn't be bothered with the technical details. He/she should have an easy-to-use tool where they can just upload his Excel file let the tool do the rest.
If you are a regular SmartUpload user, you do not have to have knowledge about Salesforce API names, validation rules, etc: you only need to go through a 3-step wizard to upload your data into Salesforce:
Step 1: Upload
First you upload your Excel file, and choose one of the pre-defined mappings. These mappings are prepared by your Salesforce Admin.
Step 2: Verify
SmartUpload will read your Excel file and verify if all the data in the Excel is in the corret format. It will give clear errormessages if something went wrong:
Maybe you misspelled some column headers in your Excel: SmartUpload will detect those and let you know.
Maybe you have some errors in your data, for instance dates which are actually text fields. SmartUpload will issue a warning.
Step 3: Process
If your Excel passed all validation steps, you can do a review of upload-job and finally execute it. SmartUpload will use the secure Salesforce REST API to update the data on your behalf in Salesforce.
Step 4: Results
Finally, you can see the results of your upload job: downloading the results to your PC.
To facilitate this, there are two main records that you can use within SmartUpload:
The mapping, which defines how an Excel file is mapped to Salesforce Objects, typically only created by Admins.
The Job, which defines an upload/insert job where an Excel file is uploaded by the user, and processed using a pre-defined mapping.
Because SmartUpload is set up and configured by the Salesforce Admin, he or she can define how any uploaded Excel file from users should be treated:
Which operations (update / insert) are allowed
Which fields can be updated or inserted
Which field should be used to match against when updating (this can be any field with unique values, it does not have to be the 'Id' field)
But most importantly, SmartUpload will ensure data integrity:
Using Excel's built-in datatypes, SmartUpload can verify that the provided cells are actually matching the expected data. For instance, if you wish to update 'date'-fields, you must format your excel cells to be of the 'date' type. Failing to do so will be noticed by SmartUpload and a user will be given an errormessage.
Using regular expressions, the Salesforce Admin can make sure that uploaded data is being sanity-checked first. For instance, if you have a field in your Object which should contain data in a specific format, you can use Regular Expressions to validate if the Excel uploaded by the users is matching that format.