The non-interactive group import allows your IT Manager to set up a rolling group import and update facility between your school's administration system and Infiniti. This is a "set and forget" import facility which, once set up, will run according to the schedule implemented by your IT Manager. This process allows your school software to 'push' a file of records into Infiniti at scheduled intervals. A non-interactive manual user import is also available as an alternative method for importing patrons by manually importing a CSV file.
All patrons require a basic profile to be registered. Patron profiles can also be registered or updated via manual entry, manual import or non-interactive import.
Before Getting Started
Infiniti's non-interactive patron import and update tool provides your school with a means of automating the synchronisation of patron information from your Student Management System or other appropriate source. Much like the interactive patron import, this automated process accepts CSV (Comma Separated Value) files that you, or your IT team, have generated from your internal systems.
This facility utilises a script created and scheduled by the school's suitably qualified IT Technician. The script is not intended for use by library managers or library staff and does not run in a browser. As an alternative, you can choose to use the interactive patron import.
Prior to commencing the setup of automatic patron import and update please ensure you are familiar with the following:
- How to extract information, in CSV format, from your Student Management System or data source.
- The use of your preferred scripting tool and language.
- Basic knowledge of cross-platform non-interactive web agents (we recommend cURL or similar).
- You school's Infiniti URL, this will be similar to the following: yourschool.concordinfiniti.com.
- The username and password of an account in your school's Infiniti with system administration privileges.
enabled [boolean]: Is the patron an active user of Infiniti. y, yes, true, 1= True ; n,no,false,0 = False
staffmember [boolean]: Is the patron a member of staff. y, yes, true, 1= True ; n,no,false,0 = False
presentationgrouplabel [varchar]: The presentation group (by the group's unique label) that the patron may belong to. A patron can only belong to one presentation group at a time.
username,givenname,surname,middlename,preferredname,emailaddress,graduationyear,librarybarcode,adminsystemid,gender,password,formclass,enabled,staffmember,presentationgrouplabel jdoe1,Jane,Doe,Mary,Jane,jdoe1@yourschool.com,2016,123456,123456,F,changeme,12A,Y,N,style1 mhenry1,Mark,Steven,Henry,Henry,mhenry1@yourschool.com,2018,123457,123457,M,changeme,10C,Y,N,style2
The Non-interactive Script
Once your CSV is ready your import script is prepared by a suitably qualified IT technician and will HTTP POST a CSV file of users, extracted from your student administration system or similar source of user data, to this URL: https://[school.concordinfiniti.com]/api/import/users.
Infiniti will treat the first multi-part file of the HTTP POST as the CSV file - the file name and form attribute name of the post are ignored. The CSV file may be empty; for schools performing scheduled incremental imports.
The action is protected by HTTP Basic Auth over SSL/TLS. You will need to provide the username and password of a new or existing user with system administration privileges in Infiniti. Good practice would be to create a new user in Infiniti, e.g., autoimport, and grant this user system administration privileges. As SAML Single Sign-On requires a browser, the credentials for this user cannot be verified via SAML; one of the other credential sources will be required.
Your school's script can be implemented in any fashion chosen by your IT technicians. An example of how a script may post the CSV file to Infiniti is the cURL application, a cross-platform non-interactive web agent:
curl -X POST -F "file=@users.csv" https://[user]:[password]@[yourschool.concordinfiniti.com]/api/import/users
The user CSV file will be processed in the same manner as the interactive import. You should refer to data requirements and system settings for manual interactive user import before running the script.
Results of Processing
A sample csv import file for existing users in Infiniti could look like:
username,password,emailaddress,formclass jane,swordfish,jane@gmail.com,10A john,password1,john@gmail.com,10B
When complete the script will produce a JSON result array:
'success' - Whether all user records imported without error
'summary' - A summary of the import action; successful or otherwise.
'details' - An array of each user row outcome. Only included if some rows failed to import. "row number" -> "row outcome"
A JSON result array can look like:
{"success":true, "summary":"100 users processed. 50 users created. 50 users updated. 0 users failed."}
or
{"success": false, "summary":"Unauthorised. Check credentials."}
or
{ "success": false, "summary": "3 users processed. 1 user created. 1 user updated. 1 user failed.", "details": { "1": "User Updated", "2": "Field (emailAddress) is not a well-formed email address. User failed to import: Field (emailAddress) is not a well-formed email address. ", "3": "User Created" } }