[web] prefer mongo email when sending data to customerio (#31378)

GitOrigin-RevId: 33e137239d505e7feb6f6e1b2a00d7b5e60d0880
This commit is contained in:
Kristina
2026-02-09 15:40:09 +01:00
committed by Copybot
parent a184a0c32f
commit f8d74187e1

View File

@@ -48,6 +48,7 @@ import {
} from '../../modules/subscriptions/app/src/StripeClient.mjs'
import RecurlyWrapper from '../../app/src/Features/Subscription/RecurlyWrapper.mjs'
import { Subscription } from '../../app/src/models/Subscription.mjs'
import { User } from '../../app/src/models/User.mjs'
import AnalyticsManager from '../../app/src/Features/Analytics/AnalyticsManager.mjs'
import AccountMappingHelper from '../../app/src/Features/Analytics/AccountMappingHelper.mjs'
import PlansLocator from '../../app/src/Features/Subscription/PlansLocator.mjs'
@@ -276,7 +277,7 @@ async function preloadProductMetadata(region) {
async function processMigration(input, commit) {
const {
recurly_account_code: accountCode,
recurly_account_code: overleafUserId,
target_stripe_account: targetStripeAccount,
stripe_customer_id: stripeCustomerId,
} = input
@@ -287,7 +288,7 @@ async function processMigration(input, commit) {
// 1. Fetch Mongo subscription
const mongoSubscription = await Subscription.findOne({
admin_id: accountCode,
admin_id: overleafUserId,
}).exec()
if (!mongoSubscription) {
throw new ReportError(
@@ -380,14 +381,16 @@ async function processMigration(input, commit) {
}
// 7. If commit mode, perform migration
const adminUserId = mongoSubscription.admin_id.toString()
const analyticsId = await UserAnalyticsIdCache.get(adminUserId)
const analyticsId = await UserAnalyticsIdCache.get(overleafUserId)
const mongoUser = await User.findOne({
_id: overleafUserId,
}).exec()
const result = {
status: 'not-migrated',
note: 'Not yet migrated',
previousRecurlyStatus,
previousRecurlySubscriptionId,
email: stripeCustomer.email,
email: mongoUser?.email || stripeCustomer.email,
analyticsId,
}
if (commit) {
@@ -398,7 +401,8 @@ async function processMigration(input, commit) {
recurlySubscription,
stripeClient,
stripeCustomer,
analyticsId
analyticsId,
mongoUser?.email
)
} catch (err) {
if (err instanceof ReportError && err.status?.startsWith('migrated-')) {
@@ -511,7 +515,8 @@ async function performCutover(
recurlySubscription,
stripeClient,
stripeCustomer,
analyticsId
analyticsId,
mongoUserEmail
) {
const adminUserId = mongoSubscription.admin_id.toString()
@@ -621,7 +626,7 @@ async function performCutover(
// TODO: request Recurly account and billingInfo to verify if tax info in Stripe is up to date
CustomerIoHandler.updateUserAttributes(analyticsId, {
email: stripeCustomer.email,
email: mongoUserEmail || stripeCustomer.email,
stripe_migration: {
migration_date: migrationDate,
needs_to_update_tax_id: needsToUpdateTaxInfo,