Skip to content
shuffl

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

Reference

Playbooks API

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

OpenAPI documentErrors and rate limitsSDK and CLI recipes

On this page

playbooks.buddyCandidates

Suggested buddies for a new hire: outside their reporting line, volunteers first, with how many hires each is buddying

POST/api/v1/manage/playbooks/buddyCandidates

const result = await shuffl.playbooks.buddyCandidates({
"personId": "<personId>"
});
Request fields (1)
  • personId string required
Response object
  • suggestions object[] required
    • id string required
    • load object required
      • active number required
      • total number required
    • name string required
    • photoUrl null | string required
    • reasons string[] required
    • slackUserId null | string required
    • title null | string required
    • userId null | string required
    • volunteer boolean required

playbooks.buddyFollowUps

Your "did you meet?" questions about a new hire or buddy you were paired with

POST/api/v1/manage/playbooks/buddyFollowUps

const result = await shuffl.playbooks.buddyFollowUps();
Request fields (none)

This operation takes no input.

Response object
  • questions object[] required
    • answer null | "helped" | "met" | "never" required
    • askedAt string required
    • id string required
    • other object required
      • id string required
      • name string required
      • photoUrl null | string required
      • slackUserId null | string required
      • title null | string required
      • userId null | string required
    • role "buddy" | "hire" required

playbooks.buddyProgram

Buddy volunteers and recent buddies, with how many of their hires said they met and how many never did

POST/api/v1/manage/playbooks/buddyProgram

const result = await shuffl.playbooks.buddyProgram();
Request fields (none)

This operation takes no input.

Response object
  • people object[] required
    • hiresAnswered number required
    • hiresHelped number required
    • hiresMet number required
    • id string required
    • lastNeverMetAt null | string required
    • load object required
      • active number required
      • total number required
    • name string required
    • neverMet number required
    • photoUrl null | string required
    • slackUserId null | string required
    • status null | "removed" | "volunteer" required
    • title null | string required
    • userId null | string required
  • summary object required
    • hiresAnswered number required
    • hiresMet number required
    • volunteers number required

playbooks.buddySuggestions

Suggest coworkers who could be your onboarding buddy

POST/api/v1/manage/playbooks/buddySuggestions

const result = await shuffl.playbooks.buddySuggestions();
Request fields (none)

This operation takes no input.

Response object

The response is object.

playbooks.candidates

List people who could be enrolled in onboarding

POST/api/v1/manage/playbooks/candidates

const result = await shuffl.playbooks.candidates({});
Request fields (1)
  • search string optional
Response object[]
  • email null | string required
  • employment "employed" | "ended" | "on_leave" | "unknown" required
  • id string required
  • name string required
  • startDate null | string required
  • timezone null | string required

playbooks.enrollmentPreview

Preview enrolling a new hire in onboarding

POST/api/v1/manage/playbooks/enrollmentPreview

const result = await shuffl.playbooks.enrollmentPreview({
"enrollmentId": "<enrollmentId>"
});
Request fields (1)
  • enrollmentId string required
Response object
  • enrollmentId string required
  • hash string required
  • joinedOn null | string required
  • revision number required
  • steps object[] required
    • byEmail boolean required
    • catchUp "bundled" | "planned" | "skipped" | "today" required
    • dueAt string (date-time) required
    • kind "acknowledge" | "buddy_invitation" | "catch_up" | "check_in" | "checkpoint" | "form" | "introduction" | "meet" | "message" | "task" required
    • meets null | string[] required
    • offsetDays number required
    • pending boolean required
    • preview string required
    • recipient null | "buddy" | "hire" | "hr" | "manager" | "person" required
    • recipientName null | string required
    • ref string required
    • status null | "accepted" | "answered" | "canceled" | "declined" | "failed" | "needs_review" | "opened" | "scheduled" | "sent" | "skipped" | "unknown" | "waiting" required
    • title null | string required
    • todos string[] required
    • track null | string required

playbooks.firstDaysCheckIns

Your open 30, 60 or 90-day or one-year new hire check-in

POST/api/v1/manage/playbooks/firstDaysCheckIns

const result = await shuffl.playbooks.firstDaysCheckIns();
Request fields (none)

This operation takes no input.

Response object[]
  • checkpoint string required
  • closesAt string (date-time) required
  • intro string required
  • note string required
  • playbook null | string required
  • questions object[] required
    • Option 1 object optional
      • id string required
      • kind "scale" required
      • scale "agree_5" | "nps_11" | "rating_5" | "yes_no" required
      • text string required
    • Option 2 object optional
      • id string required
      • kind "open" required
      • text string required
  • title string required

