LIS 2.0 Person

Learn person elements supported by LIS

Learn Users FieldRequired For InsertUniqueLIS Source Field
Added Node Batch UidNoNoPerson Institutional Hierarchy Associations
AvailableNoNo 
Batch UidYesYesPerson Sourced Id
BirthdateNoNoPerson Birthdate
CityNoNoPerson City
CompanyNoNo 
CountryNoNoPerson Country
Data Source KeyYesNoPerson Data Source
DepartmentNoNo 
Education LevelNoNo 
EmailNoNoPerson Email
First NameYesNoPerson First Name
GenderNoNoPerson Gender
Home FaxNoNo 
Home PhoneNoNoPerson Home Primary Phone Number
Home Phone (Secondary)NoNoPerson Home Secondary Phone Number
Job TitleNoNo 
Last NameYesNoPerson Last Name
Middle NameNoNoPerson Middle Name
Mobile PhoneNoNoPerson Mobile Number
Other NameNoNoPerson Particle Name
PasswordYesNoPerson Role Password
Password Encryption TypeNoNoPerson Role Password Encryption Type
Primary Institution RoleNoNoPerson Primary Institution Role
PronounsNoNoPerson Pronouns
Replacement Batch UidNoYesPerson Sourced Id
Replacement Data Source Batch UidNoNo 
Row StatusNoNo 
Secondary Institution RolesNoNoPerson Secondary Institution Roles
State / ProvinceNoNoPerson Address State/Province
Street 1NoNoPerson Address Street 1
Street 2NoNoPerson Address Street 2
Student IDNoNoPerson Role User Id
SuffixNoNoPerson Suffix Name
System RoleNoNoPerson System Role
TitleNoNoPerson Prefix Name
UsernameYesYesPerson Role User Id
WebsiteNoNoPerson Web Address
Work FaxNoNoPerson Work Fax
Work PhoneNoNoPerson Work Primary Phone Number
Work Phone (Secondary)NoNoPerson Work Secondary Phone Number
Zip / Postal CodeNoNoPerson Zip/Postal Code

LIS person object

Supported Learn Objects are bold in the below descriptions, associated values are bold-italicized.

LIS SOAP Message Element

Comment 


Learn Object Relationship

<SOAP-ENV:Body>
<replacePersonRequest xmlns:pms="http://www.imsglobal.org/services/lis/pms2p0/wsdl11/sync/imspms_v2p0">
<sourcedId>AA0011</sourcedId>

SOAP-ENV Body element and element defining the request operation

This sourcedId is the source Id for message


None

xmlns:pms= "http://www.imsglobal.org/services/lis/pms2p0/wsdl11/sync/imspms_v2p0">

Begin the person record block 


None

<sourcedGUID>
<refAgentInstanceID>SIS</refAgentInstanceID>
   <sourcedId>55555</sourcedId>
</sourcedGUID>

The SourcedGUID providing the unique identifier for this person record and the source of the identifier 


BATCH UID :: Person SourcedId

<person>

Begin the person data 


None

<formname>
  <formnameType>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http://www.imsglobal.org/lis/pmsv2p0/formatnmetypevocabularyv1p0
    </instanceVocabulary>
    <instanceValue>
      <language>en</language>
      <textString>Full</textString>
    </instanceValue>
    </formnameType>
    <formattedName>
    <language>en</language>
    <textString> Dr. First Middle Last, Jr. </textString>
  </formattedName>
</formname>

One component LIS formatting style is the blocking of elements and their attributes between supporting defining elements. In this case the formal name (formname), the Full name is blocked between identifiers which provide the language used for the data - in this case en, the textString - in this case Full, and the textString containing the actual data for the formattedName - in this case Dr. First Middle Last, Jr.

Note the instanceVocabulary provides the IMS vocabulary for the object in question.


None

