# ClickFunnels

### What It Does

ClickFunnels 2.0 sends your funnels' **form submissions** (opt-ins) and paid **one-time orders** to DURUM.ai in real time. You connect with your subdomain and an API key: DURUM.ai creates the webhooks in your workspace itself, there is nothing to paste into ClickFunnels.

Each funnel is then classified in one click: its submissions become **leads**, **applications**, or are **ignored**.

### Before You Start

- A **ClickFunnels 2.0** account (address in `yoursite.myclickfunnels.com`). The older ClickFunnels version is not supported.
- The right to create an API key in **Account Settings**, **Developer** section. The key is personal: it gives access to the workspaces of your account.
- Your subdomain: the part before `.myclickfunnels.com` in your workspace URL.
- For ad attribution, the DURUM pixel installed on your ClickFunnels pages (see the UTM Tracking page), or UTM hidden fields in your forms.

### Step-by-Step Connection

1. Log in to **ClickFunnels 2.0** (`yoursite.myclickfunnels.com`).
2. Click your avatar in the bottom-left corner, then **Account Settings**.
3. In the **Developer** section, open **API keys** and click **Create API key**. Copy the key.
4. In DURUM.ai, go to **Settings** then **Integrations**, and click **Connect** on the **ClickFunnels** card (Funnels category).
5. Fill in the window:
   - **ClickFunnels subdomain**: for example `mycompany`. The full URL is accepted, DURUM.ai keeps the useful part.
   - **ClickFunnels API key**: paste the key copied at step 3.
6. Click **Connect**. DURUM.ai validates the key and discovers your teams and workspaces.
   - If the key gives access to **one workspace**, it is connected right away.
   - If it gives access to **several workspaces**, a **Workspace to connect** field appears: pick one and click **Connect** again. One connection covers one workspace.
7. The message "ClickFunnels connected" confirms the connection. DURUM.ai has created two webhooks in the workspace, both named with the "DURUM.ai" prefix:
   - **Leads (form submissions)** on the `form_submission.created` event, pointing to `https://app.durum.ai/api/webhook/lead`;
   - **Ventes (one-time orders)** on the `one-time-order.completed` event, pointing to `https://app.durum.ai/api/webhook/sale`.

> **Info: Webhook names**
>
> Do not rename or delete these webhooks in ClickFunnels: DURUM.ai recognizes them by their URL, which carries your identifier.

#### Classify your funnels

1. On the ClickFunnels card, open the integration settings.
2. Your funnels are listed. For each one, pick **Lead**, **Application** or **Ignore**.
3. Click **Save**.

Without a classification, every submission is recorded as a lead. The classification applies on reception: nothing to change in ClickFunnels.

### Verify It Works

1. Open a page of your funnel and submit the form with an easy-to-spot test email.
2. Wait 30 seconds.
3. In DURUM.ai, open **Data Logs**: a `lead` event (or `application` depending on the classification) with source `clickfunnels` should appear.
4. For sales, place a test order: a `sale` event should appear with the order amount.

### Captured Events

| ClickFunnels side | DURUM.ai event | What it feeds |
|-------------------|----------------|---------------|
| `form_submission.created` (funnel classified Lead, or unclassified) | `lead` | Leads. Contact = email, phone, first and last name from the form. Date = submission date. |
| `form_submission.created` (funnel classified Application) | `application` | Applications. |
| `form_submission.created` (funnel classified Ignore) | none | Ignored, visible in Data Logs with reason `funnel_ignored`. |
| `one-time-order.completed` | `sale` | Sales. Amount = the order's `total_amount` (tax included), invoice reference = order number, status = `billing_status`. |
| Refunds, subscriptions, recurring invoices | none | Not covered yet. |

UTM fields read from the submission (form hidden fields, filled by the DURUM pixel or by ClickFunnels): `utm_source`, `utm_medium`, `utm_campaign`, `utm_content`, `utm_term`, `utm_ad_id`, `utm_adset_id`, `utm_campaign_id`, plus `fbclid`, `gclid`, `fbc_id` and `h_ad_id`. Without these fields, the lead is recorded but without direct ad attribution.

> **Warning: Double-counted sales**
>
> ClickFunnels often charges through Stripe. If you also connect Stripe, the same sale can arrive from both sources. DURUM.ai deduplicates by email, and you can disable the **Sales** type in the ClickFunnels integration settings to keep Stripe only.

### Troubleshooting

| Problem | Solution |
|---------|----------|
| "API key invalid or revoked" | Create a new key in ClickFunnels, **Account Settings**, **Developer**, **API keys**, and start again. |
| "Subdomain not found at ClickFunnels" | Check your workspace URL: only the part before `.myclickfunnels.com` matters. |
| "Too many attempts" | Wait 1 minute and try again. |
| "Connection saved, but webhook creation failed" | Disconnect then reconnect the integration: DURUM.ai retries creating the webhooks. |
| Status `ignored` with reason `no_identifiable_contact` | The submission has neither email nor phone. Add an email field to the form. |
| Status `ignored` with reason `unhandled_cf_event_type` | ClickFunnels sent an event DURUM.ai does not process (other than a submission or a one-time order). No action needed. |
| No funnel in the classification list | The connected workspace has no funnel, or the key no longer has access to it. Check the workspace chosen at connection. |
| Duplicate sale with Stripe | Disable the Sales type on the ClickFunnels side (see the warning above). |

### FAQ

**Does the API key expire?**

No. It stays valid until you revoke it in ClickFunnels. It is encrypted and never displayed in DURUM.ai.

**I have several workspaces, what do I do?**

One connection covers one workspace. At connection, DURUM.ai asks which one if the key sees several.

**Does DURUM.ai import my past submissions?**

No. Tracking starts at connection, with no import of the past.

**What happens on disconnect?**

DURUM.ai only removes the webhooks pointing to `app.durum.ai`. Your other ClickFunnels webhooks (Zapier, Kajabi, etc.) are never touched.

**How do I attribute my ClickFunnels leads to my ads?**

Install the DURUM pixel on your ClickFunnels pages, or pass your ads' UTM parameters into hidden fields of your forms. See the UTM Tracking page.

---

---

Source: https://docs.durum.ai/en/integrations/clickfunnels
