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

# Platform Core Concepts

> Vero's API is built around these core concepts.

## User

A `User` represents a user of your product. Vero is best suited to post-signup use cases where you have a unique, database identifier for each of your users.

<Info>
  You can use Vero for pre-signup use cases. Users can be tracked into Vero with an `email` address and no `id`, enabling you to `alias` and update a user's `id` once they sign up. Similarly, you can generate random, unique `id` values for non-signed sessions and `alias` these once a user logs in.
</Info>

## Event

An `Event` represents an action taken by a `User` at a specific point in time. Examples of common events include `Signed up`, `Clicked Button`, `Campaign Created`, `Order Completed`. Events represent the historical log of everything a user has done. Events typically relate to a `User` and some other object, e.g., an `Order`, a `Campaign`, etc.

## Campaign

A `Campaign` links three things together:

1. A `Trigger`.
2. An `Audience`.
3. A `Message`.

* Triggers include a single, scheduled time, a recurring schedule and event triggers.
* You don't **need** a `Campaign` to send a `Message`. You can send a `Message` directly via the API if you'd like to.
* `Reports` are only aggregated for `Campaigns`. We record all the opens/clicks/etc. for every `Delivery` and `Message` record but `Campaigns` are a way of reporting on a group of `Messages` together.

## Trigger

A `Trigger` defines how a `Campaign` is initiated. Trigger types include:

* `immediate` which sends the campaign as soon as it is launched.
* `scheduled` which runs at a specific time.
* `recurring` which runs on a cron schedule.

We're building our new triggers such as `api`, `event` and more.

## Audience

An `Audience` represents a list of one or more users.

## Message

A `Message` represents a templated version of what will be sent to an `Audience`. A `Message` is designed to be multichannel and contains an array of `Content` objects: one for each channel the message may be sent to. Vero currently supports `email`, `push` `Content` and we are working to add `sms` and `http`.

## Content

The `Content` object includes all of the fields required to successfully deliver a message on a specific channel. For example, email always requires a `to`, `subject` and `body` field.
