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

# Build from data

> Connect your existing data sources and let AI build an app around them

## Start from your data

Already have data in Google Sheets, HubSpot, Stripe, or another tool? You don't need to describe an app from scratch. Connect your data and Gainable's DataAnalyzer agent will examine it, recommend features, and build a complete app around it.

Your existing data becomes the specification. Instead of writing a prompt that describes your app from scratch, the AI reads your actual schema from your datasets, detects what domain you're in, and proposes an app tailored to your data.

<Tip>
  This path is ideal when you already have data in external systems and want to build views, dashboards, and workflows on top of it.
</Tip>

## How it works

<Steps>
  <Step title="Connect your data source">
    Choose from 15+ supported sources including Google Sheets, HubSpot, Stripe, Airtable, and Supabase. Authenticate via OAuth or API key.
  </Step>

  <Step title="Create a dataset and sync">
    Group your sources into a dataset and sync the data into Gainable. You can connect multiple sources to combine data from different systems.
  </Step>

  <Step title="Start a new project from your data">
    On the new project page, choose **Build from data** and select one or more datasets.
  </Step>

  <Step title="AI analyzes your data">
    The DataAnalyzer agent examines your schema, sample rows, and field types. It identifies the domain (CRM, project management, finance, etc.) and recommends features matched to your data patterns.
  </Step>

  <Step title="Refine through conversation">
    The agent asks 2-3 clarifying questions through interactive multiple-choice options. You shape the app through a short Q\&A conversation.
  </Step>

  <Step title="Your app is built">
    The Build Agent generates a complete application with views, dashboards, and collaboration features, pre-populated with your synced data.
  </Step>
</Steps>

## What AI analyzes

When you connect data, the DataAnalyzer agent examines:

| Signal                        | What it tells the AI                                                                        |
| ----------------------------- | ------------------------------------------------------------------------------------------- |
| **Field names**               | Domain context (e.g., "deal\_amount" signals sales, "due\_date" signals project management) |
| **Field types**               | What UI to generate (currency fields get KPI cards, dates get timeline views)               |
| **Enum values**               | Pipeline stages, statuses, and categories that map to kanban columns or chart segments      |
| **Sample rows**               | Real data patterns that inform layout and feature recommendations                           |
| **Cross-model relationships** | How datasets connect (contacts to companies, tasks to projects)                             |

### Domain detection

The agent recognizes common business domains and tailors its recommendations:

* **CRM / Sales** — Pipeline boards, deal value dashboards, contact card grids
* **Project management** — Kanban boards, timeline views, progress tracking
* **Finance / Payments** — Revenue dashboards, transaction tables, KPI cards
* **HR / People** — Employee directories, org charts, onboarding trackers
* **Inventory / Operations** — Stock level dashboards, order tables, status tracking

## Interactive refinement

The DataAnalyzer doesn't just guess. It asks you to confirm and refine through interactive options:

<Accordion title="Example: Refining a sales pipeline app">
  After analyzing a Google Sheet with deal data, the agent asks:

  **Question 1:** "I see a sales pipeline with 5 stages and deal values. What should be the primary view?"

  * Pipeline Board (kanban by stage)
  * Revenue Dashboard
  * Deal Table

  **Question 2:** "How should I handle the 'Owner' field?"

  * Show as a filter on the pipeline board
  * Create a separate view grouped by owner
  * Both

  **Question 3:** "I can add these collaboration features. Which ones?"

  * Comments on individual deals
  * Team activity feed on the dashboard
  * AI copilot for sales questions

  Each answer updates the app specification before building begins.
</Accordion>

The conversation typically takes 2-3 turns before the spec is finalized. You're always in control of what gets built.

## What gets built

The output is a complete, working application with features matched to your data:

<CardGroup cols={2}>
  <Card title="Views matched to data" icon="table-layout">
    Kanban boards for pipeline enums, dashboards for numeric fields, card grids for people data, tables for transactional data
  </Card>

  <Card title="Charts and KPIs" icon="chart-line">
    Automatic visualization of key metrics based on currency, count, and date fields in your data
  </Card>

  <Card title="Collaboration" icon="comments">
    Comments, chat, and activity feeds placed in context based on the domain
  </Card>

  <Card title="AI copilot" icon="robot">
    An AI assistant configured with knowledge of your data domain, ready to answer questions
  </Card>
</CardGroup>

## Supported data sources

<Note>
  More connectors are added regularly. If you need a source that isn't listed, reach out via the live chat in the bottom-left corner of the builder or email [support@gainable.dev](mailto:support@gainable.dev).
</Note>

### CRM

| Source         | Auth    | Capabilities                            |
| -------------- | ------- | --------------------------------------- |
| **HubSpot**    | OAuth   | Read & write contacts, companies, deals |
| **Attio**      | OAuth   | Read & write CRM data                   |
| **Folk CRM**   | API key | Read & write CRM data                   |
| **Salesforce** | OAuth   | Read & write CRM data                   |

### Databases and spreadsheets

| Source            | Auth          | Capabilities        |
| ----------------- | ------------- | ------------------- |
| **Google Sheets** | OAuth         | Read & write rows   |
| **Airtable**      | OAuth         | Read & write bases  |
| **Supabase**      | API key + URL | Read & write tables |

### Analytics and product

| Source               | Auth    | Capabilities             |
| -------------------- | ------- | ------------------------ |
| **Google Analytics** | OAuth   | Read analytics data      |
| **PostHog**          | API key | Read event and user data |
| **Mixpanel**         | OAuth   | Read analytics data      |
| **Typeform**         | OAuth   | Read form responses      |
| **Linear**           | OAuth   | Read & write issues      |
| **Jira**             | OAuth   | Read & write issues      |

### Payments and data warehouses

| Source         | Auth               | Capabilities                            |
| -------------- | ------------------ | --------------------------------------- |
| **Stripe**     | API key            | Read customers, invoices, subscriptions |
| **Databricks** | Client credentials | Read catalogs, schemas, tables, run SQL |

## Build from data vs. describe your app

Not sure which path to choose? Here's how they compare:

|                    | Describe your app                         | Build from data                                  |
| ------------------ | ----------------------------------------- | ------------------------------------------------ |
| **Best when**      | Starting from scratch with an idea        | You have existing data in external systems       |
| **Data**           | Data models created from your description | Derived from your datasets and connected sources |
| **Configuration**  | Write a prompt                            | Interactive Q\&A with AI                         |
| **Agent pipeline** | Planner → Build → Validation              | DataAnalyzer → Build → Validation                |
| **Data**           | Starts empty, you add data later          | Pre-populated from connected sources             |

<Info>
  You can combine both approaches. Connect data sources first, then describe additional features you want on top of them in the prompt.
</Info>

## Next steps

<CardGroup cols={2}>
  <Card title="Set up datasets" icon="plug" href="/building/data-connectors">
    Detailed guide to creating datasets and connecting data sources
  </Card>

  <Card title="Quickstart" icon="play" href="/quickstart">
    Try the prompt-based path instead
  </Card>

  <Card title="How it works" icon="gears" href="/concepts/how-it-works">
    Understand the full agent pipeline
  </Card>

  <Card title="Data models" icon="database" href="/building/data-models">
    Learn how your data is organized
  </Card>
</CardGroup>
