Preview an activity-property edit's impact
Dry-runs a proposed edit and returns its mutation_class and projected impact
— the segments that reference the property and, for a disruptive edit, each one's
typecheck outcome — without writing anything. The body is the proposed
definition (same shape as the PUT edit body). Use it before committing a
disruptive change.
Path parameters
id string required The property's UUID or the dotted activity.property form (for example order.total) — the same spelling a SendQL predicate uses, minus its leading activity. prefix. Split on the LAST dot, since an activity name may contain one and a property name may not. Unknown handles read as 404 not_found.
Request body
Content type: application/json
type string enum required One of: string, number, bool, datetime, enum
enum_values array<string> optional Required when type is enum; must be empty/omitted otherwise.
description string optional Responses
Errors follow the RFC 7807 problem format — see the error reference.
mutation_class string enum required How an edit affects dependent Segment predicates: free (no effect),
safe_but_stale (an enum value was removed; predicates stay valid), or
disruptive (a cast-class change or a demote that raises a standing per-segment
warning).
One of: free, safe_but_stale, disruptive
impact object required The projected (preview) or committed (apply) impact of a mutation on dependent Segments and Workflows.
Fields of impact:
affected_segments array<object> required Each entry in affected_segments:
id string<uuid> required name string required typecheck_ok boolean required Whether the segment's predicate still type-checks under the change. Always true for a free / safe-but-stale edit; may be false for a disruptive one.
warning string optional The standing "evaluation disrupted" warning the edit would raise (or did); absent when none.
affected_workflows array<object> required Each entry in affected_workflows:
id string<uuid> required name string required key string required status string required The workflow's lifecycle status (draft, active, paused, archived, invalid).
projected_dropout integer<int64> required Always 0 for a promoted property — it is cast-at-read over the activity firehose and does not gate contact membership the way a contact attribute does. Present for shape parity with the attribute impact.
code is conflict.
application/problem+json validation_failed Problem. When the refusal is about a
reference — a segment key, template slug, topic or attribute name the
organization does not have — it additionally carries validation_code,
field, line/column, missing, candidates and next_step, so a
client can correct the call without a second round of guessing. See
ValidationProblem.
application/problem+json code is internal_error. The
request_id field can be quoted to SendOps support to investigate.
application/problem+json