From b931660a98ea839349c2b15c617ad506edf51805 Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Wed, 16 Jul 2025 15:16:27 -0400 Subject: [PATCH 1/2] add newConversationsOnly prop --- components/intercom/package.json | 2 +- .../new-conversation-rating-added.mjs | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/components/intercom/package.json b/components/intercom/package.json index dda100fd76c39..83767c5d093a4 100644 --- a/components/intercom/package.json +++ b/components/intercom/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/intercom", - "version": "0.6.0", + "version": "0.6.1", "description": "Pipedream Intercom Components", "main": "intercom.app.mjs", "keywords": [ diff --git a/components/intercom/sources/new-conversation-rating-added/new-conversation-rating-added.mjs b/components/intercom/sources/new-conversation-rating-added/new-conversation-rating-added.mjs index 2fffd96a24f15..0813e1fb32b45 100644 --- a/components/intercom/sources/new-conversation-rating-added/new-conversation-rating-added.mjs +++ b/components/intercom/sources/new-conversation-rating-added/new-conversation-rating-added.mjs @@ -5,9 +5,18 @@ export default { key: "intercom-new-conversation-rating-added", name: "New Conversation Rating Added", description: "Emit new event each time a new rating is added to a conversation.", - version: "0.0.3", + version: "0.0.4", type: "source", dedupe: "unique", + props: { + ...common.props, + newConversationsOnly: { + type: "boolean", + label: "New Conversations Only", + description: "Set to `true` to only emit events for new conversations", + optional: true, + }, + }, methods: { ...common.methods, generateMeta(conversation) { @@ -34,8 +43,10 @@ export default { const createdAt = conversation.conversation_rating.created_at; if (createdAt > lastRatingCreatedAt) lastRatingCreatedAt = createdAt; - const meta = this.generateMeta(conversation); - this.$emit(conversation, meta); + if (!this.newConversationsOnly || conversation.created_at > lastRatingCreatedAt) { + const meta = this.generateMeta(conversation); + this.$emit(conversation, meta); + } } this._setLastUpdate(lastRatingCreatedAt); From db1a6fc3f506a37c6bb604c638bde60c9310bff7 Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Wed, 16 Jul 2025 15:28:26 -0400 Subject: [PATCH 2/2] update --- .../new-conversation-rating-added.mjs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/components/intercom/sources/new-conversation-rating-added/new-conversation-rating-added.mjs b/components/intercom/sources/new-conversation-rating-added/new-conversation-rating-added.mjs index 0813e1fb32b45..e9eb2c310c052 100644 --- a/components/intercom/sources/new-conversation-rating-added/new-conversation-rating-added.mjs +++ b/components/intercom/sources/new-conversation-rating-added/new-conversation-rating-added.mjs @@ -29,7 +29,8 @@ export default { }, }, async run() { - let lastRatingCreatedAt = this._getLastUpdate(); + const lastRatingCreatedAt = this._getLastUpdate(); + let maxLastRatingCreatedAt = lastRatingCreatedAt; const data = { query: { field: "conversation_rating.requested_at", @@ -41,14 +42,14 @@ export default { const results = await this.intercom.searchConversations(data); for (const conversation of results) { const createdAt = conversation.conversation_rating.created_at; - if (createdAt > lastRatingCreatedAt) - lastRatingCreatedAt = createdAt; + if (createdAt > maxLastRatingCreatedAt) + maxLastRatingCreatedAt = createdAt; if (!this.newConversationsOnly || conversation.created_at > lastRatingCreatedAt) { const meta = this.generateMeta(conversation); this.$emit(conversation, meta); } } - this._setLastUpdate(lastRatingCreatedAt); + this._setLastUpdate(maxLastRatingCreatedAt); }, };