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

# Customers

> Shopper records that carts, checkout and invoices all reference, and that sync with your CRM.

A customer is a record of a shopper in a project. Each customer has an email, a name, and a stable UUID.

## How to use

Customers are a standalone primitive. You can use them as part of the Colossal platform — where [carts](/concepts/cart), [checkout](/concepts/checkout-and-payments), and [invoices](/concepts/invoices-and-billing) reference the same customer record — or sync them to and from third-party systems like your CRM or marketing tools to keep customer data consistent across platforms.

## Surfaces

<CardGroup cols={2}>
  <Card title="Events" icon="bolt" href="/apps/colossal-app/events#customers">
    Events for customer create and update.
  </Card>

  <Card title="Actions" icon="play" href="/apps/colossal-app/actions#customers">
    For App Action steps in your automation.
  </Card>

  <Card title="Tools" icon="sparkles" href="/apps/colossal-app/tools#customers">
    For the LLM inside a Custom agent step or the chat agent.
  </Card>

  <Card title="Storefront API" icon="code" href="/api-reference/customers">
    GraphQL queries and mutations for your storefront.
  </Card>
</CardGroup>

## Addresses

Customers can have one or more saved addresses, each with an optional label like "Home" or "Office", plus an `is_default` flag. A dedicated billing address can sit separately from the address list. The [Customers API reference](/api-reference/customers) has the full address schema.

## Guest vs registered customers

Not every customer needs an account up front.

* **Registered.** A customer record exists and is linked to the cart, checkout session, and resulting order.
* **Guest.** A checkout session can be created with `guest_email` and `guest_name` instead of a customer ID. When a guest completes checkout, the system looks up or creates a customer record automatically using the provided email.

This means you can accept payments without requiring account creation first. See the [checkout guide](/react-sdk/checkout) for implementation details.
