logicspike/docs

forms

Vlozi Forms — Product Vision

Last Updated: 2026-04-23 Status: Draft Service: apps/forms-service (planned) SDK: @vlozi/forms (planned)

The goal: Be the easiest way for a founder or creator to capture anything from the web — and the only forms backend that turns every submission into an enriched contact, scored lead, and actionable signal in their AI Brain.


1. Purpose (The Why)

Founders and creators bleed leads every day. They have a landing page with a contact form, a waitlist on a side-project, a feedback widget on a docs site, and a "book a demo" button on their pricing page. Each one of those is a separate inbox in a separate tool — Web3Forms emails them, Typeform stores them, Tally pings Slack, the contact form posts to a Google Sheet nobody reads.

The data sits in five places. Nobody is enriched. No one is scored. No one is followed up with. The lead dies in an email folder.

Vlozi Forms is the wedge product that fixes this — a Web3Forms-grade developer experience on the surface, with the entire Vlozi intelligence stack underneath. One form endpoint. One Contact record. One Brain that knows everything.

1.1 The "No One Else Can Do This" Insight

Every standalone forms tool ships submissions as email or webhook events. They are stateless inboxes. They cannot enrich, score, remember, or act, because they have no identity layer and no AI.

Every CRM (HubSpot, Pipedrive) has identity but ships clunky enterprise forms gated behind a $50/mo plan and 14 onboarding steps.

Vlozi sits in the gap: founder-grade simplicity, platform-grade intelligence. The same submission that arrives via a 3-line <form> tag becomes a fully enriched Contact in Contact Intelligence, surfaces in the AI Brain copilot, can trigger a chatbot follow-up, and shows up in the same dashboard as blog signups and chatbot leads.


2. Target Audience (The Who)

Persona Pain Today What Vlozi Forms Gives Them
Solo founder with a Next.js landing page Submissions go to email, lost in inbox, no follow-up system Form → Contact → AI Brain says "hot lead, follow up today"
Indie hacker running a waitlist Tally + ConvertKit + Notion in 3 separate tabs One endpoint, one contact list, one drip sequence
Creator with a feedback widget on docs Anonymous submissions pile up, no way to reply Contact-aware feedback — same person across blog, chat, form
Agency managing 10 client landing pages One Web3Forms account per client, no consolidation Per-tenant workspaces, unified intelligence per client
Side-project dev prototyping fast Wants <form action="..."> and done API key + endpoint, zero JS required, works in a static HTML file

3. The Three Pillars

┌─────────────────────────────────────────────────────────────────┐
│                       Vlozi Forms                                │
├──────────────────┬──────────────────┬───────────────────────────┤
│   📥 Capture      │   🧠 Intelligence │   ⚡ Action                │
│                  │                  │                           │
│  Catch from      │  Enrich every    │  Route, notify, and       │
│  anywhere        │  submission      │  follow up automatically  │
├──────────────────┼──────────────────┼───────────────────────────┤
│ HTML form action │ Contact merge    │ Email / Slack / Discord   │
│ JSON API         │ Lead scoring     │ Webhook fan-out           │
│ JS SDK           │ Spam filtering   │ AI Brain notifications    │
│ React widget     │ Geo + UA enrich  │ Chatbot handoff           │
│ Embed builder    │ Field validation │ Newsletter auto-subscribe │
│ No-code builder  │ Mood/intent      │ Auto-reply (LLM)          │
└──────────────────┴──────────────────┴───────────────────────────┘

Pillar 1 — Capture 📥

Submission ergonomics that match or beat Web3Forms.

Feature Description
HTML-only mode <form action="https://forms.vlozi.app/f/{form_id}" method="POST"> — works in any static HTML, zero JS, zero build step
JSON API POST /f/{form_id} with JSON body — for SPAs, mobile apps, server-side capture
JS SDK @vlozi/formsforms.submit(formId, data) with built-in retries, offline queue, and progress callbacks
React widget <VloziForm formId="..." /> — drop-in styled component with validation, success/error states, theme tokens
Embed builder Hosted form page at forms.vlozi.app/embed/{form_id} — for users with no website
No-code builder Drag-and-drop form designer in the seller dashboard — generates the embed snippet
Field types Text, email, phone, number, date, select, multi-select, checkbox, file upload, rating, signature, hidden meta
Conditional logic Show/hide fields based on prior answers — built into the renderer
File uploads Direct-to-R2 via signed URLs, no traffic through forms-service
Honeypot + rate limit Built-in bot defense without CAPTCHA friction
CAPTCHA (optional) Turnstile/hCaptcha integration for high-spam endpoints
CORS allowlist Per-form domain restrictions to prevent endpoint abuse

