Reference
Workspace API
18 operations. Generated from the OpenAPI document, so this page always matches the API.
OpenAPI documentErrors and rate limitsSDK and CLI recipes
On this page
teams.connectionPermissions
List connections whose permissions are behind what Shuffl asks for
POST/api/v1/manage/teams/connectionPermissions
- Read
- Permission teams.connectionPermissions
const result = await shuffl.teams.connectionPermissions();Request fields (none)
This operation takes no input.
Response object
- connections object[] required
- blocking boolean required
- features string[] required
- missingScopes string[] required
- name string required
- provider "slack" required
- signature null | string required
teams.current
Get the team bound to this token
GET/api/v1/team
- Read
- Permission teams.current
const result = await shuffl.teams.current();Request fields (none)
This operation takes no input.
Response object
- id string required1 to 128 characters
- name string required
- role string required
teams.setup
Read the workspace's setup checklist
POST/api/v1/manage/teams/setup
- Read
- Permission teams.setup
const result = await shuffl.teams.setup();Request fields (none)
This operation takes no input.
Response object
- access object required
- Option 1 object optional
- allowed boolean required
- mode "unenforced" required
- reason string required
- Option 2 object optional
- allowed boolean required
- mode "company" required
- reason string required
- Option 1 object optional
- agentSetup object required
- choice null | "built_in" | "deferred" | "external" required
- protocol null | "api" | "mcp" required
- updatedAt null | string (date-time) required
- billing object required
- available boolean required
- initialized boolean required
- status string required
- celebrations object required
- enabled number required
- communities object required
- count number required
- employees object required
- awaitingAccess number required
- enabled number required
- expiredInvitations number required
- pendingInvitations number required
- ready boolean required
- hr object required
- Option 1 object optional
- ready boolean required
- reason "no_destination" required
- responderCount number required
- Option 2 object optional
- ready boolean required
- reason "no_active_responders" required
- responderCount number required
- Option 3 object optional
- ready boolean required
- responderCount number required
- Option 1 object optional
- knowledge object required
- approved number required
- ready boolean required
- local boolean required
- organizationId string required
- preview object required
- completedAt null | string (date-time) required
- configured boolean required
- ready boolean required
- programs object required
- connections number required
- playbook number required
- pulse "active" | "draft" | "paused" required
- progress object required
- ready number required
- total number required
- slack object required
- available boolean required
- live boolean required
- missingScopes string[] required
- ready boolean required
- reason "connected" | "grid_pending" | "missing_permissions" | "not_installed" | "paused" | "revoked" | "sample_data" | "unavailable" | "uninstalled" | "workspace_changed" required
- state "connected" | "needs_reconnect" | "not_connected" required
- steps object[] required
- id "access" | "celebrations" | "communities" | "connections" | "employees" | "hr" | "knowledge" | "playbook" | "preview" | "pulse" | "slack" required
- ready boolean required
- required boolean required
- title string required
- teamName string required
teams.slackChannels
List community channels in the connected Slack and what each would become
POST/api/v1/manage/teams/slackChannels
- Read
- Permission teams.slackChannels
const result = await shuffl.teams.slackChannels();Request fields (none)
This operation takes no input.
Response object
- channels object[] required
- connected null | "celebrations" | "intros" | "shoutouts" | "skip" required
- fromApp boolean required
- guess "celebrations" | "intros" | "shoutouts" | "skip" | "watercooler" required
- id string required
- isMember boolean required
- isPrivate boolean required
- joinable boolean required
- name string required
- pairHistory object[] required
- createdAt string (date-time) required
- fileName string required
- id string required
- intros number required
- pairs number required
- people number required
- rows number required
- skipped number required
- status "applied" | "staged" required
- via "agent" | "web" required
- status "found" | "not_found" | "unavailable" required
teams.slackConnection
Read whether the workspace's Slack is connected, and why not
POST/api/v1/manage/teams/slackConnection
- Read
- Permission teams.slackConnection
const result = await shuffl.teams.slackConnection();Request fields (none)
This operation takes no input.
Response object
- available boolean required
- live boolean required
- missingScopes string[] required
- ready boolean required
- reason "connected" | "grid_pending" | "missing_permissions" | "not_installed" | "paused" | "revoked" | "sample_data" | "unavailable" | "uninstalled" | "workspace_changed" required
- state "connected" | "needs_reconnect" | "not_connected" required
teams.slackJoinAccess
Read whether Slack members can join Shuffl on their own
POST/api/v1/manage/teams/slackJoinAccess
- Read
- Permission teams.slackJoinAccess
const result = await shuffl.teams.slackJoinAccess();Request fields (none)
This operation takes no input.
Response object
- changedAt null | string (date-time) required
- enabled boolean required
teams.slackProfileLink
Read the Shuffl profile link setting for Slack profiles
POST/api/v1/manage/teams/slackProfileLink
- Read
- Permission teams.slackProfileLink
const result = await shuffl.teams.slackProfileLink();Request fields (none)
This operation takes no input.
Response object
- changedAt null | string (date-time) required
- enabled boolean required
- field "found" | "missing" | "unknown" required
- grant "not_connected" | "ready" | "reconnect" required
- lastSync null | object required
- at string (date-time) required
- cleared number required
- outcome string required
- set number required
- skipped number required
- pending boolean required
- plan "free" | "paid" | "unknown" required
- remaining number required
teams.discardPairHistory
Remove this staged past-intros report
POST/api/v1/manage/teams/discardPairHistory
- Write
- Permission teams.discardPairHistory
- Needs a requestKey
- Needs confirm set to teams.discardPairHistory
const result = await shuffl.teams.discardPairHistory({
"importId": "<importId>",
"confirm": "teams.discardPairHistory",
"requestKey": "a-new-unique-key"
});Request fields (3)
- importId string required
- confirm "teams.discardPairHistory" 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
teams.initialize
Finish setting up a new workspace
POST/api/v1/manage/teams/initialize
- Write
- Permission teams.initialize
- Needs a requestKey
const result = await shuffl.teams.initialize({
"requestKey": "a-new-unique-key"
});Request fields (1)
- 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
- ready boolean required
teams.moveSlackChannels
Set up each channel in Shuffl: paused intros, praise and celebrations
POST/api/v1/manage/teams/moveSlackChannels
- Write
- Permission teams.moveSlackChannels
- Needs a requestKey
- Needs confirm set to teams.moveSlackChannels
const result = await shuffl.teams.moveSlackChannels({
"choices": [
{
"channelId": "<channelId>",
"use": "celebrations"
}
],
"timezone": "<timezone>",
"confirm": "teams.moveSlackChannels",
"requestKey": "a-new-unique-key"
});Request fields (4)
- choices object[] required
- channelId string required
- use "celebrations" | "intros" | "shoutouts" | "skip" required
- timezone string required
- confirm "teams.moveSlackChannels" 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
- detected number required
- pairHistory object required
- files number required
- pairs number required
- praiseChannelMax number required
- results object[] required
- channelId string required
- name string required
- outcome "already" | "created" | "failed" | "invite_required" | "limit" required
- use "celebrations" | "intros" | "shoutouts" required
teams.rename
Rename the workspace
POST/api/v1/manage/teams/rename
- Write
- Permission teams.rename
- Needs a requestKey
const result = await shuffl.teams.rename({
"name": "<name>",
"requestKey": "a-new-unique-key"
});Request fields (2)
- name 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
- name string required
teams.resendSlackWelcome
Send the Slack install welcome to your own Slack DM again
POST/api/v1/manage/teams/resendSlackWelcome
- Write
- Permission teams.resendSlackWelcome
- Needs a requestKey
- Needs confirm set to teams.resendSlackWelcome
const result = await shuffl.teams.resendSlackWelcome({
"confirm": "teams.resendSlackWelcome",
"requestKey": "a-new-unique-key"
});Request fields (2)
- confirm "teams.resendSlackWelcome" 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
- queued boolean required
teams.saveAgentSetup
Choose the built-in assistant or an external agent for the workspace
POST/api/v1/manage/teams/saveAgentSetup
- Write
- Permission teams.saveAgentSetup
- Needs a requestKey
const result = await shuffl.teams.saveAgentSetup({
"choice": "built_in",
"requestKey": "a-new-unique-key"
});Request fields (3)
- choice "built_in" | "deferred" | "external" required
- protocol null | "api" | "mcp" 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
- changed boolean required
- choice "built_in" | "deferred" | "external" required
- protocol null | "api" | "mcp" required
- saved boolean required
- updatedAt null | string (date-time) required
teams.saveSlackJoinAccess
Choose whether Slack members can join Shuffl on their own
POST/api/v1/manage/teams/saveSlackJoinAccess
- Write
- Permission teams.saveSlackJoinAccess
- Needs a requestKey
const result = await shuffl.teams.saveSlackJoinAccess({
"enabled": false,
"requestKey": "a-new-unique-key"
});Request fields (2)
- enabled 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
- enabled boolean required
- saved boolean required
teams.saveSlackProfileLink
Turn the Shuffl profile link on Slack profiles on or off
POST/api/v1/manage/teams/saveSlackProfileLink
- Write
- Permission teams.saveSlackProfileLink
- Needs a requestKey
const result = await shuffl.teams.saveSlackProfileLink({
"enabled": false,
"requestKey": "a-new-unique-key"
});Request fields (2)
- enabled 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
- enabled boolean required
- saved boolean required
teams.status
Pause or resume the whole workspace
POST/api/v1/manage/teams/status
- Write
- Permission teams.status
- Needs a requestKey
const result = await shuffl.teams.status({
"status": "active",
"requestKey": "a-new-unique-key"
});Request fields (2)
- status "active" | "paused" 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 "active" | "paused" required
teams.syncSlackProfileLinks
Write the Shuffl profile link to every Slack profile again
POST/api/v1/manage/teams/syncSlackProfileLinks
- Write
- Permission teams.syncSlackProfileLinks
- Needs a requestKey
- Needs confirm set to teams.syncSlackProfileLinks
const result = await shuffl.teams.syncSlackProfileLinks({
"confirm": "teams.syncSlackProfileLinks",
"requestKey": "a-new-unique-key"
});Request fields (2)
- confirm "teams.syncSlackProfileLinks" 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
- queued boolean required
teams.uploadPairHistory
Stage this past-intros report for the switch; nothing changes until it is applied
POST/api/v1/manage/teams/uploadPairHistory
- Write
- Permission teams.uploadPairHistory
- Needs a requestKey
- Needs confirm set to teams.uploadPairHistory
const result = await shuffl.teams.uploadPairHistory({
"csv": "<csv>",
"fileName": "<fileName>",
"confirm": "teams.uploadPairHistory",
"requestKey": "a-new-unique-key"
});Request fields (4)
- csv string required
- fileName string required
- confirm "teams.uploadPairHistory" 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
- createdAt string (date-time) required
- duplicate boolean required
- fileName string required
- id string required
- intros number required
- pairs number required
- people number required
- rows number required
- skipped number required
- status "applied" | "staged" required
- via "agent" | "web" required