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

# Event names

> Choose consistent names for Bily events and your own application events.

`BilyEvent` autocompletes known events and still accepts your own event names.

```typescript theme={null}
type BilyEvent = KnownBilyEvent | (string & Record<never, never>);
```

Event names are case-sensitive. Use the capitalization shown for Bily events. Use stable snake\_case names for application events.

## Use known Bily events

```typescript theme={null}
type KnownBilyEvent =
  | "AddContactInfo"
  | "AddShippingInfo"
  | "Checkout Address Info Submitted"
  | "Contact"
  | "New Customer Purchase"
  | "PageView"
  | "Pageview"
  | "Product Removed From Cart"
  | "Product Removed From Wishlist"
  | "ViewCategory"
  | "Product List Viewed"
  | "Products Searched"
  | "Product Clicked"
  | "Product Added"
  | "Product Added to Wishlist"
  | "Product Removed"
  | "Product Viewed"
  | "Checkout Step Viewed"
  | "Checkout Step Completed"
  | "Shipping Info Entered"
  | "Order Refunded"
  | "Clicked Promotion"
  | "Viewed Promotion"
  | "Category Viewed"
  | "Checkout Started"
  | "Payment Info Entered"
  | "Payment Add Contact Info"
  | "Payment Add Shipping Info"
  | "Payment Add Address Info"
  | "Subscription"
  | "New Customer Order"
  | "New Customer Subscription"
  | "Order Completed"
  | "Cart Viewed"
  | "Remove from Cart"
  | "Cart Updated"
  | "Order Updated"
  | "Order Cancelled"
  | "Lead"
  | "Login"
  | "Logout"
  | "Search"
  | "Add to Wishlist"
  | "Remove from Wishlist"
  | "View Wishlist"
  | "Newsletter"
  | "Contact Form Submitted"
  | "Subscription Cancelled"
  | "Subscription Updated"
  | "Subscription Renewed";
```

## Use current ecommerce names

For new ecommerce tracking, use the current names in the [ecommerce guide](/guides/ecommerce). The SDK still accepts these compatibility names and converts them before delivery:

| Compatibility name          | Current name                      |
| --------------------------- | --------------------------------- |
| `Pageview`                  | `PageView`                        |
| `Add to Wishlist`           | `Product Added to Wishlist`       |
| `Category Viewed`           | `ViewCategory`                    |
| `Contact Form Submitted`    | `Contact`                         |
| `New Customer Order`        | `New Customer Purchase`           |
| `Payment Add Address Info`  | `Checkout Address Info Submitted` |
| `Payment Add Contact Info`  | `AddContactInfo`                  |
| `Payment Add Shipping Info` | `AddShippingInfo`                 |
| `Product Added To Wishlist` | `Product Added to Wishlist`       |
| `Remove from Cart`          | `Product Removed From Cart`       |
| `Remove from Wishlist`      | `Product Removed From Wishlist`   |
| `Search`                    | `Products Searched`               |

## Add application events

```typescript theme={null}
track("workspace_created", {
  workspace_id: "workspace_456",
});
```

Every custom name must contain at least one non-whitespace character. Keep a short internal event catalog so every component uses the same spelling.

<Card title="Track custom events" icon="wave-pulse" href="/guides/custom-events">
  Create stable names and safe properties for your application.
</Card>
