Skip to content
shuffl

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

Reference

Groups API

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

OpenAPI documentErrors and rate limitsSDK and CLI recipes

On this page

groups.allAutomations

Every join and leave automation in the workspace: group automations with their group and last runs, playbooks that start on each start date or each last day (`dayZero`) and Connections programs whose people are a group; or only those that start one playbook, program or community

POST/api/v1/manage/groups/allAutomations

const result = await shuffl.groups.allAutomations({});
Request fields (1)
  • targetId string optional
Response object
  • automations object[] required
    • config object required
      • action null | object optional
        • label string required
        • path string required
      • badgeId string optional
      • body string[] optional
      • channel "email" | "preferred" | "slack" optional
      • channelId string optional
      • channelName string optional
      • communityId string optional
      • note string optional
      • personId string optional
      • programId string optional
      • questionId string optional
      • subject string optional
      • targetGroupId string optional
    • createdAt string (date-time) required
    • createdBy null | string required
    • delayDays number required
    • group object required
      • id string required
      • kind "dynamic" | "list" required
      • members number required
      • name string required
    • groupId string required
    • id string required
    • kind "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
    • lastRunAt null | string (date-time) required
    • runs number required
    • state "active" | "paused" required
    • summary string required
    • target null | object required
      • id string required
      • name null | string required
    • trigger "entered" | "left" required
    • updatedAt string (date-time) required
    • when string required
  • playbookStarts object[] required
    • dayZero "last_day" | "start_date" required
    • group null | object required
      • id string required
      • kind "dynamic" | "list" required
      • members number required
      • name string required
    • lastRunAt null | string (date-time) required
    • playbook object required
      • id string required
      • name string required
      • status "active" | "archived" | "paused" required
    • runs number required
    • runs30 number required
    • state "active" | "paused" required
  • programRosters object[] required
    • group object required
      • id string required
      • kind "dynamic" | "list" required
      • members number required
      • name string required
    • program object required
      • id string required
      • name string required
    • state "active" | "paused" required
  • runs object[] required
    • at string (date-time) required
    • automationId string required
    • code null | string required
    • dueAt null | string (date-time) required
    • groupId string required
    • groupName null | string required
    • id string required
    • kind null | "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
    • name null | string required
    • outcome "done" | "failed" | "scheduled" | "skipped" required
    • personId string required
    • trigger "entered" | "left" required
    • why null | string required
  • totals object required
    • active number required
    • done30 number required
    • failed30 number required
    • groups number required
    • paused number required
    • scheduled number required
    • skipped30 number required

groups.automationChoices

The Pulse questions, badges and Shuffl lists a group automation can ask, give or add people to

POST/api/v1/manage/groups/automationChoices

const result = await shuffl.groups.automationChoices();
Request fields (none)

This operation takes no input.

Response object
  • badges object[] required
    • id string required
    • name string required
  • groups object[] required
    • department boolean required
    • id string required
    • name string required
  • questions object[] required
    • id string required
    • retired boolean required
    • text string required

groups.automationInsights

Group automation runs over the last `days` (30, 90 or 180) against the period before: done, skipped and failed, people reached, by week and kind, the top reasons a run did nothing, runs still scheduled and automations on; `groupId` narrows it

POST/api/v1/manage/groups/automationInsights

const result = await shuffl.groups.automationInsights({});
Request fields (2)
  • days 30 | 90 | 180 optional
  • groupId string optional
Response object
  • automations object required
    • on number required
    • total number required
  • byKind object[] required
    • done number required
    • failed number required
    • kind "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
    • skipped number required
  • current object required
    • done number required
    • failed number required
    • people number required
    • skipped number required
  • end string (date-time) required
  • previous object required
    • done number required
    • failed number required
    • people number required
    • skipped number required
  • reasons object[] required
    • code string required
    • n number required
    • outcome "done" | "failed" | "scheduled" | "skipped" required
    • why string required
  • scheduled number required
  • start string (date-time) required
  • weekly object[] required
    • done number required
    • failed number required
    • people number required
    • skipped number required
    • week string required

groups.automationRuns

Every group automation run in the workspace, newest first, 50 at a time (`next` is the cursor for the page after), with `counts` by outcome; `outcome` and `groupId` narrow it

POST/api/v1/manage/groups/automationRuns

const result = await shuffl.groups.automationRuns({});
Request fields (3)
  • cursor string optional
  • groupId string optional
  • outcome "done" | "failed" | "scheduled" | "skipped" optional
