> ## Documentation Index
> Fetch the complete documentation index at: https://docs.soundchecklive.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Portal forms

> Embed branded intake forms — lead capture, event questionnaires, and feedback — and have responses flow straight into Soundcheck.

Portal forms let you put your own forms in front of clients and prospects — a booking inquiry, an event questionnaire, a post-event feedback form — and have the responses flow straight into Soundcheck. Forms are built in a form provider you already know, then assigned to your organization, a customer, or an event so submissions land in the right place.

Soundcheck supports two providers: **JotForm** and **Form.io**. Either one delivers responses to Soundcheck through a signed webhook.

<Info>
  Portal forms are a CRM capability gated by the client-portal feature. If you don't see forms in your portal, [contact support](mailto:support@soundcheck.live) to enable them.
</Info>

## Form purposes

Each form has a **purpose** that tells Soundcheck how to handle its responses:

| Purpose                 | Use it for                                                                                                                    |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **Lead intake**         | Booking inquiries from prospects. Mirrors built-in [lead intake](/crm/leads/lead-intake) — responses become pipeline records. |
| **Event questionnaire** | Details you collect from a confirmed client for a specific gig.                                                               |
| **Feedback**            | Post-event feedback from clients or attendees.                                                                                |
| **General**             | Any other structured intake you want captured.                                                                                |

## Providers

<CardGroup cols={2}>
  <Card title="JotForm" icon="wpforms">
    Build in JotForm; submissions reach Soundcheck through an **n8n** automation that signs and forwards each response. A good fit if your org already routes integrations through n8n.
  </Card>

  <Card title="Form.io" icon="rectangle-list">
    Build in Form.io; submissions post **directly** to Soundcheck over a signed webhook — no automation layer in between.
  </Card>
</CardGroup>

Both providers normalize into the same Soundcheck records, so the provider you pick is an operational choice — your team's CRM data looks the same either way.

## How it fits together

<Steps>
  <Step title="Build the form">
    Create the form in JotForm or Form.io with the fields you want to collect.
  </Step>

  <Step title="Register it in Soundcheck">
    Connect the form to your organization with its provider and form ID, and set its purpose. Soundcheck infers the provider from the form's embed URL, so JotForm and Form.io forms can live side by side.
  </Step>

  <Step title="Assign and embed">
    Assign the form to your organization, a customer, or an event, and embed or share it. Forms can be prefilled with what Soundcheck already knows. Forms assigned to a customer or event also appear in that client's [client portal](/features/client-portal/overview).
  </Step>

  <Step title="Responses flow in">
    On submit, the response is delivered over a signed webhook and matched to the right customer or event. Matches are marked so your team knows which responses landed cleanly and which need a look.
  </Step>
</Steps>

<Note>
  Clients fill these forms directly inside the portal — see [contracts, invoices & forms](/features/client-portal/contracts-invoices-and-forms). JotForm forms confirm submission in the portal the moment the client hits submit; Form.io forms confirm once the signed response reaches Soundcheck. Either way, the response ends up in the same place.
</Note>

## Matching responses

Each submission is reconciled against your existing records and tagged by how confidently it matched — fully matched, a partial match, or unmatched — so triage is quick: clean responses file themselves, and ambiguous ones get a human.

## Related

<CardGroup cols={2}>
  <Card title="Client portal" icon="browser" href="/features/client-portal/contracts-invoices-and-forms">
    Where clients fill the forms you assign them.
  </Card>

  <Card title="Lead intake" icon="inbox" href="/crm/leads/lead-intake">
    The built-in public booking form.
  </Card>

  <Card title="Customers" icon="users" href="/crm/customers">
    Where matched responses attach.
  </Card>

  <Card title="n8n CRM sync" icon="arrows-rotate" href="/crm/integrations/n8n-crm-sync">
    The automation layer JotForm forms ride on.
  </Card>
</CardGroup>
