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/forms — forms.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 histogram8. 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-serviceHono 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/formsJS SDK published to npm -
@vlozi/forms/reactwidget 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.