Demote an activity-property definition

Search Documentation

Search across all developer documentation

activity-properties

Demote an activity-property definition

DELETE /v1/activity-properties/{id}
Auth required api.activities.manage

Demotes a promoted property — it returns to inert, non-evaluable JSON. A demote is always disruptive: Segments that reference the property keep evaluating best-effort but carry a standing eval_warning (their predicate no longer type-checks). The response carries the impact (affected segments). Git-backed definitions are read-only here (409 conflict).

Path parameters

id string<uuid> required

Resource UUID. An unparseable id reads as a clean 404 not_found.

Responses

Errors follow the RFC 7807 problem format — see the error reference.

200 The demotion's mutation class (always disruptive) and impact application/json
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.

401 Missing, malformed, or unknown API key application/problem+json
403 Either the credential lacks the required scope (code: invalid_scope), or it is bound to the test environment and this operation is irreversible (code: test_environment_forbidden). Branch on code: the first is fixed by granting the scope, the second only by using a live credential. See the "Live and test credentials" section of the API description. application/problem+json
404 Resource not found application/problem+json
409 The mutation is rejected by a state rule rather than a bad request — e.g. editing a git-backed (read-only) definition. The code is conflict. application/problem+json
429 Per-org rate limit exceeded application/problem+json
500 Unexpected server-side failure. The code is internal_error. The request_id field can be quoted to SendOps support to investigate. application/problem+json