Features
Everything a form backend should do, plus the parts that make sure each submission reaches a person.
Intake starts with the Free plan. Encrypted forms, file uploads, custom domains, your own sending domain or mail server, branded pages and the API come with the paid plans, which are coming soon.
The basics
- One endpoint per form: HTML posts, JSON and file uploads
- A hosted form page with your logo, colours and a QR code, or embed it in an iframe
- Your own domain for form links and endpoints, such as
forms.example.com - Allowed domains, a custom thank-you page or message
- Expected fields with validation, and a form builder that writes the HTML
- An inbox with search, notes, handled and spam states, CSV and JSON export
Actions
Each form runs as many actions as your plan allows, each on its own, retried with back-off and logged.
- Email notification, and Liquid email templates with a reply-to from the form
- An autoresponder to the person who filled the form in
- A daily digest instead of one email each
- Webhooks, signed so you can verify them, and an n8n preset
- ntfy push notifications, Slack, Discord, Microsoft Teams and Telegram
- Conditions: only run an action when a field matches
The pick-up loop
Ticking a box in a dashboard is not follow-up. Every notification carries a Pick up button: one tap in ntfy or Telegram, a link in Slack, Teams, Discord and email. Until someone takes it, Intake reminds the channel on your schedule, then escalates to another one. When it is picked up, the reminders stop, everyone sees who has it, and n8n gets a submission.claimed event to carry on from there. Usage shows each form's median time to pick up.
Email that lands
- Send from your own domain, signed with your own DKIM key
- Or send through your own mail server (SMTP)
- A deliverability page that checks SPF, DKIM and DMARC and tells you the exact DNS record to fix
- Test sends, and the bounced addresses that affect your actions
Spam protection without Google
Proof of work: the visitor's browser solves a small puzzle in the background, about a second on a phone. Bots that post directly do not have the answer. It sets no cookies, loads nothing from anyone else, and works with the open-source ALTCHA widget too. Add a honeypot, a link limit, throwaway-email and IP blocks, and a per-address rate limit. reCAPTCHA is there if you want it, but you should not need it. Everything caught is kept with the reason, and you can release it.
End-to-end encrypted forms
Switch a form to encrypted and the visitor's browser seals each submission with your workspace's public key. We store only ciphertext. You read submissions in the dashboard after unlocking your vault with a passphrase that never leaves your browser; search and CSV export happen there too. Notifications say a submission arrived without its contents, and webhooks receive the sealed envelope to open in your own systems. What it protects, and what it does not.
Surveys, votes and anonymous reports
Answers can be anonymous and still count once per person. Reporters can stay anonymous and still get a reply.
- Single-use links: send each person their own link that works once. Nothing ties an answer to the link that sent it
- A Results tab that counts the answers to each choice, with percentages. For encrypted forms the counting happens in your browser
- Opening and closing times, and a limit on the number of responses, shown on the hosted page
- A shorter retention period for one form, such as 30 days for HR concerns. The hosted page tells people how long their answers are kept
- Anonymous follow-up: each reporter gets a code to read your replies and answer, with no name, account or email address
- An email when a reporter writes back, and reminders before the 7-day acknowledgement and 3-month feedback deadlines that whistleblowing rules set
Anonymous follow-up is not available on end-to-end encrypted forms yet.
For developers
$ intake-cli listen --forward-to localhost:3000/hook
Forwarding new submissions to http://localhost:3000/hook
2026-10-11 16:47:24 submission 14 on "Contact" -> [204 No Content] 4ms
$ intake-cli trigger <form id> --data '{"email":"ada@example.com"}'
- The free Intake CLI for macOS, Linux and Windows
- A REST API with an OpenAPI description, scoped API keys
- Workspace webhooks for new submissions, failed actions and pick-ups, with a delivery log and retries
- An MCP server: let Claude or another agent create forms and actions for you
- Signed webhooks you verify with a few lines of code
Reliability
- Submissions over your monthly limit are held, then released, not bounced
- Actions are queued in the database with the submission: nothing is lost in a restart
- Every attempt logged with the response; retry failed deliveries after fixing the cause
- An email if a form that usually gets submissions goes quiet, which usually means a website change broke it
- Optional virus scanning of uploaded files
Teams and accounts
- Workspaces with owners, admins, members and viewers, limited to some forms if you like
- Two-factor sign-in and single sign-on
- An audit log of sign-ins, key changes, plan and action changes
Point a form at it and see
Free for two forms and fifty submissions a month. No card needed.