Intake

Intake

Intake gives people outside MaxSuite a way in without an account: a contact form, a request queue, anything a stranger fills in (module intake). Each form has a hosted page of its own and an endpoint your own website can post to. Every submission is kept here, and can also go to a chat, a shared inbox or a mailbox.

In the sidebar under Communications → Intake. Uses destinations from Notifications and alerts and mailboxes from Mail when those are set up.

Intake

The screen has two tabs, Forms and Submissions.

Forms

  • Three totals at the top: Forms, Accepting and Submissions.
  • A table of forms:
    • Form: the label, how many submissions it has, and a "server key" badge if it has a key.
    • Public link: the form's hosted address (/f/<public id>), with Copy page, Copy endpoint and Copy HTML buttons.
    • Delivered to: the destination it sends to, or "owner notification only". Badges show "auto-reply" and "copy to mailbox" when those are on.
    • Protection: the sites allowed to post ("any site" when none are listed) and the hourly limit.
    • State: "accepting" or "closed".
  • People who can manage intake also see Settings, Make key (or New key and Revoke key) and Delete on each row, and a New form button.

With no forms yet, the screen says "No intake forms". A landing site's contact page can make or reuse a form by name, so you may find forms here you did not make by hand (see Landing sites).

Submissions

  • By default only unhandled submissions are listed. The Showing unhandled button switches to Showing all.
  • A delivery filter: Any delivery, Delivered, Retrying, Gave up or Stored only.
  • A search box that looks in the sender's name, email and message.
  • Columns: Received, Form, From (name and email, and the start of the message), Came from (the site and the network address it was posted from), Delivery and Handled.
  • Click a row to open everything that was submitted, field by field, with when it arrived, where from, and the browser it came from.

What you can do

Make a form

  1. Open Intake and press New form.
  2. Give it a Label, such as "Contact us".
  3. Optionally list Allowed sites: hosts a browser may post from, separated by commas, such as www.example.com. Leave it blank to accept any site. If you restrict it, list this app's own address too, because the hosted page posts from there.
  4. Set Per hour, per address. It starts at 20 submissions an hour from one network address. 0 means no limit.
  5. Optionally set Redirect after submit: where a plain HTML form sends the browser afterwards.
  6. Keep or change the Honeypot field. It starts as company_website: a hidden field people never see and bots fill in.
  7. Choose where submissions go (see below), then press Create form.

Put a form on a website

Each form row has three copy buttons:

  • Copy page copies the hosted page, https://<your-deployment>/f/<public id>. It is a ready form with name, email and message. Share the link and you are done.
  • Copy endpoint copies the address a website posts to.
  • Copy HTML copies a plain HTML form with name, email, message and the hidden honeypot field, already pointing at the endpoint.

What happens to a post from a browser:

  • A post from a site not on the allowed list is refused.
  • A post over the hourly limit is refused with "Rate limit exceeded" (HTTP 429). The hosted page shows this as "Too many submissions from here in the last hour".
  • A post that fills the honeypot is answered as if it worked, and stored nowhere.
  • A post larger than 64 KB, or with no fields, is refused.
  • A closed or deleted form answers that it is not accepting submissions.

Let a server post with a key

A key is for a server posting to the form, not a browser.

  1. Press Make key on the form.
  2. Copy the key from the notice. It is shown once, and only its hash is kept.
  3. Have the server send it with each post, in an Authorization bearer header or an x-api-key header.

Posts made with the key skip the allowed sites, the hourly limit and the honeypot. New key replaces the key and Revoke key removes it. Browsers can keep posting to the same form either way.

Choose where submissions go

Every submission is stored here, and the person who made the form gets a notification for each one. Press Settings on a form to send it further:

  • Deliver to: a group chat or shared inbox from your destinations. "Nowhere — only notify me" is the default. A delivery that fails is retried for about half an hour.
  • Send through: which bot carries the message, when there is more than one.
  • Mailbox: the mailbox that copies and auto-replies go out from. They are sent as the person who made the form and appear on its sent log. That person must own the mailbox or be allowed to send from it.
  • Also email each submission to the mailbox.
  • Answer the submitter by email, when they gave one, with an Auto-reply subject and Auto-reply message.

Only the form's maker can turn its mail on or change it. Anyone who can manage intake can turn it off.

Work through submissions

  1. Open the Submissions tab. Only unhandled submissions are listed until you press Showing unhandled to switch to Showing all.
  2. Click a row to read everything that was sent.
  3. Press Mark handled once it is dealt with. Reopen puts it back.
  4. To find deliveries in trouble, set the filter to Retrying or Gave up.

Close or delete a form

  • To stop new submissions but keep everything, open Settings and untick Accepting submissions.
  • Delete removes the form and every submission it has received. Sites still posting to it get errors. There is no undo.

Who can do what

PermissionLabelLets you
intake:readView intakeSee forms and their submissions.
intake:writeManage intakeMake, change, close and delete forms, make and revoke keys, and mark submissions handled.

Two more rules apply:

  • A form tied to a mailbox is shown only to people who can read that mailbox. Without the Mail module, such a form is shown only to the person who made it. Forms with no mailbox are shown to everyone with intake:read.
  • The hosted page and the endpoint need no account. That is what a form is.

See People, roles and permissions.

What happens on its own

JobWhenWhat it does
retryEvery 5 minutesTries again to deliver submissions whose delivery failed. Each gets up to five attempts, with growing waits between them. After the last one the submission shows "Gave up". Up to 50 are retried each run.

Needs

Nothing has to be switched on first. Delivering to a chat uses destinations from Notifications. Copies and auto-replies need a mailbox under Mail.

What agents can do

An agent can list forms, read submissions, mark them handled, and set forms up. Every change here is a write, a destructive act or an act outside MaxSuite, so by default each one waits for a person to approve it. Sending submissions to a destination and turning on form mail count as acts outside MaxSuite, because they send what strangers typed somewhere else. Revoking a key and deleting a form count as destructive. The approval card names the form by its label and says what will be sent. See Agents and approvals.

Submissions are marked as outside content: text a stranger typed. Once an agent has read them in a run, every later step in that run that is not a read waits for a person.

Read only: intake.forms, intake.submissions

Change, needs approval: intake.markHandled, intake.createForm, intake.updateForm, intake.setFormMail, intake.setFormDestination, intake.clearKey, intake.removeForm

Over MCP the same tools are named intake__forms, intake__submissions and so on. See API keys and MCP access.

There is no tool for making a key. A person makes one from the screen.