> ## 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.

# Core Concepts

> Learn about projects, campaigns, audiences, channels, and other fundamental Vero concepts.

Vero 2.0 is built around a few core concepts that work together to help you send the right message to the right person at the right time. Understanding these fundamentals will help you get the most out of Vero.

## Projects

A **project** is your top-level workspace in Vero. Each project contains all your campaigns, user data, settings, and integrations in one isolated environment.

You might create separate projects for:

* Different products or brands
* Testing vs. production environments
* Different websites or apps

Each project has its own configuration including timezone, team access, and data source connections.

[Learn how to set up a project](/vero-2/getting-started/quickstart#step-1-create-your-project)

## User Profiles

A **user profile** represents an individual customer in Vero. Profiles are the foundation for sending messages, tracking engagement, and managing subscriptions.

Every profile must have a unique identifier:

* **`User ID (id)`** — Required. Any unique string or number, typically your internal database ID.

Profiles can also have channel addresses needed for messaging:

* **`Email address (email)`** — Required to send email campaigns
* **`Phone number (phone_number)`** — Required to send SMS (must be in E.164 format, e.g., +61 234 567 890)
* **Device tokens** — Required for push notifications; supports multiple tokens per profile

You can also add:

* **User properties** — Custom attributes like `first_name`, `company`, or `plan_type`, referenced in messages via Liquid
* **Tags** — Multiple alphanumeric labels for categorization and preference management

Vero automatically tracks:

* **Activity history** — The last 30 days of message interactions and events
* **Subscription status** — Whether the user can receive future campaigns

[Learn more about user profiles](/vero-2/user-profiles/understanding-user-profiles)

## Events

**Events** represent actions taken by users at specific points in time, such as "Signed up", "Clicked Button", or "Order Completed".

Events are tracked via:

* The Track REST API
* Vero SDKs
* Integrations (e.g., Segment, RudderStack)

Event data can include custom properties used for personalization and segmentation. Events are the backbone of automated journey triggers and behavioral messaging.

[Learn how to set up event tracking](/vero-2/events/setting-up-event-tracking)

## Campaigns

A **campaign** links three things together: a trigger, an audience, and a message.

Vero 2.0 supports two campaign types:

### Single Message (Broadcasts)

One-off newsletter-style campaigns sent to an audience at a specific time or on a schedule. These can be:

* **Immediate** — Sent as soon as you launch the campaign
* **Scheduled** — Sent at a specific date and time
* **Recurring** — Sent on a cron schedule (daily, weekly, etc.)

[Learn how to send a broadcast](/vero-2/campaigns/broadcasts/create-a-broadcast)

### Journeys (Beta)

Multi-message, event-triggered campaigns with a visual canvas builder. Journeys allow you to:

* Trigger messages when users perform specific events
* Add delays between messages (up to 365 days)
* Build complex flows with up to 150 nodes per journey

[Learn how to create journeys](/vero-2/campaigns/journeys/creating-and-editing-journeys)

Reports are aggregated at the campaign level, tracking opens, clicks, and other engagement metrics for all messages in a campaign.

[Learn about campaign metrics](/vero-2/reporting/viewing-campaign-metrics)

## Audiences

An **audience** defines who will receive a campaign. You can create audiences in several ways:

* **CSV/Google Sheets upload** — Import user lists directly
* **SQL queries** — Pull data from connected data warehouses (PostgreSQL, Redshift, Snowflake, BigQuery, MySQL, SQL Server)
* **Segments** — Dynamic groups that automatically update based on user properties, events, and message engagement

Each audience row needs at minimum an `id` and either `email` or `phone_number` (depending on the channel). You can include up to 100 additional custom properties per row.

Vero automatically respects unsubscribe status — unsubscribed users are excluded from all campaigns.

[Learn how to add an audience to your campaign](/vero-2/campaigns/broadcasts/adding-an-audience-to-your-campaign)

## Segments

**Segments** are dynamic user audiences that automatically update based on criteria you define.

Build segments from:

* Profile properties (e.g., `plan_type = "premium"`)
* Events and event data (e.g., "Purchased Product" in the last 30 days)
* Message engagement (opens, clicks, bounces)
* Tags

Unlike static lists, segments recalculate membership based on your conditions. They refresh:

* Manually via the UI
* Automatically before campaign sends
* Automatically at journey branch points

Segments created in Vero 1.0 are visible and editable in Vero 2.0 with bidirectional sync.

[Learn about segments](/vero-2/segments/what-are-segments)

## Messages

A **message** is the templated content you send to your audience. Messages support multi-channel delivery and can include:

* **Email content** — From address, subject, preview text, and body (built via drag-and-drop editor, HTML, or rich text)
* **SMS content** — Phone number (from your configured channel) and message body
* **Push content** — Title, body, and deep links for iOS and Android

Messages support **Liquid templating** for personalization using user properties and event data. You can also use **Data Feeds** to pull real-time external data for dynamic content.

[Learn how to create email messages](/vero-2/message-content/creating-an-email-message)

[Learn how to personalize messages with Liquid](/vero-2/message-content/how-to-personalise-your-message-using-liquid)

## Channels

**Channels** are the configured connections used to send messages to users.

### Email channels

* **Vero Mailer** — Built-in, preconfigured option
* **Custom Domain** — Send from your own domain
* **Third-party providers** — SendGrid, Mailgun, Mailjet, Mandrill

Email channels support domain verification and custom DNS records.

[Learn how to configure email channels](/vero-2/channels/email/how-to-configure-the-email-channel)

### SMS channels

* **Twilio** — Configured with Account SID, Auth Token, and Messaging Service selection

[Learn how to configure SMS channels](/vero-2/channels/sms/how-to-configure-the-sms-channel)

You can configure multiple channels per type and set a default for new campaigns. Channels also support webhooks for tracking message interactions (opens, clicks, bounces, etc.).

## Activity

**Activity** (formerly called "Logs" in Vero 1.0) is a comprehensive record of all user actions and message interactions in Vero.

Every action is logged and visible in Vero, including:

* **Events** — User actions tracked via API, SDK, or integrations (e.g., "Purchased Product", "Viewed Page")
* **Message interactions** — Sent, delivered, opened, clicked, bounced, and unsubscribed events for all campaigns

Activity is available in two places:

* **User profile Activity tab** — View the last 30 days of events and message interactions for an individual user
* **Campaign Activity** — View all message interactions for a specific campaign

Each activity entry includes detailed information such as timestamps, event properties, campaign details, and user identifiers. This makes it easy to investigate message delivery, debug campaign issues, or understand individual user behavior.

[Learn more about activity logs](/vero-2/reporting/understanding-entries-in-the-activity-log)

## Data Sources

**Data sources** are external databases you connect to Vero for querying and loading audiences on-demand.

Supported databases:

* PostgreSQL
* Amazon Redshift
* Snowflake
* Google BigQuery
* MySQL
* Microsoft SQL Server

With data sources, you can write SQL queries or select data views to build campaign audiences directly from your warehouse. Vero Connect is "warehouse-native" — it doesn't store user data, instead querying your data sources when needed.

[Learn how to connect to Snowflake](/vero-2/data-sources/how-to-connect-to-snowflake)

## Templates

**Templates** are reusable email message designs you can use as a starting point for campaigns.

Create templates from:

* Custom HTML imports
* The drag-and-drop builder
* The HTML editor
* Vero's template library

Templates support Liquid personalization and can be shared across campaigns in a project.

[Learn how to create and use templates](/vero-2/templates/how-to-create-and-use-a-template)

***

## How it all works together

Here's how these concepts connect:

1. You track **user profiles** and **events** via API, SDK, or integrations
2. You create **segments** based on user properties and events, or build **audiences** from CSV files or SQL queries
3. You design **message** content using **templates** and Liquid personalization
4. You configure **channels** to send via email, SMS, or push
5. You create a **campaign** that combines a trigger, an audience, and a message
6. Vero sends the message to your audience through the configured channel
7. All **activity** is logged and visible on user profiles and in campaign reports

Each **project** keeps everything organized in one place.
