Problem
Messages from Slack Connect (cross-org) users don't include the user_profile field in the conversations.history API response. This means their display name can't be resolved from the export data alone — they show up as raw user IDs (e.g., U03PCS5FE) in the viewer.
Only users from the host workspace get user_profile embedded automatically.
Proposed Solution
Add a user lookup step to the exporter that calls the users.info API for any user ID that doesn't have a user_profile attached. Cache the results to avoid redundant calls, and embed the resolved profile into the message data before export.
Requirements
- Additional OAuth scope:
users:read
- The bot token must have visibility into the cross-org users (Slack Connect permissions)
Alternatives
- Allow a manual user ID-to-name mapping file (JSON) that the viewer can load alongside the export
- Resolve names at viewer load time rather than export time (would require API access from the browser)
Context
Discovered while testing the HTML viewer (feature/html-viewer branch). Affects any export from a channel with Slack Connect guests.
Problem
Messages from Slack Connect (cross-org) users don't include the
user_profilefield in theconversations.historyAPI response. This means their display name can't be resolved from the export data alone — they show up as raw user IDs (e.g.,U03PCS5FE) in the viewer.Only users from the host workspace get
user_profileembedded automatically.Proposed Solution
Add a user lookup step to the exporter that calls the
users.infoAPI for any user ID that doesn't have auser_profileattached. Cache the results to avoid redundant calls, and embed the resolved profile into the message data before export.Requirements
users:readAlternatives
Context
Discovered while testing the HTML viewer (
feature/html-viewerbranch). Affects any export from a channel with Slack Connect guests.