From 63a3f93a78618643c102baf1b8bce5797e23636e Mon Sep 17 00:00:00 2001 From: Lakshay Manchanda Date: Tue, 17 Feb 2026 07:05:44 -0800 Subject: [PATCH] Emitting the correct event based on whether the record is being soft deleted or restored. (#17953) fix for #17262 This change ensures that when the record is restored, instead of emitting a database event of "DELETED", a database event of "RESTORED" will be emitted, as it is happening in the inner working of TypeORM. This ensures that the DELETED event are not fired on RESTORED, for example, triggering a workflow. The screen recording shows that restoring the soft deleted records does not trigger the workflow set to to run on "Record Deleted" https://github.com/user-attachments/assets/90e0184f-2e08-466c-a40d-1592b60e64ff --- .../repository/workspace-soft-delete-query-builder.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/twenty-server/src/engine/twenty-orm/repository/workspace-soft-delete-query-builder.ts b/packages/twenty-server/src/engine/twenty-orm/repository/workspace-soft-delete-query-builder.ts index 9cda9f8b1d..e25d473b50 100644 --- a/packages/twenty-server/src/engine/twenty-orm/repository/workspace-soft-delete-query-builder.ts +++ b/packages/twenty-server/src/engine/twenty-orm/repository/workspace-soft-delete-query-builder.ts @@ -131,7 +131,10 @@ export class WorkspaceSoftDeleteQueryBuilder< this.internalContext.eventEmitterService.emitDatabaseBatchEvent( formatTwentyOrmEventToDatabaseBatchEvent({ - action: DatabaseEventAction.DELETED, + action: + this.expressionMap.queryType === 'restore' + ? DatabaseEventAction.RESTORED + : DatabaseEventAction.DELETED, objectMetadataItem: objectMetadata, flatFieldMetadataMaps: this.internalContext.flatFieldMetadataMaps, workspaceId: this.internalContext.workspaceId,