Response object
  • counts object required
    • done number required
    • failed number required
    • scheduled number required
    • skipped number required
  • next null | string required
  • runs object[] required
    • at string (date-time) required
    • automationId string required
    • code null | string required
    • dueAt null | string (date-time) required
    • groupId string required
    • groupName string required
    • id string required
    • kind "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
    • name null | string required
    • outcome "done" | "failed" | "scheduled" | "skipped" required
    • personId string required
    • trigger "entered" | "left" required
    • why null | string required

groups.automations

A group’s automations (what happens when someone joins or leaves) and their last runs

POST/api/v1/manage/groups/automations

const result = await shuffl.groups.automations({
"groupId": "<groupId>"
});
Request fields (1)
  • groupId string required
Response object
  • automations object[] required
    • config object required
      • action null | object optional
        • label string required
        • path string required
      • badgeId string optional
      • body string[] optional
      • channel "email" | "preferred" | "slack" optional
      • channelId string optional
      • channelName string optional
      • communityId string optional
      • note string optional
      • personId string optional
      • programId string optional
      • questionId string optional
      • subject string optional
      • targetGroupId string optional
    • createdAt string (date-time) required
    • createdBy null | string required
    • delayDays number required
    • groupId string required
    • id string required
    • kind "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
    • lastRunAt null | string (date-time) required
    • runs number required
    • state "active" | "paused" required
    • summary string required
    • target null | object required
      • id string required
      • name null | string required
    • trigger "entered" | "left" required
    • updatedAt string (date-time) required
    • when string required
  • groupId string required
  • runs object[] required
    • at string (date-time) required
    • automationId string required
    • code null | string required
    • dueAt null | string (date-time) required
    • id string required
    • kind "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
    • name null | string required
    • outcome "done" | "failed" | "scheduled" | "skipped" required
    • personId string required
    • trigger "entered" | "left" required
    • why null | string required

groups.directory

List the groups shown on profiles, yours first, with a few faces each

POST/api/v1/manage/groups/directory

const result = await shuffl.groups.directory();
Request fields (none)

This operation takes no input.

Response object
  • groups object[] required
    • description string required
    • faces object[] required
      • id string required
      • name string required
      • photoUrl null | string required
      • title null | string required
    • hrTeam boolean required
    • id string required
    • memberCount number required
    • mine boolean required
    • name string required
    • source "directory" | "scim" | "shuffl" | "slack" required

groups.directoryGroup

Read one group shown on profiles and everyone in it

POST/api/v1/manage/groups/directoryGroup

const result = await shuffl.groups.directoryGroup({
"id": "<id>"
});
Request fields (1)
  • id string required
Response object
  • description string required
  • hrTeam boolean required
  • id string required
  • memberCount number required
  • members object[] required
    • id string required
    • name string required
    • photoUrl null | string required
    • title null | string required
  • mine boolean required
  • name string required
  • source "directory" | "scim" | "shuffl" | "slack" required

groups.export

A group’s members as a CSV file: name, email, title, department, manager and when they joined

POST/api/v1/manage/groups/export

const result = await shuffl.groups.export({
"id": "<id>"
});
Request fields (1)
  • id string required
Response object
  • csv string required
  • filename string required
  • people number required

groups.get

Read one group: its rules, members and recent entries and exits

POST/api/v1/manage/groups/get

const result = await shuffl.groups.get({
"id": "<id>"
});
Request fields (1)
  • id string required
Response object
  • automations number required
  • createdAt string (date-time) required
  • createdBy null | string required
  • criteria object required
    • all object[] required
      • Option 1 object optional
        • attribute string required
        • operator string required
        • value string | number | false | true | string[] optional
      • Option 2 object optional
        • any object[] required
  • department boolean required
  • description string required
  • entered7 number required
  • events object[] required
    • at string (date-time) required
    • kind "entered" | "left" required
    • name string required
    • personId string required
  • hrTeam boolean required
  • id string required
  • kind "dynamic" | "list" required
  • left7 number required
  • memberCount number required
  • members object required
    • members object[] required
      • detail null | string required
      • enteredAt string (date-time) required
      • id string required
      • name string required
    • offset number required
    • total number required
  • name string required
  • names object required
  • onProfile boolean required
  • refreshError null | string required
  • refreshedAt null | string (date-time) required
  • series object[] required
    • day string required
    • members number required
  • source "directory" | "scim" | "shuffl" | "slack" required
  • suggestion null | string required
  • summary string required
  • updatedAt string (date-time) required

groups.glance

One group at a glance: size, joins, departments, tenure and time zones

POST/api/v1/manage/groups/glance

const result = await shuffl.groups.glance({
"id": "<id>"
});
Request fields (1)
  • id string required
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

groups.list

