Skip to content
shuffl

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

Reference

Connections programs API

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

OpenAPI documentErrors and rate limitsSDK and CLI recipes

On this page

programs.communities

List communities a Connections program can take its people from, with how many members show each one on their profile

POST/api/v1/manage/programs/communities

const result = await shuffl.programs.communities();
Request fields (none)

This operation takes no input.

Response object[]
  • id string required
  • memberCount number required
  • name string required

programs.get

Get a program

GET/api/v1/programs/{id}

const result = await shuffl.programs.get({
"id": "<id>"
});
Request fields (1)
  • id string required1 to 128 characters
Response object
  • channelId string requiredMatches ^[CG][A-Z0-9]+$
  • channelName string required1 to 100 characters
  • communityIds string[] optionalCommunities whose members take part, instead of the Slack channel or a group. Only people who show the community on their profile are enrolled.. At most 20 items
  • groupId string | null optional
  • includeBios boolean required
  • includeSchedulingLink boolean optional
  • intro string required1 to 2000 characters
  • match object required
    • fineTune object optional
      • commonGround 0 | 1 | 2 requiredShared interests and "can help with" / "looking for" topics pick between people who are equally new to each other. 0 off, 1 prefer, 2 strongly prefer.
      • meetRequests boolean requiredGroup someone with a person they privately asked to meet, at most once per person per round. Nobody, including admins, is told who asked.
      • mentionCommonGround boolean requiredName a topic both people show publicly on their profile in the introduction.
      • reach "any" | "fof" | "far" requiredany: anyone new. fof: friends of friends first (people in common). far: far corners first (nobody in common).
    • groupSize integer required2 to 8
    • iterations integer required1 to 1000
    • keepApart object optional
      • relationships "reporting-line" | "team" | "department" | "know-each-other"[] required1 to 4 items
      • strict boolean required
    • maxGroupSize integer required2 to 8
    • strategy "new-connections" | "cross-unit" | "within-unit" | "hosted" | "random" | "group-frequency-weighted" | "group-frequency-weighted-v2" | "unit-weighted" | "unit-weighted-one-host-per-group" | "unit-weighted-multiple-hosts-per-group" | "unit-lottery-weighted" required
    • unitIds string[] optionalAt most 20 items
    • unitKind "department" | "team" | "community" optional
  • name string required1 to 120 characters
  • schedule object required
    • Option 1 object optional
      • anchor string requiredAt most 100 characters
      • days integer[] optional1 to 7 items
      • frequency "minutes" | "hours" | "days" | "weeks" | "monthly-date" | "monthly-weekday" | "monthly-last-weekday" required
      • interval integer required1 to 366
      • timezone string requiredAt most 100 characters
    • Option 2 object optional
      • calendar object required
        • boundary "start" | "end" required
        • hour integer required0 to 527
        • minute integer required0 to 59
        • second integer required0 to 59
        • timezone string required1 to 100 characters
        • weekday integer required0 to 6
      • frequency "legacy-monthly" required
      • insufficientOptInsNotice object required
        • future boolean | null required
        • pending boolean | null required
      • interval 1 required
      • timezone string required1 to 100 characters
      • version 1 required
      • anchor string (date-time) required
      • origin "source-pending" optional
    • Option 3 object optional
      • calendar object required
        • boundary "start" | "end" required
        • hour integer required0 to 527
        • minute integer required0 to 59
        • second integer required0 to 59
        • timezone string required1 to 100 characters
        • weekday integer required0 to 6
      • frequency "legacy-monthly" required
      • insufficientOptInsNotice object required
        • future boolean | null required
        • pending boolean | null required
      • interval 1 required
      • timezone string required1 to 100 characters
      • version 1 required
      • anchor string (date-time) | null required
      • origin "operator-future-start" required
  • communityNames string[] optionalThe names of the communities whose members take part, when communities are set.
  • createdAt string (date-time) required
  • groupName string | null optionalThe name of the group whose members take part, when one is set.
  • id string required1 to 128 characters
  • matchingReviewRequired boolean required
  • nextRunAt string (date-time) | null required
  • revision integer required
  • status "active" | "paused" | "archived" required
  • summary string optionalWhat the program does, in the same sentence the editor shows.
  • teamId string required1 to 128 characters

programs.list

List programs

GET/api/v1/programs

const result = await shuffl.programs.list({});
Request fields (2)
  • cursor string optional1 to 128 characters
  • limit integer optional1 to 100. Defaults to 25