playbooks.firstDaysResults

What new hires said in their first 90 days check-ins, combined

POST/api/v1/manage/playbooks/firstDaysResults

const result = await shuffl.playbooks.firstDaysResults();
Request fields (none)

This operation takes no input.

Response object
  • checkpoints object[] required
    • answered number required
    • checkpoint "day_30" | "day_365" | "day_60" | "day_90" required
    • label string required
    • published boolean required
    • questions object[] required
      • Option 1 object optional
        • answers string[] required
        • favourable any optional
        • id string required
        • kind "open" required
        • text string required
      • Option 2 object optional
        • answers any optional
        • favourable null | number required
        • id string required
        • kind "scale" required
        • text string required
    • sent number required
  • floor number required
  • playbooks object[] required
    • answered number required
    • dayZero "date" | "joined" | "last_day" | "start_date" required
    • offsetDays number required
    • playbook string required
    • programId string required
    • published boolean required
    • questions object[] required
      • Option 1 object optional
        • answers string[] required
        • favourable any optional
        • id string required
        • kind "open" required
        • text string required
      • Option 2 object optional
        • answers any optional
        • favourable null | number required
        • id string required
        • kind "scale" required
        • text string required
    • sent number required
    • stepKey string required
    • title string required

playbooks.mine

Read your own onboarding plan and buddy asks

POST/api/v1/manage/playbooks/mine

const result = await shuffl.playbooks.mine();
Request fields (none)

This operation takes no input.

Response object

The response is object.

playbooks.person

Read a new hire's onboarding plan

POST/api/v1/manage/playbooks/person

const result = await shuffl.playbooks.person({
"personId": "<personId>"
});
Request fields (1)
  • personId string required
Response object
  • buddyTo object[] required
    • enrollmentId string required
    • hire object required
      • id string required
      • name string required
    • invitation null | "accepted" | "declined" | "pending" | "withdrawn" required
    • programId string required
    • programName string required
    • startDate string required
  • enrollments object[] required
    • buddy null | object required
      • id string required
      • name string required
    • buddyOn boolean required
    • enrollmentId string required
    • invitation null | "accepted" | "declined" | "pending" | "withdrawn" required
    • programId string required
    • programName string required
    • revision number required
    • startDate string required

playbooks.plans

The 30/60/90 plans for new hires you manage, and your own once your manager shares it

POST/api/v1/manage/playbooks/plans

const result = await shuffl.playbooks.plans();
Request fields (none)

This operation takes no input.

Response object
  • asHire object[] required
    • enrollmentId string required
    • manager null | object required
      • id string required
      • name string required
      • photoUrl null | string required
      • slackUserId null | string required
      • title null | string required
      • userId null | string required
    • plan object required
      • autoDrafted boolean required
      • draftedBy null | "ai" | "rule" required
      • goals object[] required
        • doneAt null | string required
        • id string required
        • stage 30 | 60 | 90 required
        • text string required
      • revision number required
      • sharedAt null | string required
      • status "draft" | "shared" required
      • updatedAt string required
    • programName string required
    • startDate string required
  • asManager object[] required
    • enrollmentId string required
    • hire object required
      • id string required
      • name string required
      • photoUrl null | string required
      • slackUserId null | string required
      • title null | string required
      • userId null | string required
    • plan null | object required
      • autoDrafted boolean required
      • draftedBy null | "ai" | "rule" required
      • goals object[] required
        • doneAt null | string required
        • id string required
        • stage 30 | 60 | 90 required
        • text string required
      • revision number required
      • sharedAt null | string required
      • status "draft" | "shared" required
      • updatedAt string required
    • programName string required
    • startDate string required

playbooks.previewAs

Which steps of a playbook one person would get, on which day, and why each skipped step is left out

POST/api/v1/manage/playbooks/previewAs

const result = await shuffl.playbooks.previewAs({
"personId": "<personId>",
"programId": "<programId>"
});
Request fields (2)
  • personId string required
  • programId string required