List the workspace’s groups with who is in each

POST/api/v1/manage/groups/list

const result = await shuffl.groups.list();
Request fields (none)

This operation takes no input.

Response object
  • groups object[] required
    • automations number required
    • createdAt string (date-time) required
    • createdBy null | string required
    • criteria object required
      • all object[] required
        • Option 1 object optional
          • attribute string required
          • operator string required
          • value string | number | false | true | string[] optional
        • Option 2 object optional
          • any object[] required
    • department boolean required
    • description string required
    • hrTeam boolean required
    • id string required
    • kind "dynamic" | "list" required
    • memberCount number required
    • name string required
    • onProfile boolean required
    • refreshError null | string required
    • refreshedAt null | string (date-time) required
    • source "directory" | "scim" | "shuffl" | "slack" required
    • suggestion null | string required
    • summary string required
    • updatedAt string (date-time) required
    • week number[] required
    • weekChange number required
  • totals object required
    • dynamic number required
    • groups number required
    • people number required

groups.members

One page of a group’s members

POST/api/v1/manage/groups/members

const result = await shuffl.groups.members({
"id": "<id>"
});
Request fields (4)
  • id string required
  • limit number optional
  • offset number optional
  • search string optional
Response object
  • members object[] required
    • detail null | string required
    • enteredAt string (date-time) required
    • id string required
    • name string required
  • offset number required
  • total number required

groups.message

One message to a group: its words, who it would reach now and how it reads to one member

POST/api/v1/manage/groups/message

const result = await shuffl.groups.message({
"id": "<id>"
});
Request fields (1)
  • id string required
Response object
  • action null | object required
    • label string required
    • path string required
  • automationId null | string required
  • body string[] required
  • channel "email" | "preferred" | "slack" required
  • createdAt string (date-time) required
  • createdBy null | string required
  • discardedAt null | string (date-time) required
  • groupId string required
  • id string required
  • preview object required
    • action null | object required
      • label string required
      • path string required
    • as null | string required
    • body string[] required
    • channels "email" | "slack" | "teams"[] required
    • from string required
    • subject string required
    • url null | string required
  • queued number required
  • reach object required
    • alreadyToday number required
    • reachable number required
    • recipients number required
    • unreachable number required
  • recipients number required
  • sentAt null | string (date-time) required
  • sentBy null | string required
  • skipped number required
  • status "discarded" | "draft" | "sending" | "sent" required
  • subject string required

groups.messages

The drafts and sends of messages to a group, newest first

POST/api/v1/manage/groups/messages

const result = await shuffl.groups.messages({
"groupId": "<groupId>"
});
Request fields (1)
  • groupId string required
Response object
  • messages object[] required
    • action null | object required
      • label string required
      • path string required
    • automationId null | string required
    • body string[] required
    • channel "email" | "preferred" | "slack" required
    • createdAt string (date-time) required
    • createdBy null | string required
    • discardedAt null | string (date-time) required
    • groupId string required
    • id string required
    • queued number required
    • recipients number required
    • sentAt null | string (date-time) required
    • sentBy null | string required
    • skipped number required
    • status "discarded" | "draft" | "sending" | "sent" required
    • subject string required

groups.options

The departments, teams, communities, programs, titles, locations and time zones a rule may name

POST/api/v1/manage/groups/options

const result = await shuffl.groups.options();
Request fields (none)

This operation takes no input.

Response object
  • communities object[] required
    • id string required
    • name string required
  • departments object[] required
    • id string required
    • name string required
  • groups object[] required
    • id string required
    • kind "dynamic" | "list" required
    • name string required
  • locations string[] required
  • programs object[] required
    • id string required
    • name string required
  • timezones string[] required
  • titles string[] required

groups.preview

Count and sample who a set of rules would hold today

POST/api/v1/manage/groups/preview

const result = await shuffl.groups.preview({
"criteria": {
"all": [
{
"attribute": "<attribute>",
"operator": "<operator>"
}
]
}
});
Request fields (1)
  • criteria object required
    • all object[] required
      • Option 1 object optional
        • attribute string required
        • operator string required
        • value string | number | false | true | string[] optional
      • Option 2 object optional
        • any object[] required
Response object
  • count number required
  • problems string[] required
  • sample object[] required
    • detail null | string required
    • id string required
    • name string required

groups.searchPeople

Find people by name to pick for a group

POST/api/v1/manage/groups/searchPeople

const result = await shuffl.groups.searchPeople({});
Request fields (1)
  • search string optional
Response object[]
  • detail null | string required
  • id string required
  • name string required

groups.suggestions

Starter groups not made yet, with how many people each would hold