<name>
  <nameType>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary> http://www.imsglobal.org/lis/pmsv2p0...vocabularyv1p0
    </instanceVocabulary>
    <instanceValue>
      <language>en</language>
      <textString>Full</textString>
    </instanceValue>
  </nameType>
  <partName>
    <instanceIdentifier>
     <language>en</language>
     <textString>Nickname</textString>
    </instanceIdentifier>
    <instanceVocabulary> Nickname not used </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Nickname</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString> nickname </textString>
    </instanceValue>
  </partName>
  <partName>
    <instanceIdentifier>
      <language>en</language>
      <textString>Family</textString>
    </instanceIdentifier>
    <instanceVocabulary> Family </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString> Family </textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>King</textString>
    </instanceValue>
  </partName>
  <partName>
    <instanceIdentifier>
      <language>en</language>
      <textString>Given</textString>
    </instanceIdentifier>
    <instanceVocabulary> Given </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Given</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>Martin</textString>
    </instanceValue>
  </partName>
  <partName>
    <instanceIdentifier>
      <language>en</language>
      <textString>Prefix</textString>
    </instanceIdentifier>
    <instanceVocabulary> Prefix </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Prefix</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString> Dr. </textString>
    </instanceValue>
  </partName>
  <partName>
     <instanceIdentifier>
       <language>en</language>
      <textString>Suffix</textString>
    </instanceIdentifier>
    <instanceVocabulary> Suffix </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Suffix</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>Jr.</textString>
    </instanceValue>
  </partName>
  <partName>
    <instanceIdentifier>
      <language>en</language>
      <textString>Middle</textString>
    </instanceIdentifier>
    <instanceVocabulary> Middle </instanceVocabulary>
    <instanceName>
       <language>en</language>
       <textString>Middle</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>Luther</textString>
    </instanceValue>
  </partName>
</name>

An additional LIS style is the support for components of a multipart object such as a name which may be build from prefix, first, middle, last, and suffix parts. This is handled through the addition of "parts". Combined with the instance elements these multipart objects are easily describable and are enclosed in descriptive partName elements.


Learn Title :: Person:Name:Prefix

Learn First Name :: Person:Name:Given

Learn Middle Name :: Person:Name:Middle

Learn Last Name :: Person:Name:Last

Learn Title :: Person:Name:Suffix

Not supported by Learn:

Person:Name:Nickname

<address>
  <addressType>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary>
      http:00www.imsglobal.org/lis/pmsv2p0/... </instanceVocabulary>
    <instanceValue>
      <language>en</language>
      <textString></textString>
    </instanceValue>
  </addressType>
  <addressPart>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary> http:00www.imsglobal.org/lis/pmsv2p0/addresspartvocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>NonfieldedStreetAddress1</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>1234 Street</textString>
    </instanceValue>
  </addressPart>
  <addressPart>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/addresspartvocabularyv1p0    
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>NonfieldedStreetAddress2</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>Apt. 122</textString>
    </instanceValue>
  </addressPart>
  <addressPart>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/addresspartvocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>City</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>Atlanta</textString>
    </instanceValue>
  </addressPart>
  <addressPart>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/addresspartvocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>StatePr</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>GA</textString>
    </instanceValue>
  </addressPart>
  <addressPart>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/addresspartvocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Postcode</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>12345</textString>
    </instanceValue>
  </addressPart>
  <addressPart>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary> http:00www.imsglobal.org/lis/pmsv2p0/addresspartvocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Country</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>USA</textString>
    </instanceValue>
  </addressPart>
</address>

The person address block follows the same pattern as the above name block. 


Learn Street1 ::

    Person:Address: NonFieldedStreetAddress1

Learn Street2 ::

    Person:Address:NonFieldedStreetAddress2

Learn City ::

    Person:Address:City

Learn State/Province ::

    Person:Address:StatePr

Learn Zip/Postal code::

    Person:Address:Postcode

Learn Country ::

    Person:Address:Country

<contactinfo>
  <contactinfoType>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/contactinfotypevocabularyv1p0
    </instanceVocabulary>
    <instanceValue>
      <language>en</language>
      <textString>EmailPrimary</textString>
    </instanceValue>
  </contactinfoType>
  <contactinfoValue>
    <language>en</language>
    <textString>[email protected]</textString><!--E-Mail Address VALUE -->
  </contactinfoValue>
</contactinfo>

Contactinfo provides the email address associated with this person record.


Learn email :: Person:ContactInfo:EmailPrimary