Response object
  • dayZero string required
  • person object required
    • id string required
    • name string required
  • skipped number required
  • steps object[] required
    • dueAt string (date-time) required
    • kind "acknowledge" | "buddy_invitation" | "catch_up" | "check_in" | "checkpoint" | "form" | "introduction" | "meet" | "message" | "task" required
    • meets string[] required
    • offsetDays number required
    • recipient null | "buddy" | "hire" | "hr" | "manager" | "person" required
    • ref string required
    • skipped null | string required
    • title null | string required
    • track null | string required
  • tracked number required

playbooks.program

Read the Onboarding program settings

POST/api/v1/manage/playbooks/program

const result = await shuffl.playbooks.program({
"programId": "<programId>"
});
Request fields (1)
  • programId string required
Response object
  • config object required
    • autoStart false | true optional
    • autoStartGroupId null | string optional
    • autoStartPaused false | true optional
    • buddy false | true optional
    • buddyFollowUpOffsetDays null | number optional
    • buddyInvitation string required
    • buddyOffsetDays number required
    • buddyTopics string[] optional
    • catchUp "bundle" | "shift" | "skip" optional
    • checkIn string required
    • checkInOffsetDays number required
    • dayZero "date" | "joined" | "last_day" | "start_date" optional
    • dayZeroDate null | string optional
    • helpCheckIn false | true optional
    • introductionOffsetDays number required
    • responderPersonId null | string required
    • sendTime string required
    • steps object[] optional
      • body string required
      • checkpoint "custom" | "day_30" | "day_365" | "day_60" | "day_90" optional
      • formFields "bio" | "birthday" | "photo" | "preferredName" | "pronouns"[] optional
      • id string required
      • kind "acknowledge" | "checkpoint" | "form" | "meet" | "message" | "task" required
      • meet "manager" | "person" | "skip_level" | "teammates" optional
      • meetCount number optional
      • notFor string[] optional
      • offsetDays number required
      • onlyFor string[] optional
      • personId null | string required
      • questions object[] optional
        • Option 1 object optional
          • id string required
          • kind "scale" required
          • scale "agree_5" | "rating_5" | "yes_no" required
          • text string required
        • Option 2 object optional
          • id string required
          • kind "open" required
          • text string required
      • recipient "buddy" | "hire" | "hr" | "manager" | "person" required
      • resources object[] required
        • Option 1 object optional
          • sourceId string required
          • title string required
          • type "knowledge" required
        • Option 2 object optional
          • label string required
          • type "link" required
          • url string required
        • Option 3 object optional
          • communityId string required
          • name string required
          • type "community" required
      • title string required
      • todos object[] required
        • id string required
        • label string required
    • timezone string required
  • hires object required
    • active number required
    • askedForHelp number required
    • onTime null | number required
    • overdue number required
  • intro string required
  • program object required
    • id string required
    • name string required
    • revision number required
    • status "active" | "archived" | "paused" required
  • responderName null | string required
  • rows object[] required
    • approvedAt null | string (date-time) required
    • buddy null | object required
      • id string required
      • invitation null | object required
        • id string required
        • respondedAt null | string (date-time) required
        • status "accepted" | "declined" | "pending" | "withdrawn" required
      • name string required
    • episode number required
    • id string required
    • person object required
      • id string required
      • name string required
    • plan null | object required
      • Option 1 object optional
        • done number required
        • goals object[] required
        • state "draft" | "shared" required
        • total number required
      • Option 2 object optional
        • done number required
        • goals any[] required
        • state "none" required
        • total number required
    • progress null | object required
      • day number required
      • done number required
      • help boolean required
      • next null | object required
        • at null | string (date-time) required
        • title string required
      • overdue object[] required
        • count number required
        • nudgedAt null | string (date-time) required
        • ownerId string required
        • ownerName string required
        • role "buddy" | "hire" | "manager" | "other" required
        • since string (date-time) required
      • total number required
      • unconfirmed number required
    • removalReason null | "access_suspended" | "administrator" | "employment_ended" | "leaving_cancelled" required
    • revision number required
    • startDate string required
    • status "active" | "completed" | "removed" required
    • steps object[] required
      • acknowledgedVersionId null | string required
      • answer null | "all_good" | "need_help" required
      • answeredAt null | string (date-time) required
      • deliveries object[] required
        • attempts number required
        • component "bio" | "bio_invite" | "channel_notice" | "email" | "intro" | "open" required
        • errorCode null | string required
        • id string required
        • state "attempting" | "canceled" | "failed" | "pending" | "sent" | "unknown" required
      • dueAt null | string (date-time) required
      • errorCode null | string required
      • followUp null | object required
        • owned boolean required
        • resolvedAt null | string (date-time) required
        • status string required
      • id string required
      • kind "acknowledge" | "buddy_invitation" | "catch_up" | "check_in" | "checkpoint" | "follow_up" | "form" | "introduction" | "meet" | "message" | "task" required
      • offsetDays number required
      • sentAt null | string (date-time) required
      • status "accepted" | "answered" | "canceled" | "declined" | "failed" | "needs_review" | "opened" | "scheduled" | "sent" | "skipped" | "unknown" | "waiting" required
      • stepKey null | string required
      • title null | string required
    • timezone string required
  • stepPeople object required
  • tracks object[] required
    • department boolean required
    • hires number required
    • id string required
    • kind "dynamic" | "list" required
    • name string required
    • not number required
    • only number required
    • rules null | string required

