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

# Lead forms

> Lead campaigns, their form fields and leads received.

Each tool below is one switch in **Settings → MCP Server**. Your AI app sees a tool only when it is switched on for your role; every call is checked again on the server.

## `audience_forms`

**Lead forms: view** · Read only

See lead campaigns: their form fields, where they are used on the websites, and leads received.

| Action | What it does |
| :- | :- |
| `list` | every campaign with objective, form field count, leads received, last lead, and which website pages use it. |
| `get` | one campaign with its form fields (label, type, required) and its public form URL. |
| `leads` | the most recent leads — name, when, from which page, conversion status. Contact details are included only when the caller may see them. |

<Accordion title="Parameters">
  <ParamField path="action" type="string" required>
    The action to run: `list`, `get`, `leads`.
  </ParamField>

  <ParamField path="audience_id" type="string">
    Campaign id (from `list`).
  </ParamField>

  <ParamField path="status" type="string">
    list: ACTIVE (default), PAUSED, COMPLETED, ARCHIVED or ALL.
  </ParamField>

  <ParamField path="days" type="integer">
    leads: only leads from the last N days.
  </ParamField>

  <ParamField path="limit" type="integer">
    leads: max rows (default 10, max 25).
  </ParamField>
</Accordion>

<Accordion title="What your AI app is told about this tool">
  ```text theme={null}
  Read the institute's lead campaigns (Audience Manager) — the forms that website enquiry sections, popups and registration pages submit into. Pick an `action`:
  - list (status?): every campaign with objective, form field count, leads received, last lead, and which website pages use it.
  - get (audience_id): one campaign with its form fields (label, type, required) and its public form URL.
  - leads (audience_id, days?, limit?): the most recent leads — name, when, from which page, conversion status. Contact details are included only when the caller may see them.
  Campaign ids come from `list`; never invent one.
  ```
</Accordion>

## `audience_forms_edit`

**Lead forms: edit** · Makes changes · Adds only — never changes or removes what exists.

Create lead campaigns, add fields to their forms and send test leads. Never removes anything.

<Note>
  **What keeps it safe:** additive: creates campaigns / adds fields / sends a test lead; never removes
</Note>

| Action | What it does |
| :- | :- |
| `create` | a new WEBSITE lead campaign. Default fields: Full Name, Email, Phone Number. Returns the id to use with website\_edit(action='link\_lead\_form'). |
| `update_fields` | add fields to the form or change existing ones (matched by label). Existing fields are never removed here — that stays in Audience Manager. Get the current list with audience\_forms(action='get'). |
| `send_test_lead` | submit one test lead through the real public pipeline to prove the campaign receives submissions. |

<Accordion title="Parameters">
  <ParamField path="action" type="string" required>
    The action to run: `create`, `update_fields`, `send_test_lead`.
  </ParamField>

  <ParamField path="audience_id" type="string">
    —
  </ParamField>

  <ParamField path="name" type="string">
    create: campaign name, e.g. 'Admissions 2027'.
  </ParamField>

  <ParamField path="description" type="string">
    —
  </ParamField>

  <ParamField path="objective" type="string">
    create: LEAD\_GENERATION (default) or EVENT\_REGISTRATION.
  </ParamField>

  <ParamField path="fields" type="object[]">
    Form fields in order.
  </ParamField>
</Accordion>

<Accordion title="What your AI app is told about this tool">
  ```text theme={null}
  Change lead campaigns (Audience Manager). Pick an `action`:
  - create (name, fields?, objective?, description?): a new WEBSITE lead campaign. Default fields: Full Name, Email, Phone Number. Returns the id to use with website_edit(action='link_lead_form').
  - update_fields (audience_id, fields): add fields to the form or change existing ones (matched by label). Existing fields are never removed here — that stays in Audience Manager. Get the current list with audience_forms(action='get').
  - send_test_lead (audience_id): submit one test lead through the real public pipeline to prove the campaign receives submissions.
  These change the CRM directly (a campaign is not a draft) — confirm with the admin first.
  ```
</Accordion>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.