Updating Profiles
Overview
This guide provides the API endpoints and JSON structure to update profile data within Guru from an external HRIS system. The purpose is to streamline data updates directly from HR systems.
Note
We offer an out-of-the-box HRIS Sync feature which allows you to integrate your HRIS with Guru so that profiles can be automatically updated. This guide shows you how to update profiles in the event your HRIS is not supported.
Step 1: Get User IDs
To update profile data, you first need to retrieve the user ID. You can do this by either:
- Listing all team members:
GET /api/v1/members
This will return a list of all team members and their corresponding user IDs.
- Searching for a specific team member by email:
GET /api/v1/members/{email}
Replace {email}
with the user's email address to retrieve their ID.
The response from either of these requests will include the user.id
field, which you will use in subsequent API calls.
Step 2: Get Manager ID
If you need to update the manager field, you will also need the manager's ID. Follow these steps:
- Search for the manager by email:
GET /api/v1/members/{email}
- Take the
user.id
from the response and use it in the next call to get the full profile:
GET /api/v1/people/{userId}
- Use the returned
id
value asmanager.id
in the profile update request.
Step 3: Get Current Profile Data
Once you have the user ID, retrieve the current profile data using the following endpoint:
GET /api/v1/people/{userId}
Replace {userId}
with the ID obtained from the previous step. The response will contain the existing profile data in JSON format, which serves as the base for your update.
Note
Not all fields that are returned from this endpoint are updatable. See the JSON Payload Structure section below for a list of fields you are able to update.
Step 4: Update Profile Data
To update the profile, use the following endpoint:
PUT /api/v1/people/{userId}
Include all fields of the profile in the request body, even if only some of them are being updated.
Profile Picture Upload
If you need to upload or update a profile picture, follow Step 2 in this Guide. The output from this should be passed into the profilePicUrl
field below.
JSON Payload Structure
Below is the complete JSON structure that includes all possible updatable fields in a Guru user profile:
{
"startDate": "2021-06-28",
"workTeamName": "Engineering",
"workLocationName": "San Diego, CA",
"workingHours": "9AM - 5PM PST",
"manager": {
"id": "b6ea5cc6-db1a-43c8-ae7c-fdf483584ddd"
},
"jobTitle": "Senior Software Engineer",
"lastName": "Taylor",
"firstName": "Alice",
"profilePicUrl": "https://pp.getguru.com/6230eca6bc7e4eedbba67a3e5ded85df.png",
"custom": {
"whatImWorkingOn": "My primary focus is the Frontend but have experience working with various technologies. \n\nCurrent Projects:\nWork Hours ⏰",
"aboutMe": "I love trivia. Jeopardy, quizzo, trivial pursuit, etc. If there are trivia questions I am ready for them.",
"bestWayToWorkWithMe": "I appreciate working with pre-reads and digesting that information async. Then, let's get to collaborating on a zoom or in person!"
}
}
Updated 4 days ago