Importing library patrons into Follett


Follett/Destiny has its own documentation on the process of importing patrons into its online database, which is not very helpful.

Below are instructions on how you actually do it, based on trial and error and various calls to customer service for more details on the process that aren’t actually documented anywhere.

Getting the Site Short Name

First of all, log in as the administrator for your account and click on List all sites, and then select the site you want to import into.

Click Back Office, and then on the left side bar that appears, click Site Configuration. On the row of tabs, find and click Site Info.

You should find your site’s Short Name there. You will need to note that name for later.

Here’s where things get confusing.

Even though you’ll see an Import Patrons option on the left sidebar, apparently (according to customer service) you’re not supposed to use that to import patrons.

Creating the XML to upload, method 1

You may want to do method 2 first so you can see what an example XML file looks like, but once you do that, you can also just create the XML directly out of PowerSchool to save you steps (and so you don’t need a Windows machine every time you want to do an export/import). Here’s an example PowerSchool custom page that creates the XML. Obviously, tweak to suit your own school’s needs.

Note that you may see in your web browser what appear to be extra spaces in the XML file. Once you download it to your computer and open it with a text editor, the spaces should be gone, though.

Creating the XML to upload, method 2

This is the long method, but you may want to do this at least once so you have a template for the shorter method mentioned above.

First, you want to create a .csv file like this:

Site Short Name,Barcode,District ID,Last Name,First Name,Middle Name,Nickname,Patron Type,Access Level,Asset Group,Status,Gender,Homeroom,Grade Level,Card Expires,Acceptable Use Policy on File,Is Teacher,User Defined 1,User Defined 2,User Defined 3,User Defined 4,User Defined 5,Graduation Year,Birth Date,User Name,Password,Email 1,Email 2,Address 1 Line 1,Address 1 Line 2,Address 1 City,Address 1 State,Address 1 Postal Code,Address 1 Phone 1,Address 1 Phone 2,Address 2 Line 1,Address 2 Line 2,Address 2 City,Address 2 State,Address 2 Postal Code,Address 2 Phone 1,Address 2 Phone 2
YOURSITESHORTNAME,ABUNCHOFUNIQUEBARCODES,,ALASTNAME,AFIRSTNAME,AMIDDLENAME,,,,,,F,,9,,,,,,,,,2021,20030101,SOMEUSERNAME,,SOMEEMAIL@YOURSCHOOL.EDU,,,,,,,,,,,,,,,
Obviously, fill it with real data. The YOURSITESHORTNAME would be the Short Name you looked up earlier, and that will be the same for all patron records. The bar codes should be unique. In theory, I think you can auto-assign them, but we had some issues with that, so just pick some unique IDs that are 14 characters or fewer (numbers work). Dates need to be in the YYYYMMDD format.

For some reason, though, you can’t just straight upload the .csv—you have to convert it to XML first using a special converter application that runs only on Windows. You can find the converter in this bundle. In order for it to run, you’ll have to download and install the latest Java.

When you launch up the converter, click the Browse button next to Choose CSV file to transform and find your .csv file.

You will likely have a header row (and should), so be sure to change Data begins on row to 2 instead of 1.

In the Field Mapping tab, you’ll unfortunately have to manually map each field, even though your column headers match exactly what the Destiny field names are. Just pick the appropriate field for each one in the drop-down menu for the CSV Input Field column.

In the Patron Matching tab, select Site short name & Barcode for Math patrons using their.

Then click the Save button so you won’t have to re-match the fields every time you want to do an upload.

Finally, click Run, and it will create an uploadable .xml file.

Uploading the XML

One more counterintuitive thing: you don’t upload through your administrator login. There’s a separate login just for importing, which you’ll have to get from Follett/Destiny. Log in with that login and click on District. Then click on Back Office. On the sidebar, find and click on Update Patrons.

Then, next to Update File, click Choose File and find your .xml file. Click Update Patrons and then wait for the upload to finish. To check on the progress, continually click Job Manager (on the sidebar).


5 responses to “Importing library patrons into Follett”

  1. The header consists on 7 fields whereas the csv consists of 15 fields for me. When I try to import patrons with the xml file created with patron import converter I get an error stating “The header for this import file is not formatted properly. The first line of the import file must contain exactly seven (7) fields.” What am I doing wrong?

    • I have no idea. I just documented what worked for us. That said, you don’t need a CSV or to use the converter. As I mentioned above, as long as you can generate the proper XML file yourself, you can ditch the converter completely.

      • Thank you for replying Alan. Do you have an XML file showing where the header lies so I can work off of it?

        • Have a look at the PowerSchool export template. Just take out all the tlist_sql stuff and replace ~(NAMEOFFIELD) with actual data.

    • Hi! I also encountered that error, but i solved it with this tutorial.
      Just follow the this:
      Uploading the XML
      One more counterintuitive thing: you don’t upload through your administrator login. There’s a separate login just for importing, which you’ll have to get from Follett/Destiny. Log in with that login and click on District. Then click on Back Office. On the sidebar, find and click on Update Patrons.

      Then, next to Update File, click Choose File and find your .xml file. Click Update Patrons and then wait for the upload to finish. To check on the progress, continually click Job Manager (on the sidebar).

Leave a Reply to Alan Siu Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.