> Public product help. This page has no customer entries, projects, chat transcripts, API keys, or horizon contents.
> Reading that data requires `Authorization: Bearer` (a signed-in app session JWT, or a Headless access token).
> Do not call Supabase `/rest/v1` with a Headless JWT. Data reads go through `/casc/v1/headless/v1/rest`.

# Zagger Overview

Zagger is a data-driven AI workspace. You organize work in **Projects** (chat workspaces), bring data in through **Horizon** (ingestion, review, embeddings), and configure the platform under **Settings**. Help → **Ask Zagger** searches this documentation to answer product questions.

## Core concepts

- **Horizon** — Your active data instance (suffix). Ingestion groups, tools, prompts, and views are per horizon.
- **Ingestion group** — A named dataset (companies, docs, API feed, spreadsheet rows, or a Transformation). Entries live in the group after pull, transform, or manual add.
- **Transformation** — A pipeline that explodes, joins, filters (via Zagger Views), aggregates, and calculates across groups into a reusable destination group.
- **Deduplication** — Unique key + mode on the *group* so every ingest path (API, transform, SQL transform) shares the same skip / update / sync contract.
- **Tools** — Search, analytics, filter, or web search capabilities agents call at runtime.
- **Prompts** — Instructions and workflows for processing entries or chatting in projects.
- **Projects** — Chat workspaces with sessions, agent instructions, and optional workflow buttons.
- **Research** — Background Deep Research Agent jobs (web + internal docs, reports, CSV contest export).

## Navigation

| Menu | Purpose |
| --- | --- |
| Projects | Create chats, open sessions, project summary and settings |
| Research | Deep Research Agent — multi-step jobs, sources, structured reports and exports |
| Horizon | Run ingestion / transforms, review data, manage entries, request embeddings |
| Settings | Ingestion, **Scheduler**, Schedules (deprecated), prompts, tools, views, YUML, **System** (instance), User; Admin / Superadmin when permitted |
| Headless | Admin only — review integrations/sub-users, mint API credentials for external servers |
| Help | Documentation, Ask Zagger, System Test (admins) |

## Documentation map

| Topic | Page |
| --- | --- |
| Getting started, roles, access | [roles-and-access](roles-and-access.md) |
| Google OAuth (Drive / Sheets / Gmail drafts) | [google-auth](google-auth.md) |
| Ingestion source types (API, folder, spreadsheet, Transformation) | [ingestion-sources](ingestion-sources.md) |
| Build an ingestion group end-to-end | [ingestion-groups](ingestion-groups.md) |
| API ingestion and **group-level deduplication** | [api-ingestion](api-ingestion.md) |
| **Transformations** (explode, join, Views, aggregate) | [transform-ingestion](transform-ingestion.md) |
| **SQL Transformations** (multi-source SQLite script) | [transform-sql-ingestion](transform-sql-ingestion.md) |
| Toolchain scheduler (UTC cron) | [scheduler](scheduler.md) |
| Manual vs scheduled ingestion (deprecated path) | [schedules](schedules.md) |
| Search fields and raw keys | [search-fields](search-fields.md) |
| Vector tools (search, analytics, filter, web) | [tools](tools.md) |
| Embeddings — request and verify | [tools](tools.md) (Embeddings section) |
| Analytics tools | [analytics](analytics.md) |
| Filter tools (exact row recall) | [filter](filter.md) |
| Prompts — build and place in UI | [prompts](prompts.md) |
| Prompt templating placeholders | [prompt-templating](prompt-templating.md) |
| Zagger Views (filters and sorts; used in transforms) | [views](views.md) |
| Projects, settings, workflows | [projects](projects.md) |
| **System Settings vs Agent Settings** (common confusion) | [settings-system-vs-agent](settings-system-vs-agent.md) |
| Project chat workflows | [workflows](workflows.md) |
| Email drafts (markdown / Gmail) | [email-drafts](email-drafts.md) |
| Headless API (admin / integrators) | [headless](headless.md) (see also repo `docs/headless-embed-guide.md` for multi-project embed) |
| Headless user choice (website dialog bridge) | [headless-user-choice](headless-user-choice.md) |
| Deep Research Agent | [research](research.md) |
| YUML output templates | [yuml](yuml.md) |
| System Test harness (admin) | [system-test-harness](system-test-harness.md) |

## Typical setup path

1. Set **Active Horizon** (Settings → User).
2. Connect **Google OAuth** if using Drive or Sheets sources.
3. Create an **ingestion group** (Settings → Ingestion) and assign it to your horizon.
4. For feeds that re-run often, set group **Deduplication** (unique key + Skip / Update / Sync) — see [api-ingestion](api-ingestion.md).
5. To explode nested arrays or join groups into a report dataset, create a **Transformation** group — see [transform-ingestion](transform-ingestion.md).
6. Run ingestion from **Horizon → Data Ingestion**; review in **Data Review** unless auto-approve is on.
7. Create a **search tool** (Settings → Tools) and **Initiate Embedding**. Wait until status is **Ready**.
8. Create a **project**, attach workflow prompts, and chat with tools enabled.

> **Embed after every ingest before significant LLM work.**
> Accepted rows in Data Management are not enough for semantic search — search tools only see embedded data.
> After Sheet sync, API pulls, or other ingestions, re-run **Initiate Embedding** (or enable
> **Auto-embed**) before project chat, workflows, or agents that use search tools.
> See [tools](tools.md) (Embeddings section).

## Getting help

Open **Help → Ask Zagger** for guided answers. Admins can run **Help → System Test** to validate models, web search, MCP, and API ingestion.
