Skip to content

feat: add admin.conversations.bulkSetProperties - #1991

Open
Keanro wants to merge 3 commits into
slackapi:mainfrom
Keanro:add-admin-conversations-bulk-set-properties
Open

Keanro wants to merge 3 commits into
slackapi:mainfrom
Keanro:add-admin-conversations-bulk-set-properties

Conversation

@Keanro

@Keanro Keanro commented Oct 20, 2026

Copy link
Copy Markdown

Summary

Adds WebClient.admin_conversations_bulkSetProperties (and the generated async and legacy versions) for admin.conversations.bulkSetProperties.

client.admin_conversations_bulkSetProperties(
    channel_ids=["C123", "C234"],
    property={"restrict_guests": True},
)
  • channel_ids accepts a list or a comma-separated string, like admin_conversations_bulkArchive.
  • property accepts a dict or a JSON string, like admin_conversations_setConversationPrefs. A dict is JSON-encoded.
  • The arguments are sent form-encoded (params=). The API reference lists application/json as accepted, but when I sent a JSON body the API returned invalid_arguments with missing required field: channel_ids and missing required field: property.
  • While this test uses restrict_guests and the documentation uses exclude_from_slack_ai, Slack Support has stated that there is internal documentation proving it works. Slack Support ticket 7040646. The test below also proves it works.

Testing

  • Added the method to test_web_client_coverage.py, both to the all_api_methods list and as a call with sample arguments. ./scripts/run_validation.sh passes.

  • Installed this branch locally and called the method against a real Enterprise Grid org with an org-level user token (admin.conversations:write):

    client.admin_conversations_bulkSetProperties(
        channel_ids=["C..."],
        property={"restrict_guests": True},
    )
    # {'ok': True, 'bulk_action_id': 'Bu...', 'not_updated': []}

Category

  • slack_sdk.web.WebClient (sync/async) (Web API client)
  • slack_sdk.webhook.WebhookClient (sync/async) (Incoming Webhook, response_url sender)
  • slack_sdk.socket_mode (Socket Mode client)
  • slack_sdk.signature (Request Signature Verifier)
  • slack_sdk.oauth (OAuth Flow Utilities)
  • slack_sdk.models (UI component builders)
  • slack_sdk.scim (SCIM API client)
  • slack_sdk.audit_logs (Audit Logs API client)
  • slack_sdk.rtm_v2 (RTM client)
  • /docs (Documents)
  • /tutorial (PythOnBoardingBot tutorial)
  • tests/integration_tests (Automated tests for this library)

Requirements

  • I've read and understood the Contributing Guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've run python3 -m venv .venv && source .venv/bin/activate && ./scripts/run_validation.sh after making the changes.

@Keanro
Keanro requested a review from a team as a code owner October 20, 2026 16:12
@hello-ashleyintech

Copy link
Copy Markdown
Contributor

hi @Keanro! great work on the PR, it makes sense to me. would you be able to make an issue to link to this PR?

@hello-ashleyintech

Copy link
Copy Markdown
Contributor

hi @Keanro, I'm seeing some lint failures in the CI. could you update the code addressing these?

@codecov

codecov Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 83.33333% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 84.32%. Comparing base (ab4e498) to head (94cb8ac).
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
slack_sdk/web/async_client.py 83.33% 1 Missing ⚠️
slack_sdk/web/client.py 83.33% 1 Missing ⚠️
slack_sdk/web/legacy_client.py 83.33% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1991      +/-   ##
==========================================
- Coverage   84.35%   84.32%   -0.04%     
==========================================
  Files         118      118              
  Lines       13793    13811      +18     
==========================================
+ Hits        11635    11646      +11     
- Misses       2158     2165       +7     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

@Keanro

Keanro commented Oct 20, 2026

Copy link
Copy Markdown
Author

Hey @hello-ashleyintech! Thank you! I've just pushed the lint changes + created #1992

@hello-ashleyintech hello-ashleyintech added enhancement M-T: A feature request for new functionality web-client labels Oct 21, 2026

@WilliamBergamin WilliamBergamin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

praise: Thanks for testing this against a real Enterprise org and confirming the form-encoded vs JSON body behavior. That's useful context for this method.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla:signed enhancement M-T: A feature request for new functionality web-client

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants