May 2026
Two improvements shipping together today.
Generation recovery. When an Intake Bot generation job times out, the spinner card used to stay there permanently. The only fix was to know that deleting the bot would clear it, which most people didn’t know. Now stale jobs are treated as recoverable. Delete actions mark a timed-out job as failed before cleanup, so the card resolves cleanly. Runtime AI-generated content blocks also have a fallback path: if the AI call fails at runtime, the block falls back to the authored copy, or to a localized message if no copy is present. No more blank blocks.
QR code downloads. The Intake Bot Sharing Hub now includes a QR Code option. Preview the code, copy the linked public URL, or download a PNG for use in printed materials, event signage, or offline distribution. The QR code updates automatically when you change the bot’s public slug.
Both updates are available on all plans.
Included in this release
Stale Intake Bot generation jobs are now treated as recoverable instead of leaving users trapped behind spinner cards. Delete actions can mark timed-out jobs failed before cleanup, and runtime AI-generated content blocks now fall back to authored copy or a localized message if the AI call fails.
The Intake Bot Sharing Hub now includes QR Code as a sharing method. Users can preview the code, copy the linked public URL, and download a PNG for print or offline distribution.
The new Ludicrous tone is for intake bots that are supposed to be fun. Demo bots. Showcase bots. Bots where the point is to show off what ioZen can do.
Ludicrous unlocks all 9 Magic Moment kinds with no budget cap. Other tones limit how many effects the AI can place and which kinds are available. Ludicrous removes both restrictions. The AI also picks intensity (subtle, standard, or epic) per content block based on context, rather than locking everything to a single level.
The plan AI now selects Ludicrous automatically when the prompt asks for a showcase, demo, or “all the magic moments” experience. If you’re building something for your own portfolio or trying to show a client what ioZen is capable of, describing that in the prompt is enough to activate it.
Non-Ludicrous bots are not affected. Their intensity policy continues to follow the tone’s configured level.
Available on all plans.
Included in this release
New 'Ludicrous' tone for comedy-first and showcase intake bots. Unlocks all 9 Magic Moment kinds with no budget cap, and lets the AI pick intensity (subtle, standard, or epic) per content block. The plan AI picks Ludicrous automatically when the prompt asks for a showcase, demo, or 'all the magic moments' experience. Epic intensity on content blocks is now supported and preserved end to end for Ludicrous bots; non-Ludicrous bots continue to have intensity forced to their tone's policy level.
Content blocks can now do something besides show text. Add a Magic Moment and the block triggers an ambient effect when the respondent reaches it.
Nine effects are available: confetti, fireworks, thunderstorm, deep-breath, gong, dramatic-explosion, drama-curtain, rainbow-portal, and flying-unicorn. Each runs in three intensities: subtle, standard, and epic. A kind picker in the block editor replaces the old toggle so you can see and choose exactly what you’re adding.
Performance. Each effect is lazy-loaded independently. If a bot has no Magic Moments, zero bytes are shipped for them. A bot using only confetti loads only the confetti code. Effects respect prefers-reduced-motion and Save-Data. There’s also a bot-level kill switch in settings to disable all effects at once.
AI selection. The AI skeleton generator now picks Magic Moment kinds based on the bot’s tone. Playful bots can receive up to two effects from the full library. Warm bots get one effect from a curated set (deep-breath, gong, confetti, drama-curtain, fireworks). Professional and formal bots receive none. Celebration effects you configure manually are preserved when you regenerate.
Available on all plans.
Included in this release
Content blocks can now trigger one of six ambient celebration effects — confetti, fireworks, thunderstorm, deep-breath, gong, or dramatic-explosion — each with subtle, standard, and epic intensity modes. A kind picker replaces the old toggle in the block editor. Effects are lazy-loaded per kind (zero bytes shipped for unused kinds), respect prefers-reduced-motion and Save-Data, and include a bot-level kill switch in settings. The AI skeleton generator can now suggest any ambient kind.
Three new ambient celebration effects for content blocks: drama-curtain (velvet stage curtains sweep open), rainbow-portal (a swirling rainbow portal blooms and dissolves), and flying-unicorn (a unicorn glides past trailing a rainbow streak). Each is lazy-loaded, ships zero bytes when unused, respects prefers-reduced-motion and Save-Data, and is available to the AI skeleton generator so it can pick contextually for the bot's tone.
The AI skeleton generator now picks Magic Moment kinds based on the bot's tone. Playful bots can use 2 effects from the full library; warm bots get 1 effect from a curated subset (deep-breath, gong, confetti, drama-curtain, fireworks); professional and formal bots continue to receive no effects. Manually-authored celebrations on existing blocks are preserved across regeneration runs.
When AI Document Extraction launched, it only worked on top-level file questions. Any file field inside a conditional branch was excluded.
That limit is gone. Extraction can now be enabled on file questions at any nesting depth. The runtime extractor finds the uploaded document regardless of where in the conversation tree it lives, and fills the child answers correctly.
Two other improvements shipped at the same time. Generated child questions no longer include a redundant photo upload or location field below the file you just uploaded. Those were noise in the conversation and they’re removed. And the AI extraction panel in the field editor now shows which child questions are tied to the extraction, so builders can see exactly what will be pre-filled at runtime.
Available on Pro, Business, and Enterprise.
Included in this release
AI extraction can now be enabled on file questions placed inside conditional branches, not just top-level questions. The runtime extractor correctly fills child answers regardless of how deeply the file question is nested. Generated child questions also no longer include redundant photo upload or location siblings beneath the file you just uploaded.
April 2026
File upload questions now do more than collect a document. Point ioZen at any file field, enable AI extraction, and the bot reads the uploaded file and fills in the answers for the respondent.
Upload a driver license and the name, address, and date of birth fields complete on their own. Upload an invoice and the account number, total, and date pull out cleanly. Upload a utility bill and the service address is already there when the respondent gets to that question.
How it works. Builders configure the feature in the field panel: toggle AI extraction on, add a document hint describing what kind of document to expect (for example, “US driver license” or “electricity bill”), and optionally generate child questions automatically from a sample document. The generated child questions use the same conditional logic editor as any other field and support nested branching.
At runtime, respondents see a “Reading your document…” indicator while ioZen processes the upload with vision AI. Fields that meet the 60% confidence threshold fill automatically. Fields that don’t stay blank for the respondent to fill in manually. The respondent then reviews every pre-filled answer before the conversation continues.
Where it lives. AI Document Extraction is available on file upload questions at any position in the conversation. Builders on Pro and above can enable it. The child questions it generates behave like any other field.
Available on Pro, Business, and Enterprise.
Included in this release
File upload questions can now be configured with AI extraction. When a respondent uploads a document (driver license, utility bill, invoice, passport, etc.), ioZen analyzes it with vision AI and automatically prefills a set of child questions — name, address, date of birth, account number, and more. Respondents see a live 'Reading your document...' progress indicator, then review and confirm each extracted answer. Builders configure the feature in the field panel: enable AI extraction, add a document hint (e.g. 'US driver license'), and optionally generate the child questions automatically from a sample document. Generated child questions use the same conditional logic editor and support nested branching. Runtime extraction respects a confidence threshold (default 60%) — low-confidence fields remain blank for the respondent to fill manually. Available on Pro plans and above.
The biggest release since Submission Intelligence, all shipping at once: voice input across every field type, a rebuilt mobile chat, an AI that pauses to explain its plan before it builds anything, an Integrations directory, in-product feedback bots, and a four-tier pricing structure with a real Enterprise option.
Voice on every field. Respondents can dictate answers anywhere now. Text and textarea fields stream live transcription with a light AI polish for capitalization and punctuation. Email, phone, URL, number, date, boolean, and select fields go through a typed extraction pipeline that turns speech into structured values. “Next Friday at 3pm” becomes an ISO date. “Five five five one two one two” becomes a phone number. “All except YouTube” selects every option but YouTube. Voice ships on by default for new bots, in EN and ES, and audio never leaves the device.
Mobile-first intake chat. The public chat was rebuilt around a single persistent composer that stays mounted across every field transition. The iOS virtual keyboard no longer dismisses between questions. Advancing through text, email, date, select, geolocation, and file fields feels continuous. Zero keyboard pops, zero viewport jumps, zero flicker. The advance button sits in the same pixel position on every field, whether it shows Continue, Skip, or Send.
An AI that pauses to explain itself. The Smart FlowApp Wizard and onboarding conversation now draft a short conversation plan (goal, audience, beats, branches to honor, priority signal) and pause for your approval before generating the schema. Approve to build, or describe what you want changed and the AI refines the plan. You stay in the loop on branching logic before any schema is written, which catches obvious problems early. Like asking someone to upload a file before checking whether they have one.
Generation that’s faster and calmer. Bot generation now runs as a multi-pass pipeline: a creative model writes the conversation, then a separate reasoning model enriches each field with intelligent extraction, follow-up behaviors, and validation. Bots arrive with content blocks personalized via template variables and a single Voice Pack that keeps tone consistent from welcome to farewell. We upgraded every AI surface to the latest model generations with automatic fallback, fixed a truncation bug that was silently cutting off long generations, and tuned the failure UI so transient provider hiccups no longer flash a red “Generation failed” message on bots that ultimately succeed.
A new home for everything else. The sidebar got a refresh with a workspace switcher and a FlowApp switcher you can use from anywhere. There’s a new Integrations directory listing 25+ destinations across marketing, automation, CMS, CRM, email, and productivity. Each card deep-links to the right setup path. Two in-product bots collect feedback and integration requests with full context attached as hidden fields. Wizards persist their state to localStorage so a refresh or browser restart no longer loses your place. Every published IntakeBot gets a dynamic Open Graph image rendered from its design tokens, so links shared on WhatsApp, iMessage, Slack, and the rest render a branded preview instead of a favicon. And bot share URLs are now customizable: pick a memorable slug from Settings and the public link, embed code, and QR code all update together.
Four tiers, with a real Enterprise option. Pricing has been restructured. Unlimited submissions are now included on every paid plan, forever. Pro is 3 FlowApps, 5 IntakeBots, and 5,000 contacts. Business is 10 FlowApps, 20 IntakeBots, 25,000 contacts, and 50 GB of storage. Enterprise starts at $500/mo and includes unlimited everything, SSO/SAML, a custom domain, white-label, 50,000 AI credits per month, and a dedicated CSM. Enterprise is custom-billed. Inquiries route through an in-product intake bot, not Stripe. Drafts and archived bots no longer count toward your published-bot limit either, so you can iterate or archive freely.
Included in this release
Every AI surface in ioZen has been upgraded to the latest available model generation, with automatic fallback to the prior stable model if the new one is unavailable. This covers intake bot generation, voice transcript polish, voice field extraction, contact import mapping, content block generation, field label suggestions, and vision extraction. A bug that caused AI responses to get silently truncated mid-output has been fixed, so generated bots no longer arrive with cut-off fields or incomplete welcome messages. The net result is faster completions and better extraction quality on complex inputs.
Restructured subscription pricing into four tiers: Free, Pro, Business, and Enterprise. Unlimited submissions is the headline feature, available on every paid plan, forever. Pro and Business have tighter caps on Intake Bots and FlowApps that better reflect actual usage and create a clearer path to the next tier. Enterprise is a custom-billed tier starting at $500/mo with a dedicated CSM, SSO/SAML, custom domain, custom CSS, and 50,000 AI credits per month. Enterprise inquiries are handled via an in-product intake bot.
Only published Intake Bots now count toward your plan's bot limit. Drafts and archived bots are free, so you can iterate on designs, test different conversation structures, or keep old bots archived without eating into your slot count. The usage card and billing summary now both show "Published Intake Bots" to make this clear. This also fixes a bug where archiving a bot did not free up its slot for Pro customers.
The sidebar has been updated with new ioZen logo marks, a redesigned workspace switcher that lets you jump between workspaces from anywhere in the app, and a dedicated FlowApp switcher for moving between active FlowApps without losing your place. The Integrations section now appears in the sidebar nav alongside the existing groups.
Every IntakeBot ships with a readable, customizable share URL slug. Pick a memorable identifier from the Settings tab (4–40 characters, lowercase letters, numbers, and hyphens) and the public link, embed code, and QR code all update in lockstep. Uniqueness is enforced globally and validation runs client- and server-side to keep the URL clean.
The "Regenerate" button on the AI conversation plan card has been replaced with prompt-driven "Refine". Tell the AI exactly what to change — tighten the audience, add a qualification branch, drop a beat, switch the priority signal — and it responds with a short summary of what it adjusted plus a new plan for review. Available in the Smart FlowApp Wizard, Smart IntakeBot Create, and Conversational Onboarding.
When a workspace records its first non-test submission, ioZen fires a full-screen celebration with confetti, the respondent's name, and a direct link to the submission. The moment is delivered in real time via Supabase Broadcast if you're online and surfaces on next login otherwise. Dismissed once per workspace so it never overstays its welcome.
FlowApp and IntakeBot AI generation no longer flash a red "Generation failed" bubble on the first transient provider hiccup. The failure state is surfaced only after QStash has exhausted its retry budget. A dedicated generation banner on the FlowApp detail page streams live progress while a background job is running, and a resume banner on the FlowApps listing recovers sessions where the final workflow-wiring step was interrupted. Discard is always one click away.
Two ioZen-powered popup bots now live inside the product. "Send feedback" is available from the user menu and dashboard header and branches between bug, feature, and question. "Request integration" lives on the Integrations page header and inline footer and is category-aware. Each submission carries rich context as hidden fields — workspace, plan tier, locale, source route, and browsing category — so the team sees exactly where a request is coming from.
A new Integrations page under every workspace lists 25+ integrations across Marketing, Automation, CMS, CRM, Email, and Productivity. Each card carries a status badge (Native, Via Webhook, Guide, Coming Soon) and deep-links straight to the right configuration path — webhook setup for automations, platform-specific embed guides for CMSes, and a clear request flow for integrations still on the roadmap.
Smart FlowApp Wizard, Smart IntakeBot Create, and Conversational Onboarding now persist their in-flight state — phase, FlowApp/IntakeBot id, and correlation id — to localStorage. Close the tab, reload the app, or come back tomorrow and the wizard rehydrates the latest plan or proposal from the server on mount. Dedicated resume banners on the FlowApps listing and FlowApp detail pages make an unfinished session impossible to miss, with clean paths to continue or discard.
Every AI-generated intake bot now arrives with intelligent field configurations already applied. Name and identity fields automatically extract clean values from conversational responses ("Hi, I'm Jay Moreno" saves as "Jay Moreno"). Open-ended questions get AI follow-up behaviors that guide respondents toward complete, actionable answers. Email, phone, and URL fields are reliably detected and typed correctly, with proper mobile keyboard and validation support.
When your intake bot asks "How should we reach you?" and branches into email, phone, or other channels, the contact mapping now correctly identifies the respondent's contact info regardless of which branch they take. Email and phone fields in conditional branches share a unified identity so your CRM integration always finds the right value.
Intake bot generation now uses a multi-pass pipeline: a creative AI writes the conversational structure, then a separate reasoning model enriches each field with intelligent follow-up behaviors, value extraction, and validation rules. The result is faster generation, more reliable output, and richer bots out of the box — with AI-powered content blocks, template variable personalization, and per-field intelligence configurations applied automatically.
Creating a new intake bot from the Smart Wizard is now faster and more direct. After the AI generates your bot, it's automatically created and ready to customize — no intermediate summary screen to review. This matches the onboarding experience and gets you to your bot editor sooner.
During onboarding, the ioZen bot now shows a live 5-step checklist and a narrated discovery feed while it learns about your organization from your website. You'll see which hostname was visited, how many pages were discovered and read, and what the AI is currently analyzing — with rotating hints during the slower profile-extraction step. The percent bar advances across all steps and a stall warning surfaces if the job takes longer than expected. Replaces the previous single-line typing indicator.
Schema generation is now lighter. Welcome and farewell copy run as a dedicated parallel pass so the main generation step finishes faster. Background retries are tuned and the progress UI waits longer before showing a failure on the longest step, so transient slowdowns no longer flash a 'Generation failed' message on bots that ultimately succeed.
The public Intake Bot chat has been rebuilt around a persistent composer architecture: a single text input stays mounted across every field transition, so the iOS virtual keyboard no longer dismisses between questions. Advancing through text → email → date → select → geolocation → file → content block feels continuous — zero keyboard pops, zero viewport jumps, zero flicker. Per-field affordances (calendar popover, file drop zone, geolocation capture with map preview, option chips) render above the composer with consistent spacing, typography, and focus management. A universal right-slot advance button (Continue / Skip / Send) sits in the same pixel position on every field so muscle memory carries across the whole chat. Compact layout auto-engages on phone-sized viewports and stays stable through keyboard open/close events. Messages are bottom-anchored and no longer jump on transition. Typed input on date and geolocation fields now flows through the same AI parsing pipeline as voice, so 'tomorrow at 3pm' or an address typed by a hardware keyboard both resolve cleanly. Geolocation capture shows a map preview above the composer before the user confirms. All four chat surfaces — public view, test field dialog, test content block dialog, and Smart Create preview — share the same refactored input area, so every improvement lands everywhere at once.
AI-generated intake bots now produce longer, more thorough conversations. Template variables are placed more intentionally throughout the flow for a natural, personalized feel without the bot feeling mechanical. Generation plans now carry stable per-row IDs, laying the groundwork for inline plan editing.
Every newly-created Intake Bot now ships with voice input enabled by default, so respondents can dictate answers on email, phone, URL, number, date, select, multi-select, and boolean fields without the creator flipping a setting first. Text and textarea already had always-on voice polish. Existing Intake Bots are untouched — their current voice setting is preserved exactly. Creators can still toggle voice off at any time in the bot's settings. Bots duplicated from an older bot keep the original voice setting; bots duplicated from a newer bot keep voice on. The voice language follows the bot's configured language (EN or ES), not the creator's browser locale.
AI-generated bots now share a single Voice Pack across every step. Questions, follow-ups, content blocks, and welcome/farewell messages all stay on-voice from start to finish. Playful intakes stay playful; formal intakes stay precise.
The IntakeBot wizard, FlowApp wizard, and onboarding conversation all now produce AI-generated content blocks automatically when the use case benefits from personalization — recaps, tailored recommendations, context-specific encouragement. Each AI block references prior answers via template variables so the output is grounded in the individual respondent. Static plain and rich content blocks remain available when exact copy matters (legal, pricing). Available on every plan; each AI block consumes one AI credit at runtime.
The Smart FlowApp Wizard and onboarding conversation now draft a short, structured conversation plan — goal, audience, conversation beats, branches to honor, and priority signal — and pause for your approval before generating the schema. Approve to build, or regenerate for a fresh draft. The plan phase shows a live mini checklist with rotating hints so you can see what the AI is thinking, and each beat and branch streams into the plan card as it's written. This keeps you in the loop on branching logic (for example, asking whether a respondent has a file before asking them to upload one) before any schema is written, improving the quality and structure of the generated FlowApp.
Every published Intake Bot now generates a 1200×630 Open Graph image on the fly, so links shared on WhatsApp, iMessage, Twitter, LinkedIn, Slack, Discord, and Facebook render a rich, branded preview instead of a generic favicon. The image is rendered dynamically from the bot's design tokens — primary color, background, template, avatar, and welcome message — so it matches the live chat pixel-for-pixel without any setup. Twitter large-card metadata is included. The 'Powered by ioZen' wordmark is added in the corner, and is automatically removed on plans that include Remove ioZen Branding. Images are cached forever at the edge using a versioned URL (`?v={updatedAt}`), so edits propagate immediately on the next share while existing previews stay fast.
Respondents can dictate answers on every field a bot supports. Text and textarea fields stream live interim transcription and get a light AI polish for capitalization and punctuation without changing meaning. Email, phone, URL, number, date, boolean, single-select, and multi-select fields go through a typed extraction pipeline that turns speech into structured values — 'next Friday' becomes an ISO date, 'five five five one two one two' becomes a phone number, 'all except YouTube' selects every option but YouTube, 'también añade verde' appends to an existing multi-select. Low-confidence and ambiguous extractions surface an inline banner so the respondent can correct them. Parsed values are announced to screen readers via a polite aria-live region for accessibility parity. Built on the Web Speech API — audio never leaves the device except via the browser's own speech service. Supports EN and ES, respects the Intake Bot's configured language, and is hidden automatically on browsers without microphone support.
When an IntakeBot field is optional, the Send button used to sit there disabled until the visitor typed something. Nothing told them they could move on. Some people probably sat there wondering if the bot was broken.
Now optional fields show a Skip button. Tap it to move to the next question without typing anything. Start typing and it switches to Send with a smooth animation so the change feels intentional, not glitchy.
Works in English and Spanish. Available on all plans.
Included in this release
Optional fields in Intake Bot conversations now show a dedicated Skip button instead of a disabled Send button when left empty. The button animates between Skip and Send states as the user types, with full i18n support (EN/ES). Improves completion rates by making it obvious that optional questions can be skipped.
Two quality-of-life improvements shipping together.
Draft session resume. When a visitor starts an IntakeBot conversation and leaves before finishing, they can now come back and pick up where they left off. The next time they open the same bot, a prompt gives them the choice to continue their previous session or start fresh. Sessions expire after 24 hours, and the system detects schema version changes so a stale draft doesn’t confuse anyone. Works across all embed modes: inline, popup, and floating widget.
This should help with completion rates on longer intake flows where people get interrupted mid-conversation.
AI Value Extraction. This is the third AI mode in AI Field Intelligence, alongside Socratic Negotiation and Strict Validation. Value Extraction runs silently when a respondent’s answer contains conversational noise. If someone types “Hi, my name is Pedro Navajas” into a Name field, the AI extracts “Pedro Navajas” and saves that without showing the full raw response back to the user. When no value can be found, the bot generates a natural re-prompt instead of repeating the original question verbatim.
The number of re-prompt retries is configurable per field, from 0 to 3, with a default of 1. The AI wizard automatically applies extraction on name and identity fields when generating new bots.
Both features are available on all plans.
Included in this release
Public Intake Bot visitors can now resume an unfinished submission after refreshing or re-entering the page. A lightweight localStorage pointer reconnects to the in-progress server record, and a prompt lets users continue where they left off or start over. Schema version changes and session expiry are handled automatically. Works across all embed modes with graceful degradation.
New Extract Value AI mode silently normalizes conversational field responses before saving. When users respond with greetings or extra text (e.g., 'Hi, my name is Pedro'), the system extracts just the relevant value ('Pedro') using the same 1 AI credit per call as other AI field intelligence modes. When no value is found, the bot re-prompts with a natural, AI-generated nudge (e.g., 'Thanks! Could you tell me your name?') rather than repeating the original question. Re-prompt retries are configurable per field (0–3, default 1) via the new Advanced Options for extraction. The AI wizard auto-applies extraction on name and identity fields. The field config panel features a redesigned mode selector showing all three AI operations — Extract Value, Socratic Negotiation, and Strict Validation — at a glance with mode-specific descriptions and placeholder guidance.
Fixed a bug where filtering the submissions list by status (In Progress, Completed, or Abandoned) returned no results. The filter option values were lowercase strings but the stored data uses uppercase enum values, so the comparison always failed. Values are now aligned and the filter works correctly.
Included in this release
Fixed a bug where filtering submissions by status (In Progress, Completed, Abandoned) returned no results. The filter option values were lowercase strings (e.g. `in_progress`) but row data uses uppercase Prisma enum values (e.g. `IN_PROGRESS`), causing the comparison to always fail. Values are now aligned.
Starting today, every ioZen plan includes the full feature set. Submission Intelligence, hidden fields, rich content blocks, document extraction, ad platform integrations, outbound webhooks, and intelligence-aware routing are all available on Free, Pro, and Business.
What changes between plans is capacity. How many FlowApps you can run. How many AI credits you get each month. How many webhook endpoints and API keys you can manage. Your team size. Your storage. The features are the same; the headroom is not.
This matters in practice. A freelancer on Free can now build an IntakeBot with Submission Intelligence, see AI-scored tiers on every card, and route leads based on those scores. A growing team on Pro gets the same tools plus more FlowApps, more contacts, renewable credits, and API access. Business adds the highest limits and removes ioZen branding.
We also added the AI credit balance to the sidebar so you always know where you stand without going into settings.
The pricing page reflects all of this now.
Included in this release
Shifted from feature-gating to capacity-gating. All pipeline features — webhooks, API access, attribution, hidden fields, private fields, encrypted fields, rich content blocks, submission intelligence, and more — are now available on every plan including Free. Plans differentiate on numeric capacity limits (Intake Bots, webhook endpoints, API keys, rate limits) and AI credits. Sidebar now shows real-time AI credit balance.
A reliability and quality pass focused on billing accuracy and AI output.
Credit grant fix. A bug was causing admin-granted bonus credits to carry over permanently across billing cycles instead of resetting monthly. This has been corrected and affected accounts have been updated. Bonus credits now consume after plan-included credits and before purchased credits, and reset cleanly on each billing cycle.
AI generation improvements. IntakeBot generation prompts have been refined to produce better field selection and higher-quality schemas. Submission Intelligence scoring prompts now assign tiers more accurately. Template variable interpolation is more reliable across edge cases.
Billing architecture. All plan limit enforcement now runs through a single resolution path with consistent defaults. Admin-enabled feature flags now reflect correctly without requiring a page refresh. Credit purchase webhook writes are atomic, preventing partial failures from leaving accounts in an inconsistent state.
Included in this release
Refined IntakeBot generation prompts for better field selection and schema quality. Improved Submission Intelligence prompts for more accurate scoring and tier assignment. Hardened template variable interpolation engine with additional edge case handling.
Unified all plan limit enforcement into a single resolution path with consistent defaults. Feature flag overrides are now visible on the client — admin-enabled features render correctly without page refresh. Credit purchase webhook writes are now atomic, preventing inconsistent state on partial failures. Removed deprecated database column and eliminated duplicated constants across the billing stack.
Admin credit grants now use a dedicated bonus credit pool that is consumed after plan-included credits and before purchased credits. Bonus credits are automatically zeroed on monthly billing reset — fixing a bug where admin-granted credits would recur permanently every billing cycle. Existing affected subscriptions have been corrected. The admin credits dashboard now displays bonus credits separately.
Added global error boundaries with structured error reporting across all application routes. Unhandled errors are now captured with context and surfaced gracefully to users instead of blank screens. FlowApp pages include dedicated error recovery with retry actions.
Streamlined the IntakeBot field panel with unified create flow for fields and content blocks. Improved bookend (welcome/thank-you) editing with inline read and edit modes. Records table enhanced with better empty states, header actions, and overall polish. Template interpolation engine hardened with additional edge case handling.
Workspace routing now prefers workspaces with content over empty ones and intercepts pending invitations before routing. The invitation acceptance page shows contextual errors (expired, email mismatch, already a member, workspace full) with clear recovery actions — including sign-out-and-switch for email mismatches. Invited team members are no longer sent through onboarding; only workspace owners see the setup wizard.
March 2026
The biggest release since public beta. Three things that matter:
Submission Intelligence scores every submission the moment it arrives. AI analyzes answers against configurable dimensions and assigns a tier, so your team sees what’s worth acting on before opening a single record. Sales teams see Hot / Warm / Cold. HR teams see Strong / Moderate / Review. Support teams see Urgent / Normal / Low. You configure the dimensions and tiers to match your process, or let AI generate them during bot creation. Tier badges show directly on Process Board cards. Business plans can route submissions automatically based on scores. Costs 2 AI credits per submission.
Geolocation capture is a new field type for IntakeBots. Respondents tap “Share Location,” grant browser permission, and their GPS coordinates are recorded with a static map preview (OpenStreetMap tiles, no API keys, no dependencies). Every display surface shows a “Open in Google Maps” link. Built for inspection reports, field service, incident tracking, delivery confirmation, and property management. Available on all plans.
Deploy-first onboarding replaces the old “confetti on creation” flow. After AI generates your first FlowApp, you now pick how to deploy it: direct link with QR code, embed code for your website, email instructions to your webmaster, or a step-by-step guide for your CMS platform (14 platforms supported, including WordPress, Squarespace, Wix, Webflow, and Shopify). Confetti now fires on your first real submission, not on setup completion. Session state is preserved, so navigating away no longer resets your progress.
We also tightened security across the credit system and submission API: atomic billing-period resets, rate limiting on public credit checks, Zod validation on all IDs, cross-bot update guards, and a fix for purchased credit packs being ignored in AI availability checks.
Included in this release
New geolocation field type captures GPS coordinates from the user's device with permission handling, static map previews (OpenStreetMap tiles, zero dependencies), and Google Maps links across all display surfaces — submissions, records, process board cards, and CSV export. Onboarding reframed around demand capture with deploy-first completion: direct link, website embed, send to webmaster email, or platform-specific guides for 14 CMS platforms. First real submission triggers a celebration with confetti overlay and email notification. Session state persisted so navigating away no longer resets onboarding progress.
Consolidated credit service into a single source of truth with atomic billing-period resets, eliminating concurrent double-reset bugs. Public credit checks now rate-limited and response-sanitized — exact credit counts and plan tier details no longer exposed to anonymous callers. Submission API hardened with Zod CUID validation on all IDs, cross-bot update guards, and error responses that no longer leak schema structure. Geolocation permission policy and iframe allow attributes configured for secure cross-origin embedding. Fixed a bug where purchased credit packs were ignored in AI field intelligence availability checks.
Every submission is now scored, tiered, and analyzed by AI at submission time. Configure dimensions and tiers tailored to your use case — lead qualification, candidate assessment, risk triage, project prioritization, or any intake process. Intelligence results appear as tier badges on Process Board cards with full dimension breakdown in the submission detail panel. Business plans can route submissions automatically based on intelligence scores and tiers. Intelligence configuration is generated by AI alongside the bot schema — no manual setup needed. Manual re-analysis available via the Actions tab. 2 AI credits per submission.
Three new AI-powered creation tools ship today. All three work the same way: you talk to ioZen in plain language, and it builds what you need.
Conversational Onboarding is the first thing new users see. Paste your website URL and AI figures out what your organization does, then suggests use cases matched to your role. Pick one (or describe your own) and ioZen generates your first FlowApp automatically. No clicking through setup wizards or reading docs first.
Smart FlowApp Wizard brings that same conversational approach to creating new FlowApps after onboarding. AI suggests use cases based on your organization’s profile, or you can describe what you need from scratch. You get a full proposal with questions, boards, phases, and routing rules. Review it, request up to two rounds of adjustments, and hit build. The whole thing takes about a minute.
Smart IntakeBot Create works inside any existing FlowApp. Open the creation panel and you’ll see AI-generated bot suggestions tailored to that FlowApp’s context. You can also describe what you need in plain language or upload a document and let AI extract the fields for you (Pro and Business plans). The result is a ready-to-use IntakeBot with all fields configured.
Under the hood, we also improved AI gateway reliability. Operations now have configurable timeouts (60 seconds by default, 300 seconds hard limit) and usage metrics are tracked independently from records. Deleting a record no longer wipes out the associated AI usage data.
Included in this release
Configurable AI operation timeouts (60s default, 300s hard limit) and decoupled metrics tracking so usage stats are preserved even when records are deleted.
Create IntakeBots through a conversational AI panel inside any FlowApp. Choose from AI-suggested bot types tailored to your FlowApp's context, describe what you need in plain language, or extract fields directly from an uploaded document (Pro+).
New workspaces now set up through a guided AI conversation. Enter your website URL and AI discovers your organization, suggests relevant use cases by role, and generates your first FlowApp automatically — no manual setup required.
Create complete FlowApps through a conversational AI wizard. Pick from AI-generated use-case suggestions tailored to your organization, or describe what you need in plain language. Review the full proposal — questions, boards, phases, and routing rules — and refine it with up to two adjustment rounds before building.
Three changes today, all focused on tightening up how hidden fields and content blocks work in practice.
Hidden fields are now a paid feature. The visibility toggle, publish panel, and embed code generation all check your plan before letting you use hidden fields. Free plan users see the option but can’t activate it. On the server side, submissions from free plans have hidden field values stripped out, so there’s no way around it. If you’re already on Pro or Business, nothing changes for you.
Content blocks auto-save every edit. The Save button is gone. Every change you make to a content block persists the moment you make it. This matches how the rest of the IntakeBot editor works and removes a step that tripped people up (forgetting to save, losing edits on navigation).
The template variable picker moved. Instead of typing / and scrolling through the slash menu to find field variables, there’s now a dedicated button in the rich editor toolbar. Click it, pick a field, and {{field_name}} drops in. Faster, especially when you have a lot of fields.
Included in this release
Hidden fields are now a Pro+ feature with plan-based gating on the visibility toggle, publish panel, and embed code generation. Server-side enforcement strips hidden field values for free plans and preserves them correctly on submission completion. Content blocks now auto-save every edit instantly — no more Save button. The rich content editor replaces the slash-command field variable picker with a dedicated template field button for faster variable insertion.
IntakeBots can do more than ask questions now. Content blocks let you insert guided text, calls to action, and personalized messages between fields. Every plan gets plain-text blocks. Pro and Business unlock the full rich editor, embeds, and AI-generated content. This takes conversational forms to a whole new level.
The rich editor works like Notion. Type / to open the slash menu and drop in headings, callouts, code blocks, or video embeds. You can embed YouTube, Vimeo, Loom, Cal.com, Calendly, Stripe Payment Links, and Google Maps directly inside the intake flow. Up to three CTA buttons per block can open modal overlays or link to external URLs.
Template variables make all of this personal. Use {{field_name}} anywhere in question labels, helper text, content blocks, or CTA URLs to reference what someone already answered. Arrays, AI-processed values, and all field types work. Private fields resolve to [Private] so nothing leaks.
AI content generation takes personalization further. Write a prompt, and AI generates unique content for each respondent at runtime using their previous answers as context. Good for mid-flow recommendations, summaries, or tailored next steps. Private fields stay out of AI context automatically.
We also published step-by-step integration guides for Meta Conversions API, Google Ads, LinkedIn, TikTok, and custom webhooks. Each covers credential setup, configuration, testing, and troubleshooting. Find them at app.iozen.ai/docs/integrations.
Included in this release
Author a prompt and let AI generate personalized content for each respondent at runtime, using their previous answers as context. Ideal for mid-flow recommendations, summaries, and dynamic guidance. Private fields are excluded from AI context.
Insert non-question content between Intake Bot fields — guided text, CTAs, and personalized messages. Plain text on all plans; rich editor, embeds, and AI-generated content on Pro+. Content blocks display with a Continue button and support conditional visibility.
Step-by-step developer documentation for connecting Meta Conversions API, Google Ads Measurement Protocol, LinkedIn Conversions API, TikTok Events API, and custom webhooks. Each guide includes credential setup, configuration, and troubleshooting. Available at /docs/integrations.
Compose content blocks and CTA modals with a Notion-like slash-command editor. Embed YouTube, Vimeo, Loom, Cal.com, Calendly, Stripe Payment Links, Google Maps, and Typeform directly inside the intake flow. Up to 3 CTA buttons per block open modal overlays or external URLs.
Use {{field_name}} to personalize question labels, helper text, content block bodies, and CTA URLs with the respondent's previous answers. Supports all field types including arrays and AI-processed values. Private fields resolve to [Private].
Testing IntakeBots used to mean clicking through every field by hand. Test Autopilot changes that. Hit Auto-fill on any field to get realistic sample data, or hit Auto-play to walk through the entire bot start to finish. It generates locale-aware answers, handles AI follow-up questions with progressively detailed responses, and pauses on file uploads so you stay in control. Normal and fast speed modes let you watch the conversation or skip ahead.
Field duplication is here too. Select any field, click duplicate, and a copy drops in right below the original with a fresh variable name. Validation rules, AI settings, and conditional branches all carry over.
On the i18n front, Account Settings, Email Preferences, and the IntakeBot field editor are now fully translated into English and Spanish. Boolean fields default to Sí/No for Spanish bots, dates follow locale formatting, and test data matches the bot’s language. Under the hood, contact extraction switched to a schema-aware resolution map that eliminates guesswork on nested fields. Email notifications pull from contact mapping data directly, and inactive Postmark recipients get skipped instead of failing the whole job.
Included in this release
Fixed a critical bug where Yes/No (Sí/No) questions in Spanish Intake Bots would reject the user's answer and prevent the bot from advancing. Validation now respects the bot's configured language.
Contact data extraction now uses a schema-aware field resolution map for deterministic nested-path matching instead of suffix heuristics. Name mode sanitization prevents fullName and firstName/lastName from conflicting. Test submission contacts dedup reliably using a stable bot identifier.
Submission notification emails now use contact mapping data instead of heuristic field-name scanning. Postmark inactive recipients are gracefully skipped instead of failing the job. DLQ handler improved with proper QStash base64 decoding and richer error extraction. Submission email deep links now resolve correctly via a new redirect page.
Duplicate any Intake Bot field with one click. The copy is inserted directly after the original with a unique variable name, preserving all settings including validation rules, AI configuration, and conditional branches.
Account Settings, Email Preferences, and the IntakeBot field editor are now fully translated into English and Spanish. Validation messages, boolean option labels, and field duplication feedback all respect the user's locale.
Spanish Intake Bots now show localized boolean defaults (Sí/No), locale-appropriate date formatting, and Spanish test data when using the Test Submission feature. The public chat experience is fully language-aware end to end.
Auto-fill a single field or auto-play through the entire Intake Bot with realistic, locale-aware test data. Handles AI Socratic Negotiation retries with progressively detailed answers, pauses on file fields, and supports normal or fast speed modes.
Any IntakeBot field can now be marked as hidden. Hidden fields never appear in the conversation, but their values are saved with the submission and can drive conditional logic just like visible fields.
Values come from three places. Embed code attributes (data-fields) work for inline, popup, and widget embeds. URL parameters (?f.key=value) work for direct link sharing. And you can set static defaults in the field editor for values that stay the same across all submissions.
This opens up use cases that were impossible before. Pass a CRM record ID from your app into the IntakeBot so submissions link back automatically. Forward UTM parameters from your landing page into the submission for end-to-end attribution. Set an A/B test variant as a hidden field and branch conditional logic based on it. Track referral sources without asking the respondent anything.
Hidden fields are available on Pro and Business plans.
Included in this release
Mark any IntakeBot field as hidden to pass values silently via embed code or URL parameters. Hidden fields are never shown to respondents but their values are saved with the submission and can drive conditional branching. Values can come from embed data-fields attributes, direct link query parameters (?f.key=value), or static defaults set in the field editor.
February 2026
Three updates to how you manage data inside ioZen. The Contact Import Wizard walks you through uploading a CSV or Excel file and mapping columns to ioZen fields. Duplicate detection runs automatically with skip, update, or fill-empty strategies so your list stays clean.
Workspaces now have plan-tiered storage quotas. Free gets 100 MB, Pro gets 5 GB, Business gets 25 GB. Email alerts fire at 80%, 95%, and 100% usage so you’re never caught off guard. See the pricing page for full storage limits.
File upload size limits also scale by plan: 5 MB on Free, 10 MB on Pro, 25 MB on Business. Records that include file fields respect these limits at submission time.
Included in this release
Import contacts from CSV or Excel files via a multi-step wizard. Map columns to core fields, custom fields, and tags. Supports duplicate detection with skip, update, or fill-empty strategies. Auto-maps common headers and optionally creates new custom fields and field groups during import.
Workspaces now have a plan-tiered storage quota: 100 MB on Free, 5 GB on Pro, 25 GB on Business. Uploads are blocked when the limit is reached, and workspace owners receive email alerts at 80%, 95%, and 100% usage.
File upload size limits are now tiered by plan: 5 MB on Free, 10 MB on Pro, 25 MB on Business.
The ioZen developer platform is here. The REST API lets you read and write submissions, manage contacts, and trigger actions programmatically. API key authentication with scoped permissions keeps your integrations secure. See the Developer Tools guide for an overview.
Interactive docs at app.iozen.ai/docs cover every endpoint with request/response examples you can try from the browser. No guessing at payload shapes.
Outbound webhooks deliver real-time events to your endpoints with HMAC-signed payloads and automatic retries via QStash. When something happens in ioZen, your systems know about it immediately.
API keys are managed from Workspace Settings. Create keys with scoped permissions, rotate them when needed, and stay within per-plan rate limits. Pro gets 3 keys at 100 req/min. Business gets 10 keys at 500 req/min.
Included in this release
REST API for managing intake bots, submissions, and webhooks programmatically. API key authentication with scoped permissions, per-plan rate limiting, idempotency support, and interactive developer documentation at /docs.
Interactive API documentation at app.iozen.ai/docs. Covers authentication, all API endpoints, webhooks, error handling, pagination, and rate limits. Powered by Fumadocs with full-text search.
Real-time event notifications delivered to your endpoints. HMAC-SHA256 signed payloads, reliable delivery via QStash with retries, and automatic pause after repeated failures. Events include submission.completed, submission.updated, contact.created, and more.
Create and manage API keys from Workspace Settings. Scoped permissions, SHA-256 hashed storage, and Redis-cached validation. Pro plan: 3 keys, 100 req/min. Business plan: 10 keys, 500 req/min.
The ioZen team can now deploy promotion codes through Stripe. Use them to reward beta testers, support early adopters, or extend special pricing to specific customers. Codes apply to both monthly and annual billing plans.
Included in this release
Promotion codes now accepted during Stripe checkout. Create discount campaigns and share promo codes with potential customers for reduced subscription pricing.
Multi-select fields in the public IntakeBot chat were showing duplicate chips when picking multiple values. Validation was also rejecting valid selections in some cases. Both issues are fixed. Multi-select fields in conversational forms now render and validate correctly regardless of how many options you pick.
Included in this release
Fixed rendering and validation of multi_select fields in the public Intake Bot chat. Duplicate chip options no longer appear when selecting multiple values.
Three billing fixes in this release. A race condition during plan changes could cause subscriptions to enter an inconsistent state. Credit-status polling was firing too aggressively under load. The upgrade dialog was redirecting to the billing page instead of straight to Stripe checkout. All resolved. View current pricing plans.
Included in this release
Fixed subscription race condition during plan changes, resolved credit-status polling storms, and corrected upgrade dialog redirecting to billing page instead of Stripe checkout.
A round of infrastructure and UX polish. The email system moved to a scalable architecture with separate transactional and broadcast streams via Postmark. Deliverability is better and onboarding sequences are now possible.
Workspace routes show a mobile access gate on small screens, directing users to the desktop experience. A quick email link lets you open the app on your computer without hunting for the URL.
The AI FlowApp generation wizard now shows parallel progress indicators and smoother motion transitions. Generation status is tracked on the FlowApp model so state stays reliable even if you navigate away. IntakeBots created by the generator include all field types and conditional logic from the template.
Included in this release
Email system refactored to a scalable architecture with separate transactional and broadcast streams via Postmark. Improved deliverability and support for onboarding sequences.
Workspace routes now show a mobile gate on small screens directing users to the desktop experience. A DESKTOP_LINK email lets users quickly open the app on their computer.
AI FlowApp generation wizard now shows parallel progress indicators, improved AI operation feedback, and smoother motion transitions. Generation status tracked on the FlowApp model for reliable state.
ioZen moved from private alpha to public beta. Anyone can sign up, pick a plan, and start building. Stripe billing went live alongside this release.
Row-Level Security is now enabled on all remaining public tables. Function search paths are locked down and RLS policies are tightened to prevent cross-workspace data access.
Process Board limits got a bump too. Free goes from 3 to 5 boards, Pro from 30 to 50. This prevents hitting the ceiling during AI-powered FlowApp creation, which generates boards as part of the setup flow.
Included in this release
Minimum password length enforced at 8 characters. Passwords checked against known breach databases with clear error messages when a leaked password is detected.
Free plan Process Boards raised from 3 to 5 and Pro plan from 30 to 50. Prevents frustrating failures during first-time AI-powered FlowApp creation.
ioZen is open for business. Open registration with Stripe billing, onboarding email sequences, and plan-enforced limits. Free plan includes 3 FlowApps and 1,000 AI credits.
Row Level Security enabled on all remaining public tables. Function search paths locked down and RLS policies tightened to prevent cross-workspace data access.
Three tiers let you add AI credits when you need them. Boost (1,000 for $10), Growth (5,000 for $40 with 20% savings), Scale (10,000 for $70 with 30% savings). Purchased credits never expire, so you use them at your own pace. View all pricing options and credit packs.
Included in this release
Purchase additional AI credits on paid plans. Three tiers: Boost (1,000 for $10), Growth (5,000 for $40, 20% savings), Scale (10,000 for $70, 30% savings). Purchased credits never expire.
A full responsive overhaul across the app. Navigation, panels, boards, and settings all work on mobile viewports now. Legacy layout code is cleaned up.
The iOS keyboard bug that overlapped the chat input in embedded IntakeBots is fixed. Viewport management and iframe height adjust correctly across inline, popup, and widget embed modes when the keyboard appears.
Marketing Attribution Tracking moves to Pro and above. Field-Level Conversions, Webhooks, and Ad Platform Integrations (Meta, Google, LinkedIn, TikTok) are now Business-only. Clearer value separation between pricing tiers.
Included in this release
Attribution Tracking moved to Pro+. Field-Level Conversions, Webhooks, and Ad Platform Integrations (Meta, Google, LinkedIn, TikTok) moved to Business-only. Clearer value separation between plan tiers.
Fixed virtual keyboard overlapping the chat input on iOS Safari across all embed modes (inline, popup, widget). Viewport management and iframe height now adjust correctly when the keyboard appears.
Comprehensive responsive redesign across the entire app. Navigation, panels, boards, and settings all work on mobile viewports. Legacy layout code cleaned up.
The core infrastructure for public launch. Stripe billing lets you subscribe to Pro or Business, manage your subscription from workspace settings, and switch between monthly and annual billing with prorated charges. See current pricing plans.
Process Board cards, contact changes, and record updates now sync across all connected users instantly via Supabase Broadcast. Multiple team members can work on the same board without refreshing.
Drag-and-drop on Process Boards was rebuilt with @dnd-kit for smoother card movement, better touch support, and more reliable phase transitions. The embedded IntakeBot widget also adapts to mobile viewports now. Floating button, popup, and inline modes all resize correctly on phones and tablets.
Included in this release
Process Board drag-and-drop rebuilt on @dnd-kit for smoother card movement, better touch support, and more reliable phase transitions.
The embedded IntakeBot widget now adapts to mobile viewports. Floating widget button, popup modal, and inline embeds all resize correctly on phones and tablets.
Process Board cards, contact changes, and record updates now sync across all connected users instantly via Supabase Broadcast. Multiple team members can work on the same board without refreshing.
Full subscription management powered by Stripe. Subscribe to Pro or Business plans, manage billing from workspace settings, and switch between monthly and annual billing with prorated charges.
Controlled access for the beta phase. New users need an invitation code to sign up, and workspace collaborators can be added directly. Beta applications are tracked through a dedicated IntakeBot.
IntakeBot field schemas now stay in sync with their linked RecordType automatically. Changes to one propagate to the other, reducing manual work and preventing data mismatches between what gets collected and what gets stored.
Included in this release
Controlled beta access via invitation tokens. New users need an invitation code to sign up, and workspace collaborators can be added directly. Beta applications are tracked through a dedicated IntakeBot.
IntakeBot field schemas now stay in sync with their linked RecordType automatically. Changes to one propagate to the other, reducing manual work and preventing data mismatches.