Getting Started

Key concepts

The vocabulary of Project88 — orgs, workspaces, agents, conversations, pages, data, canvases, widgets — in one page.

A one-pager glossary. Each term is covered in depth under Core Concepts.

Organization

The top-level tenant. Owns members, billing plan, provider API keys, and integrations. You always have exactly one personal organization auto-created on signup; you can be a member of others. See Organizations.

Workspace

A grouping inside an org — a logical container for agents, conversations, pages, data tables, and canvases. Each org has at least one workspace (the default, auto-created). Add more to separate projects or environments. See Workspaces.

Agent and Assistant

Two flavors of the same primitive:

  • Assistant — model + system prompt + tools + (optional) sub-agents. The LLM decides when to call a tool or delegate.
  • Agent — everything an Assistant has, plus a visual pipeline (React Flow) of explicit nodes: Prompt, Process, Tool Call, Delegate, Response, Condition, Loop, Wait, Change Variable, REST API Request, Code.

Upgrade an Assistant to an Agent any time — it's non-destructive and adds the Flow tab. See Agents and Assistants.

Conversation

A chat thread between a user and a single agent (or raw model). Stores messages, attachments, tool-call metadata, and a running token count. Conversations are scoped to a workspace. See Conversations.

Page

A Notion-style document made of nested blocks (paragraph, headings, lists, code, table, image, toggle, columns, markdown, and more). Pages can embed a live data table via the /table slash command. See Pages.

Data table

An Airtable-style table with typed columns (text, email, select, date, multi-tag, etc.). User tables are stored in a single user_table_rows table as JSONB rows. The People table is a native Postgres exception optimized for 100k+ rows with full-text search. See Data tables.

Record

A single row in a data table, but the UI promotes records to first-class status — clicking a row opens the Record Detail Sheet with tabs for events, activity, notes, and child records. See Records.

Tag

Project88's universal labeling primitive. A single tag can be applied to records, calendar events, conversations, agents, or contacts via a polymorphic join table. Tags can be org-wide or workspace-scoped. See Tags.

Canvas

A blank, infinite React Flow board. Every workspace mode (Home, Chat, Data, etc.) renders inside a canvas. You can add Widgets to it — draggable, resizable nodes that surface live workspace data. See Canvases and widgets.

Widget

A node on a canvas in three sizes (Small / Medium / Large). Widgets are connectable — for example, a DataTableListWidget outputs a tableId to a downstream DataTableWidget, which in turn outputs a selectedRowId to a DataRecordWidget. Live data flows through the graph in real time. See Canvases and widgets.

Tool

A capability an agent can invoke. Project88 ships built-in tools (search_user_tables, search_pages, list_agents, get_current_time) and exposes any Composio toolkit the org has connected (Gmail, Google Calendar, Outlook, Slack, GitHub, and 900+ more). Tools are scoped per agent via an allow/deny list. See Tools.

Provider key

An API key for an LLM provider (OpenAI, Anthropic, Google, Mistral, Groq, Together, DeepSeek). Stored encrypted per-org in Supabase Vault. Plaintext never touches the browser. See Provider API keys.

Integration

An OAuth connection to an external service (Gmail, Google Calendar, Slack, GitHub, etc.) made through Composio. Tokens are encrypted in Supabase Vault. Connected integrations expose their tools to agents automatically. See Integrations.

On this page