iachat/spec/lib
Muhsin Keloth 44fab70048
feat: Add support for grouped file uploads in Slack (#12454)
Fixes
https://linear.app/chatwoot/issue/CW-5646/add-support-for-grouped-file-uploads-in-slack

Previously, when sending multiple attachments to Slack, we uploaded them
one by one. For example, sending 5 images would result in 5 separate
Slack messages. This created clutter and a poor user experience, since
Slack displayed each file as an individual message.
This PR updates the implementation to group all attachments from a
message and send them as a single Slack message. As a result,
attachments now appear together in one grouped block, providing a much
cleaner and more intuitive experience for users.

**Before:** 
Each file uploaded as a separate Slack message.
<img width="400" height="800" alt="before"
src="https://github.com/user-attachments/assets/c8c7f666-549b-428f-bd19-c94e39ed2513"
/>

**After:** 
All files from a single message grouped and displayed together in one
Slack message (similar to how Slack natively handles grouped uploads).
<img width="400" height="800" alt="after"
src="https://github.com/user-attachments/assets/0b1f22d5-4d37-4b84-905a-15e742317e72"
/>

**Changes**

- Upgraded Slack file upload implementation to use the new multiple
attachments API available in slack-ruby-client `v2.7.0`.
- Updated attachment handling to upload all files from a message in a
single API call.
- Enabled proper attachment grouping in Slack, ensuring related files
are presented together.
2025-09-24 11:31:06 +05:30
..
email_templates chore: Enable the new Rubocop rules (#7122) 2023-05-19 14:37:10 +05:30
integrations feat: Add support for grouped file uploads in Slack (#12454) 2025-09-24 11:31:06 +05:30
redis chore: Unset Redis config after spec (#8685) 2024-01-10 15:32:48 -08:00
webhooks feat: Mark the messages as failed if the API channel webhooks fail for any reason. (#8277) 2023-11-04 12:26:28 +05:30
base_markdown_renderer_spec.rb feat: support image height in markdown rendering of messages (#8177) 2023-11-02 13:51:54 -07:00
chatwoot_captcha_spec.rb chore: Update dependencies to the latest versions (#5033) 2022-07-15 09:51:59 +07:00
chatwoot_exception_tracker_spec.rb chore: Load only required APMs (#6497) 2023-03-01 14:31:51 +05:30
chatwoot_hub_spec.rb feat: Provision captain accounts automatically (#10168) 2024-09-26 19:21:29 -07:00
chatwoot_markdown_renderer_spec.rb feat: Adds backend support for rendering tables in articles (#9526) 2024-05-24 08:44:01 +05:30
config_loader_spec.rb Feature: Installation global config (#839) (#840) 2020-05-10 22:40:36 +05:30
custom_markdown_renderer_spec.rb feat: add support for bunny CDN videos (#11601) 2025-05-28 13:50:43 +05:30
dyte_spec.rb feat: Upgrade Dyte apis to v2 (#10706) 2025-02-19 14:47:48 -08:00
global_config_service_spec.rb chore: Update dependencies to the latest versions (#5033) 2022-07-15 09:51:59 +07:00
global_config_spec.rb Feature: Global Config helper (#844) (#845) 2020-05-11 19:00:33 +05:30
linear_spec.rb feat: Add user attribution to Linear integration with actor authorization (#11774) 2025-07-01 16:49:26 +05:30
online_status_tracker_spec.rb fix: Get online status from db when not present in cache [CW-3233] (#9477) 2024-05-15 21:23:19 -07:00
vapid_service_spec.rb feat: migrate facebook env vars to globalConfig (#3369) 2021-11-25 00:55:26 +05:30