# Send a request from a Zap

Create a Formstep request from any Zapier trigger, prefill and lock the answers you already know, send the link, then find, remind or cancel the request from a later Zap.

## Before you start

You need a [Formstep connection in Zapier](https://formstep.io/docs/guides/zapier/connect/) and a published form. What a request is, and what it can carry, is in [Creating requests](https://formstep.io/docs/requests/creating-requests/). The steps here show where each option sits in Zapier.

For an approval, open **Templates** in Formstep and pick **Approval**. It holds a [Decision question](https://formstep.io/docs/requests/decisions-and-approvals/) with Approve, Decline and Request changes, a text box for the changes, and a signature for approval.

For what the app is good for, and how it replaces Approval by Zapier, see [Formstep for Zapier](https://formstep.io/integrations/zapier/).

## 1. Add the Create Request step

Start with the trigger that should send the request, such as a deal marked won in your CRM or a new row in Google Sheets. Add an action, choose **Formstep**, and pick **Create Request**.

## 2. Pick the form, the recipient and the delivery

- **Form** is the form the recipient completes. It must be published.

- **Recipient Email** and **Recipient Name** usually come from the trigger. The email is needed for email delivery and for reminders.

- **Language** is one of the form’s published languages, like `de`. Leave it empty for the form’s default.

- **Delivery** decides who sends the link. **Email** lets Formstep send the [invitation and reminders](https://formstep.io/docs/requests/invitations-and-reminders/), on Pro and Business. **None**, the default, sends no invitation: a later step of your Zap sends the **Request URL** by Slack, SMS or your own email tool. That makes the Zap three steps, which needs a paid Zapier plan.

![The Create Request step: Form Approval, Recipient Email ada@acme.example, Recipient Name Ada Lovelace, Language empty, Delivery 'None: the Zap sends the link itself'](https://formstep.io/docs/guides/zapier/zapier-create-request-fields.png)

With a Recipient Email, Formstep still emails the form’s scheduled reminders even when Delivery is None. To send none, leave Recipient Email empty.

## 3. Prefill and lock what you already know

Once you pick the form, each question you can prefill appears below as a field. Fill in any answer you already have. Add a question to **Read-only fields** to lock it. Fields marked **(context)** are the form’s hidden fields, and a **Documents** field takes files from earlier steps when the form has a Documents block. What each of these does is in [Prefill, locked fields and hidden fields](https://formstep.io/docs/requests/creating-requests/#three-buckets).

![Test Request set to False, Your Name prefilled with Ada Lovelace, Your Decision and What should change? left empty, and Your Name picked under Read-only fields](https://formstep.io/docs/guides/zapier/zapier-create-request-prefill.png)

The recipient opens the link and finds their name filled in and locked:

![The request form with Your Name showing Ada Lovelace in a greyed-out field and the note 'Filled in by the sender.'](https://formstep.io/docs/guides/zapier/formstep-prefill-locked.png)

## 4. Set an External ID

Put your own id for this piece of work in **External ID**, like the deal number `deal-1042`. A later Zap can then [find the request](#find-a-request) by it. If Zapier runs the step again with the same External ID and the same inputs, you get the same request back instead of a second one. Use a new External ID for each request, and a fresh one when you change a test step’s inputs.

**Reminders**, **Expires At** and **Metadata** are optional. For expiry and reminder defaults, see [Invitations, reminders and expiry](https://formstep.io/docs/requests/invitations-and-reminders/).

## 5. Test the step

Click **Test step**. Formstep creates the request and returns it. **Request URL** is the link for the recipient; map it into the step that sends it.

![The Data out tab of the Create Request test: Created At and Expires At as dates, Deduplicated false, Delivery Status not\_requested, External ID deal-1043, Status pending and a Request URL on form.formstep.io](https://formstep.io/docs/guides/zapier/zapier-create-request-output.png)

Delivery Status is not\_requested because Delivery is None: Formstep sent nothing.

> **Testing the step creates a real request**
>
> Unless **Test Request** is on, the test is a real request: with Email delivery, the recipient gets the invitation. Turn Test Request on while you build the Zap. A test request sends no email, counts nowhere, and does not start any Zap with a [request trigger](https://formstep.io/docs/guides/zapier/request-outcome/). Turn it off before you publish.

To test the whole path, turn Test Request off, set **Delivery** to **None**, use your own email and open the **Request URL** yourself.

## Find, remind and cancel requests

Four more Formstep actions work on a request that already exists. A typical Zap finds the request by the id your system knows it by, then reminds or cancels it. The same actions are on [the Requests page](https://formstep.io/docs/requests/managing-requests/).

### Find a request by External ID

Your CRM knows the deal as `deal-1042`, not by Formstep’s request ID. Add a Formstep action with the event **Find Request** and map your id into **External ID**:

![The Find Request step: External ID deal-1042, Form empty, Include Test Requests empty, and Zapier's options for no results and multiple results](https://formstep.io/docs/guides/zapier/zapier-find-request-fields.png)

- **Form** narrows the search to one form. Leave it empty to search the whole workspace.

- **Include Test Requests** is off by default, so a test request is not found. Turn it on while you build the Zap.

- If several requests share the External ID, the newest comes first, and Zapier uses it unless you change **If multiple search results are found**.

The result is the whole request: its status, outcome, recipient, dates, and what you prefilled and locked.

![The Find Request test result: Test Request false, Language en, Last Activity At and Opened At as dates, Outcome approve, prefill with Your Name Ada Lovelace, and Readonly Keys your\_name](https://formstep.io/docs/guides/zapier/zapier-find-request-output.png)

### Read the answers with Get Request

**Get Request** takes a **Request**: map the Request ID from a Create Request step, a Find Request step or a request trigger. It returns the request, its link, and the answers once it is completed. Pick the request’s form under **Form** so the answers are labelled with the question titles.

### Send a reminder with Remind Request

**Remind Request** emails the recipient a reminder now, on Pro and Business. Scheduled reminders still go out as planned. The request must be pending and have a recipient email, and a test request is never reminded. How often you can remind someone is in [Invitations, reminders and expiry](https://formstep.io/docs/requests/invitations-and-reminders/).

### Withdraw a request with Cancel Request

**Cancel Request** withdraws a pending request. The link stops working, and the recipient sees a withdrawn notice instead of the form. Fill in **Reason** to record why: the [Request Canceled](https://formstep.io/docs/guides/zapier/request-outcome/) trigger carries it, so another Zap can tell your team. A request that is already completed, expired or canceled stays as it is, and the step fails.

## Next steps

[Act on a request's outcome](https://formstep.io/docs/guides/zapier/request-outcome/) — Start a Zap when the recipient approves, declines or asks for changes

[Decisions & approvals](https://formstep.io/docs/requests/decisions-and-approvals/) — The Decision question and its three values

[Zapier templates](https://formstep.io/workflows/) — Three Zaps spelled out step by step: CRM prefill, PDF reading with AI, and onboarding

[Form templates](https://formstep.io/templates/) — Forms to start from, each with its field keys listed