Response object
  • items object[] required
    • channelId string requiredMatches ^[CG][A-Z0-9]+$
    • channelName string required1 to 100 characters
    • communityIds string[] optionalCommunities whose members take part, instead of the Slack channel or a group. Only people who show the community on their profile are enrolled.. At most 20 items
    • groupId string | null optional
    • includeBios boolean required
    • includeSchedulingLink boolean optional
    • intro string required1 to 2000 characters
    • match object required
      • fineTune object optional
        • commonGround 0 | 1 | 2 requiredShared interests and "can help with" / "looking for" topics pick between people who are equally new to each other. 0 off, 1 prefer, 2 strongly prefer.
        • meetRequests boolean requiredGroup someone with a person they privately asked to meet, at most once per person per round. Nobody, including admins, is told who asked.
        • mentionCommonGround boolean requiredName a topic both people show publicly on their profile in the introduction.
        • reach "any" | "fof" | "far" requiredany: anyone new. fof: friends of friends first (people in common). far: far corners first (nobody in common).
      • groupSize integer required2 to 8
      • iterations integer required1 to 1000
      • keepApart object optional
        • relationships "reporting-line" | "team" | "department" | "know-each-other"[] required1 to 4 items
        • strict boolean required
      • maxGroupSize integer required2 to 8
      • strategy "new-connections" | "cross-unit" | "within-unit" | "hosted" | "random" | "group-frequency-weighted" | "group-frequency-weighted-v2" | "unit-weighted" | "unit-weighted-one-host-per-group" | "unit-weighted-multiple-hosts-per-group" | "unit-lottery-weighted" required
      • unitIds string[] optionalAt most 20 items
      • unitKind "department" | "team" | "community" optional
    • name string required1 to 120 characters
    • schedule object required
      • Option 1 object optional
        • anchor string requiredAt most 100 characters
        • days integer[] optional1 to 7 items
        • frequency "minutes" | "hours" | "days" | "weeks" | "monthly-date" | "monthly-weekday" | "monthly-last-weekday" required
        • interval integer required1 to 366
        • timezone string requiredAt most 100 characters
      • Option 2 object optional
        • calendar object required
        • frequency "legacy-monthly" required
        • insufficientOptInsNotice object required
        • interval 1 required
        • timezone string required1 to 100 characters
        • version 1 required
        • anchor string (date-time) required
        • origin "source-pending" optional
      • Option 3 object optional
        • calendar object required
        • frequency "legacy-monthly" required
        • insufficientOptInsNotice object required
        • interval 1 required
        • timezone string required1 to 100 characters
        • version 1 required
        • anchor string (date-time) | null required
        • origin "operator-future-start" required
    • communityNames string[] optionalThe names of the communities whose members take part, when communities are set.
    • createdAt string (date-time) required
    • groupName string | null optionalThe name of the group whose members take part, when one is set.
    • id string required1 to 128 characters
    • matchingReviewRequired boolean required
    • nextRunAt string (date-time) | null required
    • revision integer required
    • status "active" | "paused" | "archived" required
    • summary string optionalWhat the program does, in the same sentence the editor shows.
    • teamId string required1 to 128 characters
  • nextCursor string | null required

programs.options

List the choices for a Connections program: who should meet whom, keep-apart rules, fine-tuning, defaults, teams and departments

GET/api/v1/program-options

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

This operation takes no input.

Response object
  • communities object[] requiredCommunities a program can take its people from, with how many members show it on their profile; set communityIds to use them, and unitKind community to mix within or across them.
    • id string required1 to 128 characters
    • memberCount integer required
    • name string required
  • defaults object required
    • fineTune object required
      • commonGround 0 | 1 | 2 requiredShared interests and "can help with" / "looking for" topics pick between people who are equally new to each other. 0 off, 1 prefer, 2 strongly prefer.
      • meetRequests boolean requiredGroup someone with a person they privately asked to meet, at most once per person per round. Nobody, including admins, is told who asked.
      • mentionCommonGround boolean requiredName a topic both people show publicly on their profile in the introduction.
      • reach "any" | "fof" | "far" requiredany: anyone new. fof: friends of friends first (people in common). far: far corners first (nobody in common).
    • keepApart object required
      • relationships "reporting-line" | "team" | "department" | "know-each-other"[] required1 to 4 items
      • strict boolean required
    • strategy "new-connections" required
  • fineTune object required
    • commonGround object[] required
      • description string optional
      • label string required
      • value integer required
    • meetRequests string required
    • mentionCommonGround string required
    • reach object[] required
      • description string optional
      • label string required
      • value string required
  • groups object[] requiredGroups from Manage → Groups a program can take its people from; omit groupId to use everyone in the channel.
    • id string required1 to 128 characters
    • memberCount integer required
    • name string required
  • keepApart object[] required
    • description string optional
    • label string required
    • value string required
  • purposes object[] required
    • description string optional
    • label string required
    • value string required
  • units object[] required
    • id string required1 to 128 characters
    • kind "department" | "group" required
    • name string required

