# 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>.
>   </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 from your own domain and sends the reminders
    on your schedule. <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>
