Importing Customer, Reservation or Transaction Data |
Top Previous Next |
The Import function can be found on the main menu: File / Import / Import Customer/Reservation/Transaction data. You must have Administrator access to use this function.
IMPORTANT: Make sure you have a backup before doing the import, so you don't have to manually delete data if a mistake is made!
There are two primary requirements for the data to be imported:
1. It must be in either a comma-separated-value (CSV) or tab-delimited (text) format. If it's a CSV format, make sure that any fields with commas are enclosed in double-quotes, like "comma,comma" (this is the standard). If the field also has the double-quote character in it, then the quotes must also be doubled-up, like "comma,comma and a quote:"" embedded".
2. The fields must be in a form that equates to the fields in Campground Master. For instance, Site names (if importing reservations) must match either the Site Name (Full Name) or Abbreviation fields of the sites you've defined in Campground Master. There are some special-purpose import fields that can be used if the name is not separated into First/Last or if the City/State/Zip is all in one field.
Importing Customers vs. Reservations
Keep in mind that customers and reservations are separate in Campground Master. Reservations are "linked" to customers, but the customer data is in a separate table. Reservations also include the site number and dates of the reservation. Likewise, Transactions are separate but linked to the reservations.
You can import just the customer data from a customer list, or you can import the customers along with reservations at the same time if your import file contains the necessary information. You will see when defining the import fields (below) that there are two sets of fields -- one for Customers and one for Reservations. If you're importing just the customer data, then you will only select fields for customers.
If the import data has sites & dates information, then you can also import the reservations by selecting the reservation fields. You must have a first night and last night for the reservation, and preferably a site for it also (otherwise they will all be "unassigned" and you will need to assign each one to the appropriate site manually). When importing reservations, it will first create a customer record (checking for duplicates), and then will create a reservation record for that customer. If your import data has multiple reservations for a single customer, that's fine -- it will create the customer only once, and will create multiple reservations for it.
Sometimes the data to be imported is separated into two separate files -- one for customers and one for the reservations. This will work as long as there is a unique identifier field for each customer (often called an "index" or "key"), and the reservation file uses that identifier as a link to the customer. Alternatively, if the reservation data has at least the customer's last name and first names, that can be used to link the reservations to the correct customer.
If there is a unique customer ID, then you will need to enable the "Cust Import ID" field so it can be imported. See Maintenance / Data Field Definitions / Customer Fields. Import the customer data file first, and be sure to import this ID field along with the other customer information. Then import the reservation data file, again selecting the customer Import ID field for the appropriate column so it can associate each reservation with the proper customer.
There is also a Resv Import ID in the Reservation fields. This field is important if you want to import transactions and the transactions are in a separate file from the reservations (assuming there's a reservation ID link for each transaction in the transaction data file). If this is the case, enable the Resv Import ID field and import it along with the other reservation data. Then use that field when importing transactions to identify the reservation for each transaction.
After all of the importing is done, we recommend that you disable the Import ID fields again since they're no longer needed. This will save space in the database.
Importing Transactions
Transaction importing requires some special handling, detailed below. Most likely you will need to create a special file suitable for importing transactions, so that the proper fields exist. The importing capabilities are limited to records with similar information and organization to Campground Master's transaction data, so this may require some custom programming to accomplish.
1. Transactions can only be imported if Reservations have previously been imported. If only Customer data is imported, Transactions cannot be imported because there must be reservations for the transactions to be assigned to.
2. Transactions must be imported separately from reservations, even if they are in the same file -- import reservations first, then start the Import over and import the transactions.
3. The import file must include the Reservation Confirmation # field for each transaction (and optionally the Site can be included), matching the imported reservations (and these must be assigned to columns along with the Transaction fields). Alternatively, it can include just a unique ID, or index, for the reservations. This is how the transactions are matched up with the reservations so they can be applied properly. Multiple transactions may be imported for each reservation as needed.
4. If the import file does not have the transaction Type and Category fields, all transactions will be assumed to be Deposits. As with other imported values, the Type and Category names imported must exactly match the one of the pick-list values in Campground Master. Of course a Total field is required as well for transactions, which is often the only thing imported, such as a deposit balance. If a Qty is available, a Qty field plus an Each field can be used instead of Total (it will calculate one from the other as needed). The rest of the Transaction fields are optional.
Importing Customers from QuickBooks
You can import a customer database from QuickBooks accounting software using this same Import function. First you need to export the data from QuickBooks using its Export Addresses function: File -> Utilities -> Export Addresses. You may see a prompt for selecting the names to export, in which case you should select All Customers/jobs from the list (you don't need to vendors and employees, and probably don't need "other names"). Then click OK and enter a file name to export to, such as "Customers.txt". This will be a tab-delimited file that can be used for importing below, and will have appropriate address/city/state/zip information if you entered this data uniformly into QuickBooks.
The Import Process
There are several easy steps to importing.
1. Select a file. You can enter the entire path to the import file, or use the Browse button. When browsing, it will look for .csv and .txt files by default, but you can change the file type to show all files if needed.
2. Select the file format. Select either comma-separated or tab-delimited. Don't worry if you get it wrong -- the data will obviously look wrong when you import it if you choose wrong, and you can simply change this selection and do the Import again.
3. Load the file for preview. Click the Load Import File button to read the data. The data is not actually added to your database yet, it's just loaded in the list on the dialog for previewing and editing.
4. Define fields to import. If the file loaded successfully you should see the data in nice columns in the table. If the import file had headers in it, you'll even see the headers in the first line, like "first name", "last name", "city", etc. Now comes the important part -- you have to decide what each column means, in terms of Campground Master fields. This is usually pretty easy to do. Just right-click on each field (either the header or the actual data), and then select the field that corresponds to that column. Customer, Reservation and Transaction fields are listed separately, and there is also a separate list for Site Preferences (primarily used for preferences that might affect the charges, like 50A service). The column header will then change to that name so you know you've defined it. You don't have to assign fields to each column -- just skip any that you don't need or don't have corresponding fields. If you make a mistake, use the Remove function on the right-click menu. See the notes below for more details.
5. Select fields to use for duplicate-removal. When the data is imported, duplicate customers will be automatically removed if possible. This not only applies to data you're importing, but also to any customers already in your database (it won't remove duplicates from your database, but it will avoid importing duplicates.) This requires at least a Last name and First name field (the data isn't much use without those anyway). You can also choose to check the Zip code field and/or the Address line 1 fields, to avoid filtering out common names like John Smith unless they live at the same place. If you uncheck these fields, or if they're not available in the imported data, then it will assume any that match first and last names are duplicates.
6. Convert names/addresses to mixed case or upper case. Other programs may force or suggest that customer information be all upper case, which is easier to enter but is not as professional looking on receipts, and also takes up more room so less information can be shown on the Rack before it has to be truncated. So you may want to decide to start entering the information in mixed-case, and you can also have the import function convert the old information. Conversely, you can make sure that all of the old information is in upper case if you wish to keep with that procedure. Note that this only affects the data during this session, not data already entered or previously imported into Campground Master.
7. Edit data if needed. The preview list is fully editable, so you can delete any records that you don't want to import (like obvious duplicates or blank records), and you can even enter corrections as needed here before importing. Just click on a field to select it and start typing to replace it, or click twice to edit the value without replacing it. Likewise, just click any field on a row and click the Delete Selected Records button to delete the record. (Ctrl-click for multiple selection also works.) Note that if the import file included a header row with field names, you should also delete that row so you don't get a customer that's just the field names.
8. Import the data. When everything looks right, click the Import Data! button to perform the import. You may see an error or warning prompt about duplicate filtering or field definitions if there seems to be something missing. As the data is imported, you will see customer/reservation totals and a duplicate total count up at the bottom.
Handling Errors -- When the import is complete, all records imported are removed from the list, but there may be some records left over in the list and a message saying that some errors were detected. To see why a record was not imported, just hold the mouse over the record in the list -- an error message will be shown with the reason for the error. Errors are typically a result of records that don't have a last name (required by Campground Master), or for sites that weren't recognized (if importing reservations), or dates that were not formatted properly. You can ignore them and close the dialog, or you can manually edit the records and run the Import again, as many times as needed to get them all imported. It's also common to have errors if you're importing Pick List fields like Rig Type, if the imported value doesn't match one of the values in your Pick List (see below for more details).
When all is finished, just Close the dialog -- the data is imported to the database and the reports will be refreshed if necessary.
Notes on Importing Reservations
Reservations are tricky to import because many of Campground Master's reservation data fields are unique, and the software must make certain assumptions. As mentioned above, the primary criteria is that the site names must match. If this isn't the case and you have a lot of reservations you would like to import, you might adjust the site names temporarily to match the data to be imported, and then change them back. (Using copy/paste to and from a spreadsheet like Excel can make it easy to change them back to what you wan after importing the data.)
IMPORTANT: If you don't assign a field to be the site name, or if the site name for any reservation is empty, then the reservation will be made "unassigned" and you will have to assign the site yourself after import. If the reservation has a site name but it just doesn't match one in the database, it will not be imported and will be left in the list as an error.
The dates must also be formatted properly, and the imported data must contain at least a first and last date. It's also important that you know whether the "last" date is the "Last Night" the way Campground Master defines it, or if it's the "leaving" date (Last Night + 1). You can choose either Last Night or Last Night+1 for that import field accordingly. If there is "extra" data after the date (some programs export a timestamp after the date), that's fine -- anything after the first blank space ignored. (There's one exception -- for the "Date Made" reservation field, if the time is detected in the same field after the date, that will be used to fill the Time Made field automatically.)
The date order (mm/dd/yyyy or dd/mm/yyyy) will be assumed to follow your computer's international date settings -- for instance in Canada, the date is assumed to be dd/mm/yyyy. There is a little flexibility in the date format -- for instance, dashes or periods can be used instead of slashes, and there doesn't need to be leading zeroes or centuries (e.g. 1/3/02 is fine). The date can also have the year first as long as it's 4 digits, e.g. yyyy/mm/dd or yyyy-mm-dd (in this case the month is always assumed to be 2nd). The date can also be in "long" format, with the month name (at least the first 3 characters of it), the day of the month, a comma and the year as 2 or 4 digits. For instance, "July 5, 2005" or "Oct. 10, 05".
Since reservation status cannot generally be imported unless the imported status names match the Campground Master status names (except in the case of ReserveRight or GuestTracker), the program will assume that any reservation ending prior to today is checked out, and any reservation starting after today is pending. Any that cross today will be checked in automatically. Of course none of these will have transactions, so transactions will have to be added manually if needed. The "operator" field for check-ins and check-outs will be set to "(imported)", and the date/times for the operations will be set to reasonable values (the check-in date will be the actual start date, check-out date will be the end date). If a confirmation number is not imported for a reservation, then one will be generated for it.
If the imported file contains multiple reservations for the same customer, then duplicate customers will be "merged" properly and the reservations will be applied to a single customer (according to the duplicate-filtering rules mentioned above). Likewise, if the customer already exists in the database, the reservations will be added to that existing customer.
Duplicate reservations are also detected to a certain extent. It will check for a reservation with the identical site, dates, customer, and type, in case the same reservation was already imported from a different record. Other fields are not checked, it simply assumes that the same customer could not have two reservations on the same site for the same dates.
Some fields can be selected more than once, and the data will be combined into the one field in Campground Master. For instance, any data that doesn't have a direct import correlation can be imported to the Reservation Notes or Customer Notes fields. Each imported field will be added to a new line in the Notes. Likewise you can combine license number & state fields into the single license field in Campground Master, or add multiple First Name fields together.
IMPORTANT: No conflict-checking is done when importing reservations, except checking for duplicates! If you already have reservations entered that conflict with imported ones, or if the imported data contains conflicting reservations, you will have to sort these out manually after importing. The Conflicting Reservations report under the Reservations menu will be helpful for cleaning these up.
Hopefully everything will go well and you'll have all of the necessary details to get started. Of course a lot of the things normally entered in Campground Master may not be there for the imported reservations if the imported data doesn't have the information (like how-heard, reservation type, etc.), but the essentials will be there to get you started.