programs.people

List the people in a program and whether they take part

POST/api/v1/manage/programs/people

const result = await shuffl.programs.people({
"programId": "<programId>"
});
Request fields (1)
  • programId string required
Response object[]
  • id string required
  • name string required
  • photoUrl null | string required
  • state "break" | "in" | "paused" | "unavailable" required
  • unavailable null | "absent" | "access_unavailable" | "bot" | "inactive" | "slack_unavailable" required

programs.preview

Preview matches without sending introductions

POST/api/v1/programs/{id}/preview

const result = await shuffl.programs.preview({
"id": "<id>",
"seed": "<seed>"
});
Request fields (2)
  • id string required1 to 128 characters
  • seed string required1 to 128 characters
Response object
  • algorithm string required
  • eligible number required
  • exclusions object[] required
    • count integer requiredAt least 0
    • reason "bot" | "inactive" | "absent" | "paused" | "slack_unavailable" | "access_unavailable" required
  • fingerprint string required
  • groups string[][] required
  • members object[] required
    • id string required1 to 128 characters
    • name string required
  • newConnections number required
  • pairWeight number required
  • revision integer required
  • selected number required
  • unmatched string[] required

programs.schedulePreview

Preview a program's upcoming rounds

POST/api/v1/manage/programs/schedulePreview

const result = await shuffl.programs.schedulePreview({
"program": {
"channelId": "<channelId>",
"channelName": "<channelName>",
"includeBios": false,
"intro": "<intro>",
"match": {
"groupSize": 0,
"iterations": 0,
"maxGroupSize": 0,
"strategy": "cross-unit"
},
"name": "<name>",
"schedule": {
"anchor": "<anchor>",
"calendar": {
"boundary": "end",
"hour": 0,
"minute": 0,
"second": 0,
"timezone": "<timezone>",
"weekday": 0
},
"frequency": "legacy-monthly",
"insufficientOptInsNotice": {
"future": false,
"pending": false
},
"interval": 1,
"timezone": "<timezone>",
"version": 1
}
}
});
Request fields (1)
  • program object required
    • channelId string required
    • channelName string required
    • communityIds string[] optional
    • groupId null | string optional
    • includeBios boolean required
    • includeSchedulingLink false | true optional
    • intro string 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
    • name string required
    • schedule object required
      • Option 1 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 2 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
      • Option 3 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
Response string (date-time)[]

The response is string (date-time)[].

programs.archive

Archive a program

POST/api/v1/programs/{id}/archive

const result = await shuffl.programs.archive({
"id": "<id>"
});
Request fields (1)
  • id string required1 to 128 characters
