Skip to content
shuffl

Searches the public product guides only. Nothing from a workspace is read, and questions are not saved.

Reference

People API

19 operations. Generated from the OpenAPI document, so this page always matches the API.

OpenAPI documentErrors and rate limitsSDK and CLI recipes

On this page

users.activity

Read a person's recent activity in Shuffl

POST/api/v1/manage/users/activity

const result = await shuffl.users.activity({
"personId": "<personId>"
});
Request fields (1)
  • personId string required
Response object
  • connections object required
    • introductions object[] required
      • at string (date-time) required
      • program object required
        • id string required
        • name string required
      • runId string required
      • with object[] required
        • id string required
        • name string required
    • programs object[] required
      • id string required
      • name string required
    • stats object required
      • introductions number required
      • lastIntroductionAt null | string (date-time) required
      • people number required
      • programs number required
  • events object[] required
    • Option 1 object optional
      • at string (date-time) required
      • kind "playbook_started" required
      • program object required
        • id string required
        • name string required
    • Option 2 object optional
      • at string (date-time) required
      • kind "playbook_completed" required
      • program object required
        • id string required
        • name string required
    • Option 3 object optional
      • accepted boolean required
      • at string (date-time) required
      • hire object required
        • id string required
        • name string required
      • kind "buddy_response" required
      • program object required
        • id string required
        • name string required
    • Option 4 object optional
      • action "hr.responder_granted" | "hr.responder_revoked" | "knowledge.verifier_granted" | "knowledge.verifier_revoked" | "participant.opted_in" | "participant.opted_out" | "person.access_suspended" | "person.access_updated" | "person.role_updated" required
      • at string (date-time) required
      • details object required
      • kind "audit" required
      • program null | object required
        • id string required
        • name string required
    • Option 5 object optional
      • at string (date-time) required
      • automation "add_to_group" | "add_to_program" | "ask_pulse" | "give_badge" | "invite_community" | "remove_from_group" | "send_message" | "slack_invite" | "slack_post" | "start_playbook" | "tell_hr" | "tell_manager" | "tell_person" required
      • group object required
        • id string required
        • name string required
      • kind "group_automation" required
      • outcome "done" | "failed" | "scheduled" | "skipped" required
      • trigger "entered" | "left" required
      • why null | string required
  • hrRequests null | object required
    • open number required
    • total number required

users.blockedPairs

List pairs of people who are never introduced

POST/api/v1/manage/users/blockedPairs

const result = await shuffl.users.blockedPairs();
Request fields (none)

This operation takes no input.

Response object[]
  • a object required
    • id string required
    • name string required
  • b object required
    • id string required
    • name string required

users.details

Read one person's People directory record

POST/api/v1/manage/users/details

const result = await shuffl.users.details({
"memberId": "<memberId>"
});
Request fields (1)
  • memberId string required
Response object
  • department null | object required
    • id string required
    • name string required
  • directory null | object required
    • employmentType null | "contractor" | "full_time" | "intern" | "part_time" | "temporary" required
    • jobTitle null | string required
    • lastDay null | string required
    • lastDayAnnounced boolean required
    • managedAt null | string (date-time) required
    • managedBy null | string required
    • managerId null | string required
    • memberId string required
    • originalStartDate null | string required
    • revision number required
    • startDate null | string required
    • teamId string required
    • timezone null | string required
    • updatedAt string (date-time) required
  • groups object[] required
    • hrTeam boolean required
    • id string required
    • kind "dynamic" | "list" required
    • name string required
    • onProfile boolean required
    • source "directory" | "scim" | "shuffl" | "slack" required
  • manager null | object required
    • id string required
    • name string required
  • member object required
    • active boolean required
    • bot boolean required
    • createdAt string (date-time) required
    • email null | string required
    • employeeNumber null | number required
    • id string required
    • name string required
    • profile object required
      • askMeAbout string[] optional
      • asks string optional
      • bio string optional
      • interests string optional
      • location string optional
      • offers string optional
      • phone string optional
      • preferredName string optional
      • pronouns string optional
      • role string optional
      • workingOn string optional
    • slackPhotoUrl null | string required
    • slackProfileLinkAt null | string (date-time) required
    • slackUserId null | string required
    • teamId string required
    • userId null | string required

users.filterOptions

List the teams, departments, managers and locations People can filter by

POST/api/v1/manage/users/filterOptions

const result = await shuffl.users.filterOptions();
Request fields (none)

This operation takes no input.

