Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .changeset/fix-meeting-attendee-emails.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
---

fix: Get meeting attendee emails from users table

The working_group_memberships.user_email field is often NULL because it's not
always populated when members are added. Updated the query to join with the
users table to get the actual email, falling back to the cached value if needed.

This fixes calendar invites not being sent because attendeeCount was 0.
18 changes: 11 additions & 7 deletions server/src/db/meetings-db.ts
Original file line number Diff line number Diff line change
Expand Up @@ -560,12 +560,14 @@ export class MeetingsDatabase {

if (topicSlugs && topicSlugs.length > 0) {
// Invite only members subscribed to these topics
// Join with users table to get email (working_group_memberships.user_email is often NULL)
memberQuery = `
SELECT
wgm.workos_user_id,
wgm.user_email as email,
wgm.user_name as name
COALESCE(u.email, wgm.user_email) as email,
COALESCE(u.first_name || ' ' || u.last_name, wgm.user_name) as name
FROM working_group_memberships wgm
LEFT JOIN users u ON u.workos_user_id = wgm.workos_user_id
LEFT JOIN working_group_topic_subscriptions wgts
ON wgts.working_group_id = wgm.working_group_id
AND wgts.workos_user_id = wgm.workos_user_id
Expand All @@ -576,13 +578,15 @@ export class MeetingsDatabase {
memberParams = [workingGroupId, topicSlugs];
} else {
// Invite all members
// Join with users table to get email (working_group_memberships.user_email is often NULL)
memberQuery = `
SELECT
workos_user_id,
user_email as email,
user_name as name
FROM working_group_memberships
WHERE working_group_id = $1 AND status = 'active'
wgm.workos_user_id,
COALESCE(u.email, wgm.user_email) as email,
COALESCE(u.first_name || ' ' || u.last_name, wgm.user_name) as name
FROM working_group_memberships wgm
LEFT JOIN users u ON u.workos_user_id = wgm.workos_user_id
WHERE wgm.working_group_id = $1 AND wgm.status = 'active'
`;
memberParams = [workingGroupId];
}
Expand Down