# Send your first request

Assign your published form to one person, watch what they see, and find the answers afterwards.

## Send your first request

You have a published form. Now assign it to one person: their own link, with what you already know filled in. Here you make one and open it yourself, so you see both halves — what the recipient gets, and what you get back.

> ℹ️ **Works on every plan**
> <p>
>     You deliver the link yourself here, so nothing needs upgrading. Letting formbase email the invitation and chase people with reminders
>     needs a <strong>Pro or Business plan</strong>. On Free, formbase can email your first{' '}
>     <a href="/subscription-billing/limits-quotas#free-invitations">10 invitations</a> to try it.
>   </p>

<h2 id="send">Make one and open it yourself</h2>

Share</strong> in the top toolbar. An unpublished form cannot be requested, so publish first if the button is not there.',
    },
    {
      title: 'Switch to the Requests channel',
      description:
        '<strong>Requests</strong> is the channel for one named person; <strong>Public link</strong> is for anyone with the URL. Pick Requests.',
    },
    {
      title: 'Fill in the Manual tab',
      description:
        "Under <strong>Create a request</strong> there are three tabs. <strong>Manual</strong> is the by-hand one: <em>Who is it for?</em>, <em>Prefill answers</em> (lock any the recipient may only confirm), <em>Hidden fields</em>, and <em>Callback and options</em>. <strong>curl</strong> and <strong>MCP</strong> hand you the same request as a snippet, already written against this form's field keys.",
    },
    {
      title: 'Click Try it yourself',
      description:
        'Under <strong>See what they will get</strong>, this turns your draft — prefill, locks, hidden fields, callback, expiry — into a <a href="/requests/creating-requests/#test-mode">test request</a> addressed to you, and shows its link. Nothing is emailed, it spends none of your monthly allowance, and its submission never reaches the inbox, the counts, exports, or your integrations.',
    },
  ]}
/>

<h2 id="recipient">What the recipient sees</h2>

<p>
  Open the test link in a new tab and answer the form as your recipient would. It is the form you authored — your theme, your logo, your
  language — with no captcha and no sign-in. When you submit, you get your thank-you page.
</p>

<p>
  Open the same link again afterwards. Instead of a blank form you get the <strong>outcome page</strong> — your thank-you page again, or{' '}
  <em>You have already submitted</em>, under the same cover and logo. A request is answered once, by one person, and the link says so rather
  than quietly collecting a second response. Expired and canceled requests show a short notice there instead.
</p>

<h2 id="requests-page">Find it on the Requests page</h2>

<p>
  Click <strong>Requests</strong> in the sidebar, between Forms and Trash. This is every request in the workspace, across every form. Open{' '}
  <strong>Filter</strong> and tick <strong>Show test requests</strong> to see the one you just made — test requests are hidden by default
  and carry a <strong>Test</strong> badge.
</p>

<p>Click a request to open its drawer. It answers two questions:</p>

<p>
  From here you can copy the request link, cancel the request, send a reminder (Pro), or replay a callback. A request expires 30 days after
  it is created unless you set your own <strong>Expires in (days)</strong>, between 1 and 365.{' '}
  <a href="/requests/managing-requests">The Requests page →</a>
</p>

<h2 id="callback">What you left out</h2>

<p>
  Doing it by hand is the whole loop in miniature. When a workflow creates the request instead, three things join in — and they are the
  reason requests exist:
</p>

<ul>
  <li>
    <strong>Prefill and context.</strong> Send what you already know, so the recipient confirms instead of retyping. Lock the values they
    are only confirming, and attach your case id where they cannot change it.{' '}
    <a href="/requests/creating-requests#three-buckets">Prefill, locked fields, and context →</a>
  </li>
  <li>
    <strong>A callback.</strong> The moment they finish, formbase POSTs a signed payload to your endpoint with the answers keyed by field
    key, and your run continues. Expiry and cancellation fire it too, so nothing hangs.{' '}
    <a href="/requests/callbacks">Callbacks &amp; signing →</a>
  </li>
  <li>
    <strong>Delivery and chasing.</strong> On Pro and Business, formbase emails the invitation and sends the reminders on your schedule,
    from your own domain once you set one up. Free gets 10 invitation emails to try it, without reminders.{' '}
    <a href="/requests/invitations-and-reminders">Invitations &amp; reminders →</a>
  </li>
</ul>

> 💡 **Same thing from your own code**
> <p>
>     The <strong>curl</strong> and <strong>MCP</strong> tabs on that same card are not a different feature — they run exactly what the Manual
>     tab runs. Copy one, swap the recipient, and you have automated the step. <a href="/requests/creating-requests">Creating a request →</a>
>   </p>

<h2 id="next-steps">Next steps</h2>
<div class="not-prose grid gap-3 sm:grid-cols-2">
  - [Share a public link](/getting-started/share-a-public-link) — Open the same form to anyone, by link, embed, or QR
  - [Requests overview](/requests/overview) — The full model: statuses, expiry, and what you need
  - [Creating a request](/requests/creating-requests) — Prefill, locked fields, context, and every option
  - [Decisions & approvals](/requests/decisions-and-approvals) — Ask for approve, decline, or changes — and branch on it
</div>
