Location Check-in
Overview
- Location Check-in PI requires an authenticated profile, so it cannot be used for guest profiles.
- Only one Product Integration instance can be deployed per app.
Vendors
User Experience
The following section describes information relating to the user experience for the Location Check-in product integration.
User Activities
- Students can scan a QR code to capture a new visited location.
- Students can manually enter a location code to capture a newly visited location.
- Students can see their visited location history.
Authentication
Offline Support
Main Workflows and Screenshots
- Scan a QR code, or manually enter a location code when visiting a new place to store the location
- Review location history and search for locations or places I visited on a specific date
The Location Check-in landing page displays the Scan button and last scanned locations | The Location History page displays data for the number of days as was configured by the university. The user can search by location, name, and date. |
![]() |
![]() |
Technical Overview
Prerequisites
The following prerequisites are required for the Location Check-in product integration.
- For RESTful API (generic) vendor the APIs as described below should be available. See API Information. If campusM Cloud vendor is used no APIs prerequisites.
- QR code should include the following data in a JSON format - userID, locationName, description, locationId
For example:
{
"locationName": "Presentation Pod 100",
"description": "2 seats",
"locationId": "12345",
"campusID": "11"
}
- QR code should include the following data in a JSON format - userID, locationName, description, locationId
All four attributes are not mandatory.
- For manual code entries, only letters, numbers, spaces, and the following characters: -./_ are valid entries.
API Information
The Location Check-in product integration uses the following APIs:
- Get User's History – mandatory
- Send User's Location's – mandatory
- Delete User Location – not mandatory
Get User’s History API
Request:
https://{Base URL}/UserApi/api/users/getUserLocations?userid={userID}&startDate={startDate}&endDate={endDate}
- The date range is a maximum of 7 days
- Base URL – the URL to retrieve as defined in the product integration configuration
- userID – the user identifier as defined in the Query Parameters.
- The format of startDate and endDate should be: {yyyy-MM-ddTHH:mm:ss+Z}, for example: 2020-09-02T09:55:15+03:00.
Expected response:
The response should be similar to the following:
"userLocationsList": {
"location": [
{
"campusID": "",
"locationName": "",
"time": "2019-12-30T09:30:15+0200",
"userID": "a@google.com",
"locationId": "12345",
"serialNumber": "1"
},
{
"campusID": "",
"locationName": "",
"time": "2019-12-30T09:30:15+0200",
"userID": "a@google.com"
"locationId": "14542",
"serialNumber": "2",
"source": 1
}
]
}
}
Response attributes Mapping:
Attribute | Description | Mandatory Yes/No | Data Type | Default | Example |
---|---|---|---|---|---|
campusID | campus ID | No | String | ||
locationName | Yes | String | |||
time | scan time | Yes | String according to the following format: yyyy-MM-ddTHH:mm:ss'Z' |
2019-12-29T07:30:00+0200 | |
userID | The user identifier that matches the equivalent attribute on IDP (see Prerequisites # 1). | Yes | String | ||
locationId | Location ID | Yes | Number | ||
serialNumber | Scan ID number | Yes | Number | ||
source |
How the location was added:
|
Yes | Number |
Send User’s Location API (POST)
Request:
https://{BASE URL}/UserApi/api/users/updateUserLocation
Body:
"userID": "a@google.com",
"locationId": "54321",
"locationName": "Presentation Pod 5"
"time": "2019-12-30T11:00:00+0200"
"description": "2 seats"
"campusID": "",
"source": 0
}
Attribute | Description | Mandatory Yes/No | Data Type | Default | Example |
---|---|---|---|---|---|
UserId | The user identifier that matches the equivalent attribute on IDP (see Prerequisites # 1). | Yes | String | ||
locationName | Location Name | Yes | String | Conference Room 1 | |
Description | Description | Yes | String | ||
Time | Time of check-in | Yes | String according to the following format: yyyy-MM-ddTHH:mm:ss'Z' |
2019-12-29T07:30:00+0200 | |
Source | How the location was added:
|
Yes | Number |
Expected response:
Response should include failure/success indication in the following format:
{
"userid" : "a@google.com",
"locationId" : "54321",
"response": "location successfully added!'" //if success, 'response' must contain the string "Successfully", otherwise it'll be considered as failure
}
Delete User Location API
Request:
campusM should send the following web service:
https://{BASE URL}/UserApi/api/users/deleteUserLocation
Body:
Expected response:
Response should include failure/success indication in the following format:
"userID" : "a@google.com",
"locationId" : "54321",
"response": "location successfully deleted!'" //if success, 'response' must contain the string "Successfully", otherwise it'll be considered as failure
}
Authentication of all APIs is included in the headers, as configured in Authentication Type.
Product Integration Configuration
Configuration Option | Description | Mandatory | Data Type | Default | Example |
---|---|---|---|---|---|
Manage Integration | |||||
Enable Product Integration | Select to enable the product integration on the user's campusM app. | No | Checkbox | Unchecked | |
Product Integration Description | A description of the product integration for internal use | Yes | String | ||
Screen Title | The title that appears in the top header of the service | No | String | Registration Status | |
API Configuration This section contains the API details to define the API structure. You can test the API configuration. See Testing API Product Integration Configuration. |
|||||
Base URL to retrieve the information | The URL for the API | Yes | URL | https://{HOST} | |
Parameter Input Option | The parameter input option. Possible values: Username, Token Property, and Constant. It is sent as the path parameter | Yes | Drop-Down list | Token Property | |
Token Property Name | Enter the property name to be retrieved from the token ({ USERNAME, MAIL, GIVEN_NAME, SURNAME, FULL_NAME } or as named in the integration profile) | No | String | USERNAME | |
Constant Value | The value when the User Identifier is set to Constant | No | String | ||
Authentication Type | Authentication type against the web service. The options are the following:
|
No | Object | No Auth | |
General | |||||
Enable Manual Location Code Entry | No | Checkbox | Unchecked | ||
Total number of days available to view in Locations History | The total number of days for Locations History. The value should be between 1 and 28. | No | Number | 5 | |
Data Retention Policy | How long Location Check-in data is retained in the Ex Libris campusM cloud | No | Number | 30 | |
Date Format | The format to display any dates in, throughout the integration | No | Drop-Down list | ||
Number of records to show initially in Locations History | Number of records to show in Locations History at the beginning | No | Number | 10 | |
Number of additional records to load on each click of the Load More Results Button | Number of records to load on each click of the 'Load More Results' button, should be between 2 and 5 | No | Number | 5 | |
Display Cancel Button | 'Cancel' button allows users to delete logged location and triggers deleteUserLocation API | No | Checkbox | Unchecked | |
Additional Information URL | URL for Additional Information/ Help tab (link out) | No | String | ||
Look and Feel | |||||
Primary Theme Color | Select a color for the main elements on the page | No | Color Picker | #444444 | |
Secondary Theme Color | Select a color for the secondary elements on the page | No | Color Picker | #6f8ea4 | |
Text / Labels |
|||||
Landing Page Title | No | String | Landing Page | ||
Location History Page Title | No | String | Location History Page | ||
Scan Button Text for Mobile | No | String | Scan Here | ||
Scan Button Warning Message for Web | No | String | Can only be scanned using a mobile phone | ||
Enter Location Code text for Mobile | No | String | Enter location code below | ||
Enter Location Code text for Web | No | String | Enter location code below | ||
Submit Button Text | No | String | Submit | ||
Error Message Text for Manual Code Entry | No | String | Location code can only contain letters, numbers, spaces, and the following characters: _./- | ||
Home Page History Title | No | String | History | ||
Load More Results Button Text | No | String | Load More | ||
Error Message | General error message if the page fails to load | No | String | Please try again later | |
Empty Results Message | The Empty Results Message displays when no results are returned for the Location History | No | String | There is no location history for this user | |
No Search Results Message | This message displays when a user's search term returns no results | No | String | No results | |
QR Scan Success Message | This message displays when the QR code scans successfully | No | String | Your location was submitted successfully | |
QR Scan failure Message | This message displays when the QR code fails to scan | No | String | Adding location failed – please try again later | |
Cancel Button | No | String | Cancel | ||
Main Menu Bar Additional Information Label | No | String | Additional Information | ||
Main Menu Bar Scan Label | String | Scan | |||
Main Menu Bar History Label | String | History | |||
Import/ Export Configuration You can configure product integration and then export it to another campusM environment, for example, from sandbox to production or from preview to production. |
|||||
Export | Create a JSON file with all product integration configuration | No | |||
Import | Use this option in order to load configuration from JSON of an exported product integration | No |
Getting Location Check-in Results
For information about extracting Location Check-in response data, see Get Location Check-in Results.