playbooks.run

One of your playbooks (onboarding or another): day 0, buddy, manager, upcoming check-ins, your to-dos and resources, and the other playbooks you are on

POST/api/v1/manage/playbooks/run

const result = await shuffl.playbooks.run({});
Request fields (1)
  • enrollmentId null | string optional
Response null | object

The response is null | object.

playbooks.answerBuddyAsk

Say yes or not now to being a new hire’s onboarding buddy

POST/api/v1/manage/playbooks/answerBuddyAsk

const result = await shuffl.playbooks.answerBuddyAsk({
"answer": "accept",
"askId": "<askId>",
"confirm": "playbooks.answerBuddyAsk",
"requestKey": "a-new-unique-key"
});
Request fields (4)
  • answer "accept" | "decline" required
  • askId string required
  • confirm "playbooks.answerBuddyAsk" 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 boolean required
    • id string required
    • status string required

playbooks.answerBuddyFollowUp

Answer whether you met your buddy or new hire, and whether it helped

POST/api/v1/manage/playbooks/answerBuddyFollowUp

const result = await shuffl.playbooks.answerBuddyFollowUp({
"answer": "helped",
"feedbackId": "<feedbackId>",
"confirm": "playbooks.answerBuddyFollowUp",
"requestKey": "a-new-unique-key"
});
Request fields (4)
  • answer "helped" | "met" | "never" required
  • feedbackId string required
  • confirm "playbooks.answerBuddyFollowUp" 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
    • answer "helped" | "met" | "never" required
    • changed boolean required
    • first boolean required
    • role "buddy" | "hire" required

playbooks.answerCheckIn

Answer your onboarding program’s help check-in: all good, or ask HR for help

POST/api/v1/manage/playbooks/answerCheckIn

const result = await shuffl.playbooks.answerCheckIn({
"answer": "all_good",
"stepId": "<stepId>",
"requestKey": "a-new-unique-key"
});
Request fields (4)
  • answer "all_good" | "need_help" required
  • share object optional
    • body string required
    • conversationId null | string optional
    • destinationRevision number required
    • requestId string required
    • responderPersonIds string[] required
    • sourceOwnerId null | string optional
  • stepId 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
    • answer "all_good" | "need_help" required
    • caseId null | string required

playbooks.answerFirstDaysCheckIn

Answer your new-hire check-in

POST/api/v1/manage/playbooks/answerFirstDaysCheckIn

const result = await shuffl.playbooks.answerFirstDaysCheckIn({
"answers": [
{
"question": "<question>"
}
],
"checkpoint": "<checkpoint>",
"confirm": "playbooks.answerFirstDaysCheckIn",
"requestKey": "a-new-unique-key"
});
Request fields (4)
  • answers object[] required
    • comment string optional
    • question string required
    • value number optional
  • checkpoint string required
  • confirm "playbooks.answerFirstDaysCheckIn" 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
    • checkpoint "custom" | "day_30" | "day_365" | "day_60" | "day_90" required
    • commented boolean required

playbooks.answerForm

Answer a playbook’s Tell us about you form; the answers fill in your profile

POST/api/v1/manage/playbooks/answerForm

const result = await shuffl.playbooks.answerForm({
"stepId": "<stepId>",
"confirm": "playbooks.answerForm",
"requestKey": "a-new-unique-key"
});
Request fields (7)
  • bio string optional
  • birthday null | object optional
    • day number required
    • month number required
  • preferredName string optional
  • pronouns string optional
  • stepId string required
  • confirm "playbooks.answerForm" 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
    • answered true required
    • fields number required

playbooks.approve

Approve these exact playbook messages for sending