Response object
  • locations string[] required
  • managers object[] required
    • id string required
    • name string required
  • timezones string[] required
  • titles string[] required
  • units object[] required
    • id string required
    • kind "department" | "group" required
    • name string required

users.get

Get a person

GET/api/v1/users/{id}

const result = await shuffl.users.get({
"id": "<id>"
});
Request fields (1)
  • id string required1 to 128 characters
Response object
  • active boolean required
  • bot boolean required
  • email string | null required
  • id string required1 to 128 characters
  • name string required
  • profile object required
    • asks string optionalAt most 500 characters
    • bio string optionalAt most 1000 characters
    • interests string optionalAt most 500 characters
    • location string optionalAt most 200 characters
    • offers string optionalAt most 500 characters
    • phone string optionalAt most 40 characters
    • pronouns string optionalAt most 40 characters
    • role string optionalAt most 200 characters

users.glance

Headcount, growth, departments, tenure and time zones, and where you fit

POST/api/v1/manage/users/glance

const result = await shuffl.users.glance();
Request fields (none)

This operation takes no input.

Response object
  • averageTenureYears null | number required
  • dated number required
  • departments object[] required
    • label string required
    • value number required
  • enough boolean required
  • growth object[] required
    • at string required
    • value number required
  • headcount number required
  • hiredThisYear number required
  • leftThisYear null | number required
  • me null | object required
    • joinedAfter number required
    • joinedBefore number required
    • start string required
  • monthly object[] required
    • headcount number required
    • joined number required
    • month string required
  • tenure object[] required
    • label string required
    • value number required
  • timezones object[] required
    • label string required
    • value number required
  • topics string[] required
  • undated number required

users.list

List people in this team

GET/api/v1/users

const result = await shuffl.users.list({});
Request fields (3)
  • cursor string optional1 to 128 characters
  • limit integer optional1 to 100. Defaults to 25
  • search string optionalAt most 100 characters
Response object
  • items object[] required
    • active boolean required
    • bot boolean required
    • email string | null required
    • id string required1 to 128 characters
    • name string required
    • profile object required
      • asks string optionalAt most 500 characters
      • bio string optionalAt most 1000 characters
      • interests string optionalAt most 500 characters
      • location string optionalAt most 200 characters
      • offers string optionalAt most 500 characters
      • phone string optionalAt most 40 characters
      • pronouns string optionalAt most 40 characters
      • role string optionalAt most 200 characters
  • nextCursor string | null required

users.managerHistory

Read a person's recorded manager history

POST/api/v1/manage/users/managerHistory

const result = await shuffl.users.managerHistory({
"memberId": "<memberId>"
});
Request fields (2)
  • cursor string optional
  • memberId string required
Response object
  • nextCursor string optional
  • rows object[] required
    • actorId null | string required
    • details object required
      • actorName string required
      • managerId null | string required
      • managerName null | string required
      • previousManagerId null | string required
      • previousManagerName null | string required
      • previousRecorded boolean required
      • revision number required
    • id string required
    • recordedAt string (date-time) required

users.managers

List the managers in the People directory

POST/api/v1/manage/users/managers

const result = await shuffl.users.managers({});
Request fields (2)
  • excludeId string optional
  • search string optional
Response object[]
  • id string required
  • name string required

users.page

List people in the People directory: search, or filter by team, department, manager, location, access or workspace role such as owner, admin or HR responder

POST/api/v1/manage/users/page

const result = await shuffl.users.page({});
Request fields (15)
  • access "all" | "enabled" | "pending" | "suspended" optional
  • departmentId string optional
  • directReports "all" | "no" | "yes" optional
  • groupId string optional
  • hasManager "all" | "no" | "yes" optional
  • jobTitle string optional
  • location string optional
  • managerId string optional
  • page number optional
  • programId string optional
  • role "admin" | "all" | "hr_responder" | "knowledge_verifier" | "member" | "owner" optional
  • search string optional
  • slackAccount "all" | "linked" | "unlinked" optional
  • status "all" | "inactive" | "participating" | "paused" optional
  • timezone string optional