<demographics>
  <demographicsType>
    <instanceIdentifier>
      <language>en</language>
      <textString>unknown</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/demographicsinfovocabularyv1p0
    </instanceVocabulary>
    <instanceValue>
      <language>en</language>
      <textString>Primary</textString>
    </instanceValue>
  </demographicsType>
  <eventDate>
    <instanceIdentifier>
      <language>en</language>
      <textString>Birth</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/eventdatevocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Birth</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>1972-03-05</textString><!-- Date of Birth VALUE (YYYY-MM-DD) -->
    </instanceValue>
  </eventDate>
  <eventDate>
    <instanceIdentifier>
      <language>en</language>
      <textString>Death</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/eventdatevocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Death</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
    <textString></textString><!-- Date of Death IGNORED by Learn -->
    </instanceValue>
  </eventDate>
  <gender>male</gender><!-- Gender VALUE (male/female) -->
  <demographicInfo>
    <instanceIdentifier>
      <language>en</language>
      <textString>PlaceofBirth</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/demographicsinfovocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>PlaceofBirth</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>Silver Spring</textString>
    </instanceValue>
  </demographicInfo>
  <demographicInfo>
    <instanceIdentifier>
      <language>en</language>
      <textString>MaritalStatus</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/demographicsinfovocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>MaritalStatus</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>S</textString>
    </instanceValue>
  </demographicInfo>
  <demographicInfo>
    <instanceIdentifier>
      <language>en</language>
      <textString>Ethnicity</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/demographicsinfovocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>Ethnicity</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>4</textString>
    </instanceValue>
  </demographicInfo>
</demographics>

This section provides demographics information such as gender, date of birth, etc. 


Learn Birthdate :: Person:DemographicInfo:Birth

Learn Gender :: Person:DemographicInfo:Gender

Not supported by Learn

Person:Demographics:Death

Person:Demographics:MaritalStatus

Person:Demographics:Ethnicity

<roles>
  <enterpriserolesType>
    <instanceIdentifier>
      <language>en</language>
      <textString>StudentInformationSystem</textString>
    </instanceIdentifier>
    <instanceVocabulary>
    http:00www.imsglobal.org/lis/pmsv2p0/epriserolestypevocabularyv1p0
    </instanceVocabulary>
    <instanceName>
      <language>en</language>
      <textString>StudentInformationSystem</textString>
    </instanceName>
    <instanceValue>
      <language>en</language>
      <textString>role</textString>
    </instanceValue>
  </enterpriserolesType>
  <institutionRole>
    <institutionroletype>
      <instanceIdentifier>
        <language>en</language>
        <textString>unknown</textString>
      </instanceIdentifier>
      <instanceVocabulary>
      http:00www.imsglobal.org/lis/pmsv2p0/systemrolevocabularyv1p0
      </instanceVocabulary>
      <instanceValue>
        <language>en</language>
        <textString>none</textString><!-- System Role VALUE -->
      </instanceValue>
    </institutionroletype>
    <primaryroletype>false</primaryroletype>
  </institutionRole>
  <institutionRole>
    <institutionroletype>
      <instanceIdentifier>
        <language>en</language>
        <textString>unknown</textString>
      </instanceIdentifier>
      <instanceVocabulary>
      http:00www.imsglobal.org/lis/pmsv2p0/systemrolevocabularyv1p0
      </instanceVocabulary>
      <instanceValue>
        <language>en</language>
        <textString>Student</textString><!-- Institution Role VALUE -->
      </instanceValue>
    </institutionroletype>
    <primaryroletype>false</primaryroletype>
  </institutionRole>
  <userId>
  <userIdValue>
    <language>en</language>
    <textString>loginidblah</textString>
  </userIdValue>
  <userIdType>
    <language>en</language>
    <textString>Logon ID</textString>
  </userIdType>
  <password>
    <language>en</language>
    <textString> {SSHA}JCkADpIzxrezO7Y9H0Swprn6veJNUEMxTENRVg== </textString>
  </password>
  <pwEncryptionType>
    <language>en</language>
    <textString>SSHA</textString>
  </pwEncryptionType>
  <authenticationType>
    <language>en</language>
    <textString></textString>
  </authenticationType>
  </userId>
  <userId>
    <userIdValue>
      <language>en</language>
      <textString>A00001154</textString><!-- ID IGNORED by Learn -->
    </userIdValue>
    <userIdType>
      <language>en</language>
      <textString>SISID</textString>
    </userIdType>
    <password>
      <language>en</language>
      <textString>
      {SSHA}JCkADpIzxrezO7Y9H0Swprn6veJNUEMxTENRVg==
      </textString>
    </password>
    <pwEncryptionType>
      <language>en</language>
      <textString>SSHA</textString>
    </pwEncryptionType>
    <authenticationType>
      <language>en</language>
      <textString></textString>
    </authenticationType>
  </userId>
  <userId>
    <userIdValue>
      <language>en</language>
      <textString>
      user_firstlastname<!-- User_ID and Student_ID VALUE -->
      </textString>
    </userIdValue>
    <userIdType>
      <language>en</language>
      <textString>Email ID</textString>
    </userIdType>
    <password>
      <language>en</language>
      <textString>change_me</textString><!-- User Password VALUE -->
    </password>
    <pwEncryptionType>
      <language>en</language>
      <textString></textString><!-- Encryption value (if applicable) -->
    </pwEncryptionType>
    <authenticationType>
      <language>en</language>
      <textString></textString>
    </authenticationType>
  </userId>