POST/api/v1/manage/playbooks/approve

  • Write
  • Permission playbooks.approve
  • Needs a requestKey
  • Needs confirm set to playbooks.approve
const result = await shuffl.playbooks.approve({
"enrollmentId": "<enrollmentId>",
"expectedRevision": 0,
"previewHash": "<previewHash>",
"confirm": "playbooks.approve",
"requestKey": "a-new-unique-key"
});
Request fields (5)
  • enrollmentId string required
  • expectedRevision number required
  • previewHash string required
  • confirm "playbooks.approve" 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
    • revision number required

playbooks.askBuddy

Ask this coworker to be your onboarding buddy

POST/api/v1/manage/playbooks/askBuddy

  • Write
  • Permission playbooks.askBuddy
  • Needs a requestKey
  • Needs confirm set to playbooks.askBuddy
const result = await shuffl.playbooks.askBuddy({
"personId": "<personId>",
"confirm": "playbooks.askBuddy",
"requestKey": "a-new-unique-key"
});
Request fields (4)
  • note string optional
  • personId string required
  • confirm "playbooks.askBuddy" 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
      • personId string required
      • status "already_asked" required
    • Option 2 object optional
      • personId string required
      • status "asked" required

playbooks.assignBuddy

Assign an onboarding buddy to a new hire

POST/api/v1/manage/playbooks/assignBuddy

const result = await shuffl.playbooks.assignBuddy({
"buddyPersonId": "<buddyPersonId>",
"enrollmentId": "<enrollmentId>",
"expectedRevision": 0,
"requestKey": "a-new-unique-key"
});
Request fields (4)
  • buddyPersonId string required
  • enrollmentId string required
  • expectedRevision number 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
    • invitationId string required
    • revision number required

playbooks.completeTodo

Check off (or reopen) one of your own playbook to-dos

POST/api/v1/manage/playbooks/completeTodo

const result = await shuffl.playbooks.completeTodo({
"done": false,
"todoId": "<todoId>",
"confirm": "playbooks.completeTodo",
"requestKey": "a-new-unique-key"
});
Request fields (4)
  • done boolean required
  • todoId string required
  • confirm "playbooks.completeTodo" 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 boolean required
    • done boolean required

playbooks.draftPlan

Have Mello draft the 30/60/90 plan for a new hire you manage (not yet shared)

POST/api/v1/manage/playbooks/draftPlan

const result = await shuffl.playbooks.draftPlan({
"enrollmentId": "<enrollmentId>",
"confirm": "playbooks.draftPlan",
"requestKey": "a-new-unique-key"
});
Request fields (3)
  • enrollmentId string required
  • confirm "playbooks.draftPlan" 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
    • autoDrafted boolean required
    • draftedBy null | "ai" | "rule" required
    • goals object[] required
      • doneAt null | string required
      • id string required
      • stage 30 | 60 | 90 required
      • text string required
    • revision number required
    • sharedAt null | string required
    • status "draft" | "shared" required
    • updatedAt string required

playbooks.enroll

Put this person on a playbook

POST/api/v1/manage/playbooks/enroll

  • Write
  • Permission playbooks.enroll
  • Needs a requestKey
  • Needs confirm set to playbooks.enroll
const result = await shuffl.playbooks.enroll({
"fingerprint": "<fingerprint>",
"programId": "<programId>",
"requestKey": "a-new-unique-key",
"confirm": "playbooks.enroll"
});
Request fields (9)
  • catchUp null | "bundle" | "shift" | "skip" optional
  • communityId null | string optional
  • departmentId null | string optional
  • fingerprint string required
  • groupId null | string optional
  • programId string required
  • requestKey string required1 to 128 characters
  • rows object[] optional
    • buddyEmail null | string optional
    • buddyPersonId null | string optional
    • email null | string optional
    • personId null | string optional
    • startDate null | string optional
    • timezone null | string optional
  • confirm "playbooks.enroll" required
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
    • catchUp "bundle" | "shift" | "skip" required
    • enrolled object[] required
      • enrollmentId string required
      • episode number required
      • personId string required
    • late number required
    • replayed boolean required
    • skipped number[] required

playbooks.nudge

Send someone one Slack nudge about a hire’s overdue playbook to-dos, at most once a day

POST/api/v1/manage/playbooks/nudge

  • Write
  • Permission playbooks.nudge
  • Needs a requestKey
  • Needs confirm set to playbooks.nudge
