Getting Started

Learn the fundamentals of ClickFunnels page tree structure.

Overview

A CF2 page tree is a JSON object that defines the complete structure of a funnel page. It consists of four main parts:

Property Description
version Page version number (currently 157-158)
content ContentNode - the root container holding all page content
settings Page-level settings including CSS and tracking codes
popup ModalContainer for popup/modal content

Element IDs

Every element in CF2 has a unique ID following the format 6Z-xxxxx-0 where xxxxx is 5 random alphanumeric characters.

JavaScript
function generateId() {
  const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  let id = "";
  for (let i = 0; i < 5; i++) {
    id += chars[Math.floor(Math.random() * chars.length)];
  }
  return `6Z-${id}-0`;
}

Common Element Properties

Every element shares these base properties:

JSON
{
  "type": "ElementType/V1",
  "id": "6Z-xxxxx-0",
  "version": 0,
  "parentId": "parent-element-id",
  "fractionalIndex": "a0"
}
Property Description
type Element type with version suffix (e.g., "Headline/V1", "Button/V1")
id Unique identifier in format 6Z-xxxxx-0
version Always 0 for new elements
parentId ID of the parent container element
fractionalIndex Ordering within parent: a0, a1, ... a9, aA-aZ, b0...

Styling Elements

CF2 uses a combination of attrs and params for styling:

  • attrs.style - Direct CSS properties (padding, margin, etc.)
  • params - CSS custom properties (--style-*)
  • selectors - Nested styling for child elements and states
JSON
{
  "attrs": {
    "style": {
      "padding-top": 20,
      "padding-bottom": 20,
      "margin-top": 15
    }
  },
  "params": {
    "padding-top--unit": "px",
    "padding-bottom--unit": "px",
    "margin-top--unit": "px",
    "--style-background-color": "#ffffff"
  }
}
i
Tip: Numeric style values in attrs.style require corresponding unit params (e.g., padding-top--unit).

Important Constraints

No margin-bottom: Only margin-top is available. Default is 15px if not set.
Line-height uses %: Always use percentage unit (e.g., 120, 150) with "line-height--unit": "%"
Horizontal padding unified: Use --style-padding-horizontal instead of separate left/right values.
i
Spelling note: CF2 uses fa_apended (single 'p') for appended icons - this is the correct spelling.

Next Steps