Enterprise Grid Admin API operations with the Slack Go SDK. Use when managing organization-wide conversations, assigning or listing admin roles, configuring team settings, restricting channel access, or building internal tooling for Slack workspace/org administrators.
68
85%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Admin API methods require an org-level admin/owner token, not a regular bot token, and only work on Enterprise Grid workspaces. A bot token will fail auth even with broad bot scopes. Every admin method takes context.Context as its first argument.
adminAPI := slack.New(os.Getenv("SLACK_ORG_ADMIN_TOKEN"))results, err := adminAPI.AdminConversationsSearch(ctx,
slack.AdminConversationsSearchOptionTeamIDs([]string{"T1234567890"}),
slack.AdminConversationsSearchOptionQuery("incident"),
slack.AdminConversationsSearchOptionLimit(50),
)
if err != nil {
return err
}err := adminAPI.AdminConversationsArchive(ctx, channelID)
err = adminAPI.AdminConversationsRename(ctx, channelID, "new-channel-name")
err = adminAPI.AdminConversationsDelete(ctx, channelID)err := adminAPI.AdminConversationsSetTeams(ctx, slack.AdminConversationsSetTeamsParams{
ChannelID: channelID,
TargetTeamIDs: []string{"T0987654321"},
})err := adminAPI.AdminConversationsBulkArchive(ctx, []string{"C111", "C222"})
err = adminAPI.AdminConversationsBulkDelete(ctx, []string{"C111", "C222"})
err = adminAPI.AdminConversationsBulkMove(ctx, slack.AdminConversationsBulkMoveParams{
ChannelIDs: []string{"C111", "C222"},
TargetTeamID: "T0987654321",
})err := adminAPI.AdminConversationsRestrictAccessAddGroup(ctx, channelID, groupID)
groups, err := adminAPI.AdminConversationsRestrictAccessListGroups(ctx, channelID)
err = adminAPI.AdminConversationsRestrictAccessRemoveGroup(ctx, channelID, groupID)See admin-api-reference.md for the full conversations, roles, and teams surface, including retention, EKM, and invite/lookup methods.
Assign or remove admin/owner-style roles for users:
_, err := adminAPI.AdminRolesAddAssignments(ctx, slack.AdminRolesAddAssignmentsParams{
RoleID: roleID,
EntityIDs: []string{teamID},
UserIDs: []string{userID},
})
assignments, err := adminAPI.AdminRolesListAssignments(ctx,
slack.AdminRolesListAssignmentsOptionRoleIDs([]string{roleID}),
)
_, err = adminAPI.AdminRolesRemoveAssignments(ctx, slack.AdminRolesRemoveAssignmentsParams{
RoleID: roleID,
EntityIDs: []string{teamID},
UserIDs: []string{userID},
})settings, err := adminAPI.AdminTeamsSettingsInfo(ctx, teamID)
err = adminAPI.AdminTeamsSettingsSetName(ctx, teamID, "Engineering")
err = adminAPI.AdminTeamsSettingsSetDescription(ctx, teamID, "Engineering workspace")
err = adminAPI.AdminTeamsSettingsSetIcon(ctx, teamID, iconURL)
err = adminAPI.AdminTeamsSettingsSetDefaultChannels(ctx, teamID, "C_GENERAL", "C_ANNOUNCEMENTS")
err = adminAPI.AdminTeamsSettingsSetDiscoverability(ctx, teamID, slack.TeamDiscoverabilityInviteOnly)TeamDiscoverability is one of TeamDiscoverabilityOpen, TeamDiscoverabilityInviteOnly, TeamDiscoverabilityClosed, or TeamDiscoverabilityUnlisted.
AdminConversationsBulkDelete is irreversibleadmin.users.* wrapper exists — the SDK does not currently expose user-provisioning admin endpoints as Go methods; use the REST API directly if you need thosecontext.Context as the first parameter on every admin callAdminConversationsSetTeams (move an existing channel) with AdminConversationsCreate's AdminConversationsCreateOptionTeamID (set the team at creation time)slack-web-api skillslack-auth-security skill88571a6
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.