> For the complete documentation index, see [llms.txt](https://flapjax.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://flapjax.gitbook.io/docs/start-here/what-flapjax-does.md).

# Platform Overview

**Audience:** everyone. New users, operators and integrators.

Flapjax is a customer-data and automation platform. You bring your customers and the things they do.

Flapjax stores them, keeps segments and labels current as data arrives, runs automations that react to events in real time, and reports on the lot. Everything below is configured in the interface. Nobody writes code.

***

## The three building blocks

Everything in Flapjax is built from three ideas.

### People

Your contacts. Each person carries standard fields of name, email, mobile, date of birth, language and communication consents, plus as many **custom attributes** as you define. Your own **external ID** or a Flapjax **UUID** identifies them.

### Stacks

Your custom data tables. A **stack** is a structure you define, with its own set of **attributes**, meaning columns. Each row is a **record**. Stacks come in three types.

| Type        | Editable?                        | Typical use                                                       |
| ----------- | -------------------------------- | ----------------------------------------------------------------- |
| **Items**   | Full create, update and delete   | Reference data you maintain, such as games, products or campaigns |
| **Events**  | Create only, frozen once written | A log of what happened: a session, a transaction, an action       |
| **Signals** | Created by automations alone     | Values the platform derives internally                            |

Records reference people and other records, so your data forms a connected graph.

### Automations

The engine that reacts. Two kinds exist.

* **Sequences** are person-centric journeys. A person enters, moves through steps carrying delays, branches and messages, and the sequence acts on *that person*.
* **Workflows** are run-centric processes. Each firing is a run with no single person attached. Workflows find records, loop over them and act in bulk.

Both sit on the same visual canvas and draw on the same library of **actions**.

***

## How data flows

```mermaid
flowchart LR
    A[Your systems] -->|REST API or AMQP| B[Ingestion]
    A2[CSV import / manual entry] --> B
    B --> C[People & Records stored]
    C --> D[Automations evaluated]
    D --> E[Sequences & Workflows run]
    D --> F[Labels applied/removed]
    E --> G[Messages sent: email, SMS, push, chat]
    E --> H[Records & people updated]
    C --> I[Segments & Reports update]
```

1. **Data comes in**, through the REST API, a streaming AMQP connection, a CSV import or manual entry.
2. **Flapjax stores it** as people and records, creating any referenced entity that does not exist yet.
3. **Automations react in real time.** A new or changed person or record enrols someone in a sequence, fires a workflow, or adds and removes a label.
4. **Things happen.** Messages go out, records and people update, labels change.
5. **Everything stays current.** Segments, labels and reports reflect the new data.

The Event Pipeline is the full technical version of this flow.

***

## The things you build with

Beyond the three blocks, Flapjax gives you:

* **Labels** are tags on people. Apply them by hand, or make them **smart**: a label carrying a rule that adds and removes itself in real time as people's data changes. See [how labels are applied in real time](/docs/your-data/labels/how-labels-are-applied-in-real-time.md).
* **Segments** are saved groups of people or records, defined by a filter. Membership stays live.
* **Reports and dashboards** cover insight reports, which aggregate a metric, grouped or segmented, as a bar, line, pie or map chart, plus historical reports, which show a metric over time. Dashboards arrange them.
* **Message and email templates**, **campaigns** and **unsubscribe pages** hold the content and organisation of what you send.
* **Custom actions** call your own HTTP endpoints from inside an automation.
* **Integrations** connect providers for email, SMS, chat and push under Settings → Applications, ready for your automations.

***

## Sending messages

Automations send through connected providers:

| Channel        | Providers                        |
| -------------- | -------------------------------- |
| Email          | SendGrid                         |
| SMS / WhatsApp | Twilio, MessageChief (SMS)       |
| Push           | Pusher                           |
| Team chat      | Slack, Microsoft Teams, Telegram |

Flapjax can pick the best channel per person too, through **Recommended Channel**. Per-language content variants send in the recipient's own language.

***

## Real time, everywhere

Flapjax reacts as data arrives, rather than on a schedule.

* Smart labels re-evaluate the moment a person or record changes.
* Automations fire on the triggering event.
* The interface updates live across browser tabs and teammates. A colleague's edit to an automation appears on your screen with no refresh.

A few views load on demand rather than streaming: the people list, records, the communications log and reports. They refresh as you open or reload them.

***

## Who runs it, and where

* **Access** runs through Auth0. Your workspace stays isolated per organization, and teammates arrive by email invitation with a role.
* **Hosting** comes in two models: Flapjax's AWS account, fully managed, or your own AWS account, which Flapjax provisions and operates. See Hosting.

***

## Where to go next

* New to the concepts? Read the [Glossary](/docs/start-here/key-concepts.md).
* Want the system diagram and service map? Read Architecture.
* Integrating over the API? Read the REST API section.
* Curious how an event becomes an action? Read [How Flapjax processes your events](/docs/start-here/how-your-data-flows.md).