Response object
  • channelId string requiredMatches ^[CG][A-Z0-9]+$
  • channelName string required1 to 100 characters
  • communityIds string[] optionalCommunities whose members take part, instead of the Slack channel or a group. Only people who show the community on their profile are enrolled.. At most 20 items
  • groupId string | null optional
  • includeBios boolean required
  • includeSchedulingLink boolean optional
  • intro string required1 to 2000 characters
  • match object required
    • fineTune object optional
      • commonGround 0 | 1 | 2 requiredShared interests and "can help with" / "looking for" topics pick between people who are equally new to each other. 0 off, 1 prefer, 2 strongly prefer.
      • meetRequests boolean requiredGroup someone with a person they privately asked to meet, at most once per person per round. Nobody, including admins, is told who asked.
      • mentionCommonGround boolean requiredName a topic both people show publicly on their profile in the introduction.
      • reach "any" | "fof" | "far" requiredany: anyone new. fof: friends of friends first (people in common). far: far corners first (nobody in common).
    • groupSize integer required2 to 8
    • iterations integer required1 to 1000
    • keepApart object optional
      • relationships "reporting-line" | "team" | "department" | "know-each-other"[] required1 to 4 items
      • strict boolean required
    • maxGroupSize integer required2 to 8
    • strategy "new-connections" | "cross-unit" | "within-unit" | "hosted" | "random" | "group-frequency-weighted" | "group-frequency-weighted-v2" | "unit-weighted" | "unit-weighted-one-host-per-group" | "unit-weighted-multiple-hosts-per-group" | "unit-lottery-weighted" required
    • unitIds string[] optionalAt most 20 items
    • unitKind "department" | "team" | "community" optional
  • name string required1 to 120 characters
  • schedule object required
    • Option 1 object optional
      • anchor string requiredAt most 100 characters
      • days integer[] optional1 to 7 items
      • frequency "minutes" | "hours" | "days" | "weeks" | "monthly-date" | "monthly-weekday" | "monthly-last-weekday" required
      • interval integer required1 to 366
      • timezone string requiredAt most 100 characters
    • Option 2 object optional
      • calendar object required
        • boundary "start" | "end" required
        • hour integer required0 to 527
        • minute integer required0 to 59
        • second integer required0 to 59
        • timezone string required1 to 100 characters
        • weekday integer required0 to 6
      • frequency "legacy-monthly" required
      • insufficientOptInsNotice object required
        • future boolean | null required
        • pending boolean | null required
      • interval 1 required
      • timezone string required1 to 100 characters
      • version 1 required
      • anchor string (date-time) required
      • origin "source-pending" optional
    • Option 3 object optional
      • calendar object required
        • boundary "start" | "end" required
        • hour integer required0 to 527
        • minute integer required0 to 59
        • second integer required0 to 59
        • timezone string required1 to 100 characters
        • weekday integer required0 to 6
      • frequency "legacy-monthly" required
      • insufficientOptInsNotice object required
        • future boolean | null required
        • pending boolean | null required
      • interval 1 required
      • timezone string required1 to 100 characters
      • version 1 required
      • anchor string (date-time) | null required
      • origin "operator-future-start" required
  • communityNames string[] optionalThe names of the communities whose members take part, when communities are set.
  • createdAt string (date-time) required
  • groupName string | null optionalThe name of the group whose members take part, when one is set.
  • id string required1 to 128 characters
  • matchingReviewRequired boolean required
  • nextRunAt string (date-time) | null required
  • revision integer required
  • status "active" | "paused" | "archived" required
  • summary string optionalWhat the program does, in the same sentence the editor shows.
  • teamId string required1 to 128 characters

programs.create

Create a program; reuse requestKey only for the same request

POST/api/v1/programs

const result = await shuffl.programs.create({
"program": {
"channelId": "<channelId>",
"channelName": "<channelName>",
"includeBios": false,
"intro": "<intro>",
"match": {
"groupSize": 2,
"iterations": 1,
"maxGroupSize": 2,
"strategy": "new-connections"
},
"name": "<name>",
"schedule": {
"anchor": "<anchor>",
"frequency": "minutes",
"interval": 1,
"timezone": "<timezone>"
}
},
"requestKey": "a-new-unique-key"
});
Request fields (3)
  • draft boolean optionalDefaults to true
  • program object required
    • channelId string requiredMatches ^[CG][A-Z0-9]+$
    • channelName string required1 to 100 characters
    • communityIds string[] optionalCommunities whose members take part, instead of the Slack channel or a group. Only people who show the community on their profile are enrolled.. At most 20 items
    • groupId string | null optional
    • includeBios boolean required
    • includeSchedulingLink boolean optional
    • intro string required1 to 2000 characters
    • match object required
      • fineTune object optional
        • commonGround 0 | 1 | 2 requiredShared interests and "can help with" / "looking for" topics pick between people who are equally new to each other. 0 off, 1 prefer, 2 strongly prefer.
        • meetRequests boolean requiredGroup someone with a person they privately asked to meet, at most once per person per round. Nobody, including admins, is told who asked.
        • mentionCommonGround boolean requiredName a topic both people show publicly on their profile in the introduction.
        • reach "any" | "fof" | "far" requiredany: anyone new. fof: friends of friends first (people in common). far: far corners first (nobody in common).
      • groupSize integer required2 to 8
      • iterations integer required1 to 1000
      • keepApart object optional
        • relationships "reporting-line" | "team" | "department" | "know-each-other"[] required1 to 4 items
        • strict boolean required
      • maxGroupSize integer required2 to 8
      • strategy "new-connections" | "cross-unit" | "within-unit" | "hosted" | "random" | "group-frequency-weighted" | "group-frequency-weighted-v2" | "unit-weighted" | "unit-weighted-one-host-per-group" | "unit-weighted-multiple-hosts-per-group" | "unit-lottery-weighted" required
      • unitIds string[] optionalAt most 20 items
      • unitKind "department" | "team" | "community" optional
    • name string required1 to 120 characters
    • schedule object required
      • Option 1 object optional
        • anchor string requiredAt most 100 characters
        • days integer[] optional1 to 7 items
        • frequency "minutes" | "hours" | "days" | "weeks" | "monthly-date" | "monthly-weekday" | "monthly-last-weekday" required
        • interval integer required1 to 366
        • timezone string requiredAt most 100 characters
      • Option 2 object optional
        • calendar object required
        • frequency "legacy-monthly" required
        • insufficientOptInsNotice object required
        • interval 1 required
        • timezone string required1 to 100 characters
        • version 1 required
        • anchor string (date-time) required
        • origin "source-pending" optional
      • Option 3 object optional
        • calendar object required
        • frequency "legacy-monthly" required
        • insufficientOptInsNotice object required
        • interval 1 required
        • timezone string required1 to 100 characters
        • version 1 required
        • anchor string (date-time) | null required
        • origin "operator-future-start" required
  • requestKey string required8 to 120 characters