Response object
  • notInvited number required
  • ownPersonId null | string required
  • page number required
  • pageSize number required
  • rows object[] required
    • access null | object required
      • status "enabled" | "pending" | "suspended" required
    • appAccess null | "access_pending" | "active" | "invited" | "no_email" | "not_invited" | "suspended" required
    • directory object required
      • jobTitle null | string required
      • startDate null | string required
    • enrollment null | object required
      • optedIn boolean required
      • present boolean required
    • member object required
      • active boolean required
      • bot boolean required
      • createdAt string (date-time) required
      • email null | string required
      • employeeNumber null | number required
      • id string required
      • name string required
      • profile object required
        • askMeAbout string[] optional
        • asks string optional
        • bio string optional
        • interests string optional
        • location string optional
        • offers string optional
        • phone string optional
        • preferredName string optional
        • pronouns string optional
        • role string optional
        • workingOn string optional
      • slackPhotoUrl null | string required
      • slackProfileLinkAt null | string (date-time) required
      • slackUserId null | string required
      • teamId string required
      • userId null | string required
    • photoUrl null | string required
    • teamRole null | "admin" | "member" | "owner" required
    • units object[] required
      • kind "department" | "group" required
      • name string required
    • userId null | string required
  • total number required

users.participants

List the people who take part in programs

POST/api/v1/manage/users/participants

const result = await shuffl.users.participants({});
Request fields (1)
  • programId string optional
Response object[]

The response is object[].

users.reportingLineProposal

Read the reporting lines Mello proposed that wait for review

POST/api/v1/manage/users/reportingLineProposal

const result = await shuffl.users.reportingLineProposal();
Request fields (none)

This operation takes no input.

Response null | object

The response is null | object.

users.assignManagers

Set the manager of several people at once

POST/api/v1/manage/users/assignManagers

const result = await shuffl.users.assignManagers({
"assignments": [
{
"managerId": "<managerId>",
"personId": "<personId>"
}
],
"confirm": "users.assignManagers",
"requestKey": "a-new-unique-key"
});
Request fields (3)
  • assignments object[] required
    • managerId null | string required
    • personId string required
  • confirm "users.assignManagers" required
  • requestKey string required1 to 128 characters
Response object
  • receipt object required
    • completedAt string (date-time) | null required
    • createdAt string (date-time) required
    • id string (uuid) required
    • operation string required
    • requestKey string required
    • status "running" | "succeeded" | "failed" | "unknown" required
  • result object | null required
    • changed number required
    • unchanged number required

users.blockPair

Stop two people from being introduced to each other

POST/api/v1/manage/users/blockPair

const result = await shuffl.users.blockPair({
"a": "<a>",
"b": "<b>",
"blocked": false,
"requestKey": "a-new-unique-key"
});
Request fields (4)
  • a string required
  • b string required
  • blocked boolean required
  • requestKey string required1 to 128 characters
Response object
  • receipt object required
    • completedAt string (date-time) | null required
    • createdAt string (date-time) required
    • id string (uuid) required
    • operation string required
    • requestKey string required
    • status "running" | "succeeded" | "failed" | "unknown" required
  • result object | null required
    • saved boolean required

users.participation

Opt a person in to or out of a program

POST/api/v1/manage/users/participation

const result = await shuffl.users.participation({
"memberId": "<memberId>",
"optedIn": false,
"programId": "<programId>",
"requestKey": "a-new-unique-key"
});
Request fields (5)
  • memberId string required
  • optedIn boolean required
  • programId string required
  • reason string optional
  • requestKey string required1 to 128 characters
Response object
  • receipt object required
    • completedAt string (date-time) | null required
    • createdAt string (date-time) required
    • id string (uuid) required
    • operation string required
    • requestKey string required
    • status "running" | "succeeded" | "failed" | "unknown" required
  • result object | null required
    • breakUntil null | string (date-time) required
    • consentRevision number required
    • createdAt string (date-time) required
    • memberId string required
    • optedIn boolean required
    • present boolean required
    • programId string required
    • reason null | string required
    • teamId string required
    • updatedAt string (date-time) required

users.profile

Edit a person's profile as an administrator

POST/api/v1/manage/users/profile

const result = await shuffl.users.profile({
"memberId": "<memberId>",
"profile": {},
"requestKey": "a-new-unique-key"
});
Request fields (3)
  • memberId string required
  • profile object required
    • asks string optional
    • bio string optional
    • interests string optional
    • location string optional
    • offers string optional
    • phone string optional
    • pronouns string optional
    • role string optional
  • requestKey string required1 to 128 characters
Response object
  • receipt object required
    • completedAt string (date-time) | null required
    • createdAt string (date-time) required
    • id string (uuid) required
    • operation string required
    • requestKey string required
    • status "running" | "succeeded" | "failed" | "unknown" required
  • result object | null required
    • saved boolean required

users.proposeReportingLines

