RefineFilter

Update Refine Filter

Changed on

Update an existing RefineFilter. All fields are optional — only provided fields are updated. When criteria is supplied it replaces the entire criteria set (must contain at least one entry). 422 covers shape errors and safe-condition policy violations.

patch/refine_filters/{id}

Request

Path parameters

idstring required

Public id of the RefineFilter to update.

Request body

Example request

{
  "refine_filter": {
    "conjunction": "and",
    "criteria": [
      {
        "attribute": "tags.id",
        "clause": "in",
        "value": [
          "tag-pub-id-1"
        ]
      },
      {
        "attribute": "created_at",
        "clause": "gte",
        "value": "2026-01-01"
      }
    ]
  }
}

Response

OK

idinteger

Refine Filter ID

public_idstring

Obfuscated Refine Filter ID

workspace_idinteger

ID of the workspace this filter belongs to

namestring nullable

Optional human-readable name for the filter. Must be unique within the workspace when set.

filter_classstring nullable

The filter class recorded on the saved filter. This API authors ContactsFilter and applies ContactsFilter and OrdersFilter, but the list returns every saved filter in the workspace, and other ClickFunnels surfaces save their own classes here — ContactsSegmentsFilter, ProductsFilter, FunnelsFilter and ContactUpsellsFilter all appear in real workspaces. Treat this as an open set: match on the class you want rather than assuming the rest are absent. null for a legacy row whose stored state can no longer be decoded (such rows also return empty criteria; they can still be deleted).

conjunction'and' | 'or'

How the criteria are joined — and (all must match) or or (any must match).

mixed_conjunctionsboolean

True when the saved filter joins its conditions with both and and or, as filters grouped in the UI can. conjunction and criteria then summarize it as one conjunction over all criteria rather than restating it; request results for its exact matches, and do not rebuild it from criteria.

created_atstring date-time

Created at

updated_atstring date-time

Updated at

Example response

{
  "id": 42,
  "public_id": "AbCdEf",
  "workspace_id": 5,
  "name": "VIP newsletter audience",
  "filter_class": "ContactsFilter",
  "conjunction": "and",
  "criteria": [
    {
      "attribute": "tags.id",
      "clause": "in",
      "value": [
        "tag-pub-id-1"
      ]
    },
    {
      "attribute": "created_at",
      "clause": "gte",
      "value": "2026-01-01"
    }
  ],
  "mixed_conjunctions": false,
  "created_at": "2026-04-01T12:00:00.000Z",
  "updated_at": "2026-04-01T12:00:00.000Z"
}

Changes

    • breaking

      the response property became nullable for the status

    • breaking

      added subschema #1 subschema #4 to the // response property oneOf list for the response status

    • info

      added the new optional request property

    • info

      added subschema #3 to the /// request property oneOf list

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the optional property // to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status