Response object
  • channelId string requiredMatches ^[CG][A-Z0-9]+$
  • channelName string required1 to 100 characters
  • communityIds string[] optionalCommunities whose members take part, instead of the Slack channel or a group. Only people who show the community on their profile are enrolled.. At most 20 items
  • groupId string | null optional
  • includeBios boolean required
  • includeSchedulingLink boolean optional
  • intro string required1 to 2000 characters
  • match object required
    • fineTune object optional
      • commonGround 0 | 1 | 2 requiredShared interests and "can help with" / "looking for" topics pick between people who are equally new to each other. 0 off, 1 prefer, 2 strongly prefer.
      • meetRequests boolean requiredGroup someone with a person they privately asked to meet, at most once per person per round. Nobody, including admins, is told who asked.
      • mentionCommonGround boolean requiredName a topic both people show publicly on their profile in the introduction.
      • reach "any" | "fof" | "far" requiredany: anyone new. fof: friends of friends first (people in common). far: far corners first (nobody in common).
    • groupSize integer required2 to 8
    • iterations integer required1 to 1000
    • keepApart object optional
      • relationships "reporting-line" | "team" | "department" | "know-each-other"[] required1 to 4 items
      • strict boolean required
    • maxGroupSize integer required2 to 8
    • strategy "new-connections" | "cross-unit" | "within-unit" | "hosted" | "random" | "group-frequency-weighted" | "group-frequency-weighted-v2" | "unit-weighted" | "unit-weighted-one-host-per-group" | "unit-weighted-multiple-hosts-per-group" | "unit-lottery-weighted" required
    • unitIds string[] optionalAt most 20 items
    • unitKind "department" | "team" | "community" optional
  • name string required1 to 120 characters
  • schedule object required
    • Option 1 object optional
      • anchor string requiredAt most 100 characters
      • days integer[] optional1 to 7 items
      • frequency "minutes" | "hours" | "days" | "weeks" | "monthly-date" | "monthly-weekday" | "monthly-last-weekday" required
      • interval integer required1 to 366
      • timezone string requiredAt most 100 characters
    • Option 2 object optional
      • calendar object required
        • boundary "start" | "end" required
        • hour integer required0 to 527
        • minute integer required0 to 59
        • second integer required0 to 59
        • timezone string required1 to 100 characters
        • weekday integer required0 to 6
      • frequency "legacy-monthly" required
      • insufficientOptInsNotice object required
        • future boolean | null required
        • pending boolean | null required
      • interval 1 required
      • timezone string required1 to 100 characters
      • version 1 required
      • anchor string (date-time) required
      • origin "source-pending" optional
    • Option 3 object optional
      • calendar object required
        • boundary "start" | "end" required
        • hour integer required0 to 527
        • minute integer required0 to 59
        • second integer required0 to 59
        • timezone string required1 to 100 characters
        • weekday integer required0 to 6
      • frequency "legacy-monthly" required
      • insufficientOptInsNotice object required
        • future boolean | null required
        • pending boolean | null required
      • interval 1 required
      • timezone string required1 to 100 characters
      • version 1 required
      • anchor string (date-time) | null required
      • origin "operator-future-start" required
  • communityNames string[] optionalThe names of the communities whose members take part, when communities are set.
  • createdAt string (date-time) required
  • groupName string | null optionalThe name of the group whose members take part, when one is set.
  • id string required1 to 128 characters
  • matchingReviewRequired boolean required
  • nextRunAt string (date-time) | null required
  • revision integer required
  • status "active" | "paused" | "archived" required
  • summary string optionalWhat the program does, in the same sentence the editor shows.
  • teamId string required1 to 128 characters

programs.joinChannel

Add Shuffl to this public Slack channel

POST/api/v1/manage/programs/joinChannel

const result = await shuffl.programs.joinChannel({
"channelId": "<channelId>",
"confirm": "programs.joinChannel",
"requestKey": "a-new-unique-key"
});
Request fields (3)
  • channelId string required
  • confirm "programs.joinChannel" 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
    • isMember boolean required
    • isPrivate boolean required
    • joinable boolean required
    • memberCount number optional
    • name string required
    • purpose string optional
    • readiness "invite_required" | "missing_scope" | "ready" required