Pillar 2 — Intelligence 🧠

This is the moat. Every other forms tool stops at "submission received." Vlozi starts there.

Feature Description
Contact merge Submissions with the same email/phone collapse into one Contact in Contact Intelligence
Auto-enrichment Geo (from IP), device/browser (from UA), referrer source, UTM params — captured silently on every submit
Identity stitching Form submission + chatbot conversation + blog newsletter signup → same Contact, full timeline
Lead scoring Configurable rules + AI-derived score: intent signals, recency, message length, return visits, channel mix
Intent classification Lightweight LLM call categorizes submission: sales_lead, support, feedback, spam, partnership, careers
Mood detection Same mood classifier from Contact Intelligence — flag angry support tickets, excited buyers
Spam filtering Multi-layer: honeypot + rate limit + content classifier (LLM) + reputation scoring
Field validation Server-side Zod schemas per form definition — reject malformed submissions before they create noise
Duplicate detection Same email submitting twice in 5 min → merge into one event, not two contacts

Pillar 3 — Action ⚡

Submissions are useless if nothing happens. Vlozi Forms is opinionated about follow-up.

Feature Description
Email notifications Owner gets an email per submission (or batched digest), via the communication service
Slack / Discord / Telegram Per-form channel routing, formatted as rich cards
Webhooks Standard webhook fan-out with retries, signing, and replay — for users who want their own pipeline
AI Brain inbox Submissions surface in the Brain copilot: "3 new leads today, 1 high-intent — want me to draft replies?"
Chatbot handoff High-intent submissions trigger a proactive chatbot ping on the user's next visit
Newsletter auto-subscribe Opt-in checkbox → contact added to the matching newsletter list
Auto-reply (LLM) Optional: generate a personalized acknowledgment based on submission content + Contact memory
Outreach triggers Hook into Contact Intelligence's outreach engine — schedule follow-up sequences from form submissions
CRM-style inbox Dashboard view: submissions list, filter by intent/score/status, mark as handled, assign to team member

4. Architecture Overview

4.1 System Flow

4.2 Service Boundaries

Concern Owner
Form definition CRUD, submission ingestion, spam filtering, enrichment, webhook fan-out Forms Service (apps/forms-service)
Contact merging, identity stitching, memory storage Contact Intelligence (existing)
Lead scoring rollups, copilot inbox, "draft a reply" tool AI Brain (existing)
Email/Slack/Discord delivery Communication Service (existing)
File uploads (multipart/form-data fields) Media Service (existing — signed URLs to R2)
API key auth, rate limiting, tenant isolation Gateway (existing)

IMPORTANT

Vlozi Forms is net-new code only at the Forms Service layer. Every other capability already exists in the platform and is consumed via internal API. This keeps the build small and the moat large.


5. Integration with the Vlozi Ecosystem

This section is the doc's load-bearing argument. Every entry below is something a standalone forms tool cannot offer.

Touchpoint What Happens
Blog signups (@vlozi/blog) Newsletter form on a blog post → same Contact as the comment author + the chatbot user
Chatbot conversations High-intent form submission → chatbot greets the visitor next session: "Hey, saw you asked about pricing yesterday — want a 5-min walkthrough?"
Contact Intelligence memory Form's "What are you trying to build?" answer becomes a long-term memory on the Contact — referenced by the AI in every future interaction
AI Brain copilot Founder asks: "Who signed up via the pricing form this week?" → Brain queries forms-service + contact-intel and replies with names, scores, and suggested actions
Newsletter Service Opt-in checkbox auto-adds Contact to the matching list, with merge tags pre-filled from form fields
Content Engine Form-triggered drip sequences: submit → 3-email sequence over 7 days
Communication Service All notifications (email/Slack/Discord) flow through the existing per-tenant communication setup, not a separate provider
Billing Submissions, file uploads, and AI enrichment calls all meter against the same tenant credit balance — no separate Forms quota
Team / PBAC forms:read, forms:write, forms:submissions:export permissions integrate with existing role system

