Skip to content
shuffl

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

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

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

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

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
  • 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
  • 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

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

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

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

Read the Shuffl profile link setting for Slack profiles

POST/api/v1/manage/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

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

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

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

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

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

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

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

Turn the Shuffl profile link on Slack profiles on or off

POST/api/v1/manage/teams/saveSlackProfileLink

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

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

Write the Shuffl profile link to every Slack profile again

POST/api/v1/manage/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

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