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:

  1. Listing all team members:
GET /api/v1/members

This will return a list of all team members and their corresponding user IDs.

  1. 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:

  1. Search for the manager by email:
GET /api/v1/members/{email}
  1. Take the user.id from the response and use it in the next call to get the full profile:
GET /api/v1/people/{userId}
  1. Use the returned id value as manager.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!"
    }
}