mailnix / mailnix Forms

    Forms

    mailnix Forms

    Customer-designed forms with a visual designer, hosted pages, embeds, and a submissions inbox. No backend code and no separate database needed.

    What is it

    A form you design in the dashboard (or through your AI assistant over MCP), publish as a hosted page on forms.mailnix.ch or embed in your own site, and manage from a submissions inbox. The designer covers field validation, conditional logic rules, themes on every tier, a 12-column layout grid, image fields, and a multi-step stepper.

    Use mailnix Forms when you want to see and manage submissions inside mailnix: inbox, spam scoring, owner notification emails, per-submission replies, CSV export, retention. If you only want each submission delivered as a raw email with nothing stored, use a publishable key instead.

    Create, publish, embed

    A form is a versioned schema. Drafts are editable freely; publishing freezes a version that the public endpoints serve. Pause a form to stop accepting submissions without unpublishing it; archive it when you are done.

    dashboard: Forms → New form → design → Publish
    MCP:       form_create → form_update → form_publish
    
    embed options (form_embed_snippet_generate, or the dashboard's Embed panel):
      hosted   https://forms.mailnix.ch/f/<form-id>       every tier
      iframe   <iframe src="https://forms.mailnix.ch/…">  every tier
      script   <script src=".../embed/v1.js" …>           paid plans
      fetch    raw POST against the public endpoint       every tier

    The script embed renders the form natively into your page and is version-frozen per major (embed/v1.js stays compatible for the life of v1). Public submission endpoints live under /v1/public/forms/* and are protected by sliding-window rate limits and optional CAPTCHA (Cloudflare Turnstile or hCaptcha).

    Submissions inbox

    Accepted submissions land in the Forms inbox with a spam score, a status (new / replied / archived / spam), and full field values. Spam-scored submissions go to a separate folder and are never billed. Export any form's submissions as CSV.

    Owner notifications go to addresses you verify first: organization members verify with one click, external addresses through double-opt-in. Choose per-address between immediate notification and hourly or daily digests.

    Replies: there is no autoresponder

    mailnix never automatically emails the person who filled in a form. That is a product stance, not a missing feature. Automatic email goes only to your verified notification addresses.

    Replying to a submitter (an answer, or a confirmation) is always a deliberate, per-submission action by you, from the dashboard composer or via MCP. The recipient is locked server-side to the submission's submitter address, and every send writes a ledger row plus an org-audit entry. There is no bulk-send tool.

    File uploads (paid plans)

    Paid plans can add file fields. Uploads are virus-scanned before they become downloadable, stored in EU object storage against your plan's quota (1 GiB on Basic, 5 GiB on Pro), and served through signed URLs. The Free tier has no file fields.

    Styling the embed

    The script embed exposes a stable styling contract: .mnx-* CSS classes and --mnx-* design-token custom properties, frozen within an embed major version. Themes work on every tier; the CSS contract lets you match the host site exactly. The full reference with copy-paste recipes lives at app.mailnix.ch/docs/forms-styling.

    MCP tools

    The form_* tool group covers the whole lifecycle, 14 tools in total:

    form_create / form_update / form_get / form_list
    form_publish / form_pause / form_archive
    form_embed_snippet_generate
    form_submission_list / form_submission_get / form_submission_set_status
    form_submission_wait        # blocking long-poll for agent test loops
    form_reply_draft_create     # drafts a reply for your review
    form_reply_send             # one submission per call, audited

    form_submission_wait blocks until a submission arrives (default 30s, max 120s), which lets an agent verify an embed end to end without a polling loop.

    Retention & erasure

    Each form has a retention window; expired submissions are purged by a daily janitor. Right-to-erasure is self-serve: delete every submission for a given submitter email in one action, across all your forms. Uploaded files are purged with their submissions.

    Full reference

    The complete guide lives at app.mailnix.ch/docs/forms. Machine readers: the same content is inlined in llms-full.txt.