Ask Mello to propose managers for people without one; nothing changes until reviewed

POST/api/v1/manage/users/proposeReportingLines

const result = await shuffl.users.proposeReportingLines({
"confirm": "users.proposeReportingLines",
"requestKey": "a-new-unique-key"
});
Request fields (2)
  • confirm "users.proposeReportingLines" required
  • requestKey string required1 to 128 characters
Response object
  • receipt object required
    • completedAt string (date-time) | null required
    • createdAt string (date-time) required
    • id string (uuid) required
    • operation string required
    • requestKey string required
    • status "running" | "succeeded" | "failed" | "unknown" required
  • result object | null required
    • Option 1 object optional
      • proposal object required
        • createdAt string (date-time) required
        • id string required
        • inferredBy "ai" | "rule" required
        • lines object[] required
      • status "proposed" required
    • Option 2 object optional
      • status "not_enough_to_go_on" | "nothing_missing" required

users.reviewReportingLines

Approve chosen proposed reporting lines and close the proposal

POST/api/v1/manage/users/reviewReportingLines

const result = await shuffl.users.reviewReportingLines({
"approve": [
"<approve>"
],
"proposalId": "<proposalId>",
"confirm": "users.reviewReportingLines",
"requestKey": "a-new-unique-key"
});
Request fields (4)
  • approve string[] required
  • proposalId string required
  • confirm "users.reviewReportingLines" required
  • requestKey string required1 to 128 characters
Response object
  • receipt object required
    • completedAt string (date-time) | null required
    • createdAt string (date-time) required
    • id string (uuid) required
    • operation string required
    • requestKey string required
    • status "running" | "succeeded" | "failed" | "unknown" required
  • result object | null required
    • approved number required
    • rejected number required

users.save

Change someone's People directory record as an administrator: name, job title, manager, team, department or start date

POST/api/v1/manage/users/save

const result = await shuffl.users.save({
"departmentId": "<departmentId>",
"email": "<email>",
"expectedRevision": 0,
"groupIds": [
"<groupIds>"
],
"jobTitle": "<jobTitle>",
"managerId": "<managerId>",
"memberId": "<memberId>",
"name": "<name>",
"startDate": "<startDate>",
"timezone": "<timezone>",
"requestKey": "a-new-unique-key"
});
Request fields (16)
  • allowDuplicateEmail false | true optional
  • departmentId null | string required
  • email null | string required
  • employmentType null | "contractor" | "full_time" | "intern" | "part_time" | "temporary" optional
  • expectedRevision number required
  • groupIds string[] required
  • jobTitle null | string required
  • lastDay null | string optional
  • lastDayAnnounced false | true optional
  • managerId null | string required
  • memberId string required
  • name string required
  • originalStartDate null | string optional
  • startDate null | string required
  • timezone null | string required
  • requestKey string required1 to 128 characters
Response object
  • receipt object required
    • completedAt string (date-time) | null required
    • createdAt string (date-time) required
    • id string (uuid) required
    • operation string required
    • requestKey string required
    • status "running" | "succeeded" | "failed" | "unknown" required
  • result object | null required
    • department null | object required
      • id string required
      • name string required
    • directory null | object required
      • employmentType null | "contractor" | "full_time" | "intern" | "part_time" | "temporary" required
      • jobTitle null | string required
      • lastDay null | string required
      • lastDayAnnounced boolean required
      • managedAt null | string (date-time) required
      • managedBy null | string required
      • managerId null | string required
      • memberId string required
      • originalStartDate null | string required
      • revision number required
      • startDate null | string required
      • teamId string required
      • timezone null | string required
      • updatedAt string (date-time) required
    • groups object[] required
      • hrTeam boolean required
      • id string required
      • kind "dynamic" | "list" required
      • name string required
      • onProfile boolean required
      • source "directory" | "scim" | "shuffl" | "slack" required
    • manager null | object required
      • id string required
      • name string required
    • member object required
      • active boolean required
      • bot boolean required
      • createdAt string (date-time) required
      • email null | string required
      • employeeNumber null | number required
      • id string required
      • name string required
      • profile object required
        • askMeAbout string[] optional
        • asks string optional
        • bio string optional
        • interests string optional
        • location string optional
        • offers string optional
        • phone string optional
        • preferredName string optional
        • pronouns string optional
        • role string optional
        • workingOn string optional
      • slackPhotoUrl null | string required
      • slackProfileLinkAt null | string (date-time) required
      • slackUserId null | string required
      • teamId string required
      • userId null | string required