6. Data Model (Initial)


7. Public API Surface (Sketch)

# Submission (public — API key in URL or header)
POST   /f/:form_id                     → Submit form (HTML or JSON)
GET    /f/:form_id/schema              → Get form schema (for SDK rendering)
POST   /f/:form_id/files/sign          → Get signed R2 upload URL
 
# Admin (JWT auth, requires forms:write)
POST   /forms                          → Create form
GET    /forms                          → List forms
GET    /forms/:id                      → Get form
PUT    /forms/:id                      → Update form (schema, settings, routing)
DELETE /forms/:id                      → Archive form
POST   /forms/:id/duplicate            → Clone form
 
# Submissions inbox
GET    /forms/:id/submissions          → List with filters (status, intent, score)
GET    /submissions/:id                → Get submission detail
PATCH  /submissions/:id                → Update status (handled, spam)
POST   /submissions/:id/reply          → Send reply via communication service
GET    /forms/:id/submissions/export   → CSV / JSON export
 
# Webhooks
POST   /forms/:id/webhooks             → Register webhook
GET    /forms/:id/webhooks/deliveries  → List delivery attempts
POST   /webhook-deliveries/:id/retry   → Manual retry
 
# Public stats (for dashboard widgets)
GET    /forms/:id/stats                → Submissions count, intent breakdown, score histogram

8. Developer Experience (The Web3Forms Litmus Test)

The pitch only works if the 30-second demo is shorter than Web3Forms's. Here is the floor.

HTML-only — zero dependencies, works in a static file:

<form action="https://forms.vlozi.app/f/form_abc123" method="POST">
  <input name="email" type="email" required />
  <input name="message" required />
  <button type="submit">Send</button>
</form>

JS SDK — same data, programmatic submit:

import { Vlozi } from '@vlozi/forms'
 
const vlozi = new Vlozi({ apiKey: 'pk_...' })
 
await vlozi.forms.submit('form_abc123', {
  email: 'jane@acme.com',
  message: 'Interested in a demo',
})

React widget — fully styled, validated, accessible:

import { VloziForm } from '@vlozi/forms/react'
 
<VloziForm
  formId="form_abc123"
  onSuccess={(submission) => router.push('/thanks')}
/>

NOTE

The @vlozi/forms SDK should be installed from npm in apps/website to dogfood the published package — same convention as @vlozi/blog.


9. Implementation Phases

Phase 1 — MVP Forms Backend (Web3Forms Parity)

  • apps/forms-service Hono app scaffold + DB migrations
  • Form CRUD (admin API)
  • Public submission endpoint (HTML + JSON)
  • Basic field validation (Zod from form schema)
  • Honeypot + rate limit spam defense
  • Email notification on submission (via communication service)
  • CORS allowlist enforcement
  • Submission list view in seller dashboard

Phase 2 — SDK & Widget

  • @vlozi/forms JS SDK published to npm
  • @vlozi/forms/react widget with theme tokens
  • No-code form builder in dashboard
  • Hosted embed page (forms.vlozi.app/embed/:id)
  • File uploads via signed R2 URLs

Phase 3 — Intelligence Layer (The Moat)

  • Contact Intelligence integration (auto-merge by email/phone)
  • Auto-enrichment (geo, UA, referrer, UTM)
  • Intent classifier (LLM)
  • Lead scoring (rules + AI)
  • Mood detection on free-text fields
  • AI Brain inbox surfacing + "draft a reply" tool

Phase 4 — Action & Routing

  • Webhook fan-out with retries + signing
  • Slack / Discord / Telegram channel routing
  • Newsletter opt-in integration
  • Chatbot handoff trigger
  • Auto-reply LLM generation
  • Outreach trigger creation in Contact Intelligence

Phase 5 — Advanced Builder

  • Conditional logic in form schema
  • Multi-step forms
  • Payment fields (Razorpay / Stripe collect)
  • Signature, rating, ranking field types
  • CAPTCHA integration (Turnstile / hCaptcha)
  • A/B testing for forms (variant assignment)

