docs
/
Courses — Appmint

Appmint Forms and Submissions

Watch on YouTube ↗

Written guide

Overview

This course covers Appmint CRM Forms. We will build a form, choose where its answers are stored, configure access, publish its link and inspect a submission. Public access, a verified participant and an email typed into a field are different things; the access choices will make that distinction clear.

01. Create the form and its destination

Why this matters

Forms can store inline submissions or create records in an existing collection. Choose that destination before building fields, because it changes where the answer is saved.

Concept illustration: inline fields save form submissions; a selected collection supplies its schema and receives collection records. These are alternative destinations.

Illustration of the two storage choices, not an application screenshot or proof of a submitted response.

Follow these steps

  1. In Studio Manager, open CRM → Forms. The dashboard distinguishes forms from submissions: a form defines the questions; each completed response becomes an answer to review.
  2. Select New form. Use Setup to identify the form before adding questions.
  3. Set Name to a unique identifier such as consultation-request. The recorded example uses course-service-request-20261004. Name appears in the generated form link, so choose it deliberately before sharing.
  4. Set Title to Request a consultation. This is the readable title; it does not have to match the identifier.
  5. Set Status to Open for a form intended to accept answers. Leave Opens and Closes empty when you do not need a scheduled collection window.
  6. In Message after submitting, enter Thanks — your consultation request has been recorded. This acknowledges receipt without promising an appointment or a response time the form does not arrange.
  7. Leave Send submissions to a workflow unselected for this first form. We will test ordinary answer storage before adding a workflow destination.
  8. Open Fields, then choose Build the fields here. This keeps the answers as submissions of this form. Use an existing collection instead uses that collection's fields and saves records there; it is a different storage choice, not an extra copy of the inline form.

The Forms dashboard separates forms, recent submissions and creation actions.

The new form Setup screen with its identifier, readable title and submission confirmation.

Check the result

The saved form has Setup, Fields, Access, Messages, SEO and Submissions. A collection-bound form follows the collection’s schema and access; do not present it as identical to inline submission storage.

02. Build and validate fields

Why this matters

The fields determine what the respondent supplies and which values must be present. Validation should be tested with a missing or invalid value before a successful answer.

Follow these steps

Start with the person's name, then add their email. This makes the relationship between a field's stored identifier and its visible label easy to check.

  1. Under Fields → Build the fields here, stay in Schema Builder.
  2. In Elements, find Text Field. Drag it into the dashed area on Default Page. A field appears with a generated identifier.
  3. Move the pointer over that field. Select its Config gear. This selects the field and opens its Properties. Opening the Properties tab alone, without selecting a field through Config, can leave No Schema Defined rather than the field controls.
  4. Enter fullName in Name and Your name in Title. Leave each input to commit the change. Check that the field label now reads Your name and the property heading identifies fullName.
  5. Scroll within the property panel to Required and enable its switch. Use Required for information needed to process the request, rather than making every available input mandatory.
  6. To add the email field, use Duplicate this field on the name control. Select the new field's Config gear before editing it: duplication creates another control but does not automatically select that control for configuration.
  7. Give the second field the distinct Name contactEmail, Title Your email, and select Email under Format. Keep Required enabled for this contact form. Check both visible field labels so an accidental edit to the first field is caught before saving.
  8. Select Form Preview to inspect the respondent layout. Confirm the order, readable labels and required indicators. Previewing the layout does not submit a real answer.
  9. Select Create form, then reopen the saved form and return to Fields. Confirm the names, labels and validation settings persisted before sharing its link.

A selected text field: Config opens the properties for fullName, whose visible title is Your name.

The two-field form was saved and reopened during the local walkthrough. Both labels persisted; the email field retained its Email format and Required setting. Wait for the updated label to appear before saving: the builder applies property edits after a short delay.

The saved form preview contains Your name and Your email. This is a layout preview, not a submitted answer.

Check the result

Exact type-specific validation controls need the current builder recorded. File fields require a separate upload/readback test, including recipient access.

