event: Zoom CSV import — force registrant email as external_id; ignore placeholder Unique identifier

This commit is contained in:
Scott Idem
2026-04-07 11:35:28 -04:00
parent 2b608d7a1a
commit 7ad158883a

View File

@@ -574,17 +574,23 @@ async def event_id_badge_import_zoom_csv(
if loop_count <= begin_at: continue if loop_count <= begin_at: continue
if loop_count > end_at: break if loop_count > end_at: break
unique_id = str(record.get('Unique identifier', '')).strip() # Force use of Registrant email as the external_id for Zoom CSV imports.
# Many Zoom exports (for this group) have a useless "Unique identifier"
# column that contains "N/A" for every row — rely on email instead.
email = str(record.get('Registrant email', '')).strip() email = str(record.get('Registrant email', '')).strip()
if not email:
if unique_id: log.warning('Row missing registrant email — skipping.')
external_id = unique_id
elif email:
log.info('Using email as external_id fallback for Zoom CSV row')
external_id = email
else:
log.warning('Row missing Unique identifier and email — skipping.')
continue continue
external_id = email
# Sanitize the Unique identifier value and only use it as the
# external_registration_id if it appears meaningful. Treat common
# placeholders like 'N/A'/'NA'/'UNKNOWN' as missing.
unique_id_raw = str(record.get('Unique identifier', '')).strip()
if unique_id_raw and unique_id_raw.upper() not in ('N/A', 'NA', 'UNKNOWN'):
external_registration_id = unique_id_raw
else:
external_registration_id = None
ticket_name = str(record.get('Ticket name', '')).strip() ticket_name = str(record.get('Ticket name', '')).strip()
given_name = str(record.get('First name', '')).strip() given_name = str(record.get('First name', '')).strip()
@@ -625,7 +631,7 @@ async def event_id_badge_import_zoom_csv(
'event_id': event_id, 'event_id': event_id,
'enable': True, 'enable': True,
'external_id': external_id, 'external_id': external_id,
'external_registration_id': unique_id, 'external_registration_id': external_registration_id,
'event_person_profile': { 'event_person_profile': {
'enable': True, 'enable': True,
'given_name': given_name, 'given_name': given_name,
@@ -649,7 +655,7 @@ async def event_id_badge_import_zoom_csv(
'event_badge': { 'event_badge': {
'enable': True, 'enable': True,
'external_id': external_id, 'external_id': external_id,
'external_registration_id': unique_id, 'external_registration_id': external_registration_id,
'given_name': given_name, 'given_name': given_name,
'family_name': family_name, 'family_name': family_name,
'full_name': display_name or f'{given_name} {family_name}'.strip(), 'full_name': display_name or f'{given_name} {family_name}'.strip(),