Importing data into PerfectPass requires the user to run a PowerShell script. That script zips and then uploads the data package to the PerfectPass API.


  1. Make sure you can run PowerShell. The minimum major version is 5. (See How do I determine the current PowerShell version)
  2. Download the attached UploadScript.ps1
  3. Edit the script
    1. Set your data directory path. The data directory needs to have an import file at the root named Import.csv and your photos need to be in a subdirectory named Photos in the format [ID Number].jpg 
      $dirToZip = "DIRECTORY PATH"


    2. Add your API key (See How do I find my API Key?
      $apiKey = "API KEY HERE"


    3. Update your import configuration (example below)
      $config = "JSON CONFIGURATION"



Import configuration schema

{
    "title": "ImportConfiguration",
    "type": "object",
    "properties": {
        "scheduleType": {
            "type": "string",
            "enum": ["Pattern", "Block"]
        },
        "fieldMap": {
            "type": "object",
            "properties": {
                "student": {
                    "type": "object",
                    "properties": {
                        "idNumber": { "type": "string", "description": "The student ID number column" },
                        "firstName": { "type": "string", "description": "The student first name column" },
                        "lastName": { "type": "string", "description": "The student last name column" },
                        ...
                    }
                },
                "schedule": {
                    "type": "object",
                    "properties": {
                        "period": { "type": "string", "description": "The period column" },
                        "teacherFull": { "type": "string", "description": "The teacher full name column" },
                        "classId": { "type": "string", "description": "The class ID column" },
                        "className": { "type": "string", "description": "The class name column" },
                        "location": { "type": "string", "description": "The class location column" }
                    }
                }
            },
            "required": ["student", "schedule"]
        }
    },
    "required": ["scheduleType", "fieldMap"]
}


Import configuration example

$config = "{" +
    "scheduleType: 'Pattern', " +
    "fieldMap: `"{ " +
        "student: {" + 
            "idNumber: 'ID', " +
            "firstName: 'FNAME', " +
            "lastName: 'LNAME' " +
        "}," +
        "schedule: {" + 
            "period: 'PERIOD', " +
            "teacherFull: 'TEACHER', " +
            "classId: 'CLSID', " +
            "className: 'DESC', " +
            "location: 'ROOM' " +
        "}" +
    "}`" " +
"}"