10. Pricing Strategy

The free tier is the distribution channel. Don't gate basic capture.

Tier Submissions / mo Forms Intelligence Notes
Free 250 3 None Email notifications only — pure Web3Forms replacement
Starter 2,500 10 Enrichment + intent Slack/webhook routing
Growth 25,000 Unlimited Full intelligence + AI Brain inbox Auto-reply, chatbot handoff
Scale Custom Unlimited All + dedicated routing SLA, SAML, audit logs

IMPORTANT

Intelligence features are the upsell, not the gate. Free users get a working forms backend so they have a reason to sign up; intelligence is what they pay for once they feel the pain of unenriched leads.


11. Competitive Positioning

Feature Web3Forms Formspree Tally HubSpot Forms Vlozi Forms
HTML-only mode
Free tier 250/mo 50/mo Unlimited Limited 250/mo
File uploads
Spam filtering Basic Basic Basic Advanced LLM-based
Auto-enrichment ✅ (CRM) ✅ (built-in)
Intent classification Manual ✅ (AI)
Identity across products ✅ (CRM only) ✅ (chat + blog + form)
AI copilot inbox
Chatbot handoff
Auto-reply (LLM) Templates ✅ (contextual)
Newsletter integration Zapier Zapier Native Native Native (own service)
Multi-tenant agency mode Limited Enterprise
Pricing entry point Free Free Free $50/mo Free

Our edge in one line: Web3Forms's developer experience, with HubSpot's intelligence, at Tally's price — and it shares one Contact record with your blog, chatbot, and AI Brain.


12. What "Done" Looks Like

For the Founder (Form Owner)

"I dropped a <form> tag on my landing page. When someone submits, I get a Slack ping that says 'New high-intent lead — Jane from Acme, asking about pricing, score 87/100, here's what she said.' I open the Brain copilot and ask 'draft a reply' — it writes one referencing her exact question. I send. Tomorrow, when Jane comes back, the chatbot greets her by name."

For the Developer (SDK Consumer)

"I installed one npm package, got an API key, and had a fully functional form on my Next.js site in under 5 minutes. The widget is themed with my CSS variables, validation works server-side, files upload directly to storage, and the submissions show up in a dashboard that looks like a real CRM, not an inbox."

For Vlozi (Platform)

"Forms is the cheapest customer acquisition channel we have. Devs land via Web3Forms-style search intent, hit the free tier, see their submissions auto-enriched in the Brain, and convert to Starter the moment they want intent classification. Every form user is also a candidate for blog, chatbot, and newsletter — the cross-sell writes itself."


13. Open Questions

Question Owner Resolution Target
Endpoint domain: forms.vlozi.app/f/:id vs vlozi.app/f/:id for portability? Dipanshu Before Phase 1
Should free tier include Contact Intelligence merge (no scoring), or zero intelligence? Dipanshu Before Phase 3
Build no-code form builder in dashboard before SDK ships, or after? Dipanshu Before Phase 2
File upload size limits per tier — what's the spam-vs-utility balance? Dipanshu Before Phase 2
Should the form schema be JSON Schema, Zod-as-JSON, or a custom DSL? Dipanshu Before Phase 1

14. Next Artifacts (Per Planning Standard)

This vision doc is Phase 1 of the LogicSpike Planning Standard. Before implementation, the following companion docs need to be drafted:

  • docs/forms/user-journey.md — Personas + step-by-step flows (founder embedding a form, visitor submitting, owner triaging the inbox, chatbot handoff in action)
  • docs/forms/adr-architecture.md — ADR for endpoint design, schema format, file upload path, intelligence pipeline
  • docs/forms/domain-model.md — Entities, state machines (submission lifecycle), relationships
  • docs/forms/api-spec.md — Full REST contract with request/response shapes and error codes
  • docs/forms/implementation-plan.md — Phase-by-phase checklist with file-level breakdowns

This is the north star. Vlozi Forms is not "another forms tool." It is the front door to the Vlozi platform — the moment a founder realizes that every other thing they signed up for is now obsolete because Vlozi does it all, and the data finally lives in one place.

forms