mirror of
https://github.com/chatwoot/chatwoot.git
synced 2026-06-16 21:06:22 +08: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. |
||
|---|---|---|
| .. | ||
| captain | ||
| dialogflow | ||
| dyte | ||
| google_translate | ||
| linear | ||
| openai | ||
| slack | ||
| bot_processor_service.rb | ||
| openai_base_service.rb | ||