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

# Form Import

> AI-powered import from Google Forms, PDFs, and more

# Form Import

> Import existing forms from URLs, PDFs, or JSON using AI-powered extraction.

## Supported Sources

| Source       | Method | AI Model      |
| ------------ | ------ | ------------- |
| Google Forms | URL    | Claude/Gemini |
| Typeform     | URL    | Claude/Gemini |
| Zoho Forms   | URL    | Claude/Gemini |
| JotForm      | URL    | Claude/Gemini |
| PDF forms    | Upload | Claude/Gemini |
| HTML forms   | Paste  | Claude/Gemini |
| Terra JSON   | Upload | Direct import |

## Import Pipeline

```mermaid theme={null}
flowchart LR
    Input[URL/PDF/HTML]
    Detect[Platform Detection]
    Extract[Content Extraction]
    Parse[AI Parsing]
    Review[Review & Edit]
    Import[Create Form]

    Input --> Detect
    Detect --> Extract
    Extract --> Parse
    Parse --> Review
    Review --> Import
```

## How It Works

### 1. Platform Detection

Analyze URL patterns to identify the source:

```typescript theme={null}
function detectPlatform(url: string): Platform {
  if (url.includes("docs.google.com/forms")) return "google_forms";
  if (url.includes("typeform.com")) return "typeform";
  // ...
}
```

### 2. Content Extraction

* **URLs**: Firecrawl fetches rendered HTML
* **PDFs**: Reducto extracts text and layout
* **HTML**: Direct parsing

### 3. AI Parsing

Send extracted content to Claude or Gemini with a structured prompt:

```typescript theme={null}
const schema = await llm.complete({
  prompt: `Convert this form to Terra schema format...`,
  content: extractedHtml,
});
```

### 4. Review & Edit

The imported schema is presented for review. Fix any issues before finalizing.

## Issue Detection

The import system flags potential problems:

| Issue             | Severity | Example                    |
| ----------------- | -------- | -------------------------- |
| Missing label     | Error    | Field without visible text |
| Ambiguous type    | Warning  | Could be text or number    |
| Unsupported field | Info     | Field type not in Terra    |

***

<CardGroup cols={2}>
  <Card title="Quick Start" icon="rocket" href="/integrations/form-import/quickstart">
    5-minute import guide
  </Card>

  <Card title="Schema Design" icon="file-code" href="/core-systems/forms/schema-design">
    Target schema format
  </Card>
</CardGroup>
