Managing Faculty Profiles via the API
Managing Faculty Profiles via the API
Create a Profile with an Appointment
1. To create a faculty profile with an associated appointment, you will first need a PID for the faculty member -- a unique identifier generated for a given user account in Interfolio. You can retrieve a given user's PID in IAM API.
2. Next, you will need the "unit_id" for the appointment object. You can retrieve a list of units for your tenant with the units#index endpoint:
Example:
GET => /10668/units
3. Next, you will need the "rank_id" to which you will associate the given faculty member's appointment. To find this, you will first need to fetch the "series_id" using the series#index endpoint. This endpoint uses the "unit_id" to return available series objects.
Example:
GET => /10668/series?unit_id=10669
4. Once you have the "series_id", you can retrieve the ranks for a given series using the ranks#index endpoint. This endpoint uses the "series_id" and returns the associated series objects.
Example:
GET => /10668/ranks?series_id=42
5. Once you have the required identifiers, use the profiles#with_appointment endpoint to create the profile with the associated appointment. This endpoint takes a JSON payload of parameters associated with the profile object and the appointment object and then returns the created profile with the associated appointment.
Example:
POST => /10668/profiles/with_appointment
{
"profile":{
"pid": 2413576,
"institution_user_id": "test.user",
"first_name": "Test",
"last_name": "User",
"email": "test.user@interfolio.com",
"date_hired": "2021-01-01",
"addresses":{
"office":{
"street_address_1": "1400 K St NW",
"street_address_2": "Suite 1100",
"city": "Washington",
"state": "DC",
"zip_code": "20010",
"country": "USA"
}
}
},
"appointment":{
"unit_id": 10669,
"rank_id": 42,
"title": "Professor of Testing",
"start_date": "2021-01-01"
}
}
6. You can alternatively create a basic profile with the profiles#create endpoint. This endpoint takes the same JSON payload without the included appointment object.
Example:
POST => /10668/profiles
BODY:
{
"profile":{
"pid": 2413576,
"institution_user_id": "test.user",
"first_name": "Test",
"last_name": "User",
"email": "test.user@interfolio.com",
"date_hired": "2021-01-01",
"addresses":{
"office":{
"street_address_1": "1400 K St NW",
"street_address_2": "Suite 1100",
"city": "Washington",
"state": "DC",
"zip_code": "20010",
"country": "USA"
}
}
}
}
Update Profile
1. To update a faculty profile, you will first need the "profile_id" -- a unique identifier generated when the profile is created. You can fetch this ID value from one of a few endpoints detailed here: View Single Profile.
2. Once you have the ID of the profile you wish to update, use the profiles#update endpoint. This endpoint takes a JSON payload of parameters associated with the profile object and returns the updated profile.
Example:
PUT => /10668/profiles/1432
BODY:
{
"profile":{
"last_name": "UpdateTest"
}
}
Delete Profile
To delete a faculty profile, you will first need the "profile_id" -- a unique identifier generated when the profile is created. You can fetch this ID value from one of a few endpoints detailed here: View Single Profile. Once you have the ID of the profile you wish to delete, use the profiles#delete endpoint.
Example:
DELETE => /10668/profiles/1432