const result = await shuffl.playbooks.nudge({
"enrollmentId": "<enrollmentId>",
"ownerPersonId": "<ownerPersonId>",
"confirm": "playbooks.nudge",
"requestKey": "a-new-unique-key"
});
Request fields (4)
  • enrollmentId string required
  • ownerPersonId string required
  • confirm "playbooks.nudge" 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
    • nudgedAt null | string (date-time) required
    • status "failed" | "no_slack" | "nothing_overdue" | "off" | "recent" | "sent" required
    • todos number required

playbooks.previewEnrollment

Preview the onboarding steps for a new hire

POST/api/v1/manage/playbooks/previewEnrollment

const result = await shuffl.playbooks.previewEnrollment({
"programId": "<programId>",
"requestKey": "a-new-unique-key"
});
Request fields (6)
  • communityId null | string optional
  • departmentId null | string optional
  • groupId null | string optional
  • programId string required
  • rows object[] optional
    • buddyEmail null | string optional
    • buddyPersonId null | string optional
    • email null | string optional
    • personId null | string optional
    • startDate null | string optional
    • timezone null | 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
    • catchUp object required
      • default "bundle" | "shift" | "skip" required
      • late number required
      • sample null | object required
        • name string required
        • plans object required
        • timezone string required
    • fingerprint string required
    • rows object[] required
      • buddyName null | string required
      • buddyPersonId null | string required
      • email null | string required
      • index number required
      • missed number required
      • name null | string required
      • personId null | string required
      • problems "already_enrolled" | "ambiguous_email" | "buddy_ambiguous_email" | "buddy_employment_ended" | "buddy_is_hire" | "buddy_no_match" | "duplicate_row" | "employment_ended" | "invalid_timezone" | "missing_last_day" | "missing_start_date" | "no_match"[] required
      • startDate null | string required
      • timezone null | string required
      • warnings "access_pending" | "buddy_no_slack_identity" | "no_buddy" | "no_slack_identity"[] required

playbooks.remove

Remove a new hire from onboarding

POST/api/v1/manage/playbooks/remove

const result = await shuffl.playbooks.remove({
"enrollmentId": "<enrollmentId>",
"expectedRevision": 0,
"requestKey": "a-new-unique-key"
});
Request fields (3)
  • enrollmentId string required
  • expectedRevision number 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
    • revision number required

playbooks.respondBuddy

Accept or decline being an onboarding buddy

POST/api/v1/manage/playbooks/respondBuddy

const result = await shuffl.playbooks.respondBuddy({
"invitationId": "<invitationId>",
"response": "accept",
"requestKey": "a-new-unique-key"
});
Request fields (3)
  • invitationId string required
  • response "accept" | "decline" 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
    • status string required

playbooks.retry

Retry a failed onboarding step

POST/api/v1/manage/playbooks/retry

const result = await shuffl.playbooks.retry({
"stepId": "<stepId>",
"requestKey": "a-new-unique-key"
});
Request fields (2)
  • stepId 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
    • status "scheduled" required

playbooks.savePlan

Write the goals of the 30/60/90 plan for a new hire you manage

POST/api/v1/manage/playbooks/savePlan

  • Write
  • Permission playbooks.savePlan
  • Needs a requestKey
  • Needs confirm set to playbooks.savePlan
const result = await shuffl.playbooks.savePlan({
"enrollmentId": "<enrollmentId>",
"expectedRevision": 0,
"goals": [
{
"stage": 30,
"text": "<text>"
}
],
"confirm": "playbooks.savePlan",
"requestKey": "a-new-unique-key"
});
Request fields (5)
  • enrollmentId string required
  • expectedRevision number required
  • goals object[] required
    • id null | string optional
    • stage 30 | 60 | 90 required
    • text string required
  • confirm "playbooks.savePlan" 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
    • autoDrafted boolean required
    • draftedBy null | "ai" | "rule" required
    • goals object[] required
      • doneAt null | string required
      • id string required
      • stage 30 | 60 | 90 required
      • text string required
    • revision number required
    • sharedAt null | string required
    • status "draft" | "shared" required
    • updatedAt string required

playbooks.saveProgram

Save a playbook: its day 0, steps and messages

POST/api/v1/manage/playbooks/saveProgram

