A wrongly passed filter, for example https://myclickfunnels.com/api/v2/contacts?filter=[contact] would return an unexpected return, whereas now it will respond with a more appropriate 400 bad request response.

/courses/:course_id/sections and /courses/sections/:id endpoints now include the new parent_id field, which points to the parent section ID or null for the root section.

Check it out here!

Previously you were only able to list invoices for an order via GET /api/v2/orders/:order_id/invoices. Now you can also list all your invoices for a specific workspace via the GET /api/v2/workspaces/:workspace_id/orders/invoices endpoint.

Check it out here!

Invoices endpoints now show Order data:

  {
    "id": 14,
    "public_id": "tXEuDF",
    "order_id": 36,
    "status": "paid",
    "due_amount": "0.00",
    "total_amount": "9.99",
    // 
    // More Invoice data...
    //
    "order": {
      "id": 36,
      "public_id": "iKSTuD",
      "order_number": "774934",
      "total_amount": "123.00",
      "origination_channel_id": 40,
      "origination_channel_type": "User",
      "notes": "Est excepturi voluptates est.",
      "in_trial": false,
      "billing_status": "pending",
      "service_status": "pending",
      "order_type": "one-time-order",
      "next_charge_at": null,
      "trial_end_at": null,
      "tag_ids": [
        47
      ],
      "activated_at": null,
      "canceled_at": null,
      "canceled_by": null,
      "cancel_reason": null,
      "cancel_description": null,
      "churned_at": null,
      "shipping_address_first_name": "Marry",
      "shipping_address_last_name": "Lemke",
      "shipping_address_organization_name": "Testing, Inc.",
      "shipping_address_phone_number": "+19053871234",
      "shipping_address_street_one": "24087 Stroman Coves",
      "shipping_address_street_two": "Suite 360",
      "shipping_address_city": "Rodstad",
      "shipping_address_region": "WA",
      "shipping_address_country": "US",
      "shipping_address_postal_code": "50493-0445",
      "billing_address_street_one": "37177 Feest Flat",
      "billing_address_street_two": "Apt. 298",
      "billing_address_city": "North Aimee",
      "billing_address_region": "WA",
      "billing_address_country": "US",
      "billing_address_postal_code": "50936-3151",
      "origination_channel_name": "",
      "contact": {
        "id": 133,
        "public_id": "IxrynS",
        "workspace_id": 42000,
        "anonymous": null,
        "email_address": "[email protected]",
        "first_name": "Tony",
        "last_name": "Greenholt",
        "phone_number": "1-166-515-8303",
        "time_zone": "Pacific Time (US & Canada)",
        "uuid": "be8f213b-5ffa-4552-8624-d834781d47b4",
        "unsubscribed_at": null,
        "last_notification_email_sent_at": null,
        "fb_url": "https://www.facebook.com/example",
        "twitter_url": "https://twitter.com/example",
        "instagram_url": null,
        "linkedin_url": "https://www.linkedin.com/in/example",
        "website_url": "https://example.com",
        "created_at": "2024-08-20T08:03:02.764Z",
        "updated_at": "2024-08-20T08:03:02.764Z",
        "tags": [
          {
            "id": 153,
            "public_id": "GJEzie",
            "name": "Example Tag",
            "color": "#302b7e",
            "applied_at": null
          }
        ],
        "custom_attributes": {
          "CustomKey": "MyText"
        }
      },
      "order_page": {
        "id": 48,
        "public_id": "jRWHDi",
        "name": "Great Page"
      }
    }
  }

This makes the invoice payload much more valuable and allows you to perform similar actions on the payload as you would with the Order payload.

The best way to know whether a subscription was paid via a webhook is to listen for the orders/invoice.paid webhook. So now you can do many more things based on the incoming data in the Invoice webhooks and Zapier trigger "Subscription Invoice Paid" trigger, without the need for additional API calls.

๐Ÿงช We have added new filters for different Product resources and the FormSubmission resource:

  • FormSubmission -> id, page_id, contact_id
  • Products::Collection -> id, visible_in_store, archived
  • Products::Price -> id, visible, archived, variant_id
  • Products::Tag -> id
  • Products::Variant -> id, visible, archived, fulfillment_required
  • Product -> id, visible_in_store, visible_in_customer_center

๐Ÿ‘ค You can now see when a tag was applied to a contact directly in the contacts payload.

Listening to subscription.items.changed enables listening for any line items changes for your subscription orders.

  • You can now set up Webhooks::Outgoing::Endpoint resources with scope to funnels and pages via the API.
  • ClickFunnels users will be able to create rich text descriptions for their product variants and collections. The API also reflects this in the Products::Variant and Products::Collection resources (at this point, this is in BETA).
  • Courses::Enrollment resources can now be filtered by contact_id.
  • All related Form APIs' routes in the docs now fully correspond to the actual routes.
  • Archiving a Product visible in the Store now has a more concise error message.