The import feature enables users to import data or records from various sources into coreBOS. Currently, CSV, JSON and VCF (Vcard) format are allowed to import. (Exceptionally iCal import is supported for Calendar module).
Export/Import feature is enabled on almost all modules. There are a few that are still not supported like price books or FAQ and Documents whose import process is more complex and is supported by an external tool which is not free (ask us if you need it).
After clicking on Import icon, the first step is to select the file. Click on the Browse button to select a file from your local system and upload it to the server for Import. Currently, csv and vcf formats are accepted.
Following 2 sections, apply only for csv file import:
Currently comma(,) and semi-colon(;) are supported as field delimiters. This delimiter indicates the character separator used to separate field values from each other within a row. In the case that you need to use the same character in your data and do not want the tool to read it as delimiter, enclose the string in double quotes ("). Then, only delimiter characters, outside the double quotes, will be treated as actual delimiter.
The 'Has Header' property is to indicate whether the csv file has a header row or not. If you indicate that the csv file has a header, then the first row from the csv file is treated to be header and skipped from importing into the csv file. Having a header in the csv file, makes it easier for the user to map the csv columns to right CRM fields.
This is an optional step, which allows you to configure duplicate record handling during Import. You can configure the criteria, for duplicate records look up and can also configure the action to be taken when duplicate records are found.
We have implemented a new workflow expression:
executeSQL(query, parameters...)
that can be used inside a condition expression map as the following example:
<?xml version="1.0" encoding="UTF-8"?>
<map>
<expression>executeSQL('SELECT accountid FROM vtiger_account INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_account.accountid WHERE vtiger_crmentity.deleted=0 AND vtiger_account.accountname=?',substring(accountname,0,10))</expression>
</map>
This map will return the ids of the non deleted account records, whose account name matches with the 10 first characters of the column mapped with accountname in the file. Based on the Duplicates Handle Method chosen the records with the ids returned might be skipped/overwritten/merged.
The last step is to configure the mapping between the import file columns/headers to the Module fields.
Clicking on Import button in Step 4, triggers Import.
If the record limit has crossed 'Immediate Import Threshold' count, then the import is scheduled and the following message is shown:
Once the scheduled Import is completed, an email notification is sent to the user who scheduled the Import along with the Import Result.
This error shows up when the import has been interrupted for various reasons like crashed in between or canceled by a user etc. This error indicates that the import table still has records to be imported into the system, but all the information related to the import (like mapping, default values, merge criteria) are all lost. So these records can not be imported and the user needs to clear this data before starting any other import.
This error indicates that the Import on the module that user is trying to import, has been locked by another user's import. The details of the module, user and the time at which the Import has been locked, are exposed in the error message itself.
When a non-admin user triggers an import, and admin user tries to import to the same module, at the same time, admin user will not get Import locked error. Instead, admin user will be able to see the current status of the Import triggered by the non-admin user and will also be able to Cancel the import. In this case, when non-admin user is in the middle of the import and the admin user cancels the import, the error message above is shown to the non-admin user.
The format of the JSON file is an array of objects that represent the records to be imported. The properties of the object are the names of the fields for the mapping.
[
{
"Salutation": "--None--",
"First Name": "Lina",
"Contact No.": "CON1",
"Last Name": "Schwiebert",
"Office Phone": "03-3608-5660",
"Organization Name": "Chemex Labs Ltd",
"Mobile": "0487-835-113",
"Lead Source": "Web Site",
"Home Phone": "",
"Title": "VP Supply Chain",
"Other Phone": "",
"Department": "Marketing",
"Fax": "",
"Email": "lina@yahoo.com",
"Birthdate": "02-08-1992",
"Assistant": "",
"Reports To Contact": "",
"Unique Identifier": "a609725772dc91ad733b19e4100cf68bb30195d1"
},
{
"Salutation": "--None--",
"First Name": "Julieta",
"Contact No.": "CON2",
"Last Name": "Cropsey",
"Office Phone": "07-4217-6258",
"Organization Name": "Atrium Marketing Inc",
"Mobile": "0420-286-404",
"Lead Source": "Self Generated",
"Home Phone": "",
"Title": "VP Supply Chain",
"Other Phone": "",
"Department": "Management",
"Fax": "",
"Email": "julieta@yahoo.com",
"Birthdate": "07-12-1996",
"Assistant": "",
"Reports To Contact": "",
"Unique Identifier": "d9692723137a4f119c900157b38189738e692fc4"
}
]