staging-variants-ready
Source of truth:
packages/notifications/src/translations.ts
Quick facts
Section titled “Quick facts”| Domain | Channels | Recipients |
|---|---|---|
| alerts | in-app | The agent or owner who requested the staging |
Trigger sites
Section titled “Trigger sites”| Source | Context |
|---|---|
apps/worker/src/ai-room-staging.ts:2536 | notifySettledStagingGroup |
Payload — StagingVariantsReadyData
Section titled “Payload — StagingVariantsReadyData”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;}Channel steps
Section titled “Channel steps”Trigger step
Section titled “Trigger step”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.
In-app feed
Section titled “In-app feed”Knock dashboard template body: {{ inAppBody }}.
| Locale | Preview 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` : '' } |
See also
Section titled “See also”- Notifications overview — the workflow grid, source-of-truth file map.
- Configuration — env vars, dashboard checklist, channel mapping.