Skip to main content

Form Import

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

Supported Sources

SourceMethodAI Model
Google FormsURLClaude/Gemini
TypeformURLClaude/Gemini
Zoho FormsURLClaude/Gemini
JotFormURLClaude/Gemini
PDF formsUploadClaude/Gemini
HTML formsPasteClaude/Gemini
Terra JSONUploadDirect import

Import Pipeline

How It Works

1. Platform Detection

Analyze URL patterns to identify the source:
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:
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:
IssueSeverityExample
Missing labelErrorField without visible text
Ambiguous typeWarningCould be text or number
Unsupported fieldInfoField type not in Terra