Skip to content

staging-variants-ready

Source of truth: packages/notifications/src/translations.ts

DomainChannelsRecipients
alertsin-appThe agent or owner who requested the staging
SourceContext
apps/worker/src/ai-room-staging.ts:2536notifySettledStagingGroup
interface StagingVariantsReadyData {
propertyAddress: string;
listingId: string;
/** Variants sitting at PENDING_REVIEW, i.e. what the review dialog will show. */
variantCount: number;
/** Jobs in the same settle group that ended FAILED — 0 when everything worked. */
failedCount: number;
reviewUrl: string;
}

The caller invokes triggerWorkflow('staging-variants-ready', recipientIds, data) where data is the StagingVariantsReadyData shape above. The server pre-translates the payload via getTranslatedPayload('staging-variants-ready', recipientLocale, data) from @repo/notifications before sending, producing { inAppBody, emailSubject, emailBody } for the dashboard templates to render.

Knock dashboard template body: {{ inAppBody }}.

LocalePreview source
es✨ ${p.variantCount} ${plural(p.variantCount, 'foto', 'fotos')} con staging IA ${plural(p.variantCount, 'lista', 'listas')} para revisar en ${p.propertyAddress}${ p.failedCount > 0 ? ` · ${p.failedCount} ${plural(p.failedCount, 'falló', 'fallaron')}` : '' }
en✨ ${p.variantCount} AI-staged ${plural(p.variantCount, 'photo', 'photos')} ready for review at ${p.propertyAddress}${ p.failedCount > 0 ? ` · ${p.failedCount} failed` : '' }