Skip to content

Design: post-install customization of packaged flows — clone-to-customize + org-level takeover (supersedes the org-tunable-parameters framing) #11665

Description

@yinlianghui

The gap

Packaged flows are immutable at runtime by design, and the design is sound as far as it goes: flow is supportsOverlay: false, allowOrgOverride: false (rolled back after #6190's phantom overlay), and the ADR language calls per-org variants "a deployment, not an overlay" because flows carry execution side-effects.

But closing the whole flow also closes the plain business parameters inside it. Concrete case (HotCRM reference app): the approval threshold LARGE_DEAL_AMOUNT = 100_000 consumed by opportunity_approval. An org admin who wants the bar at $200K has no supported path:

  • can't overlay the packaged flow (403 not_overridable — correct, per the above);
  • can't even deactivate it (status lives in the immutable artifact);
  • authoring a runtime replacement double-fires alongside the packaged flow it can't switch off;
  • the only real path is edit source → CI → redeploy, which is out of reach for a non-developer admin and disproportionate for a numeric policy knob.

Ask

A supported mechanism for org-level tunables consumed by packaged automation. Candidate shapes (product team's call):

  1. Package-declared config/settings values referenced from flow conditions (settings.large_deal_amount), with the parameter — not the flow — being org-overridable;
  2. Partial overlay limited to declared parameter slots (the flow author marks which literals are tunable; everything structural stays locked);
  3. A supported deactivate-and-replace path for packaged flows, so a runtime-authored variant can take over without double-firing.

Option 1 seems most aligned with the existing two-tier model (it adds no flow-overlay read path, so the #6190 class of phantom stays impossible).

Provenance

Surfaced by the product owner while reviewing promo video #4 (video-studio): the expectation "a human can open the designer and adjust the amount condition" is currently unmeetable for shipped flows. Filing as a product-design discussion — unassigned, not claimed.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions