You can now create pages programmatically via the new POST /pages endpoint. Additionally, Funnel and Site API responses now include custom code fields (header code, footer code, etc.), enabling full control over funnel and site customization through the API. Note: Page creation and custom code writing functionality is currently in private beta, please contact support if you're interested.
🧾 Manage invoice_type with External Orders
by Rich SteinmetzWe added more information about the invoice_type of the Orders::Invoice resource and added the ability to have different invoice types during the creation of an external subscription order invoice:

🏷️ New List Workspace Contacts::Applied tags endpoint
by Rich SteinmetzList Workspace Applied Tags
List all applied tags for a specific workspace. This endpoint is useful for getting the latest tag application changes for a workspace. Applied tags represent the many-to-many relationship between contacts and tags, with timestamps indicating when tags were applied.
🎓 More info in Courses::Enrollment payloads
by Rich SteinmetzEnrollment 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
}📄 Page payload refinement and inclusion in FormSubmission
by Rich SteinmetzWe 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
}
}🔐 Verify webhook event signatures
by Rich SteinmetzYou can now verify webhook event signatures to give your webhook events an extra security layer if you are listening for them in your own application to ensure that ClickFunnels is the original sender:
https://developers.myclickfunnels.com/docs/signature-verification
application/x-www-form-urlencoded descriptive error response
by Rich SteinmetzIf someone mistakenly made a request with a application/x-www-form-urlencoded format and correct body data, we now respond with a more descriptive error.
Native Discord integration is now live
by Rich SteinmetzAdd Discord as an integration to boost your workflows around communities.

Tag Names Now Require Uniqueness Per Workspace
by Sergei AndronovThere 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 namebecameduplicated 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 allow a mix of products & GA4 integration
by Rich Steinmetz🛒 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.