> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clickbase.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Autocapture

> Autocapture records common interactions automatically — no track() calls in your code.

Autocapture records common interactions automatically — no `track()` calls in your code. Each kind is an independent toggle in your site settings, delivered to the widget through its remote [configuration](/widget/configuration). Turn on only what you need.

## What can be captured

| Interaction    | Config flag            | What fires an event                               |
| -------------- | ---------------------- | ------------------------------------------------- |
| Outbound links | `track_outbound_links` | A click on a link pointing to another domain.     |
| File downloads | `track_file_downloads` | A click on a link to a downloadable file.         |
| Button clicks  | `track_button_clicks`  | A click on a `<button>` (or button-role element). |
| Form submits   | `track_form_submits`   | A form submission.                                |
| Copy           | `track_copy`           | The visitor copies text from the page.            |

Each captured interaction becomes a normal event in the site's event stream, so it shows up in the [Events explorer](/api/events), can be filtered, and can back a [goal](/api/goals) (e.g. an `outbound`, `download`, `button`, `form`, or `copy` autocapture goal).

## Autocapture vs custom events

Autocapture is for interactions you didn't instrument yourself. When you want to record something specific to your product — a signup, a plan change, a feature used — send a **custom event** from your code instead:

```js theme={null}
clickbase.event('signup', { plan: 'pro' });
```

Custom events and autocapture events live side by side in the same event stream. Custom events that carry money are covered in [Track revenue](/track-revenue).

## Reserved names

A handful of event names are written only by Clickbase and can never be produced by autocapture or a custom `event()` call: `pageview`, `engagement`, `performance`, `web-vitals`, `payment`, and the `subscription_*` lifecycle names. See [Track revenue](/track-revenue) for why the payment names are locked.
