Skip to content

notify node templates can't resolve formula/lookup fields — renders blank silently #3426

Description

@os-zhuang

Summary

A notify node's message templates (title / body) cannot traverse lookup or formula fields of the triggering record. {record.full_name} (a formula field) and {record.account.name} (a lookup hop) render as empty strings, silently producing notifications like "New lead to assign: " with the name missing.

Environment

  • @objectstack/* 16.1.0 (open edition), single-tenant, sqlite-wasm driver

Steps to reproduce

  1. On an object, define a formula field, e.g. crm_lead.full_name = F\record.first_name + " " + record.last_name``.
  2. In a record_change flow's notify node, use it in a template:
    title: 'New lead to assign: {record.full_name}',
    body: '{record.full_name} from {record.company}',
  3. Trigger the flow (insert a lead) and read the resulting sys_inbox_message.

Actual behaviour

  • The inbox message title is "New lead to assign: "{record.full_name} resolved to empty.
  • Same for a lookup hop like {record.crm_account.name}.
  • Non-computed scalar columns on the same record ({record.company}, {record.first_name}) interpolate correctly.

Expected behaviour

The record seeded into a record-change run should expose the same computed/related fields the record has when read via the data API — at minimum formula fields, ideally single-hop lookups. If traversal genuinely isn't supported, templates referencing an unresolvable path should be documented as unsupported and ideally warn at build time, rather than silently emitting blanks.

Impact

Medium. Notifications and alerts are a primary flow output; silently blank names/values make them look broken to end users and there's no design-time signal.

Workaround

Recompose from raw scalar columns in the template, e.g. {record.first_name} {record.last_name} instead of {record.full_name}. Works for formula fields built from local columns; doesn't help for lookup traversal.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions