Skip to content

Commit 0fce992

Browse files
rofeclaude
andcommitted
Slack card: restore users.lookupByEmail for Adobe @mention links
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent d8a4b9e commit 0fce992

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

src/slack.js

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,18 @@ function teamDeepLink(request, env) {
3737
return `https://teams.microsoft.com/l/team/${encodeURIComponent(channelId)}/conversations?groupId=${encodeURIComponent(groupId)}&tenantId=${encodeURIComponent(tenantId)}`;
3838
}
3939

40-
function cardBodyBlocks(request, env, { displayName } = {}) {
40+
function cardBodyBlocks(request, env, { displayName, slackUserId } = {}) {
4141
const requester = request.requester_email ?? request.requester_name ?? 'Someone';
4242
const teamLink = teamDeepLink(request, env);
4343
const teamDisplay = teamLink
4444
? `<${teamLink}|${request.team_name}>`
4545
: request.team_name;
4646
const intro = `${requester} requested to invite one person to Adobe Enterprise Support`;
47-
const nameSuffix = displayName ? ` (${displayName})` : '';
47+
const nameSuffix = displayName
48+
? ` (${displayName})`
49+
: slackUserId
50+
? ` (<@${slackUserId}>)`
51+
: '';
4852
const emailDisplay = `${request.member_email}${nameSuffix}`;
4953
const fields = `> *Email*: ${emailDisplay}\n> *Team*: ${teamDisplay}`;
5054
return [
@@ -75,16 +79,20 @@ export async function postApprovalCard(env, request) {
7579
throw new Error('SLACK_ADMIN_CHANNEL_ID is not set. Set it in wrangler.toml [vars] or in the Cloudflare dashboard so it is not removed on deploy.');
7680
}
7781
let displayName;
82+
let slackUserId;
7883
if (request.member_email.toLowerCase().endsWith('@adobe.com')) {
7984
try {
8085
const user = await resolveUser(env, request.member_email);
8186
displayName = user?.displayName;
8287
} catch { /* not in tenant yet */ }
8388
if (!displayName) {
84-
displayName = '<@' + request.member_email.split('@')[0] + '>';
89+
try {
90+
const res = await slack(env, 'users.lookupByEmail', { email: request.member_email });
91+
slackUserId = res.user?.id;
92+
} catch { /* user not on Slack */ }
8593
}
8694
}
87-
const opts = { displayName };
95+
const opts = { displayName, slackUserId };
8896
const requester = request.requester_email ?? request.requester_name ?? 'Someone';
8997
const result = await slack(env, 'chat.postMessage', {
9098
channel,

0 commit comments

Comments
 (0)