lead-ingestion-failed
Source of truth:
packages/notifications/src/translations.ts
Quick facts
Section titled “Quick facts”| Domain | Channels | Recipients |
|---|---|---|
| system | in-app + email | All platform admins |
Trigger sites
Section titled “Trigger sites”| Source | Context |
|---|---|
apps/worker/src/leads.ts:581 | notifyAdminsOfDlqWrite |
Payload — LeadIngestionFailedData
Section titled “Payload — LeadIngestionFailedData”export interface LeadIngestionFailedData { /** A code, never a message — see {@link LEAD_INGESTION_ERROR_CODES}. */ errorCode: LeadIngestionErrorCode; jobId: string | null; failedIngestionId: string; adminUrl: string;}Channel steps
Section titled “Channel steps”Trigger step
Section titled “Trigger step”The caller invokes triggerWorkflow('lead-ingestion-failed', recipientIds, data) where data is the LeadIngestionFailedData shape above. The server pre-translates the payload via getTranslatedPayload('lead-ingestion-failed', 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 | 🚨 Falló la ingesta de un lead: ${LEAD_INGESTION_ERROR_LABELS.es[p.errorCode]} |
en | 🚨 Lead ingestion failed: ${LEAD_INGESTION_ERROR_LABELS.en[p.errorCode]} |
Subject: {{ emailSubject }}. Body: {{ emailBody }} (HTML mode, dashboard escaping OFF — every user-supplied string is escaped server-side via escapeHtml from @repo/notifications).
| Locale | Subject preview |
|---|---|
es | Falla en ingesta de leads |
en | Lead ingestion failure |
Email body is composed by emailBody.es in packages/notifications/src/translations.ts via the layout components in packages/notifications/src/email-layout.ts (wrapEmailLayout, ctaButton, calloutBox, quoteBlock, propertyCard, detailTable / detailRow). Body source is not inlined here because it spans tens of lines per locale — open the source file for the full template.
See also
Section titled “See also”- Notifications overview — the workflow grid, source-of-truth file map.
- Configuration — env vars, dashboard checklist, channel mapping.