programs.pause

Pause a program

POST/api/v1/programs/{id}/pause

const result = await shuffl.programs.pause({
"id": "<id>"
});
Request fields (1)
  • id string required1 to 128 characters
Response object
  • channelId string requiredMatches ^[CG][A-Z0-9]+$
  • channelName string required1 to 100 characters
  • communityIds string[] optionalCommunities whose members take part, instead of the Slack channel or a group. Only people who show the community on their profile are enrolled.. At most 20 items
  • groupId string | null optional
  • includeBios boolean required
  • includeSchedulingLink boolean optional
  • intro string required1 to 2000 characters
  • match object required
    • fineTune object optional
      • commonGround 0 | 1 | 2 requiredShared interests and "can help with" / "looking for" topics pick between people who are equally new to each other. 0 off, 1 prefer, 2 strongly prefer.
      • meetRequests boolean requiredGroup someone with a person they privately asked to meet, at most once per person per round. Nobody, including admins, is told who asked.
      • mentionCommonGround boolean requiredName a topic both people show publicly on their profile in the introduction.
      • reach "any" | "fof" | "far" requiredany: anyone new. fof: friends of friends first (people in common). far: far corners first (nobody in common).
    • groupSize integer required2 to 8
    • iterations integer required1 to 1000
    • keepApart object optional
      • relationships "reporting-line" | "team" | "department" | "know-each-other"[] required1 to 4 items
      • strict boolean required
    • maxGroupSize integer required2 to 8
    • strategy "new-connections" | "cross-unit" | "within-unit" | "hosted" | "random" | "group-frequency-weighted" | "group-frequency-weighted-v2" | "unit-weighted" | "unit-weighted-one-host-per-group" | "unit-weighted-multiple-hosts-per-group" | "unit-lottery-weighted" required
    • unitIds string[] optionalAt most 20 items
    • unitKind "department" | "team" | "community" optional
  • name string required1 to 120 characters
  • schedule object required
    • Option 1 object optional
      • anchor string requiredAt most 100 characters
      • days integer[] optional1 to 7 items
      • frequency "minutes" | "hours" | "days" | "weeks" | "monthly-date" | "monthly-weekday" | "monthly-last-weekday" required
      • interval integer required1 to 366
      • timezone string requiredAt most 100 characters
    • Option 2 object optional
      • calendar object required
        • boundary "start" | "end" required
        • hour integer required0 to 527
        • minute integer required0 to 59
        • second integer required0 to 59
        • timezone string required1 to 100 characters
        • weekday integer required0 to 6
      • frequency "legacy-monthly" required
      • insufficientOptInsNotice object required
        • future boolean | null required
        • pending boolean | null required
      • interval 1 required
      • timezone string required1 to 100 characters
      • version 1 required
      • anchor string (date-time) required
      • origin "source-pending" optional
    • Option 3 object optional
      • calendar object required
        • boundary "start" | "end" required
        • hour integer required0 to 527
        • minute integer required0 to 59
        • second integer required0 to 59
        • timezone string required1 to 100 characters
        • weekday integer required0 to 6
      • frequency "legacy-monthly" required
      • insufficientOptInsNotice object required
        • future boolean | null required
        • pending boolean | null required
      • interval 1 required
      • timezone string required1 to 100 characters
      • version 1 required
      • anchor string (date-time) | null required
      • origin "operator-future-start" required
  • communityNames string[] optionalThe names of the communities whose members take part, when communities are set.
  • createdAt string (date-time) required
  • groupName string | null optionalThe name of the group whose members take part, when one is set.
  • id string required1 to 128 characters
  • matchingReviewRequired boolean required
  • nextRunAt string (date-time) | null required
  • revision integer required
  • status "active" | "paused" | "archived" required
  • summary string optionalWhat the program does, in the same sentence the editor shows.
  • teamId string required1 to 128 characters

programs.resume

Activate a program and its schedule

POST/api/v1/programs/{id}/resume

const result = await shuffl.programs.resume({
"id": "<id>"
});
Request fields (1)
  • id string required1 to 128 characters
Response object
  • channelId string requiredMatches ^[CG][A-Z0-9]+$
  • channelName string required1 to 100 characters
  • communityIds string[] optionalCommunities whose members take part, instead of the Slack channel or a group. Only people who show the community on their profile are enrolled.. At most 20 items
  • groupId string | null optional
  • includeBios boolean required
  • includeSchedulingLink boolean optional
  • intro string required1 to 2000 characters
  • match object required
    • fineTune object optional
      • commonGround 0 | 1 | 2 requiredShared interests and "can help with" / "looking for" topics pick between people who are equally new to each other. 0 off, 1 prefer, 2 strongly prefer.
      • meetRequests boolean requiredGroup someone with a person they privately asked to meet, at most once per person per round. Nobody, including admins, is told who asked.
      • mentionCommonGround boolean requiredName a topic both people show publicly on their profile in the introduction.
      • reach "any" | "fof" | "far" requiredany: anyone new. fof: friends of friends first (people in common). far: far corners first (nobody in common).
    • groupSize integer required2 to 8
    • iterations integer required1 to 1000
    • keepApart object optional
      • relationships "reporting-line" | "team" | "department" | "know-each-other"[] required1 to 4 items
      • strict boolean required
    • maxGroupSize integer required2 to 8
    • strategy "new-connections" | "cross-unit" | "within-unit" | "hosted" | "random" | "group-frequency-weighted" | "group-frequency-weighted-v2" | "unit-weighted" | "unit-weighted-one-host-per-group" | "unit-weighted-multiple-hosts-per-group" | "unit-lottery-weighted" required
    • unitIds string[] optionalAt most 20 items
    • unitKind "department" | "team" | "community" optional
  • name string required1 to 120 characters
  • schedule object required
    • Option 1 object optional
      • anchor string requiredAt most 100 characters
      • days integer[] optional1 to 7 items
      • frequency "minutes" | "hours" | "days" | "weeks" | "monthly-date" | "monthly-weekday" | "monthly-last-weekday" required
      • interval integer required1 to 366
      • timezone string requiredAt most 100 characters
    • Option 2 object optional
      • calendar object required
        • boundary "start" | "end" required
        • hour integer required0 to 527
        • minute integer required0 to 59
        • second integer required0 to 59
        • timezone string required1 to 100 characters
        • weekday integer required0 to 6
      • frequency "legacy-monthly" required
      • insufficientOptInsNotice object required
        • future boolean | null required
        • pending boolean | null required
      • interval 1 required
      • timezone string required1 to 100 characters
      • version 1 required
      • anchor string (date-time) required
      • origin "source-pending" optional
    • Option 3 object optional
      • calendar object required
        • boundary "start" | "end" required
        • hour integer required0 to 527
        • minute integer required0 to 59
        • second integer required0 to 59
        • timezone string required1 to 100 characters
        • weekday integer required0 to 6
      • frequency "legacy-monthly" required
      • insufficientOptInsNotice object required
        • future boolean | null required
        • pending boolean | null required
      • interval 1 required
      • timezone string required1 to 100 characters
      • version 1 required
      • anchor string (date-time) | null required
      • origin "operator-future-start" required
  • communityNames string[] optionalThe names of the communities whose members take part, when communities are set.
  • createdAt string (date-time) required
  • groupName string | null optionalThe name of the group whose members take part, when one is set.
  • id string required1 to 128 characters
  • matchingReviewRequired boolean required
  • nextRunAt string (date-time) | null required
  • revision integer required
  • status "active" | "paused" | "archived" required
  • summary string optionalWhat the program does, in the same sentence the editor shows.
  • teamId string required1 to 128 characters

programs.syncRoster

Refresh who takes part, from the Slack channel or the program’s group

POST/api/v1/programs/{id}/sync-roster

const result = await shuffl.programs.syncRoster({
"id": "<id>"
});
Request fields (1)
  • id string required1 to 128 characters
Response object
  • synced boolean required

programs.update

Update a program at an expected revision

PUT/api/v1/programs/{id}

const result = await shuffl.programs.update({
"id": "<id>",
"program": {}
});
Request fields (4)
  • id string required1 to 128 characters
  • expectedRevision integer optionalThe revision you read. When given, the update is refused if the program changed since.
  • program object requiredOnly the fields to change. match, match.fineTune and schedule merge field by field; keepApart or fineTune null removes it.
    • channelId string optionalMatches ^[CG][A-Z0-9]+$
    • channelName string optional1 to 100 characters
    • communityIds string[] optionalAt most 20 items
    • groupId string | null optional
    • includeBios boolean optional
    • includeSchedulingLink boolean optional
    • intro string optional1 to 2000 characters
    • match object optional
      • fineTune object | null optional
        • commonGround 0 | 1 | 2 optionalShared interests and "can help with" / "looking for" topics pick between people who are equally new to each other. 0 off, 1 prefer, 2 strongly prefer.
        • meetRequests boolean optionalGroup someone with a person they privately asked to meet, at most once per person per round. Nobody, including admins, is told who asked.
        • mentionCommonGround boolean optionalName a topic both people show publicly on their profile in the introduction.
        • reach "any" | "fof" | "far" optionalany: anyone new. fof: friends of friends first (people in common). far: far corners first (nobody in common).
      • groupSize integer optional2 to 8
      • iterations integer optional1 to 1000
      • keepApart object | null optional
        • relationships "reporting-line" | "team" | "department" | "know-each-other"[] required1 to 4 items
        • strict boolean required
      • maxGroupSize integer optional2 to 8
      • strategy "new-connections" | "cross-unit" | "within-unit" | "hosted" | "random" | "group-frequency-weighted" | "group-frequency-weighted-v2" | "unit-weighted" | "unit-weighted-one-host-per-group" | "unit-weighted-multiple-hosts-per-group" | "unit-lottery-weighted" optional
      • unitIds string[] optionalAt most 20 items
      • unitKind "department" | "team" | "community" | null optional
    • name string optional1 to 120 characters
    • schedule object optional
  • reviewMatching boolean optional
