From 7921ee52161dbf578b6d665aa94161a89d64a72d Mon Sep 17 00:00:00 2001 From: martmull Date: Wed, 19 Mar 2025 10:49:21 +0100 Subject: [PATCH] Stop emitting update event if before===after (#11004) as title --- .../update-record.workflow-action.ts | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/record-crud/update-record.workflow-action.ts b/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/record-crud/update-record.workflow-action.ts index 4a41c749a..b69d9ade4 100644 --- a/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/record-crud/update-record.workflow-action.ts +++ b/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/record-crud/update-record.workflow-action.ts @@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; +import deepEqual from 'deep-equal'; import { WorkflowExecutor } from 'src/modules/workflow/workflow-executor/interfaces/workflow-executor.interface'; @@ -156,30 +157,31 @@ export class UpdateRecordWorkflowAction implements WorkflowExecutor { objectMetadataItemWithFieldsMaps, ); - await repository.update(workflowActionInput.objectRecordId, { - ...objectRecordFormatted, - }); - const updatedObjectRecord = { ...previousObjectRecord, ...objectRecordWithFilteredFields, }; - this.workspaceEventEmitter.emitDatabaseBatchEvent({ - objectMetadataNameSingular: workflowActionInput.objectName, - action: DatabaseEventAction.UPDATED, - events: [ - { - recordId: previousObjectRecord.id, - objectMetadata, - properties: { - before: previousObjectRecord, - after: updatedObjectRecord, + if (!deepEqual(updatedObjectRecord, previousObjectRecord)) { + await repository.update(workflowActionInput.objectRecordId, { + ...objectRecordFormatted, + }); + this.workspaceEventEmitter.emitDatabaseBatchEvent({ + objectMetadataNameSingular: workflowActionInput.objectName, + action: DatabaseEventAction.UPDATED, + events: [ + { + recordId: previousObjectRecord.id, + objectMetadata, + properties: { + before: previousObjectRecord, + after: updatedObjectRecord, + }, }, - }, - ], - workspaceId, - }); + ], + workspaceId, + }); + } return { result: updatedObjectRecord,