diff --git a/packages/twenty-server/src/database/commands/database-command.module.ts b/packages/twenty-server/src/database/commands/database-command.module.ts
index daa3e29867c..2ca336d30ea 100644
--- a/packages/twenty-server/src/database/commands/database-command.module.ts
+++ b/packages/twenty-server/src/database/commands/database-command.module.ts
@@ -10,6 +10,7 @@ import { DataSeedDemoWorkspaceCommand } from 'src/database/commands/data-seed-de
import { WorkspaceDataSourceModule } from 'src/workspace/workspace-datasource/workspace-datasource.module';
import { WorkspaceSyncMetadataModule } from 'src/workspace/workspace-sync-metadata/workspace-sync-metadata.module';
import { ObjectMetadataModule } from 'src/metadata/object-metadata/object-metadata.module';
+import { TotoCommand } from 'src/workspace/toto.command';
@Module({
imports: [
@@ -25,6 +26,7 @@ import { ObjectMetadataModule } from 'src/metadata/object-metadata/object-metada
DataSeedWorkspaceCommand,
DataSeedDemoWorkspaceCommand,
ConfirmationQuestion,
+ TotoCommand,
],
})
export class DatabaseCommandModule {}
diff --git a/packages/twenty-server/src/emails/clean-inactive-workspace.email.tsx b/packages/twenty-server/src/emails/clean-inactive-workspace.email.tsx
new file mode 100644
index 00000000000..7837d38ec5d
--- /dev/null
+++ b/packages/twenty-server/src/emails/clean-inactive-workspace.email.tsx
@@ -0,0 +1,41 @@
+import * as React from 'react';
+
+import { HighlightedText } from 'src/emails/components/HighlightedText';
+import { MainText } from 'src/emails/components/MainText';
+import { Title } from 'src/emails/components/Title';
+import { BaseEmail } from 'src/emails/components/BaseEmail';
+import { CallToAction } from 'src/emails/components/CallToAction';
+
+export const CleanInactiveWorkspaceEmail = ({
+ title,
+ daysLeft,
+ userName,
+ workspaceDisplayName,
+}) => {
+ const daysLeftInfo = daysLeft > 1 ? `${daysLeft} days left` : `One day left`;
+
+ return (
+
+
+
+
+ Hello {userName},
+
+
+ It appears that there has been a period of inactivity on your{' '}
+ {workspaceDisplayName} workspace.
+
+
+ Please note that the account is due for deactivation soon, and all
+ associated data within this workspace will be deleted.
+
+
+ No need for concern, though! Simply log in to your workspace within the
+ next 10 days to retain access.
+
+
+
+ );
+};
+
+export default CleanInactiveWorkspaceEmail;
diff --git a/packages/twenty-server/src/workspace/toto.command.ts b/packages/twenty-server/src/workspace/toto.command.ts
new file mode 100644
index 00000000000..ab3f629b270
--- /dev/null
+++ b/packages/twenty-server/src/workspace/toto.command.ts
@@ -0,0 +1,34 @@
+import { Command, CommandRunner } from 'nest-commander';
+import { render } from '@react-email/render';
+
+import CleanInactiveWorkspaceEmail from 'src/emails/clean-inactive-workspace.email';
+import { EmailService } from 'src/integrations/email/email.service';
+
+@Command({
+ name: 'test-send-email',
+})
+export class TotoCommand extends CommandRunner {
+ constructor(private readonly emailService: EmailService) {
+ super();
+ }
+
+ async run(): Promise {
+ const emailData = {
+ title: 'Inactive Workspace 😴',
+ daysLeft: 10,
+ userName: 'Martin Müller',
+ workspaceDisplayName: 'Stripe',
+ };
+ const html = render(CleanInactiveWorkspaceEmail(emailData), {
+ pretty: true,
+ });
+ const text = render(CleanInactiveWorkspaceEmail(emailData), {
+ plainText: true,
+ });
+
+ console.log(html);
+
+ await this.emailService.send({ to: 'martmull@hotmail.fr', html, text });
+ //await this.emailService.send({ to: 'martmull@hotmail.fr', html, text });
+ }
+}