const result = await shuffl.playbooks.saveProgram({
"program": {
"intro": "<intro>",
"name": "<name>",
"playbook": {
"buddyInvitation": "<buddyInvitation>",
"buddyOffsetDays": 0,
"checkIn": "<checkIn>",
"checkInOffsetDays": 0,
"introductionOffsetDays": 0,
"responderPersonId": "<responderPersonId>",
"sendTime": "<sendTime>",
"timezone": "<timezone>"
}
},
"confirm": "playbooks.saveProgram",
"requestKey": "a-new-unique-key"
});
Request fields (6)
  • draft false | true optional
  • expectedRevision number optional
  • id string optional
  • program object required
    • intro string required
    • name string required
    • playbook object required
      • autoStart false | true optional
      • autoStartGroupId null | string optional
      • autoStartPaused false | true optional
      • buddy false | true optional
      • buddyFollowUpOffsetDays null | number optional
      • buddyInvitation string required
      • buddyOffsetDays number required
      • buddyTopics string[] optional
      • catchUp "bundle" | "shift" | "skip" optional
      • checkIn string required
      • checkInOffsetDays number required
      • dayZero "date" | "joined" | "last_day" | "start_date" optional
      • dayZeroDate null | string optional
      • helpCheckIn false | true optional
      • introductionOffsetDays number required
      • responderPersonId null | string required
      • sendTime string required
      • steps object[] optional
        • body string optional
        • checkpoint "custom" | "day_30" | "day_365" | "day_60" | "day_90" optional
        • formFields "bio" | "birthday" | "photo" | "preferredName" | "pronouns"[] optional
        • id string required
        • kind "acknowledge" | "checkpoint" | "form" | "meet" | "message" | "task" required
        • meet "manager" | "person" | "skip_level" | "teammates" optional
        • meetCount number optional
        • notFor string[] optional
        • offsetDays number required
        • onlyFor string[] optional
        • personId null | string optional
        • questions object[] optional
        • recipient "buddy" | "hire" | "hr" | "manager" | "person" required
        • resources object[] optional
        • title string required
        • todos object[] optional
      • timezone string required
  • confirm "playbooks.saveProgram" 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
    • channelId string required
    • channelName string required
    • communityIds string[] required
    • createdAt string (date-time) required
    • groupId null | string required
    • id string required
    • includeBios boolean required
    • includeSchedulingLink boolean required
    • intro string required
    • kind "introductions" | "playbook" required
    • match object required
      • fineTune object optional
        • commonGround 0 | 1 | 2 required
        • meetRequests boolean required
        • mentionCommonGround boolean required
        • reach "any" | "far" | "fof" required
      • groupSize number required
      • iterations number required
      • keepApart object optional
        • relationships "department" | "know-each-other" | "reporting-line" | "team"[] required
        • strict boolean required
      • maxGroupSize number required
      • strategy "cross-unit" | "group-frequency-weighted" | "group-frequency-weighted-v2" | "hosted" | "new-connections" | "random" | "unit-lottery-weighted" | "unit-weighted" | "unit-weighted-multiple-hosts-per-group" | "unit-weighted-one-host-per-group" | "within-unit" required
      • unitIds string[] optional
      • unitKind "community" | "department" | "team" optional
    • matchingReviewRequired boolean required
    • name string required
    • nextRunAt null | string (date-time) required
    • playbook null | object required
      • autoStart false | true optional
      • autoStartGroupId null | string optional
      • autoStartPaused false | true optional
      • buddy false | true optional
      • buddyFollowUpOffsetDays null | number optional
      • buddyInvitation string required
      • buddyOffsetDays number required
      • buddyTopics string[] optional
      • catchUp "bundle" | "shift" | "skip" optional
      • checkIn string required
      • checkInOffsetDays number required
      • dayZero "date" | "joined" | "last_day" | "start_date" optional
      • dayZeroDate null | string optional
      • helpCheckIn false | true optional
      • introductionOffsetDays number required
      • responderPersonId null | string required
      • sendTime string required
      • steps object[] optional
        • body string required
        • checkpoint "custom" | "day_30" | "day_365" | "day_60" | "day_90" optional
        • formFields "bio" | "birthday" | "photo" | "preferredName" | "pronouns"[] optional
        • id string required
        • kind "acknowledge" | "checkpoint" | "form" | "meet" | "message" | "task" required
        • meet "manager" | "person" | "skip_level" | "teammates" optional
        • meetCount number optional
        • notFor string[] optional
        • offsetDays number required
        • onlyFor string[] optional
        • personId null | string required
        • questions object[] optional
        • recipient "buddy" | "hire" | "hr" | "manager" | "person" required
        • resources object[] required
        • title string required
        • todos object[] required
      • timezone string required
    • revision number required
    • rosterSyncedAt null | string (date-time) required
    • schedule object required
      • Option 1 object optional
        • anchor string required
        • days number[] optional
        • frequency "days" | "hours" | "minutes" | "monthly-date" | "monthly-last-weekday" | "monthly-weekday" | "weeks" required
        • interval number required
        • timezone string required
      • Option 2 object optional
        • anchor string required
        • calendar object required
        • frequency "legacy-monthly" required
        • insufficientOptInsNotice object required
        • interval 1 required
        • origin "source-pending" optional
        • timezone string required
        • version 1 required
      • Option 3 object optional
        • anchor null | string required
        • calendar object required
        • frequency "legacy-monthly" required
        • insufficientOptInsNotice object required
        • interval 1 required
        • origin "operator-future-start" required
        • timezone string required
        • version 1 required
    • status "active" | "archived" | "paused" required
    • teamId string required

