mirror of
https://github.com/lingble/chatwoot.git
synced 2025-10-30 18:47:51 +00:00
### Problem The Slack integration fails when fetching channels from workspaces with many channels due to rate limiting errors. The current implementation makes a single API call requesting both public and private channels simultaneously with `types: 'public_channel,private_channel'`, which causes Slack's API to apply complex filtering and hit rate limits more frequently. When testing with a csutomer workspace containing 157 channels: - Combined request: Hit rate limits after a few pages, required 22+ API calls with long delays - Separate requests: Private channels (1 channel) load instantly, public channels (185 channels) load quickly ### Solution Split the channel fetching into two sequential steps: 1. **Fetch private channels first** with `limit: 1000` (expects very few) 2. **Fetch public channels second** with pagination as needed This approach leverages the fact that Slack's API handles single-type requests much more efficiently than mixed-type requests, avoiding the rate limiting issues entirely while maintaining the same functionality.