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
- Read
- Permission 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}
- Read
- Permission programs.get
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
- fineTune object 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
- calendar object required
- 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
- calendar object required
- Option 1 object optional
- 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
- Read
- Permission programs.list
- Paginated with cursor
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
- fineTune object 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
- Option 1 object optional
- 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
- Read
- Permission programs.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
- 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
- commonGround object[] 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
- Read
- Permission 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
- Read
- Permission programs.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
- Read
- Permission 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
- fineTune object 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
- Option 1 object optional
Response string (date-time)[]
The response is string (date-time)[].
programs.archive
Archive a program
POST/api/v1/programs/{id}/archive
- Write
- Permission programs.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
- fineTune object 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
- calendar object required
- 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
- calendar object required
- Option 1 object optional
- 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
- Write
- Permission programs.create
- Needs a requestKey
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
- fineTune object 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
- Option 1 object optional
- 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
- fineTune object 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
- calendar object required
- 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
- calendar object required
- Option 1 object optional
- 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
- Write
- Permission programs.joinChannel
- Needs a requestKey
- Needs confirm set to 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
- Write
- Permission programs.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
- fineTune object 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
- calendar object required
- 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
- calendar object required
- Option 1 object optional
- 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
- Write
- Permission programs.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
- fineTune object 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
- calendar object required
- 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
- calendar object required
- Option 1 object optional
- 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
- Write
- Permission programs.syncRoster
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}
- Write
- Permission programs.update
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
- fineTune object | 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
- fineTune object 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
- calendar object required
- 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
- calendar object required
- Option 1 object optional
- 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