POST/api/v1/manage/groups/suggestions

const result = await shuffl.groups.suggestions();
Request fields (none)

This operation takes no input.

Response object[]
  • count number required
  • criteria object required
    • all object[] required
      • Option 1 object optional
        • attribute string required
        • operator string required
        • value string | number | false | true | string[] optional
      • Option 2 object optional
        • any object[] required
  • description string required
  • name string required
  • suggestion string required

groups.discardMessage

Drop a drafted message to a group

POST/api/v1/manage/groups/discardMessage

const result = await shuffl.groups.discardMessage({
"id": "<id>",
"confirm": "groups.discardMessage",
"requestKey": "a-new-unique-key"
});
Request fields (3)
  • id string required
  • confirm "groups.discardMessage" 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
    • discarded true required
    • id string required

groups.prepareMessage

Write a message to everyone in a group and see who it would reach; nothing is sent

POST/api/v1/manage/groups/prepareMessage

const result = await shuffl.groups.prepareMessage({
"body": [
"<body>"
],
"groupId": "<groupId>",
"subject": "<subject>",
"confirm": "groups.prepareMessage",
"requestKey": "a-new-unique-key"
});
Request fields (7)
  • action null | object optional
    • label string required
    • path string required
  • body string[] required
  • channel null | "email" | "preferred" | "slack" optional
  • groupId string required
  • subject string required
  • confirm "groups.prepareMessage" 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
    • action null | object required
      • label string required
      • path string required
    • automationId null | string required
    • body string[] required
    • channel "email" | "preferred" | "slack" required
    • createdAt string (date-time) required
    • createdBy null | string required
    • discardedAt null | string (date-time) required
    • groupId string required
    • id string required
    • preview object required
      • action null | object required
        • label string required
        • path string required
      • as null | string required
      • body string[] required
      • channels "email" | "slack" | "teams"[] required
      • from string required
      • subject string required
      • url null | string required
    • queued number required
    • reach object required
      • alreadyToday number required
      • reachable number required
      • recipients number required
      • unreachable number required
    • recipients number required
    • sentAt null | string (date-time) required
    • sentBy null | string required
    • skipped number required
    • status "discarded" | "draft" | "sending" | "sent" required
    • subject string required

groups.refresh

Re-evaluate a dynamic group’s rules now

POST/api/v1/manage/groups/refresh

  • Write
  • Permission groups.refresh
  • Needs a requestKey
  • Needs confirm set to groups.refresh
const result = await shuffl.groups.refresh({
"id": "<id>",
"confirm": "groups.refresh",
"requestKey": "a-new-unique-key"
});
Request fields (3)
  • id string required
  • confirm "groups.refresh" 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
    • entered number required
    • errors object[] required
      • groupId string required
      • message string required
    • failed number required
    • groups number required
    • left number required
    • moves object[] required
      • entered string[] required
      • groupId string required
      • left string[] required

groups.remove

Remove a group

POST/api/v1/manage/groups/remove

  • Write
  • Permission groups.remove
  • Needs a requestKey
  • Needs confirm set to groups.remove
const result = await shuffl.groups.remove({
"id": "<id>",
"confirm": "groups.remove",
"requestKey": "a-new-unique-key"
});
Request fields (3)
  • id string required
  • confirm "groups.remove" 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
    • removed boolean required

groups.removeAutomation

Remove an automation from a group, with its runs

POST/api/v1/manage/groups/removeAutomation

const result = await shuffl.groups.removeAutomation({
"id": "<id>",
"confirm": "groups.removeAutomation",
"requestKey": "a-new-unique-key"
});
Request fields (3)
  • id string required
  • confirm "groups.removeAutomation" 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
    • id string required
    • removed boolean required

groups.save

Create or change a group or a department: a list of people or rules that keep it up to date

POST/api/v1/manage/groups/save

  • Write
  • Permission groups.save
  • Needs a requestKey
  • Needs confirm set to groups.save
const result = await shuffl.groups.save({
"kind": "dynamic",
"name": "<name>",
"confirm": "groups.save",
"requestKey": "a-new-unique-key"
});
Request fields (11)
  • criteria object optional
    • all object[] required
      • Option 1 object optional
        • attribute string required
        • operator string required
        • value string | number | false | true | string[] optional
      • Option 2 object optional
        • any object[] required
  • department false | true optional
  • description string optional
  • id string optional
  • kind "dynamic" | "list" required
  • name string required
  • onProfile false | true optional
  • personIds string[] optional
  • suggestion null | string optional
  • confirm "groups.save" 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
    • id string required

groups.sendMessage