03. Configure identity and access

Why this matters

The current Who may open it? section chooses the entry check. The guest-access switch separately allows someone without a signed-in account to use the form. A participant list restricts entry to its listed people. Email only records an address without verifying its ownership.

Follow these steps

Open Access. Under Who may open it?, choose one of the actual options below:

OptionWhat the person must do
NothingOpen the form without an identity prompt.
Magic linkSupply an email address, then use the delivered link or code.
Access codeEnter the shared code or use an individual invitation link.
Username & passwordSign in with an account.
Email onlySupply an address that is recorded without verifying ownership.

For the unrestricted consultation example, select Nothing, enable People who are not signed in may use it, and leave Participants empty. The guest switch adds Guest to read and create; choosing an entry method alone does not grant these permissions. Save the form before testing from a signed-out browser.

Shared-code walkthrough, verified locally: choose Access code, enter a training code you can discard later, and select Save changes. Open the copied form link in a separate signed-out session. The page asks Enter your access code. Enter an incorrect code and select Open form; wait for the response. The test displayed That access code is not right. Enter the saved code correctly and select Open form again; the name question appears. This grants entry through a shared secret, not proof that the person owns an email address. Do not reuse the public training example as a real access code.

A completed failed access check keeps the customer at the gate and explains that the code is incorrect.

For a restricted invitation form, add the intended people under Participants. The current interface says that once people are listed, only those people can open the form. There is no separate Participants only selection in this version. If using Access code, inspect the shared code field: with participants present, leaving it empty allows entry through their individual invitation links. Verify the exact restrictions in a separate respondent session before distributing a real invitation.

Check the result

The form link can be refused until Guest can read and create. A visible Copy link is not permission proof. Magic links/codes require working delivery; never narrate Email only as verified identity.

The actual Access tab combines the entry method, guest access and participant restrictions.

04. Share and submit from the customer view

Why this matters

The generated link uses the configured site base. The customer result must be tested outside the staff session.

Follow these steps

First connect the form to a website page. This is the prerequisite that was missing in the recorded example.

  1. Return to App Root. Under Active Site, select Choose a site or Change Site and choose the site marked Default. The form link resolver uses that site; selecting another site in the editor does not change which site is the default.
  2. If the site already has a dedicated forms page, use it. Otherwise choose Build Studio → New Web Page. Select the toolbar Save, select your site, and enter Name consultation-form, Slug consultation-form, and Title Consultation request. Save the page. This can be a blank host page: the Forms feature supplies its body. Keep the existing home/landing page separate.
  3. Return to App Root → Active Site → Site Features. Find Forms, select Choose page, then choose Consultation request. Turn Forms on if its switch is off. Confirm the row reads on /consultation-form.
  4. Return to CRM → Forms, reopen Request a consultation, and select Setup. Select Refresh form link if the earlier unavailable message remains. The resulting Link must refer to your default site's host and your selected forms page. Select Copy link.
  5. Open that copied URL in a private/signed-out browser. For this example, Access → Nothing, guest access enabled and no participants opens Your name immediately. If an email prompt appears first, inspect the saved access method; Email only is a separate entry gate from the email question you added.

Forms enabled on the dedicated consultation-form page in the default site's Site Features.

Now test the actual respondent sequence:

  1. Leave Your name empty and select OK. The page should remain on that question and display This one is required.
  2. Enter Course Reader, then select OK. The next question is Your email.
  3. Enter not-an-email and select Review. The form displays That does not look like an email address. Correct it before proceeding.
  4. For a local rehearsal without notifications, use [email protected]; use an address you control when testing actual delivery. Select Review. This is still a review step, not a stored answer.
  5. On Check your answers, compare both values. Edit returns to the corresponding question. When correct, select Submit once.
  6. Read the confirmation: Thanks — your consultation request has been recorded. Then verify the saved answer in Studio as described below.

The name question refuses to continue without its required answer.

