Skip to content

Commit 07c8cfb

Browse files
authored
fix: prevent crisp resolved events (#689)
1 parent f5b1d16 commit 07c8cfb

File tree

1 file changed

+11
-12
lines changed

1 file changed

+11
-12
lines changed

src/crisp/crisp.service.ts

+11-12
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
import { Injectable, Logger } from '@nestjs/common';
1+
import { Injectable } from '@nestjs/common';
22
import Crisp from 'crisp-api';
3-
import { sendMailchimpUserEvent } from 'src/api/mailchimp/mailchimp-api';
4-
import { MAILCHIMP_CUSTOM_EVENTS } from 'src/api/mailchimp/mailchimp-api.interfaces';
53
import { EventLoggerService } from 'src/event-logger/event-logger.service';
64
import { crispPluginId, crispPluginKey, crispWebsiteId } from 'src/utils/constants';
75
import {
@@ -15,7 +13,6 @@ import {
1513
import { CrispEventDto } from './dtos/crisp.dto';
1614

1715
const CrispClient = new Crisp();
18-
const logger = new Logger('CrispLogger');
1916

2017
@Injectable()
2118
export class CrispService {
@@ -25,6 +22,16 @@ export class CrispService {
2522

2623
async handleCrispEvent(message: CrispEventDto, eventName: EVENT_NAME) {
2724
try {
25+
if (
26+
eventName === EVENT_NAME.CHAT_MESSAGE_RECEIVED &&
27+
typeof message.content !== 'string' &&
28+
'namespace' in message.content
29+
) {
30+
// When a conversation is resolved on crisp, the message:received event is fired with
31+
// message.content.namespace = "state:resolved"
32+
// Prevent our events being logged for conversation resolved events
33+
return;
34+
}
2835
const sessionMetaData = await CrispClient.website.getConversationMetas(
2936
message.website_id,
3037
message.session_id,
@@ -34,14 +41,6 @@ export class CrispService {
3441
event: eventName,
3542
date: new Date(),
3643
});
37-
38-
if (eventName === EVENT_NAME.CHAT_MESSAGE_RECEIVED) {
39-
sendMailchimpUserEvent(
40-
sessionMetaData.email,
41-
MAILCHIMP_CUSTOM_EVENTS.CRISP_MESSAGE_RECEIVED,
42-
);
43-
logger.log('Crisp service: CRISP_MESSAGE_RECEIVED event sent to mailchimp');
44-
}
4544
} catch (error) {
4645
throw new Error(`Failed to handle crisp event for ${eventName}: ${error}`);
4746
}

0 commit comments

Comments
 (0)