Intake that routes itself.
Forms is conversational intake with branching logic and direct routing into Tasks, CRM, and Inbox. No code, no Zapier middle layer, no broken queues. Submissions land where the next action actually happens.
Five things, no plumbing.
Most form tools collect data. Forms collects data and starts the next step automatically. The intake queue is the work queue.
Conditions read previous answers, enriched fields, time, geo, and your own variables. No "if this then that" syntax. A natural-language editor compiles to a graph.
Email becomes company, role, headcount, region, tech stack. The form re-routes mid-flow based on enrichment. Powered by 8 enrichment providers, your keys.
A "sales" path opens a CRM lead. A "support" path opens a Tasks ticket. A "partner" path opens a Contracts NDA. The route is part of the form definition.
Same form renders as one-question-at-a-time conversational or as a classic multi-page form. The submitter chooses; you do not maintain two.
Email validation, disposable-domain block, IP reputation, soft CAPTCHA fallback, per-field tarpitting. Catches the bulk of bot traffic without challenging real humans.
Three steps, no integrations.
Forms is part of the platform, so the moving parts other tools require become first-class objects in the work graph.
Describe, do not configure
Type a paragraph describing what you want to collect and where it should land. The compiler produces a graph: questions, branches, validations, routing.
Enrich and branch
The form enriches as the submitter types. Branches react to enrichment. A small company sees three questions, an enterprise sees one form plus a calendar.
Route on submit
Each branch lands somewhere real. CRM lead, Tasks ticket, Contracts NDA, a calendar booking, a Slack channel, or a webhook to your own system. All in the form definition.
Nine features, all included.
Each is in the base plan. None requires a separate plug-in or per-submission upcharge.
Conversational or classic
One render, two surfaces. The submitter switches; you maintain one source of truth.
11 languages live
Auto-translate at form load, source language preserved on hover. Locale-aware validation.
GDPR + CCPA
Consent strings, lawful basis, retention rules, right-to-delete plumbing. Per-form.
Encrypted submissions
TLS 1.3 in transit and encryption at rest on every submission. Sensitive fields can be masked before they reach a downstream record.
File upload + scan
Up to 100MB per upload, virus-scanned, optionally PII-redacted on landing before storage.
Funnel analytics
Drop-off per step, time per question, conditional branch take-rate. A/B test built in.
Auto-responder
Personalized reply drafted per submission. Drafts visible to the recipient before send.
Embed anywhere
iframe, web component, popover, full page. Inherit your site's theme tokens automatically.
Webhook reliability
At-least-once delivery, 30-day replay, idempotency keys, signed payloads. Real production-grade.
Submissions route everywhere.
A form is intake. The data should not pile up in a separate database. It should arrive where the next action happens.
Five surfaces accept submissions natively
A demo request creates a CRM lead and a Tasks follow-up. A support intake creates a P2 ticket. A vendor onboarding spawns a Contracts NDA. A career application lands in Inbox with a draft reply. An NPS survey rolls up to Analytics.
Programmatic intake.
Create a form by declaration. Stream submissions. Sample TypeScript.
// Create a form, define routing, stream every submission. import { Wrx } from "@wrxstack/sdk"; const wrx = new Wrx({ token: process.env.WRX_TOKEN }); const form = await wrx.forms.create({ slug: "demo-request", describe: "Sales intake. Ask email, company, headcount, timeline. Enrich on email. Route >1000 headcount to enterprise AE, else to growth AE. Decline if disposable email.", on_submit: [ { kind: "crm.lead", source: "form:demo-request" }, { kind: "tasks.create", title: "Follow up: {{company}}", owner_by: "branch.ae_owner" }, { kind: "inbox.draft", to: "{{email}}", template: "demo-reply" } ] }); for await (const sub of wrx.forms.stream(form.id)) { console.log(sub.path, sub.routed_to); // path:"branch.enterprise", routed_to:["crm.lead/lead_xxx","tasks/ENG-2042","inbox/draft_8821"] }
Forms vs. Typeform.
Typeform makes a beautiful form. wrxstack Forms makes a beautiful form and then routes the data into the work graph.
wrxstack Forms vs. Typeform
| Capability | Typeform | wrxstack Forms |
|---|---|---|
| Branching depth | Logic Jumps, capped | Unlimited, condition-rich |
| Enrichment | Add-on, low quality | 8 providers, your keys |
| Routing on submit | Webhooks + Zapier | Native to CRM / Tasks / Inbox |
| Anti-abuse | Manual reCAPTCHA | IP + email + tarpit + soft |
| Locale / language | Translate per form | Auto + locale-aware validation |
| Pricing | Tiered per submission | Unlimited submissions, free to start |
| Audit / compliance | Basic export | GDPR, CCPA, retention rules |
Common questions.
Six things people ask before they ship a form.
Can I import a Typeform or Google Form?
Yes. Paste the URL or upload the JSON export. The importer preserves questions, branches, logic, validation rules, and translations. Custom theming carries over to the closest token set on your workspace.
How does the natural-language form builder handle complex logic?
The compiler turns your description into a graph and shows it. You can edit the graph or rewrite the description. Every branch and condition is named, so a future you can read it. The graph is the source of truth, not the prompt.
What enrichment providers do you support?
Clearbit, Apollo, ZoomInfo, Lusha, Hunter, Pipl, Cobalt, plus a fallback first-party provider. You bring your own keys and choose the order. Cost is passed through, not marked up. The form will gracefully degrade if a provider times out.
Can we run completely client-side?
Yes. The client-side mode validates and routes without any submission hitting our servers. It writes directly to your endpoints (or back to wrxstack via your own client key). Submissions are encrypted in transit with TLS 1.3 and encrypted at rest wherever they land.
How are submissions stored and retained?
Per-form retention policy with defaults of 90 days for sales intake, 180 days for support, and configurable for compliance. Right-to-delete propagates to all routed destinations. Legal hold is one click.
What about file uploads?
Up to 100MB per file, scanned on upload, optionally PII-redacted before storage. Files become first-class objects in Documents, indexed for Search, and viewable from the receiving record in CRM, Tasks, or wherever the form routes.
Pairs well with.
Forms does the most work when CRM, Tasks, and Inbox are live to receive the routed submissions.
Who this is not for.
Forms turns intake into routed work. If you run large-scale market research or academic studies that need branching survey logic, response panels, quotas, and statistical export, a dedicated survey platform will fit better. Forms is built to collect and route, not to run research at survey-panel scale.
Ship a smarter intake form today.
Free to start, no credit card. Unlimited submissions. The first routed lead lands within an hour of ship.