feat(messaging): message campaign delivery stats + views (#22452)

<!-- This is an auto-generated description by cubic. -->
<a
href="https://cubic.dev/pr/twentyhq/twenty/pull/22452?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="Review in cubic"
src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a>
<!-- End of auto-generated description by cubic. -->
This commit is contained in:
neo773
2026-07-07 08:17:52 +05:30
committed by GitHub
parent 8a4bcd1445
commit 2e1117d442
32 changed files with 2361 additions and 759 deletions
@@ -1,5 +1,6 @@
export enum CacheStorageNamespace {
ModuleMessaging = 'module:messaging',
ModuleEmailing = 'module:emailing',
ModuleCalendar = 'module:calendar',
ModuleWorkflow = 'module:workflow',
EngineWorkspace = 'engine:workspace',
@@ -17,6 +17,11 @@ export const CAMPAIGN_STATUS = {
export const MATERIALIZE_CAMPAIGN_JOB = 'MaterializeCampaignJob';
export const SEND_CAMPAIGN_EMAIL_JOB = 'SendCampaignEmailJob';
export const REFRESH_CAMPAIGN_STATS_JOB = 'RefreshCampaignStatsJob';
export const CAMPAIGN_STATS_REFRESH_DEBOUNCE_MS = 10_000;
export const CAMPAIGN_STATS_REFRESH_DELAY_MS =
CAMPAIGN_STATS_REFRESH_DEBOUNCE_MS + 2_000;
export const MAX_CAMPAIGN_RECIPIENTS = 10000;
@@ -0,0 +1,4 @@
export type RefreshCampaignStatsJobData = {
workspaceId: string;
campaignId: string;
};
@@ -22,6 +22,7 @@ import { EmailSenderJob } from 'src/engine/core-modules/email/email-sender.job';
import { EmailModule } from 'src/engine/core-modules/email/email.module';
import { EmailingModule } from 'src/modules/emailing/emailing.module';
import { MaterializeCampaignJob } from 'src/modules/emailing/jobs/materialize-campaign.job';
import { RefreshCampaignStatsJob } from 'src/modules/emailing/jobs/refresh-campaign-stats.job';
import { SendCampaignEmailJob } from 'src/modules/emailing/jobs/send-campaign-email.job';
import { EnterpriseModule } from 'src/engine/core-modules/enterprise/enterprise.module';
import { EventLogIngestionModule } from 'src/engine/core-modules/event-logs/ingest/event-log-ingestion.module';
@@ -104,6 +105,7 @@ import { WorkflowModule } from 'src/modules/workflow/workflow.module';
EmailSenderJob,
SendCampaignEmailJob,
MaterializeCampaignJob,
RefreshCampaignStatsJob,
UpdateSubscriptionQuantityJob,
HandleWorkspaceMemberDeletedJob,
CleanWorkspaceDeletionWarningUserVarsJob,