Replace your forms with a conversation.
Formless is an AI-powered intake platform for operations teams that lets employees submit requests, tickets, and reports in plain English — no forms, no fields, no training required.
The idea: Forms exist because computers couldn't understand intent. LLMs changed that.
Formless sits between the humans submitting requests and the systems that process them. An admin defines what they need; employees say it however they'd naturally say it; Formless handles the rest.
sequenceDiagram
participant Admin
participant Formless
participant Employee
participant Destination
Admin->>Formless: "I need IT tickets with title, description, category, and priority"
Formless->>Formless: AI generates typed schema
Admin->>Formless: Activates intake URL
Employee->>Formless: "My laptop won't connect to VPN and I have a client call in an hour"
Formless->>Formless: AI extracts + validates structured record
Formless->>Employee: (if incomplete) "What category best describes this — hardware, software, or network?"
Employee->>Formless: "Network"
Formless->>Destination: Structured JSON record → Jira / Slack / Webhook / Email
Under the hood, every submission runs through a four-pass pipeline designed to maximize extraction quality and minimize hallucination.
flowchart TD
A["📝 User submits plain English"] --> B
B["Pass 1 — Classification\nDoes this match the target schema?"]
B -->|Yes| C
B -->|No / wrong channel| Z["❌ Reject or re-route"]
C["Pass 2 — Extraction\nAI extracts structured fields\nfrom free-form text"]
C --> D
D["Pass 3 — Validation\nZod parses extracted JSON\nagainst the schema definition"]
D -->|All required fields present| E
D -->|Missing required fields| F
F["Pass 4 — Clarification\nAI generates ONE natural\nfollow-up question"]
F --> A
E["✅ Validated Record\nstored in database"]
E --> G["Route to destination\nWebhook · Slack · Jira · Email"]
Anywhere humans currently fill out structured forms:
- IT helpdesk — "My monitor is flickering and I have a presentation tomorrow"
- HR onboarding intake — "I'm starting Monday and need laptop + Slack access"
- Procurement requests — "Need 3 monitors for the new hires, budget around $400 each"
- Incident reports — "Production API threw 500s from 2–2:15pm, affecting checkout"
- Legal intake — "Vendor contract renewal due next month, standard SaaS terms"
- Customer support triage — routed, categorized, and summarized automatically
| Layer | Technology |
|---|---|
| Frontend + API | Next.js 14 (App Router, monolith-first) |
| AI Model | Groq API (llama-3.3-70b-versatile) — two-pass classify + extract |
| Structured Output | JSON mode + Zod runtime validation |
| Database | Supabase — PostgreSQL + Auth + real-time |
| UI | Tailwind CSS + shadcn/ui |
| Hosting | Netlify |
Formless schemas are defined in plain English by admins, then structured by AI. Example output for IT Tickets:
{
"name": "IT Support Ticket",
"fields": [
{ "name": "title", "type": "string", "required": true },
{ "name": "description", "type": "string", "required": true },
{ "name": "category", "type": "enum", "required": true, "values": ["hardware", "software", "network", "access", "other"] },
{ "name": "priority", "type": "enum", "required": true, "values": ["low", "medium", "high", "critical"] },
{ "name": "requester", "type": "string", "required": true },
{ "name": "affected_system", "type": "string", "required": false }
]
}| Phase | Status | Focus |
|---|---|---|
| Phase 0–1 | ✅ Complete | Foundation, schema builder, intake engine, clarification loop, auth |
| Phase 2 (partial) | 🔄 In progress | Slack ✅ · Webhook ✅ · Email (next) · Jira (planned) |
| Phase 3 | Planned | Multi-workspace support, analytics, usage billing |
See docs/ROADMAP.md for the full breakdown.
MIT © 2026 Otoniel Rojas