Send a drafted message to a group once per request key, on each person’s chosen channel

POST/api/v1/manage/groups/sendMessage

  • Write
  • Permission groups.sendMessage
  • Needs a requestKey
  • Needs confirm set to groups.sendMessage
const result = await shuffl.groups.sendMessage({
"id": "<id>",
"requestKey": "a-new-unique-key",
"confirm": "groups.sendMessage"
});
Request fields (3)
  • id string required
  • requestKey string required1 to 128 characters
  • confirm "groups.sendMessage" 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
    • Option 1 object optional
      • action null | object required
        • label string required
        • path string required
      • automationId null | string required
      • body string[] required
      • channel "email" | "preferred" | "slack" required
      • createdAt string (date-time) required
      • createdBy null | string required
      • discardedAt null | string (date-time) required
      • groupId string required
      • id string required
      • queued number required
      • recipients number required
      • replayed true required
      • sentAt null | string (date-time) required
      • sentBy null | string required
      • skipped number required
      • status "discarded" | "draft" | "sending" | "sent" required
      • subject string required
    • Option 2 object optional
      • action null | object required
        • label string required
        • path string required
      • automationId null | string required
      • body string[] required
      • channel "email" | "preferred" | "slack" required
      • createdAt string (date-time) required
      • createdBy null | string required
      • discardedAt null | string (date-time) required
      • groupId string required
      • id string required
      • queued number required
      • recipients number required
      • replayed false required
      • sentAt null | string (date-time) required
      • sentBy null | string required
      • skipped number required
      • status "discarded" | "draft" | "sending" | "sent" required
      • subject string required

groups.setAutomation

Add or change an automation on a group: send a message, ask a Pulse question, start a playbook, invite to a community, add to Connections, give a badge, add to or remove from another group, add to or post in a Slack channel (`config.channelId`, read back from Slack), or tell HR, their manager or someone named, right away or days later; a new one starts paused

POST/api/v1/manage/groups/setAutomation

const result = await shuffl.groups.setAutomation({
"groupId": "<groupId>",
"kind": "add_to_group",
"trigger": "entered",
"confirm": "groups.setAutomation",
"requestKey": "a-new-unique-key"
});
Request fields (8)
  • config null | object optional
    • action null | object optional
      • label string required
      • path string required
    • badgeId string optional
    • body string[] optional
    • channel "email" | "preferred" | "slack" optional
    • channelId string optional
    • communityId string optional
    • note string optional
    • personId string optional
    • programId string optional
    • questionId string optional
    • subject string optional
    • targetGroupId string optional
  • delayDays number optional
  • groupId string required
  • id string optional
  • kind "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
  • trigger "entered" | "left" required
  • confirm "groups.setAutomation" 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
    • action string required
    • config object required
      • action null | object optional
        • label string required
        • path string required
      • badgeId string optional
      • body string[] optional
      • channel "email" | "preferred" | "slack" optional
      • channelId string optional
      • channelName string optional
      • communityId string optional
      • note string optional
      • personId string optional
      • programId string optional
      • questionId string optional
      • subject string optional
      • targetGroupId string optional
    • createdAt string (date-time) required
    • createdBy null | string required
    • delayDays number required
    • groupId string required
    • id string required
    • kind "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
    • lastRunAt null | string (date-time) required
    • runs number required
    • state "active" | "paused" required
    • summary string required
    • target null | object required
      • id string required
      • name null | string required
    • trigger "entered" | "left" required
    • updatedAt string (date-time) required
    • when string required

groups.setAutomationState

Pause or resume an automation on a group

POST/api/v1/manage/groups/setAutomationState

const result = await shuffl.groups.setAutomationState({
"id": "<id>",
"state": "active",
"confirm": "groups.setAutomationState",
"requestKey": "a-new-unique-key"
});
Request fields (4)
  • id string required
  • state "active" | "paused" required
  • confirm "groups.setAutomationState" 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
    • state "active" | "paused" required

groups.setPlaybookAutoStart

Turn on, pause or remove a playbook’s automation that starts it on each new hire’s start date, or a leaving playbook’s on each last day, for everyone or one group

POST/api/v1/manage/groups/setPlaybookAutoStart

const result = await shuffl.groups.setPlaybookAutoStart({
"programId": "<programId>",
"state": "active",
"confirm": "groups.setPlaybookAutoStart",
"requestKey": "a-new-unique-key"
});
Request fields (5)
  • groupId null | string optional
  • programId string required
  • state "active" | "off" | "paused" required
  • confirm "groups.setPlaybookAutoStart" 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
    • state "active" | "off" | "paused" required