</roles>

The roles section provides the institutional role and account login information (username and password) for this person record. 


Learn Primary Institution Role :: Person:Roles:Role:InstitutionRole

Learn System Role :: Person:Roles:Role:InstitutionRole

See "Institution Roles" or "System Roles" in the System Admin panel for lists of valid Institution and System Roles.

Learn Username and Student ID::

Person:Roles:Role:userId

Learn Password:

Person:Roles:Role:Password

Learn Password Encryption Type:

Person:Roles:Role:PwEncryptionType

Important!

Learn only uses the last userId record - if multiple userId records are provided ensure that the login information - username and password - are in the last userId record. So this sample person would login to Learn using

username: user_firstlastname

password: change_me

Not supported by Learn

authenticationType

      </person>
    </personRecord>
  </replacePersonRequest>
</SOAP-ENV:Body>
Closing element tags.

Blackboard extensions to LIS

Blackboard Learn supports data elements in addition to those defined in the standard.

LIS SOAP Message ElementComment

<extension>
       <extensionNameVocabulary>unknown</extensionNameVocabulary>
       <extensionValueType>unknown</extensionValueType> 
       <extensionField> 
              <fieldName>inst_email</fieldName> 
              <fieldType>unknown</fieldType> 
              <fieldValue>[email protected]</fieldValue> 
       </extensionField> 
</extension>

<extension>
   <extensionNameVocabulary>unknown</extensionNameVocabulary>.
   <extensionValueType>unknown</extensionValueType>
   <extensionField>
       <fieldName>pronouns</fieldName>
       <fieldType>unknown</fieldType
       <fieldValue>they/them,she/her,ze/zir</fieldValue>
   </extensionField>
</extension>

Institution email is distinct from personal email and used for integrations requiring use of an official address such as the Microsoft Teams integration. Administrators can edit the institution through the SIS Framework, but there is no option for end users to edit.

There are 2 scenarios to be considered:

     A. When Person Email is the Institution Email
     B. When Person Email isn’t the institution email

 

Person Email is the Institution Email

For scenario A, the Institution Email (inst_email) is by default set to person email within the SIS integration specifications, and therefore no additional action is required to change this on behalf of the administrator.

 

Person Email isn’t the institution email

For scenario B, when the person email field isn’t the institution email address and there is a need to update/change this, it’s possible to use a script to populate the institutional email field values using field mapping rather than directly adding data to this field.

This is an example script for populating the institution email field using the Use a custom script text box:

(function() {
     var v = data.person.extensions.get('inst_email'); 
     return v ? v.value : null;
}());

It’s important to note that if required, an admin can revert the field mapping back to ‘Person Email’. If a custom script has been used, this will be preserved.

 

Multiple pronoun values for a person

It’s possible to send multiple pronoun values per student. This is sent as a single fieldValue entry with the different values separated by commas.

<extension>
       <extensionNameVocabulary>unknown</extensionNameVocabulary>
       <extensionValueType>unknown</extensionValueType>
       <extensionField>
              <fieldName>pronunciation</fieldName>
              <fieldType>unknown</fieldType>
              <fieldValue>kris-chun</fieldValue>
       </extensionField>
</extension>

Name pronunciation

The name pronunciation field is text (unicode) to support phonetic spelling or a pronunciation guide. Exchange of audio recording files aren’t supported with the SIS integration framework.