playbooks.setBuddyVolunteer

Put someone on the buddy volunteer list, take them off it, or clear it

POST/api/v1/manage/playbooks/setBuddyVolunteer

const result = await shuffl.playbooks.setBuddyVolunteer({
"personId": "<personId>",
"status": "none",
"confirm": "playbooks.setBuddyVolunteer",
"requestKey": "a-new-unique-key"
});
Request fields (4)
  • personId string required
  • status "none" | "removed" | "volunteer" required
  • confirm "playbooks.setBuddyVolunteer" 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 boolean required
    • status null | "removed" | "volunteer" required

playbooks.setPlanGoal

Tick a goal on a shared 30/60/90 plan done, or not done

POST/api/v1/manage/playbooks/setPlanGoal

const result = await shuffl.playbooks.setPlanGoal({
"done": false,
"enrollmentId": "<enrollmentId>",
"goalId": "<goalId>",
"confirm": "playbooks.setPlanGoal",
"requestKey": "a-new-unique-key"
});
Request fields (5)
  • done boolean required
  • enrollmentId string required
  • goalId string required
  • confirm "playbooks.setPlanGoal" 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
    • plan object required
      • autoDrafted boolean required
      • draftedBy null | "ai" | "rule" required
      • goals object[] required
        • doneAt null | string required
        • id string required
        • stage 30 | 60 | 90 required
        • text string required
      • revision number required
      • sharedAt null | string required
      • status "draft" | "shared" required
      • updatedAt string required
    • role "hire" | "manager" required
    • stage 30 | 60 | 90 required

playbooks.sharePlan

Share the 30/60/90 plan with the new hire you manage

POST/api/v1/manage/playbooks/sharePlan

const result = await shuffl.playbooks.sharePlan({
"enrollmentId": "<enrollmentId>",
"expectedRevision": 0,
"confirm": "playbooks.sharePlan",
"requestKey": "a-new-unique-key"
});
Request fields (4)
  • enrollmentId string required
  • expectedRevision number required
  • confirm "playbooks.sharePlan" 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
    • autoDrafted boolean required
    • draftedBy null | "ai" | "rule" required
    • goals object[] required
      • doneAt null | string required
      • id string required
      • stage 30 | 60 | 90 required
      • text string required
    • revision number required
    • sharedAt null | string required
    • status "draft" | "shared" required
    • updatedAt string required

playbooks.update

Change a new hire's onboarding start date or time zone

POST/api/v1/manage/playbooks/update

const result = await shuffl.playbooks.update({
"enrollmentId": "<enrollmentId>",
"expectedRevision": 0,
"startDate": "<startDate>",
"timezone": "<timezone>",
"requestKey": "a-new-unique-key"
});
Request fields (5)
  • enrollmentId string required
  • expectedRevision number required
  • startDate string required
  • timezone 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
    • revision number required
    • stepsReturnedToReview number required

playbooks.volunteerAsBuddy

Say you are happy to be an onboarding buddy, or stop

POST/api/v1/manage/playbooks/volunteerAsBuddy

const result = await shuffl.playbooks.volunteerAsBuddy({
"volunteer": false,
"confirm": "playbooks.volunteerAsBuddy",
"requestKey": "a-new-unique-key"
});
Request fields (3)
  • volunteer boolean required
  • confirm "playbooks.volunteerAsBuddy" 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 boolean required
    • status null | "volunteer" required