changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "additionalProperties": false,
+ "properties": {
+ "blocking_rules": {
+ "description": "Blocking rules saved on the site, one per target: `target`, `mode`, and `groups`, the shape save_blocking_rule takes.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "groups": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "conditions": {
+ "items": {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "conditions"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "mode": {
+ "enum": [
+ "block",
+ "do_not_block"
+ ],
+ "type": "string"
+ },
+ "target": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "target",
+ "mode"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "consent_mode": {
+ "description": "enabled: PixelFlow honors visitor consent before sending.",
+ "enum": [
+ "enabled",
+ "disabled"
+ ],
+ "type": "string"
+ },
+ "currency": {
+ "description": "ISO 4217 currency for event values. A site created without one holds USD until the user sets it; while setup is open, next_action still asks.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "docs": {
+ "description": "Help articles for this result: `title` (string) and `url` (string, uri).",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "url": {
+ "format": "uri",
+ "type": "string"
+ }
+ },
+ "required": [
+ "title",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "domain": {
+ "description": "Website domain.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "duplicate_tracking": {
+ "description": "Native ad platform pixel loaders seen on the last page check: `ad_platform` (string) and `evidence` (string, the script URL seen).",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "ad_platform": {
+ "type": "string"
+ },
+ "evidence": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "ad_platform",
+ "evidence"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "events_window_days": {
+ "description": "Days back script_or_plugin.is_seen and last_events look.",
+ "type": "integer"
+ },
+ "integrations": {
+ "description": "Connected integrations.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "event": {
+ "description": "Event the integration sends, such as Purchase.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "label": {
+ "description": "Integration label.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "description": "Integration name, such as stripe.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "label",
+ "event"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "is_consent_banner_configured": {
+ "description": "Whether the Get Started item \"configure a consent banner\" is done.",
+ "type": "boolean"
+ },
+ "is_meta_domain_approved": {
+ "description": "Whether the Get Started item \"verify the domain in Facebook Business Manager\" is done.",
+ "type": "boolean"
+ },
+ "is_old_pixel_removed": {
+ "description": "Whether the Get Started item \"remove old pixel code\" is done.",
+ "type": "boolean"
+ },
+ "is_plugin_connected": {
+ "description": "Whether the WordPress plugin has signed in to this site. type plugin alone does not mean this. A site that already sends events skips the plugin step without it.",
+ "type": "boolean"
+ },
+ "is_utm_snippet_added": {
+ "description": "Whether the Get Started item \"add UTM parameters to ads\" is done.",
+ "type": "boolean"
+ },
+ "is_webflow_ecommerce": {
+ "description": "Whether the Webflow site uses Webflow eCommerce.",
+ "type": "boolean"
+ },
+ "is_woocommerce": {
+ "description": "Whether the WordPress site uses WooCommerce.",
+ "type": "boolean"
+ },
+ "last_events": {
+ "description": "The newest of each event received in the last events_window_days, such as one PageView and one Purchase.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "at": {
+ "description": "When it arrived.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "event": {
+ "description": "Event received, such as PageView.",
+ "type": "string"
+ },
+ "is_sent": {
+ "description": "Whether it was delivered to the ad platforms.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "event",
+ "at",
+ "is_sent"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "next_action": {
+ "additionalProperties": false,
+ "description": "The one open setup step. null once setup and every Get Started item that applies to this site are complete.",
+ "properties": {
+ "action": {
+ "description": "Step to do now.",
+ "enum": [
+ "ask_platform",
+ "wordpress_connect",
+ "ask_domain",
+ "ask_currency",
+ "connect_ad_platform",
+ "install",
+ "verify",
+ "triggers",
+ "get_started"
+ ],
+ "type": "string"
+ },
+ "ad_platform": {
+ "description": "Ad platform to connect, for connect_ad_platform. Set only when a saved pixel cannot send yet; absent when the user still has to pick an ad platform.",
+ "type": "string"
+ },
+ "install": {
+ "additionalProperties": false,
+ "description": "For install: the steps and snippet for this site, the same as get_install_instructions returns for task install. When it is set, there is no tool.",
+ "properties": {
+ "docs": {
+ "description": "Help articles for this result: `title` (string) and `url` (string, uri).",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "title": {
+ "type": "string"
+ },
+ "url": {
+ "format": "uri",
+ "type": "string"
+ }
+ },
+ "required": [
+ "title",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "native_pixel_search": {
+ "description": "Phase activate only: text to search the site's code for to find an ad platform pixel already on the site. null otherwise.",
+ "items": {
+ "type": "string"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "rules_to_follow": {
+ "description": "How to show the snippet to the user; follow them when you present it. null when the result has no snippet.",
+ "items": {
+ "type": "string"
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "snippet": {
+ "description": "HTML snippet with this site's public site id and key, to paste into the site. null on platforms with a PixelFlow plugin.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "steps": {
+ "description": "Numbered steps for this task on this platform.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "steps",
+ "snippet",
+ "rules_to_follow",
+ "native_pixel_search",
+ "docs"
+ ],
+ "type": "object"
+ },
+ "phase": {
+ "description": "Plugin install phase, for install.",
+ "enum": [
+ "connect",
+ "activate"
+ ],
+ "type": "string"
+ },
+ "progress": {
+ "description": "Position in setup, such as Step 4 of 7. total depends on the site: plugin platforms add a step, and sites that set up conversions add another.",
+ "type": "string"
+ },
+ "say": {
+ "description": "Suggested wording for the user. Words for the user only; the tool for this step is in next_action.tool.",
+ "type": "string"
+ },
+ "step": {
+ "description": "Position in setup, such as Step 4 of 7. total depends on the site: plugin platforms add a step, and sites that set up conversions add another.",
+ "type": "integer"
+ },
+ "steps": {
+ "description": "Every setup step: `step` (integer), `label` (string), `state` (enum: done, current, later).",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "label": {
+ "type": "string"
+ },
+ "state": {
+ "enum": [
+ "done",
+ "current",
+ "later"
+ ],
+ "type": "string"
+ },
+ "step": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "step",
+ "label",
+ "state"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "target": {
+ "description": "get_connect_link target, for connect_ad_platform.",
+ "enum": [
+ "ad_platform"
+ ],
+ "type": "string"
+ },
+ "task": {
+ "description": "get_install_instructions task, for install.",
+ "enum": [
+ "install"
+ ],
+ "type": "string"
+ },
+ "tool": {
+ "description": "Tool that performs this step. Absent when the step needs no tool or when install is attached.",
+ "type": "string"
+ },
+ "total": {
+ "description": "Position in setup, such as Step 4 of 7. total depends on the site: plugin platforms add a step, and sites that set up conversions add another.",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "action",
+ "say",
+ "step",
+ "total",
+ "progress",
+ "steps"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "pixels": {
+ "description": "Ad platform pixels connected to the site.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "ad_platform": {
+ "description": "Ad platform the pixel belongs to, such as facebook.",
+ "type": "string"
+ },
+ "is_active": {
+ "description": "Whether events are being sent to this pixel.",
+ "type": "boolean"
+ },
+ "name": {
+ "description": "Pixel label.",
+ "type": "string"
+ },
+ "pixel_id": {
+ "description": "Pixel id. update_pixel and list_events take it.",
+ "type": "integer"
+ },
+ "token": {
+ "description": "Where the access token comes from. The token itself is never returned. missing: events cannot be sent.",
+ "enum": [
+ "stored",
+ "connection",
+ "missing"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "pixel_id",
+ "name",
+ "ad_platform",
+ "is_active",
+ "token"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "platform": {
+ "description": "Platform the site runs on, such as webflow.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "script_or_plugin": {
+ "additionalProperties": false,
+ "description": "PixelFlow install on the site.",
+ "properties": {
+ "is_seen": {
+ "description": "Whether events from the script or plugin arrived in the last events_window_days.",
+ "type": "boolean"
+ },
+ "type": {
+ "description": "Install method the site's platform uses.",
+ "enum": [
+ "script",
+ "plugin"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "is_seen",
+ "type"
+ ],
+ "type": "object"
+ },
+ "site_id": {
+ "description": "Site id.",
+ "type": "integer"
+ },
+ "workspace": {
+ "additionalProperties": false,
+ "description": "Workspace that owns this site, with its plan, limits, and usage.",
+ "properties": {
+ "limits": {
+ "additionalProperties": false,
+ "properties": {
+ "ad_platform_slots": {
+ "description": "Ad platform connections allowed, including purchased extras.",
+ "type": "integer"
+ },
+ "analytics_lookback_days": {
+ "description": "How far back get_overview, get_attribution, and get_blocked_events can read.",
+ "type": "integer"
+ },
+ "events_per_month": {
+ "description": "Events per month the plan includes, such as 500000. null means unlimited.",
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "journeys_lookback_days": {
+ "description": "How far back get_journeys can read.",
+ "type": "integer"
+ },
+ "member_seats": {
+ "description": "Team members allowed, not counting the owner. 0 on a free trial.",
+ "type": "integer"
+ },
+ "sites": {
+ "description": "Sites the workspace may have, including purchased extra sites.",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "sites",
+ "events_per_month",
+ "ad_platform_slots",
+ "analytics_lookback_days",
+ "journeys_lookback_days",
+ "member_seats"
+ ],
+ "type": "object"
+ },
+ "plan": {
+ "description": "Plan name, such as Standard. `trial` during a free trial without a plan, `none` once that trial has ended.",
+ "type": "string"
+ },
+ "plan_status": {
+ "description": "Billing state. expired: the free trial ended without a plan. none: no plan and no trial.",
+ "enum": [
+ "active",
+ "canceled",
+ "incomplete",
+ "incomplete_expired",
+ "past_due",
+ "paused",
+ "trialing",
+ "unpaid",
+ "expired",
+ "none"
+ ],
+ "type": "string"
+ },
+ "trial_days_left": {
+ "description": "Whole days until the trial ends. 0: ended. null: no trial.",
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "usage": {
+ "additionalProperties": false,
+ "properties": {
+ "ad_platform_slots": {
+ "description": "Ad platform slots in use.",
+ "type": "integer"
+ },
+ "member_seats": {
+ "description": "Seats in use, not counting the owner.",
+ "type": "integer"
+ },
+ "sites": {
+ "description": "Sites in the workspace, including ones this user cannot open.",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "sites",
+ "ad_platform_slots",
+ "member_seats"
+ ],
+ "type": "object"
+ },
+ "workspace_id": {
+ "description": "Workspace id.",
+ "type": "integer"
+ },
+ "workspace_name": {
+ "description": "Workspace name.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "workspace_id",
+ "workspace_name",
+ "plan",
+ "plan_status",
+ "trial_days_left",
+ "limits",
+ "usage"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "site_id",
+ "domain",
+ "platform",
+ "currency",
+ "is_webflow_ecommerce",
+ "is_woocommerce",
+ "is_old_pixel_removed",
+ "is_meta_domain_approved",
+ "is_utm_snippet_added",
+ "is_consent_banner_configured",
+ "script_or_plugin",
+ "is_plugin_connected",
+ "pixels",
+ "integrations",
+ "blocking_rules",
+ "last_events",
+ "events_window_days",
+ "consent_mode",
+ "workspace",
+ "duplicate_tracking",
+ "docs",
+ "next_action"
+ ],
+ "type": "object"
+}