Enrichment output

How ContextWorks turns what your enrichment source returns into payload content. The rules are the same whichever source type produced it — Apex, an invocable action, or a flow.

What renders

An SObject or list renders as a records table. A multi-line string renders as a block; anything else as a value.

A single output takes the element’s label. Multiple outputs take their labels from their variable names: total_pipeline becomes “Total Pipeline”.

Return markdown and it stays markdown. An output whose value spans lines is prose, so it renders as its own block under the label instead of a labeled bullet. In a bullet, its second line would break the list open and its headings would not be headings.

Write the markdown you want the agent to read. ContextWorks adds the label, so the output itself needs no heading.

The engine re-queries records outputs. It keeps only the IDs your source returns, discards the field values, re-queries the records as the calling user, and renders the target object’s curated list columns. → Security So:

  • Select Id, not display fields.
  • Return per-row computed values as separate value outputs.
  • Rows must be real, persisted records; the engine drops anything without an ID.
  • Rows keep your source’s order and cap at 25 with a truncation flag.
  • To change the columns, edit the target object’s entity.

Values render exactly as your source returns them. The source author owns what they expose.

What’s next

  • Enrichments — the three source types and how to wire each one
  • Levels — why enrichments default to detailed