@shuffl/api-contracts 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,7 +13,7 @@ export const managementOperations = [
13
13
  'management.dispatchInbox',
14
14
  'operations:write',
15
15
  'write',
16
- 'Resume already-admitted workspace provider events and support delivery',
16
+ 'Resume already-admitted team provider events and support delivery',
17
17
  ],
18
18
  [
19
19
  'hr.deliver',
@@ -35,16 +35,38 @@ export const managementOperations = [
35
35
  'management.invite',
36
36
  'access:write',
37
37
  'write',
38
- 'Invite this person with the selected workspace role',
38
+ 'Invite this person with the selected team role',
39
+ ],
40
+ [
41
+ 'invitations.createMany',
42
+ 'management.inviteMany',
43
+ 'access:write',
44
+ 'write',
45
+ 'Invite these people with the selected team role',
46
+ ],
47
+ [
48
+ 'invitations.inviteDirectory',
49
+ 'management.inviteDirectory',
50
+ 'access:write',
51
+ 'write',
52
+ 'Invite everyone in the directory who is not invited yet',
39
53
  ],
40
54
  ['invitations.list', 'management.invitations', 'access:read', 'read'],
55
+ [
56
+ 'invitations.candidates',
57
+ 'management.invitablePeople',
58
+ 'access:read',
59
+ 'read',
60
+ ],
41
61
  [
42
62
  'invitations.cancel',
43
63
  'management.cancelInvitation',
44
64
  'access:write',
45
65
  'write',
46
66
  ],
47
- ['exports.workspace', 'management.export', 'exports:read', 'read'],
67
+ ['exports.team', 'management.export', 'exports:read', 'read'],
68
+ ['runs.history.list', 'historicalRuns.list', 'exports:read', 'read'],
69
+ ['runs.history.get', 'historicalRuns.get', 'exports:read', 'read'],
48
70
  [
49
71
  'knowledge.uploads.create',
50
72
  'management.createPdfUpload',
@@ -76,12 +98,6 @@ export const managementOperations = [
76
98
  'knowledge:write',
77
99
  'write',
78
100
  ],
79
- [
80
- 'provisioning.current',
81
- 'management.provisioning',
82
- 'integrations:read',
83
- 'read',
84
- ],
85
101
  ['sync.current', 'directory.directorySync', 'integrations:read', 'read'],
86
102
  [
87
103
  'sync.connect',
@@ -109,13 +125,6 @@ export const managementOperations = [
109
125
  'integrations:write',
110
126
  'write',
111
127
  ],
112
- [
113
- 'provisioning.configure',
114
- 'management.configureProvisioning',
115
- 'integrations:write',
116
- 'write',
117
- 'Change provisioning credentials or employee access policy',
118
- ],
119
128
  ['credentials.api.list', 'management.apiTokens', 'credentials:read', 'read'],
120
129
  [
121
130
  'credentials.api.revoke',
@@ -150,6 +159,35 @@ export const managementOperations = [
150
159
  ['users.managers', 'directory.directoryManagers', 'users:read', 'read'],
151
160
  ['users.managerHistory', 'directory.managerHistory', 'users:read', 'read'],
152
161
  ['users.save', 'directory.saveDirectoryPerson', 'users:write', 'write'],
162
+ // #1342: filling in reporting lines for many people at once.
163
+ [
164
+ 'users.assignManagers',
165
+ 'directory.assignManagers',
166
+ 'users:write',
167
+ 'write',
168
+ 'Set the manager of several people at once',
169
+ ],
170
+ [
171
+ 'users.reportingLineProposal',
172
+ 'directory.reportingLineProposal',
173
+ 'users:read',
174
+ 'read',
175
+ 'Read the reporting lines Mello proposed that wait for review',
176
+ ],
177
+ [
178
+ 'users.proposeReportingLines',
179
+ 'directory.proposeReportingLines',
180
+ 'users:write',
181
+ 'write',
182
+ 'Ask Mello to propose managers for people without one; nothing changes until reviewed',
183
+ ],
184
+ [
185
+ 'users.reviewReportingLines',
186
+ 'directory.reviewReportingLines',
187
+ 'users:write',
188
+ 'write',
189
+ 'Approve chosen proposed reporting lines and close the proposal',
190
+ ],
153
191
  [
154
192
  'users.participation',
155
193
  'people.participation',
@@ -164,7 +202,7 @@ export const managementOperations = [
164
202
  'read',
165
203
  'Read your own time-off balances from the connected HR system',
166
204
  ],
167
- // #735: profiles everyone in the workspace can open. Reads apply the
205
+ // #735: profiles everyone in the team can open. Reads apply the
168
206
  // person's visibility choices; writes are the person's own or an
169
207
  // administrator's, checked in core.
170
208
  [
@@ -172,7 +210,14 @@ export const managementOperations = [
172
210
  'profiles.profile',
173
211
  'users:read',
174
212
  'read',
175
- 'Read a person’s profile as this workspace sees it',
213
+ 'Read a person’s profile as this team sees it',
214
+ ],
215
+ [
216
+ 'profiles.whoKnows',
217
+ 'profiles.whoKnows',
218
+ 'users:read',
219
+ 'read',
220
+ 'Find coworkers who know about a topic, place or skill from what they share on their profiles, with the words that matched',
176
221
  ],
177
222
  ['profiles.save', 'profiles.saveProfile', 'profile:write', 'write'],
178
223
  [
@@ -203,6 +248,58 @@ export const managementOperations = [
203
248
  'write',
204
249
  'Draft the empty parts of your own profile with Mello; nothing is saved',
205
250
  ],
251
+ // #1090: an employee's own first run: the welcome, the Get started card
252
+ // and the hello they post on Home. Only the signed-in person's own state.
253
+ [
254
+ 'getStarted.get',
255
+ 'getStarted.read',
256
+ 'self:read',
257
+ 'read',
258
+ 'Read your own Get started steps and whether the welcome still shows',
259
+ ],
260
+ [
261
+ 'getStarted.wizard',
262
+ 'getStarted.wizard',
263
+ 'profile:write',
264
+ 'write',
265
+ 'Record that you opened, finished or skipped the welcome',
266
+ ],
267
+ [
268
+ 'getStarted.dismiss',
269
+ 'getStarted.dismiss',
270
+ 'profile:write',
271
+ 'write',
272
+ 'Hide the Get started card',
273
+ ],
274
+ [
275
+ 'getStarted.draftIntro',
276
+ 'getStarted.draftIntro',
277
+ 'profile:write',
278
+ 'write',
279
+ 'Draft a short hello to your coworkers with Mello; nothing is posted',
280
+ ],
281
+ [
282
+ 'getStarted.intro',
283
+ 'getStarted.intro',
284
+ 'profile:write',
285
+ 'write',
286
+ 'Post your hello on Home, or skip it',
287
+ ],
288
+ // #1341: the one first-action celebration waiting for you.
289
+ [
290
+ 'getStarted.celebration',
291
+ 'getStarted.celebration',
292
+ 'self:read',
293
+ 'read',
294
+ 'Read the first-action celebration waiting for you, if any',
295
+ ],
296
+ [
297
+ 'getStarted.celebrate',
298
+ 'getStarted.celebrate',
299
+ 'profile:write',
300
+ 'write',
301
+ 'Record that a celebration was shown, shared or dismissed',
302
+ ],
206
303
  [
207
304
  'profiles.employeeNumber',
208
305
  'profiles.setEmployeeNumber',
@@ -218,9 +315,16 @@ export const managementOperations = [
218
315
  'badges.list',
219
316
  'users:read',
220
317
  'read',
221
- 'List the workspace’s badges, who holds them and any open requests you decide',
318
+ 'List the team’s badges, who holds them and any open requests you decide',
222
319
  ],
223
320
  ['badges.ofPerson', 'badges.ofPerson', 'users:read', 'read'],
321
+ [
322
+ 'badges.holders',
323
+ 'badges.holders',
324
+ 'users:read',
325
+ 'read',
326
+ 'List the people who hold a badge, as far as each lets you see',
327
+ ],
224
328
  [
225
329
  'badges.save',
226
330
  'badges.save',
@@ -235,6 +339,20 @@ export const managementOperations = [
235
339
  'write',
236
340
  'Give a badge you own to a person',
237
341
  ],
342
+ [
343
+ 'badges.generatePicture',
344
+ 'badges.generatePicture',
345
+ 'profile:write',
346
+ 'write',
347
+ 'Draw an AI picture for a badge you own. Keeps a picture already set unless replace is true; idea says what to draw',
348
+ ],
349
+ [
350
+ 'badges.uploadPicture',
351
+ 'badges.uploadPicture',
352
+ 'profile:write',
353
+ 'write',
354
+ 'Set a badge picture from a PNG, JPEG or WebP picture sent as base64, for a badge you own',
355
+ ],
238
356
  ['badges.revoke', 'badges.revoke', 'profile:write', 'write'],
239
357
  [
240
358
  'badges.claim',
@@ -247,6 +365,20 @@ export const managementOperations = [
247
365
  ['badges.decideRequest', 'badges.decideRequest', 'profile:write', 'write'],
248
366
  ['badges.hideOwn', 'badges.hideOwn', 'profile:write', 'write'],
249
367
  ['badges.setHidden', 'badges.setHidden', 'users:write', 'write'],
368
+ [
369
+ 'badges.settings',
370
+ 'badges.settings',
371
+ 'praise:read',
372
+ 'read',
373
+ 'Read the badge suggestion settings',
374
+ ],
375
+ [
376
+ 'badges.saveSettings',
377
+ 'badges.saveSettings',
378
+ 'praise:write',
379
+ 'write',
380
+ 'Turn badge offers from praise on or off, and choose the launch channel',
381
+ ],
250
382
  [
251
383
  'communities.list',
252
384
  'communities.list',
@@ -264,6 +396,27 @@ export const managementOperations = [
264
396
  'Create or edit a community, optionally tied to a Slack channel',
265
397
  ],
266
398
  ['communities.join', 'communities.join', 'profile:write', 'write'],
399
+ [
400
+ 'communities.invite',
401
+ 'communities.invite',
402
+ 'profile:write',
403
+ 'write',
404
+ 'Invite selected people to a community as its owner or administrator; each person must accept',
405
+ ],
406
+ [
407
+ 'communities.revokeInvitation',
408
+ 'communities.revokeInvitation',
409
+ 'profile:write',
410
+ 'write',
411
+ 'Revoke a pending community invitation as its owner or administrator',
412
+ ],
413
+ [
414
+ 'communities.createCapabilities',
415
+ 'communities.createCapabilities',
416
+ 'programs:read',
417
+ 'read',
418
+ 'Read the current permission to create public or private community channels',
419
+ ],
267
420
  ['communities.leave', 'communities.leave', 'profile:write', 'write'],
268
421
  [
269
422
  'communities.setVisibility',
@@ -280,6 +433,41 @@ export const managementOperations = [
280
433
  'Remove someone from a community, as its owner or moderator',
281
434
  ],
282
435
  ['communities.sync', 'communities.sync', 'profile:write', 'write'],
436
+ [
437
+ 'communities.createSlackChannel',
438
+ 'communities.createSlackChannel',
439
+ 'programs:write',
440
+ 'write',
441
+ 'Create an explicitly public or private Slack channel as an authorized community owner or administrator, retaining its request id across retries',
442
+ ],
443
+ [
444
+ 'communities.channelSuggestions',
445
+ 'communities.channelSuggestions',
446
+ 'programs:read',
447
+ 'read',
448
+ 'List Slack channels, with the ones that look like communities suggested',
449
+ ],
450
+ [
451
+ 'communities.fromChannels',
452
+ 'communities.fromChannels',
453
+ 'programs:write',
454
+ 'write',
455
+ 'Create one community per chosen Slack channel, as an administrator',
456
+ ],
457
+ [
458
+ 'communities.generateCover',
459
+ 'communities.generateCover',
460
+ 'profile:write',
461
+ 'write',
462
+ 'Draw an AI cover for a community, as its owner, moderator or an administrator. Keeps a cover already set unless replace is true; idea says what to draw',
463
+ ],
464
+ [
465
+ 'communities.uploadCover',
466
+ 'communities.uploadCover',
467
+ 'profile:write',
468
+ 'write',
469
+ 'Set a community cover from a PNG, JPEG or WebP picture sent as base64, as its owner, moderator or an administrator',
470
+ ],
283
471
  [
284
472
  'home.feed',
285
473
  'home.feed',
@@ -287,12 +475,34 @@ export const managementOperations = [
287
475
  'read',
288
476
  'What happened to people you know, and who Mello thinks you should meet',
289
477
  ],
478
+ // #1406: Home stories, reactions and the Home view.
479
+ [
480
+ 'home.react',
481
+ 'home.react',
482
+ 'profile:write',
483
+ 'write',
484
+ 'Add or remove your emoji reaction on a Home moment',
485
+ ],
486
+ [
487
+ 'home.story',
488
+ 'home.story',
489
+ 'profile:write',
490
+ 'write',
491
+ 'Record Home stories you opened, sent a note from, or skipped',
492
+ ],
493
+ [
494
+ 'home.preferences',
495
+ 'home.preferences',
496
+ 'profile:write',
497
+ 'write',
498
+ 'Choose how Home looks: cards or compact, stories, autoplay, For you',
499
+ ],
290
500
  [
291
501
  'network.orgChart',
292
502
  'network.orgChart',
293
503
  'users:read',
294
504
  'read',
295
- 'Everyone in the workspace with their manager, for the org chart',
505
+ 'Everyone in the team with their manager, for the org chart',
296
506
  ],
297
507
  [
298
508
  'network.mine',
@@ -330,10 +540,10 @@ export const managementOperations = [
330
540
  ],
331
541
  [
332
542
  'access.saveRole',
333
- 'directory.saveWorkspaceRole',
543
+ 'directory.saveTeamRole',
334
544
  'access:write',
335
545
  'write',
336
- 'Change a member’s workspace role',
546
+ 'Change a member’s team role',
337
547
  ],
338
548
  ['identities.list', 'identities.personAccounts', 'identities:read', 'read'],
339
549
  [
@@ -385,6 +595,13 @@ export const managementOperations = [
385
595
  'write',
386
596
  'Retry introduction delivery',
387
597
  ],
598
+ [
599
+ 'runs.stopKnownFailures',
600
+ 'runs.stopKnownFailures',
601
+ 'runs:write',
602
+ 'write',
603
+ 'Stop retrying known failed deliveries and advance the preserved monthly schedule',
604
+ ],
388
605
  ['knowledge.sources.list', 'knowledge.list', 'knowledge:manage', 'read'],
389
606
  ['knowledge.sources.get', 'knowledge.read', 'knowledge:manage', 'read'],
390
607
  [
@@ -401,6 +618,13 @@ export const managementOperations = [
401
618
  ],
402
619
  ['knowledge.sources.search', 'knowledge.search', 'knowledge:read', 'read'],
403
620
  ['knowledge.sources.save', 'knowledge.save', 'knowledge:write', 'write'],
621
+ [
622
+ 'knowledge.sources.write',
623
+ 'knowledge.write',
624
+ 'knowledge:write',
625
+ 'write',
626
+ 'Write a Knowledge page with Mello from its title and a request; nothing is saved',
627
+ ],
404
628
  [
405
629
  'knowledge.sources.publish',
406
630
  'knowledge.publish',
@@ -480,6 +704,27 @@ export const managementOperations = [
480
704
  ['hr.readiness', 'hrRequests.hrReadiness', 'hr:read', 'read'],
481
705
  ['hr.settings', 'hrRequests.hrSettings', 'hr:read', 'read'],
482
706
  ['hr.shareSources', 'hrRequests.hrShareSources', 'hr:read', 'read'],
707
+ [
708
+ 'hr.categories',
709
+ 'hrRequests.hrCategories',
710
+ 'hr:read',
711
+ 'read',
712
+ 'Read the HR request categories and response target',
713
+ ],
714
+ [
715
+ 'hr.saveCategories',
716
+ 'hrRequests.saveHrCategories',
717
+ 'hr:write',
718
+ 'write',
719
+ 'Save the HR request categories, their owners and the response target',
720
+ ],
721
+ [
722
+ 'hr.rebuildCategories',
723
+ 'hrRequests.rebuildHrCategories',
724
+ 'hr:write',
725
+ 'write',
726
+ 'Have Mello rebuild the HR request categories from published Knowledge',
727
+ ],
483
728
  ['hr.command', 'hrRequests.commandHrRequest', 'hr:write', 'write'],
484
729
  [
485
730
  'hr.configure',
@@ -508,43 +753,6 @@ export const managementOperations = [
508
753
  ['support.reply', 'support.reply', 'support:write', 'write'],
509
754
  ['support.close', 'support.closeSupport', 'support:write', 'write'],
510
755
  ['support.assign', 'support.assignSupport', 'support:write', 'write'],
511
- ['billing.legacy', 'billing.billing', 'billing:read', 'read'],
512
- ['billing.current', 'billing.companyBilling', 'billing:read', 'read'],
513
- [
514
- 'billing.initialize',
515
- 'billing.initializeCompanyBilling',
516
- 'billing:write',
517
- 'write',
518
- ],
519
- [
520
- 'billing.refresh',
521
- 'billing.refreshCompanyBilling',
522
- 'billing:write',
523
- 'write',
524
- ],
525
- [
526
- 'billing.activateTrial',
527
- 'billing.activateCompanyTrial',
528
- 'billing:write',
529
- 'write',
530
- 'Activate the company trial',
531
- ],
532
- [
533
- 'billing.checkout',
534
- 'billing.companyCheckout',
535
- 'billing:write',
536
- 'write',
537
- 'Open checkout for the company subscription',
538
- ],
539
- ['billing.portal', 'billing.companyPortal', 'billing:write', 'write'],
540
- ['billing.legacyPortal', 'billing.billingPortal', 'billing:write', 'write'],
541
- [
542
- 'billing.cancelSubscription',
543
- 'billing.cancelCompanySubscription',
544
- 'billing:write',
545
- 'write',
546
- 'Cancel the company subscription',
547
- ],
548
756
  ['operations.activity', 'operations.activity', 'operations:read', 'read'],
549
757
  ['operations.status', 'operations.operations', 'operations:read', 'read'],
550
758
  [
@@ -567,19 +775,16 @@ export const managementOperations = [
567
775
  'reports:read',
568
776
  'read',
569
777
  ],
778
+ ['teams.status', 'teams.teamStatus', 'team:write', 'write'],
779
+ ['teams.rename', 'teams.teamRename', 'team:write', 'write'],
780
+ ['teams.setup', 'setup.setup', 'team:read', 'read'],
570
781
  [
571
- 'workspaces.status',
572
- 'workspaces.workspaceStatus',
573
- 'workspace:write',
574
- 'write',
575
- ],
576
- ['workspaces.setup', 'setup.setup', 'workspace:read', 'read'],
577
- [
578
- 'workspaces.initialize',
579
- 'workspaces.initialize',
580
- 'workspace:write',
581
- 'write',
782
+ 'teams.connectionPermissions',
783
+ 'setup.connectionPermissions',
784
+ 'team:read',
785
+ 'read',
582
786
  ],
787
+ ['teams.initialize', 'teams.initialize', 'team:write', 'write'],
583
788
  // #662: the rest of the app, so a person's own agent can do what they can.
584
789
  [
585
790
  'onboarding.program',
@@ -657,6 +862,27 @@ export const managementOperations = [
657
862
  'write',
658
863
  ],
659
864
  ['onboarding.mine', 'onboarding.myOnboarding', 'self:read', 'read'],
865
+ [
866
+ 'onboarding.firstDaysCheckIns',
867
+ 'onboarding.myFirstDaysCheckIns',
868
+ 'self:read',
869
+ 'read',
870
+ 'Your open 30, 60 or 90-day or one-year new hire check-in',
871
+ ],
872
+ [
873
+ 'onboarding.answerFirstDaysCheckIn',
874
+ 'onboarding.answerFirstDaysCheckIn',
875
+ 'self:write',
876
+ 'write',
877
+ 'Answer your new-hire check-in',
878
+ ],
879
+ [
880
+ 'onboarding.firstDaysResults',
881
+ 'onboarding.firstDaysResults',
882
+ 'onboarding:read',
883
+ 'read',
884
+ 'What new hires said in their first 90 days check-ins, combined',
885
+ ],
660
886
  [
661
887
  'onboarding.answerCheckIn',
662
888
  'onboarding.answerOnboardingCheckIn',
@@ -676,6 +902,13 @@ export const managementOperations = [
676
902
  'read',
677
903
  'Suggest coworkers who could be your onboarding buddy',
678
904
  ],
905
+ [
906
+ 'onboarding.answerBuddyAsk',
907
+ 'onboarding.answerBuddyAsk',
908
+ 'self:write',
909
+ 'write',
910
+ 'Say yes or not now to being a new hire’s onboarding buddy',
911
+ ],
679
912
  [
680
913
  'onboarding.askBuddy',
681
914
  'onboarding.askBuddy',
@@ -721,6 +954,34 @@ export const managementOperations = [
721
954
  'read',
722
955
  ],
723
956
  ['celebrations.mine', 'milestones.myCelebrations', 'self:read', 'read'],
957
+ [
958
+ 'celebrations.card',
959
+ 'milestones.celebrationCard',
960
+ 'self:read',
961
+ 'read',
962
+ 'Open a celebration card you can sign or were given',
963
+ ],
964
+ [
965
+ 'celebrations.cards',
966
+ 'milestones.myCelebrationCards',
967
+ 'self:read',
968
+ 'read',
969
+ 'List celebration cards to sign and cards you were given',
970
+ ],
971
+ [
972
+ 'celebrations.signCard',
973
+ 'milestones.signCelebrationCard',
974
+ 'self:write',
975
+ 'write',
976
+ 'Sign this celebration card with your note',
977
+ ],
978
+ [
979
+ 'celebrations.removeCardNote',
980
+ 'milestones.removeCelebrationCardNote',
981
+ 'self:write',
982
+ 'write',
983
+ 'Remove your note from this celebration card',
984
+ ],
724
985
  [
725
986
  'celebrations.preferences',
726
987
  'milestones.milestonePreferences',
@@ -751,7 +1012,85 @@ export const managementOperations = [
751
1012
  'reports:read',
752
1013
  'read',
753
1014
  ],
1015
+ [
1016
+ 'digest.settings',
1017
+ 'digest.settings',
1018
+ 'team:read',
1019
+ 'read',
1020
+ 'Read the HR digest schedule',
1021
+ ],
1022
+ [
1023
+ 'digest.saveSettings',
1024
+ 'digest.saveSettings',
1025
+ 'team:write',
1026
+ 'write',
1027
+ 'Save the HR digest schedule and admin channel',
1028
+ ],
1029
+ [
1030
+ 'digest.preview',
1031
+ 'digest.preview',
1032
+ 'reports:read',
1033
+ 'read',
1034
+ 'Preview the HR digest for the last period',
1035
+ ],
1036
+ [
1037
+ 'digest.nudges',
1038
+ 'digest.nudges',
1039
+ 'reports:read',
1040
+ 'read',
1041
+ 'List Mello’s culture nudges for the workspace',
1042
+ ],
1043
+ [
1044
+ 'digest.nudge',
1045
+ 'digest.nudge',
1046
+ 'reports:read',
1047
+ 'read',
1048
+ 'Read one of Mello’s culture nudges',
1049
+ ],
1050
+ [
1051
+ 'digest.actOnNudge',
1052
+ 'digest.actOnNudge',
1053
+ 'team:write',
1054
+ 'write',
1055
+ 'Record that a culture nudge was acted on and get where its action goes',
1056
+ ],
1057
+ [
1058
+ 'digest.dismissNudge',
1059
+ 'digest.dismissNudge',
1060
+ 'team:write',
1061
+ 'write',
1062
+ 'Dismiss a culture nudge for 90 days',
1063
+ ],
754
1064
  ['reports.knowledge', 'reporting.knowledgeActivity', 'reports:read', 'read'],
1065
+ [
1066
+ 'reports.melloValue',
1067
+ 'reporting.melloValue',
1068
+ 'reports:read',
1069
+ 'read',
1070
+ 'What Mello handled this week, this month and all time, with time saved once the team has set its minutes per question',
1071
+ ],
1072
+ [
1073
+ 'reports.melloTrial',
1074
+ 'reporting.melloTrialReport',
1075
+ 'reports:read',
1076
+ 'read',
1077
+ 'What Mello handled during the trial, from day 25 of a trial until it ends',
1078
+ ],
1079
+ ['team.launchPost', 'reporting.launchPost', 'team:read', 'read'],
1080
+ [
1081
+ 'team.dismissLaunchPost',
1082
+ 'reporting.dismissLaunchPost',
1083
+ 'team:write',
1084
+ 'write',
1085
+ 'Dismiss the Tell your team what they can ask post on Today for everyone',
1086
+ ],
1087
+ [
1088
+ 'team.answerMinutes',
1089
+ 'reporting.setAnswerMinutes',
1090
+ 'team:write',
1091
+ 'write',
1092
+ 'Set the team estimate of minutes per HR question, used for time saved',
1093
+ ],
755
1094
  [
756
1095
  'reports.knowledgeSource',
757
1096
  'reporting.knowledgeSourceActivity',
@@ -785,45 +1124,58 @@ export const managementOperations = [
785
1124
  'write',
786
1125
  'Give these Slack people employee access',
787
1126
  ],
1127
+ ['teams.slackJoinAccess', 'directory.slackJoinAccess', 'team:read', 'read'],
788
1128
  [
789
- 'workspaces.slackJoinAccess',
790
- 'directory.slackJoinAccess',
791
- 'workspace:read',
792
- 'read',
793
- ],
794
- [
795
- 'workspaces.saveSlackJoinAccess',
1129
+ 'teams.saveSlackJoinAccess',
796
1130
  'directory.saveSlackJoinAccess',
797
- 'workspace:write',
1131
+ 'team:write',
798
1132
  'write',
799
1133
  ],
1134
+ ['teams.slackProfileLink', 'directory.slackProfileLink', 'team:read', 'read'],
800
1135
  [
801
- 'workspaces.slackProfileLink',
802
- 'directory.slackProfileLink',
803
- 'workspace:read',
804
- 'read',
805
- ],
806
- [
807
- 'workspaces.saveSlackProfileLink',
1136
+ 'teams.saveSlackProfileLink',
808
1137
  'directory.saveSlackProfileLink',
809
- 'workspace:write',
1138
+ 'team:write',
810
1139
  'write',
811
1140
  ],
812
1141
  [
813
- 'workspaces.syncSlackProfileLinks',
1142
+ 'teams.syncSlackProfileLinks',
814
1143
  'directory.syncSlackProfileLinks',
815
- 'workspace:write',
1144
+ 'team:write',
816
1145
  'write',
817
1146
  'Write the Shuffl profile link to every Slack profile again',
818
1147
  ],
1148
+ ['teams.saveAgentSetup', 'setup.saveAgentSetup', 'team:write', 'write'],
1149
+ // #1034, #1083: an agent can find channels where another Slack app runs
1150
+ // intros, shoutouts or celebrations and move them into Shuffl, the same one
1151
+ // press the setup page makes.
1152
+ ['teams.slackChannels', 'setup.donut', 'integrations:read', 'read'],
1153
+ [
1154
+ 'teams.moveSlackChannels',
1155
+ 'setup.switchFromDonut',
1156
+ 'integrations:write',
1157
+ 'write',
1158
+ 'Set up each channel in Shuffl: paused intros, praise and celebrations',
1159
+ ],
1160
+ // #1034: an administrator's own agent, signed in to the old intros app as
1161
+ // them, uploads its CSV report of past intros. Upload only: it is staged
1162
+ // for the review screen and applied when an administrator presses Switch.
819
1163
  [
820
- 'workspaces.saveAgentSetup',
821
- 'setup.saveAgentSetup',
822
- 'workspace:write',
1164
+ 'teams.uploadPairHistory',
1165
+ 'setup.stagePairHistory',
1166
+ 'integrations:write',
823
1167
  'write',
1168
+ 'Stage this past-intros report for the switch; nothing changes until it is applied',
824
1169
  ],
825
1170
  [
826
- 'workspaces.resendSlackWelcome',
1171
+ 'teams.discardPairHistory',
1172
+ 'setup.discardPairHistory',
1173
+ 'integrations:write',
1174
+ 'write',
1175
+ 'Remove this staged past-intros report',
1176
+ ],
1177
+ [
1178
+ 'teams.resendSlackWelcome',
827
1179
  'setup.resendSlackWelcome',
828
1180
  'integrations:write',
829
1181
  'write',
@@ -885,6 +1237,58 @@ export const managementOperations = [
885
1237
  'write',
886
1238
  'Retire or restore a Pulse question',
887
1239
  ],
1240
+ [
1241
+ 'pulse.setQuestionAudience',
1242
+ 'pulse.setQuestionAudience',
1243
+ 'pulse:write',
1244
+ 'write',
1245
+ 'Aim a Pulse question at departments, teams, managers or ICs',
1246
+ ],
1247
+ // #707: Mello's suggested questions. Saving drafts adds suggestions for an
1248
+ // administrator to approve, never active questions; approving is the
1249
+ // administrator's act on the current wording.
1250
+ [
1251
+ 'pulse.proposals',
1252
+ 'pulse.proposals',
1253
+ 'pulse:read',
1254
+ 'read',
1255
+ 'List the Pulse questions Mello suggested that wait for approval',
1256
+ ],
1257
+ [
1258
+ 'pulse.proposeQuestions',
1259
+ 'pulse.proposeQuestions',
1260
+ 'pulse:write',
1261
+ 'write',
1262
+ 'Save drafted Pulse questions as suggestions for HR to approve (never asked until approved)',
1263
+ ],
1264
+ [
1265
+ 'pulse.requestProposals',
1266
+ 'pulse.requestProposals',
1267
+ 'pulse:write',
1268
+ 'write',
1269
+ 'Ask Mello to suggest Pulse questions from recent results, optionally about a topic',
1270
+ ],
1271
+ [
1272
+ 'pulse.editProposal',
1273
+ 'pulse.editProposal',
1274
+ 'pulse:write',
1275
+ 'write',
1276
+ 'Reword a suggested Pulse question before approving it',
1277
+ ],
1278
+ [
1279
+ 'pulse.decideProposal',
1280
+ 'pulse.decideProposal',
1281
+ 'pulse:write',
1282
+ 'write',
1283
+ 'Approve a suggested Pulse question so it is asked next, or dismiss it',
1284
+ ],
1285
+ [
1286
+ 'pulse.audienceOptions',
1287
+ 'pulse.audienceOptions',
1288
+ 'pulse:read',
1289
+ 'read',
1290
+ 'List the departments and teams a Pulse question can be aimed at',
1291
+ ],
888
1292
  [
889
1293
  'pulse.insights',
890
1294
  'pulse.insights',
@@ -892,6 +1296,44 @@ export const managementOperations = [
892
1296
  'read',
893
1297
  'Read Pulse totals and trends (groups of seven or more)',
894
1298
  ],
1299
+ // Actions (#710): Mello reads what the workspace did about a result and
1300
+ // prepares an action for a person to confirm. Posting "you said, we did"
1301
+ // to the company stays in the app, where a person reads the exact post.
1302
+ [
1303
+ 'pulse.actions',
1304
+ 'pulse.actions',
1305
+ 'pulse:read',
1306
+ 'read',
1307
+ 'List Pulse actions: what is being done about each result, its owner, due date and before and after',
1308
+ ],
1309
+ [
1310
+ 'pulse.createAction',
1311
+ 'pulse.createAction',
1312
+ 'pulse:write',
1313
+ 'write',
1314
+ 'Plan an action about a closed Pulse question, with an owner and a due date',
1315
+ ],
1316
+ [
1317
+ 'pulse.updateAction',
1318
+ 'pulse.updateAction',
1319
+ 'pulse:write',
1320
+ 'write',
1321
+ 'Change a Pulse action’s wording, owner, due date or status',
1322
+ ],
1323
+ [
1324
+ 'pulse.latestRead',
1325
+ 'pulse.latestRead',
1326
+ 'pulse:read',
1327
+ 'read',
1328
+ 'Read what stands out in a closed Pulse question’s result',
1329
+ ],
1330
+ [
1331
+ 'pulse.questionDetail',
1332
+ 'pulse.questionDetail',
1333
+ 'pulse:read',
1334
+ 'read',
1335
+ 'Read one closed Pulse question: its answer spread, every time it was asked, and results by group (groups of seven or more)',
1336
+ ],
895
1337
  [
896
1338
  'pulse.asked',
897
1339
  'pulse.asked',
@@ -899,6 +1341,13 @@ export const managementOperations = [
899
1341
  'read',
900
1342
  'List the Pulse questions asked so far',
901
1343
  ],
1344
+ [
1345
+ 'pulse.mine',
1346
+ 'pulse.mine',
1347
+ 'self:read',
1348
+ 'read',
1349
+ 'Read your own Pulse streak, how many took part, and what changed because of it',
1350
+ ],
902
1351
  [
903
1352
  'pulse.today',
904
1353
  'pulse.today',
@@ -906,6 +1355,23 @@ export const managementOperations = [
906
1355
  'read',
907
1356
  'Read today’s Pulse question',
908
1357
  ],
1358
+ // #711: a person's own agent answers or skips the open question as them.
1359
+ // The value goes through the restricted function and only the outcome
1360
+ // comes back; nothing returns a response row.
1361
+ [
1362
+ 'pulse.answer',
1363
+ 'pulse.answer',
1364
+ 'self:write',
1365
+ 'write',
1366
+ 'Answer today’s Pulse question as yourself',
1367
+ ],
1368
+ [
1369
+ 'pulse.skip',
1370
+ 'pulse.skip',
1371
+ 'self:write',
1372
+ 'write',
1373
+ 'Skip today’s Pulse question',
1374
+ ],
909
1375
  [
910
1376
  'praise.settings',
911
1377
  'praise.settings',
@@ -970,4 +1436,46 @@ export const managementOperations = [
970
1436
  'write',
971
1437
  'Hide or show a praise you received',
972
1438
  ],
1439
+ [
1440
+ 'reminders.settings',
1441
+ 'reminders.settings',
1442
+ 'team:read',
1443
+ 'read',
1444
+ 'Read whether Praise and Pulse reminders are on, and their timing',
1445
+ ],
1446
+ [
1447
+ 'reminders.saveSetting',
1448
+ 'reminders.saveSetting',
1449
+ 'team:write',
1450
+ 'write',
1451
+ 'Turn a Praise or Pulse reminder on or off, or change its timing',
1452
+ ],
1453
+ [
1454
+ 'reminders.mine',
1455
+ 'reminders.mine',
1456
+ 'self:read',
1457
+ 'read',
1458
+ 'Read your own Praise and Pulse reminder choices',
1459
+ ],
1460
+ [
1461
+ 'reminders.saveMine',
1462
+ 'reminders.saveMine',
1463
+ 'self:write',
1464
+ 'write',
1465
+ 'Change or turn off your own Praise or Pulse reminders',
1466
+ ],
1467
+ [
1468
+ 'praise.composer',
1469
+ 'praise.composer',
1470
+ 'self:read',
1471
+ 'read',
1472
+ 'Read who you can praise, the praise channels and company values',
1473
+ ],
1474
+ [
1475
+ 'praise.send',
1476
+ 'praise.send',
1477
+ 'self:write',
1478
+ 'write',
1479
+ 'Praise coworkers in a praise channel',
1480
+ ],
973
1481
  ];