Response object
  • channelId string requiredMatches ^[CG][A-Z0-9]+$
  • channelName string required1 to 100 characters
  • communityIds string[] optionalCommunities whose members take part, instead of the Slack channel or a group. Only people who show the community on their profile are enrolled.. At most 20 items
  • groupId string | null optional
  • includeBios boolean required
  • includeSchedulingLink boolean optional
  • intro string required1 to 2000 characters
  • match object required
    • fineTune object optional
      • commonGround 0 | 1 | 2 requiredShared interests and "can help with" / "looking for" topics pick between people who are equally new to each other. 0 off, 1 prefer, 2 strongly prefer.
      • meetRequests boolean requiredGroup someone with a person they privately asked to meet, at most once per person per round. Nobody, including admins, is told who asked.
      • mentionCommonGround boolean requiredName a topic both people show publicly on their profile in the introduction.
      • reach "any" | "fof" | "far" requiredany: anyone new. fof: friends of friends first (people in common). far: far corners first (nobody in common).
    • groupSize integer required2 to 8
    • iterations integer required1 to 1000
    • keepApart object optional
      • relationships "reporting-line" | "team" | "department" | "know-each-other"[] required1 to 4 items
      • strict boolean required
    • maxGroupSize integer required2 to 8
    • strategy "new-connections" | "cross-unit" | "within-unit" | "hosted" | "random" | "group-frequency-weighted" | "group-frequency-weighted-v2" | "unit-weighted" | "unit-weighted-one-host-per-group" | "unit-weighted-multiple-hosts-per-group" | "unit-lottery-weighted" required
    • unitIds string[] optionalAt most 20 items
    • unitKind "department" | "team" | "community" optional
  • name string required1 to 120 characters
  • schedule object required
    • Option 1 object optional
      • anchor string requiredAt most 100 characters
      • days integer[] optional1 to 7 items
      • frequency "minutes" | "hours" | "days" | "weeks" | "monthly-date" | "monthly-weekday" | "monthly-last-weekday" required
      • interval integer required1 to 366
      • timezone string requiredAt most 100 characters
    • Option 2 object optional
      • calendar object required
        • boundary "start" | "end" required
        • hour integer required0 to 527
        • minute integer required0 to 59
        • second integer required0 to 59
        • timezone string required1 to 100 characters
        • weekday integer required0 to 6
      • frequency "legacy-monthly" required
      • insufficientOptInsNotice object required
        • future boolean | null required
        • pending boolean | null required
      • interval 1 required
      • timezone string required1 to 100 characters
      • version 1 required
      • anchor string (date-time) required
      • origin "source-pending" optional
    • Option 3 object optional
      • calendar object required
        • boundary "start" | "end" required
        • hour integer required0 to 527
        • minute integer required0 to 59
        • second integer required0 to 59
        • timezone string required1 to 100 characters
        • weekday integer required0 to 6
      • frequency "legacy-monthly" required
      • insufficientOptInsNotice object required
        • future boolean | null required
        • pending boolean | null required
      • interval 1 required
      • timezone string required1 to 100 characters
      • version 1 required
      • anchor string (date-time) | null required
      • origin "operator-future-start" required
  • communityNames string[] optionalThe names of the communities whose members take part, when communities are set.
  • createdAt string (date-time) required
  • groupName string | null optionalThe name of the group whose members take part, when one is set.
  • id string required1 to 128 characters
  • matchingReviewRequired boolean required
  • nextRunAt string (date-time) | null required
  • revision integer required
  • status "active" | "paused" | "archived" required
  • summary string optionalWhat the program does, in the same sentence the editor shows.
  • teamId string required1 to 128 characters