Added events for subscribe and unsubscribe

This commit is contained in:
Dries Augustyns
2025-12-02 09:56:27 +01:00
parent 2e6b485532
commit 2ef463ce5e
3 changed files with 92 additions and 8 deletions
+18 -1
View File
@@ -459,17 +459,34 @@ export class EmailService {
case 'bounced':
updateData.status = EmailStatus.BOUNCED;
updateData.bouncedAt = now;
// Unsubscribe contact on bounce and track event
if (email.contactId) {
await prisma.contact.update({
where: {id: email.contactId},
data: {subscribed: false},
});
// Track unsubscription event
const {EventService} = await import('./EventService.js');
await EventService.trackEvent(email.projectId, 'contact.unsubscribed', email.contactId, email.id, {
reason: 'bounce',
});
}
break;
case 'complained':
updateData.status = EmailStatus.COMPLAINED;
updateData.complainedAt = now;
// Unsubscribe contact
// Unsubscribe contact and track event
if (email.contactId) {
await prisma.contact.update({
where: {id: email.contactId},
data: {subscribed: false},
});
// Track unsubscription event
const {EventService} = await import('./EventService.js');
await EventService.trackEvent(email.projectId, 'contact.unsubscribed', email.contactId, email.id, {
reason: 'complaint',
});
}
break;
}