The email question rejects malformed input before review.

The respondent reviews both answers and can edit them before submitting.

The repaired confirmation displays readable text after the answer is stored.

Check the result

If Setup says Form link unavailable, read its reason. In this walkthrough it said Enable Forms in Site Features on your default site, then refresh this link. Creating a form does not automatically configure the website page that will serve it. Resolve this prerequisite before distributing a URL; do not replace it with a guessed address.

The saved form explicitly identifies the missing Forms site feature and provides Refresh form link.

Invitation delivery and one-time code behavior are separate tests.

05. Review the saved answer and workflow

Why this matters

Submissions is the persisted answer view. A configured workflow should create its own task, which needs to be matched to that exact submission.

Follow these steps

  1. Reopen CRM → Forms → Request a consultation → Submissions. Select Refresh if you kept the drawer open while the customer submitted.
  2. Locate the row using its submitted time and Data preview. Select the row's View eye to open Submission Details; the preview can truncate longer values.
  3. Compare Your name and Your email with the respondent's answers. This is the persistence check. The submitted identifier, creation time and current status are also visible.
  4. Expect Submitter: guest for the unrestricted example. Typing an email into a field did not authenticate the person, so it must not be presented as a verified account identity.
  5. Close the detail to return to the list. The example produced two training responses because the confirmation repair was rehearsed a second time; the second row is explicitly named Course Reader — confirmation check.

Submission Details shows the full stored answers and the unverified guest submitter.

Workflow alternative — still to verify: In Setup, select Send submissions to a workflow and save. A separate controlled submission should create a task; inspect the exact task's source reference and answers. The ordinary saved-answer walkthrough above does not prove that handoff or an external notification.

Check the result

A success message alone does not establish field mapping or task creation. Collection-bound output must also be inspected in its owning collection.

06. Messages, SEO and lifecycle

Why this matters

Messages configures form notifications, while SEO describes the public form page. Closing access should change what a new respondent can do without erasing previous answers.

Follow these steps

Configure the intended notification templates in Messages and page metadata in SEO, then Save changes. Verify the controlled notification and public page. Change a disposable form to Closed or set Closes, then open a fresh respondent session and compare access while retaining the earlier submission.

Check the result

Verified close behavior: in Setup, set Status to Closed and select Save changes. Reload the copied form link in the signed-out browser. The local test displayed This form isn't available — This form is closed. The two saved answers remained available under Submissions. To resume collecting, set Status back to Open, save and retest the link.

The signed-out customer is refused access after the form is set to Closed.

Scheduled close-time boundaries, template context, actual delivery, SEO rendering and duplicate handling remain separate checks. No automatic duplicate prevention is promised here.

07. Participants and invitation delivery

Why this matters

A participant list does two jobs: it identifies intended recipients and restricts entry to those listed people. An invitation count records a send attempt in the application; the actual email and the person's successful access are separate checks.

Follow these steps

Open the saved form's Access tab. Choose the intended entry method under Who may open it?, then select Add under Participants to restrict the form to named recipients. Enter the controlled recipient's Email and Name, inspect the generated Code and enter Role if your process uses it. Save changes before distributing links.

Use Their link to copy that participant's individual URL, or Send invitation to send the configured invitation. Verify the recipient address before sending. Reopen Access to inspect Invited count and last-invited time, then open the actual received link in an independent recipient session. After submitting, return to the participant row and inspect Submitted time and the matching submission.

For several participants, review the whole list before Send to all. Use Resend invitation only after checking whether the original reached the recipient. To remove an unintended recipient, use that row's trash control and save; test access again rather than assuming an already distributed link has become unusable.

Check the result

An empty participant list does not itself block everybody: the selected entry method controls access. Adding a participant changes this into a restricted recipient list. A participant code and an authentication method are different controls. Email only records an address without proving ownership. Keep codes out of public recordings and demonstrate with disposable training recipients.

08. Submission messages and search preview

Why this matters

