Enrollment records now show more info about the associated contact and course:

    {
        "id": 4274,
        "public_id": "ePlWEe",
        "contact_id": 827717,
        "course_id": 1019,
        "created_at": "2025-10-07T11:39:29.432Z",
        "updated_at": "2025-10-07T11:39:29.447Z",
        "suspended": false,
        "suspension_reason": null,
        "current_path": "/enrollments/74c0131fe387b566edadce97832c191b",
        "origination_source_type": "Contact",
        "origination_source_id": 827717,
        "course": {
            "id": 1019,
            "public_id": "oewmDj",
            "title": "Running QA"
        },
        "contact": {
            "id": 827717,
            "public_id": "vOmzwm",
            "email_address": "[email protected]",
            "first_name": "Rich",
            "last_name": "Stone",
            "phone_number": null
        },
        "percentage_completed": 0
    }

We have added two new fields to our Page resource: type and show_page_step, so you always know what kind of page it is and can easily map it to a page inside of ClickFunnels:

  {
    "id": 61,
    "public_id": "HMjyNF",
    "workspace_id": 42000,
    "name": "Great Page",
    "theme_id": null,
    "created_at": "2025-01-01T00:00:00.000Z",
    "updated_at": "2025-01-01T00:00:00.000Z",
    "type": "landing_page",
    "current_path": "/my-page-example",
    "show_page_step": null
  }

For more information, you can refer to our Page docs.

We are also now including the full page information inside of our FormSubmission resource, so you know where your submissions come from:

  {
    "id": 2,
    "public_id": "IYHjDs",
    "contact_id": 85,
    "workspace_id": 42000,
    "page_id": 11,
    "created_at": null,
    "updated_at": null,
    "data": {
      "url": "/contact",
      "first_name": "John",
      "last_name": "Doe",
      "email": "[email protected]"
    },
    "page": {
      "id": 11,
      "public_id": "yTPMCR",
      "workspace_id": 42000,
      "name": "Great Page",
      "theme_id": null,
      "created_at": "2025-01-01T00:00:00.000Z",
      "updated_at": "2025-01-01T00:00:00.000Z",
      "type": "landing_page",
      "current_path": "/my-page-example",
      "show_page_step": null
    }
  }

There was a global change within the ClickFunnels app to implement a bug fix that enforces tag name uniqueness within each workspace. This change affects the following tag types:

Affected Endpoints:

Contacts::Tags - POST /workspaces/{workspace_id}/contacts/tags

Product::Tags - POST /workspaces/{workspace_id}/products/tags

Funnel::Tags - POST /workspaces/{workspace_id}/funnels/tags

Orders::Tag - POST /workspaces/{workspace_id}/orders/tags


Impact: This is a breaking change for integrations that create duplicate tag names for any reason.


What Changed:

  • Tag names must now be unique within each workspace (duplicate tag names were retroactively renamed, e.g., duplicated tag name became duplicated tag name (copy 1), duplicated tag name (copy 2) etc.

  • The API will return validation errors when attempting to create tags with duplicate names.

  • Existing duplicate tags remain unaffected, but no new duplicates can be created.

🛒 External Orders product mixes

In the initial phase of the External Orders BETA, subscription orders and one-time orders could only hold those types of products. Now, the subscription-order orders can hold one-time orders and multiple subscriptions if they are of the same duration.

📈 GA4 pixels

You can now add your Google Analytics GA4 pixel to your website settings and listen for browser events on all your pages. If you additionally add the Google Analytics API key for the GA property, you will now also receive generate_lead server-side events in GA.

No More 500s In This Case! 🎯

We fixed an issue where you'd get unhelpful error messages when adding too long product info or contact details that our database restricts. Now, when something goes wrong (like a product description being too long), you'll get a clear message telling you exactly what needs fixing. This means less time troubleshooting and more time selling!

List Endpoints Just Got Faster! ⚡

We have made significant speed improvements to how your lists load, especially if you have a large number of contacts, products, orders, or similar resources.

🩺 Preventive measures: Ensuring that multiple updates in a transaction fire for all state changes

This just means that we have prevented a possible edge case where a record might have had several changes within a single action and we send all those changed states as a webhook event to you.

Fixed Product Pricing Docs Setup 💰

Fixed Create Price API endpoint path documentation from /products/{product_id}/prices to the actual /products/variants/{variant_id}/prices.