Skip to content

Note-email recipient first-name + GL-code / original-description live plumbing

Why (split from T-049 amendments, 2026-06-16)

The note-notification + WOPC payment email redesign (T-049 amendments, nightly 8f732382 β†’ main) shipped with two fields wired as BEST-EFFORT placeholders rather than live data:

  • Recipient first name β€” the greeting falls back to a generic/full name instead of the recipient's actual first name.
  • GL code + original transaction description β€” surfaced from whatever was conveniently available at send time, not plumbed from the authoritative transaction record.

Scope

Plumb both from the source of truth at send time: - recipient first name from the resolved Individual / payee record (not a string split). - GL code + original description from the transaction (use buildInvoiceRecord / transaction accessors per docs/api-catalog.md) so the email mirrors the ledger exactly.

Log

  • 2026-06-16 created. Reserved earlier in the T-049 amendments entry; formalized as its own UID.

Decision log

2026-07-09 β€” re-scoped onto the T-160/T-161 name infrastructure + routed to Records (Infrastructure)

  • βœ… Read AGENTS.md. The first-name half of this task predates T-160/T-161: the app now has a per-recipient greeting resolver + stored name preferences (built by Records (Infrastructure)). The remnant here is (a) wiring note emails through that resolver instead of ad-hoc first names, and (b) the GL-code / original-description live plumbing. Owner routing (2026-07-09): β†’ Records (Infrastructure) β€” it rides infrastructure they built.
  • Source: EOP Local Assistance (fork) Β· session edb0abc7-6373-449b-8e31-379fd38d391b