# Recommended CauseWise events

These names are a convention for new instrumentation. Any other name still works. `window.causewise.track` does not reject unknown names, and `/api/collect` does not require this list.

The name you send must be the name you configure on a goal or funnel step. `sign_up` and `signup_completed` are different events. If the site already sends a name, keep it and point the goal at that name.

The dashboard’s built-in goal examples use names such as `signup_completed`, `purchase_completed`, and `contact_form_submitted`. Those remain valid. Prefer one name per outcome so history stays in one series.

Property conditions are AND equality. See [causewise-tracking.md](./causewise-tracking.md) and [causewise-goals.md](./causewise-goals.md).

Do not put email addresses, names, passwords, payment details, or tokens in properties.

## sign_up

Fire when the account exists, not when the registration page opens.

Suggested property: `method` (`email`, `google`, …).

```js
window.causewise.track("sign_up", { method: "email" });
```

Common mistakes: firing on the registration page load; sending the email address or password.

## login

Fire after the session is established.

Suggested property: `method`.

```js
window.causewise.track("login", { method: "google" });
```

Common mistakes: firing on every later page; sending a session token.

## form_submit

Fire when the site accepts the form. Failed validation is not a submit.

Suggested property: `form` (a short form id, not the message).

```js
window.causewise.track("form_submit", { form: "contact" });
```

Common mistakes: firing on the button click before the request succeeds; sending the message body.

## begin_checkout

Fire once when checkout starts.

Suggested properties: `value`, `currency`.

```js
window.causewise.track("begin_checkout", { value: 49.99, currency: "USD" });
```

Common mistakes: firing again on every checkout step; sending card details.

## purchase

Fire when payment is confirmed. A refresh of the receipt page should not count as another purchase. The automatic pageview of that URL is separate and is not this event.

Suggested properties: `value`, `currency`.

```js
window.causewise.track("purchase", { value: 49.99, currency: "USD" });
```

Common mistakes: firing both in the confirmation handler and again from the thank-you page load; sending a name, email, or payment id.

## subscription_started

Fire when a paid subscription first becomes active.

Suggested properties: `plan`, `value`, `currency`.

```js
window.causewise.track("subscription_started", { plan: "pro", value: 29, currency: "USD" });
```

Common mistakes: firing on later renewal invoices when the goal is only the first start.

## subscription_cancelled

Fire when the cancellation is saved.

Suggested property: `plan`.

```js
window.causewise.track("subscription_cancelled", { plan: "pro" });
```

Common mistakes: firing when the visitor only opens the billing page.

## download

Fire when the download starts.

Suggested property: `file` (a file name, not a private URL).

```js
window.causewise.track("download", { file: "guide.pdf" });
```

Common mistakes: counting only a pageview when the file is sent without a navigation the tracker can see.

## outbound_click

Fire when the visitor leaves the site through a link you care about.

Suggested property: `url` with the token-free destination.

```js
window.causewise.track("outbound_click", { url: "https://example.com/docs" });
```

Common mistakes: tracking internal links; including query strings that contain secrets.