Saving an answer and notifying someone are separate parts of the form. Messages configures notification content; SEO configures how the form link is described when it is displayed elsewhere. Neither changes the fields that the person submits.

Follow these steps

Open Messages. Set Send submissions to for the fallback recipient and select any named Templates that should run on submission. Select Invitation email only when replacing the built-in form-invitation template. A custom invitation can use {{data.link}}, {{data.code}}, {{data.participant.name}}, {{data.form.title}} and {{data.isReminder}}; retain the link needed to open the form.

Enter Email body where this form needs its own message body, using the shown {{data.collection.field}} variable convention. Enter SMS text only for a configured SMS route and keep within the field's 160-character limit. Save changes. Submit one controlled answer, then inspect the stored submission and each intended recipient/channel independently. If no recipient, template or body is configured, the interface warns that submissions are recorded silently.

Open SEO. Enter Page title, Description and Keywords. Use Choose from File Manager for Share image, select the intended image and save. Reopen the form's generated link to check the browser title and visible form; inspect sharing metadata separately when preparing public distribution.

Check the result

The fallback recipient is used when the submitter did not supply their own address. Do not describe it as unconditional delivery to your support team without checking the resulting recipients. Configured templates do not prove a sending provider is available. Preserve the stored answer even if a notification fails, and investigate delivery before submitting duplicate answers.

09. Build fields and validate the respondent experience

Why this matters

Inline fields belong to this form. A bound collection supplies its own schema and stores its own records. Field names identify the saved answers; titles are the readable labels the respondent sees. The preview helps inspect layout, but a real submission verifies storage and access.

Follow these steps

In Fields choose Build the fields here. Use Schema Builder to drag the appropriate controls into the form, then use that field's Config gear to open its Properties. Give each field a stable Name and a clear Title. For a contact email, select the email format; for a longer answer choose the textarea variant. Add a useful Description or Placeholder where the format would otherwise be unclear. Mark only necessary inputs Required. Set minimum/maximum length where a real requirement exists, and inspect any default value so it cannot silently become a respondent's answer.

For attachments use the file control's file types and maximum size options. Select the accepted categories, such as images or PDF Document, instead of allowing all files without a reason. For repeated items inspect minimum/maximum item settings when repeatable is enabled. Place fields in an existing layout group; the current selector uses actual layouts because a name that matches no layout can hide the field from the rendered form.

Switch to Form Preview. Inspect order, labels, required indicators and readability. Use Schema Tree to find an unexpectedly missing control. JSON Schema is the advanced alternative for inspecting the underlying schema; preserve field names already used by answers or templates. In the embedded form editor, Collection Info, Notifications and Live View are intentionally absent: save the enclosing CRM form, and use that form's Messages and Submissions instead.

Save changes, open the public link as the intended respondent, and attempt an empty required field and a malformed email. Correct the validation error, submit a valid answer and inspect Submissions. Open View for Submission Details and compare the saved answer labels and values. Use Notes for an internal observation. Change a submission status only through the offered selector, then reopen it to confirm the result. Delete opens a confirmation for that submission; do not use it as a substitute for correcting the original form.

For Use an existing collection, select the saved collection in the picker and inspect its fields before publishing the form. Submit a controlled answer, then verify the matching collection record as well as any form activity. Changing the storage source is a design change; check downstream templates and workflow references before switching an established form.

Check the result

Name validation permits identifiers starting with a letter, underscore or dollar sign, followed by those characters or digits; the field-name schema sets a 3–100 character length. A readable title can contain ordinary business wording without changing that identifier. Hidden and Disabled are separate field properties; do not rely on either as server-side access control. Browser validation, server validation, duplicate handling and close/expiry enforcement must be checked independently at the published link. To stop new responses, set the intended closed/expiry state in Setup, save, then reopen the link independently and verify the actual refusal.

Next steps

Return to the chapter for the action you need. When you change the configuration, check the matching record, customer view or destination again. A saved setting and a successful external outcome are different observations.

Verification notes