The non-interactive contact import allows your IT Manager to set up a rolling contacts 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 contacts import is also available as an alternative method for importing patrons contacts by manually importing a CSV file.


All patrons should have an email address. This is used to communicate with the patron regarding overdue loans and for resetting their forgotten Infiniti password (if applicable). Patron accounts can be assigned multiple contacts to communicate with different members of the patron’s household.


Before Getting Started


Infiniti's non-interactive patron contacts import and update tool provides your school with a means of automating the synchronisation of patron contact information from your Student Management System or other appropriate source. Much like the Interactive Patron Contacts 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 contacts import.


Prior to commencing the setup of automatic patron contacts import and update please ensure you are familiar with the following:

  1. How to extract information, in CSV format, from your Student Management Systems or data source.
  2. The use of your preferred scripting tool and language.
  3. Basic knowledge of cross-platform non-interactive web agents (we recommend curl or similar).
  4. You school's Infiniti URL, this will be similar to the following: yourschool.concordinfiniti.com.
  5. The username and password of an account in your school's Infiniti with system administration privileges.


Import Concepts of Patron Contacts


To correctly and safely upload new patron contacts, IT technicians need to be aware of several key concepts about contact records in Infiniti.


A patron contacts can be an email address, a phone number or a social media identifier. Currently Infiniti only uses email addresses, although the other contact types can be informative for librarian correspondence with patrons. If a patron has multiple email addresses, only one of these can be (and must be) the “primary” email contact for the patron. The primary contact is the default contact in most scenarios for communicating with the patron and will be the one used for most reports, screens, and authentication mechanisms. This enforcement means, that regardless of what information you provide for a patron in a CSV file, if any information is provided at all, a primary contact role will be preferentially enforced.


Not every mode of contact import supported by interactive web import screen is supported by the non-interactive importer. Only the following import modes are supported by the non-interactive contact importer:

  • Replace Patron Contacts, and
  • Replace Patron Contacts but keep custom contacts.


Custom contacts are considered patron contacts that librarians have manually added or have modified after an import. This mode allows for script import to avoid overwriting custom contact information that doesn’t exist in the student administration system.


The CSV File


The first step in automating the synchronisation of your patron contact information is to create the CSV file which will be used by your script to import / update your patron’s contact details.The patron contacts import requires specific header column names in the CSV file.


The CSV File you upload to Infiniti through this script MUST contain the following fields:

  • username [string] - the unique identifier field used to identify each user, and the information your users enter as their username when logging into Infiniti. Users will not be created for usernames that don’t exist during a contacts import.
  • type [string] - one of “EMAIL”, “PHONE”, “SOCIAL_MEDIA”
  • contact [string] - the contact data. This will be an email address for email contact, a phone number for phone contacts, and freeform text for social media contacts.

Any row with blank contact data will be ignored. Contact data is romanised (converted to latin script) and cleared of diacritics.


The CSV File you upload to Infiniti through this script MAY contain the following fields (please refer to manual Interactive Patrons Contact import for a layperson's description of these fields):

  • role [string] - one of:
    • Patron - the patron themselves, i.e., the patron receives communications on their own behalf.
    • Guardian - the patron's guardian, i.e., the parent/guardian/carer receives communications associated with the patron.
    • Other - a contact other than the patron or a patron's guardian, i.e., the patron's teacher, counselor, or the head of school.
  • primary [string] - TRUE or FALSE. As mentioned above, Infiniti will try to enforce a maximum of one primary contact per contact type.
  • addressee [string] - if left blank for “patron” role contact, the addressee will be determined from the user's existing name attributes.
  • bcc [string] - one of: “TRUE”, “FALSE”, or “SCHOOL_DEFAULT”. If present on an email contact, this informs Infiniti whether to use Blind Carbon Copy when emailing to multiple contacts of a user. Ignored on other contact types. Assumes SCHOOL_DEFAULT if this column is missing. 
  • sms [string] - TRUE or FALSE. If present on a phone contact, this informs Infiniti that the phone number supports receiving SMS. Ignored on other contact types. Assumes FALSE if this column is missing.
  • scenarios [string] - one or more of the communication scenarios listed below, delimited by a semi-colon. The scenarios listed for contact does not mean that Infiniti will ever use a scenario for a given patron, simply that it is permitted to.


For the optional scenarios column, supported scenario values are:

  • ANY - Any existing or future communication scenario. Use this for contacts that are the sole or general purpose contact for the user. Assumes ANY if the scenarios column is missing.
  • NONE - No communication scenarios i.e., recording keeping only. This contact will never be directly used for in-system communication. Assumes NONE if the scenarios column is present but the current cell is blank.
  • CANCELLED_RESERVATION - reservation was cancelled.
  • CURRENT_LOANS_REPORT - inform all patrons of any current loans they have.
  • EXPIRED_RESERVATION - reservation expired.
  • EXPIRING_RESERVATION - reservation expiring soon.
  • LOAN_RECALL - manually recall a loan from a patron.
  • ORDER_TO_SUPPLIER - send an order to a supplier.
  • OVERDUE - inform patrons of loans that have just become overdue.
  • OVERDUE_ESCALATION_ONE - inform patrons of loans that have become overdue by a preset duration.
  • OVERDUE_ESCALATION_TWO - inform patrons of loans that have become overdue by a preset duration.
  • OVERDUE_ESCALATION_THREE - inform patrons of loans that have become overdue by a preset duration.
  • PATRON_RECEIPT - manually emailed a loan receipt.
  • PRE_OVERDUE_NOTICE - warn patrons of loans that will become overdue within a preset timeframe.
  • RESERVATION_PICKUP  - reservation ready for pickup. Sent after a book has been returned.
  • RESET_FORGOTTEN_PASSWORD - send a password reset email to a patron. Not applicable to third-party authentication.


- to open a sample CSV file.