# Look up, remind and cancel requests in n8n

Find a request by your own External ID, read its status and answers, send the recipient a reminder, or cancel it, all from an n8n workflow.

## Before you start

You need a [Formstep credential in n8n](https://formstep.io/docs/guides/n8n/connect/) and a request created with an External ID, as in [Send a request and act on its outcome](https://formstep.io/docs/guides/n8n/send-a-request/). The same actions exist in the dashboard; see [The Requests page](https://formstep.io/docs/requests/managing-requests/).

## Find a request with Get many requests

Your system knows the supplier as `SUP-1042`, not by Formstep’s request ID. Add a Formstep node, pick **Get many requests**, and filter by the External ID you set when you created the request:

![The Get many requests node: Operation Get Many, Return All off, Limit 50, Scope Workspace, and Filters with External ID supplier-SUP-1042, Include Test Requests on and Status Pending](https://formstep.io/docs/guides/n8n/n8n-find-request.png)

- **Scope** is **Form**, the default, which then asks for the form, or **Workspace**, every request the credential can reach.

- **Filters** narrow the list by **External ID**, **Status** or **Outcome**. **Include Test Requests** is off by default, so a request created with Test Mode on is not found. Turn it on while you build the workflow with test requests.

- The newest request comes first. **Limit** caps the number of items; **Return All** fetches every page.

Each request is one output item, so the nodes after it run once per request. When nothing matches, the node outputs no items and the workflow stops there; turn on **Always Output Data** in the node’s settings to carry on. Every node below takes the request as **Request** › **By ID** `{{ $json.id }}`, or pick one of the newest requests under **From list**.

## Read a request with Get request

**Get request** returns the request. **Output** sets how much of it comes back, and **Get many requests**, **Remind request recipient** and **Cancel request** have it too:

- **Simplified**, the default, returns ten fields: `id`, `status`, `outcome`, `externalId`, `formId`, `recipientEmail`, `answers` once it is completed, as `{{ $json.answers.company_name }}`, and `createdAt`, `expiresAt` and `completedAt` as ISO 8601 dates. Only Get request has answers; the other operations return the remaining nine fields.

- **Raw** returns the whole request: what you prefilled and locked, the documents, the reminders sent, the timeline, and `display`, the answers as text. Its timestamps are Unix time in milliseconds.

- **Selected Fields** returns the request ID and the fields you pick under **Fields**, with the same values as Raw, timestamps included. A field the response does not have is left out: Answers, Display and Timeline come with Get request only, and Form Name and Form Origin with Get many requests only.

**Output** came with version 0.15.0 of the package. A node saved earlier keeps its old **Simplify** switch, or returns the whole request.

## Send a reminder with Remind request recipient

**Remind request recipient** 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: it comes in the [Request Canceled](https://formstep.io/docs/guides/n8n/send-a-request/#trigger) event, so another workflow can tell your team. To see it in this node’s output, set **Output** to **Raw**. A request that is already completed, expired or canceled stays as it is, and the node fails.

## Send the callback again

**Replay request callback** sends a finished request’s callback URL the outcome again, for when your receiver missed it. Developers: see [When a callback never lands](https://formstep.io/docs/developers/callbacks/#replay).

## Next steps

[The Requests page](https://formstep.io/docs/requests/managing-requests/) — The same actions in the dashboard

[Automation guides](https://formstep.io/docs/guides/overview/) — Every guide for Zapier, Make, n8n and AI agents
