PostHog · Schema

ActionStepJSON

A/B TestingAnalyticsFeature FlagsOpen SourceProduct AnalyticsSession Recording

Properties

Name Type Description
event string Event name to match (e.g. '$pageview', '$autocapture', or a custom event name).
properties array Event or person property filters. Each item should have 'key' (string), 'value' (string, number, boolean, or array), optional 'operator' (exact, is_not, is_set, is_not_set, icontains, not_icontains, r
selector string CSS selector to match the target element (e.g. 'div > button.cta').
selector_regex string
tag_name string HTML tag name to match (e.g. "button", "a", "input").
text string Element text content to match.
text_matching object How to match the text value. Defaults to exact. * `contains` - contains * `regex` - regex * `exact` - exact
href string Link href attribute to match.
href_matching object How to match the href value. Defaults to exact. * `contains` - contains * `regex` - regex * `exact` - exact
url string Page URL to match.
url_matching object How to match the URL value. Defaults to contains. * `contains` - contains * `regex` - regex * `exact` - exact
View JSON Schema on GitHub

JSON Schema

posthog-actionstepjson-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/ActionStepJSON",
  "title": "ActionStepJSON",
  "type": "object",
  "properties": {
    "event": {
      "type": "string",
      "nullable": true,
      "description": "Event name to match (e.g. '$pageview', '$autocapture', or a custom event name)."
    },
    "properties": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ActionStepPropertyFilter"
      },
      "nullable": true,
      "description": "Event or person property filters. Each item should have 'key' (string), 'value' (string, number, boolean, or array), optional 'operator' (exact, is_not, is_set, is_not_set, icontains, not_icontains, regex, not_regex, gt, gte, lt, lte), and optional 'type' (event, person)."
    },
    "selector": {
      "type": "string",
      "nullable": true,
      "description": "CSS selector to match the target element (e.g. 'div > button.cta')."
    },
    "selector_regex": {
      "type": "string",
      "nullable": true,
      "readOnly": true
    },
    "tag_name": {
      "type": "string",
      "nullable": true,
      "description": "HTML tag name to match (e.g. \"button\", \"a\", \"input\")."
    },
    "text": {
      "type": "string",
      "nullable": true,
      "description": "Element text content to match."
    },
    "text_matching": {
      "nullable": true,
      "description": "How to match the text value. Defaults to exact.\n\n* `contains` - contains\n* `regex` - regex\n* `exact` - exact",
      "oneOf": [
        {
          "$ref": "#/components/schemas/ActionStepMatchingEnum"
        },
        {
          "$ref": "#/components/schemas/NullEnum"
        }
      ]
    },
    "href": {
      "type": "string",
      "nullable": true,
      "description": "Link href attribute to match."
    },
    "href_matching": {
      "nullable": true,
      "description": "How to match the href value. Defaults to exact.\n\n* `contains` - contains\n* `regex` - regex\n* `exact` - exact",
      "oneOf": [
        {
          "$ref": "#/components/schemas/ActionStepMatchingEnum"
        },
        {
          "$ref": "#/components/schemas/NullEnum"
        }
      ]
    },
    "url": {
      "type": "string",
      "nullable": true,
      "description": "Page URL to match."
    },
    "url_matching": {
      "nullable": true,
      "description": "How to match the URL value. Defaults to contains.\n\n* `contains` - contains\n* `regex` - regex\n* `exact` - exact",
      "oneOf": [
        {
          "$ref": "#/components/schemas/ActionStepMatchingEnum"
        },
        {
          "$ref": "#/components/schemas/NullEnum"
        }
      ]
    }
  },
  "required": [
    "selector_regex"
  ]
}