# Request missing application information, then finish review

Applications arrive incomplete. The usual outcome is a manual loop: an email, a wait, a spreadsheet of who has replied, and a review that starts over. A workflow can carry one clear correction round and return the updated application for a final decision.

<dl class="fc-recipe-meta not-content" aria-label="Recipe details">
	<div class="fc-recipe-meta__group">
		<dt class="fc-recipe-meta__label">Good for</dt>
		<dd class="fc-recipe-meta__value">Admissions, grants, recruiting, and vendor or membership applications</dd>
	</div>
	<div class="fc-recipe-meta__group fc-recipe-meta__group--level">
		<dt class="fc-recipe-meta__label">Level</dt>
		<dd class="fc-recipe-meta__value">
			<span class="fc-recipe-meta__level" data-level="advanced">
				<svg class="fc-recipe-meta__level-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" aria-hidden="true" focusable="false">
					<rect class="fc-recipe-meta__level-bar" x="1" y="10" width="3" height="4" rx="1" />
					<rect class="fc-recipe-meta__level-bar" x="6.5" y="6" width="3" height="8" rx="1" />
					<rect class="fc-recipe-meta__level-bar" x="12" y="2" width="3" height="12" rx="1" />
				</svg>
				Advanced
			</span>
		</dd>
	</div>
</dl>

## What you'll build

A reviewer requests missing information without leaving the run. The applicant receives a link to a correction form, the run parks until that form comes back with this run's key, and the approved fields are copied onto the application. The workflow then reloads that entry so the second reviewer sees the saved corrections rather than the original submission snapshot.

```mermaid
flowchart TD
    A[Application submitted] --> B[Wait for Approval:<br/>initial review]
    B -->|Approved| C[Set status: Accepted]
    B -->|Rejected| D[Set status: Needs info]
    B -->|Expired| E[Escalate to<br/>the admissions lead]
    D --> F[Send Email: correction link<br/>with reviewer note]
    F --> G[Wait for Form Submission]
    G -->|Submitted| H[Copy corrected fields<br/>onto the application]
    G -->|Expired| I[Set status: Abandoned]
    H --> N[Get Entries:<br/>reload application]
    N --> J[Wait for Approval:<br/>final review]
    J -->|Approved| C
    J -->|Rejected| K[Set status: Declined]
    J -->|Expired| E
    C --> L[Send acceptance email]
    K --> M[Send decision email]
```

![Application workflow with initial review, corrections, controlled copying, reload, and final review](/documentation/flowcrafter/screenshots/use-case-application-rework-workflow.png)

## Before you build

- Create the application and corrections forms, and decide which fields applicants may change.
- Add an administrative **Application status** field to the application form.
- Choose reviewer, escalation, and applicant email addresses.
- Put sensitive corrections behind login or another identity check; the run key only matches submissions.

## Build it step by step

1. Create a separate **Corrections** form with the fields an applicant may need to fix, plus a hidden field for the workflow key. Turn on **Allow field to be populated dynamically** for the hidden field and use `key` as its parameter name.
2. Open the application form and click **Workflows** in the form toolbar. Click **New Workflow**, then **Add Trigger** and choose [Form Submitted](/documentation/flowcrafter/nodes/triggers/form-submitted/).
3. Add [Wait for Approval](/documentation/flowcrafter/nodes/flow/wait-for-approval/) named **Initial review**. Address it to your reviewers, include the application in the email body, and set an expiry with reminders so applications don't sit unnoticed. Turn on **Require a note when rejecting** so the reviewer has to say what's missing.
4. On **Approved**, set the application status to `Accepted` with [Update Entry Field](/documentation/flowcrafter/nodes/actions/update-entry-field/) and follow it with the acceptance email.
5. On **Rejected**, set the status to `Needs info`. Add [Send Email](/documentation/flowcrafter/nodes/actions/send-email/) to the applicant with the correction form link — for example, `https://your-site.test/correct/?key={{run.key}}` after replacing the domain and path with the real correction page — and `{{ "Initial review".note }}` in the body so they know exactly what to fix.
6. Add [Wait for Form Submission](/documentation/flowcrafter/nodes/flow/wait-for-form-submission/). Choose the corrections form and match its hidden key field to `{{run.key}}` so only this applicant's form resumes this run. Set an expiry that fits your deadline.

   
   ![Correction-form wait matching Workflow key to the current run with a one-week expiry](/documentation/flowcrafter/screenshots/use-case-application-rework-settings.png)

7. On **Submitted**, add [Copy Entry Fields](/documentation/flowcrafter/nodes/actions/copy-entry-fields/). Use `{{ "Wait for Form Submission".entry_id }}` as the source, leave the target empty to use the application entry, and map only the fields applicants may correct.
8. Add [Get Entries](/documentation/flowcrafter/nodes/actions/get-entries/) named **Reload application**. Set **Entry ID** to `{{ "Form Submitted".id }}` and set **Return** to **Full entries**. This creates a fresh output snapshot for the final email; do not reuse merge tags from Form Submitted, which still describe the original submission.
9. Add [Add Entry Note](/documentation/flowcrafter/nodes/actions/add-entry-note/) recording `{{ "Copy Entry Fields".updated_count }}` and `{{ "Copy Entry Fields".skipped_fields }}` so staff can see what actually changed.
10. Add a second Wait for Approval named **Final review**. Set **Entry source** to Reload application's first item, and build the review summary from `{{ "Reload application".items[0].mergeTag('{all_fields}') }}`. Entry-aware nodes reload the selected entry when they execute, while this fresh Get Entries output gives the email an updated flow tag source. Connect **Approved** to the accepted-status path, **Rejected** to a `Declined` status and decision email, and **Expired** to the admissions escalation.
11. On Wait for Form Submission's **Expired** output, set the application status to `Abandoned` and notify the team.

:::tip[Pre-fill the corrections form]
[GP Easy Passthrough](https://gravitywiz.com/documentation/gravity-forms-easy-passthrough/) can fill the corrections form from the application entry, so the applicant edits their existing answers rather than starting from a blank form.
:::

## Data passed between nodes

| From | Data used later | Where it goes |
|---|---|---|
| Initial review | Reviewer `note` | Correction email |
| Run context | `run.key` | Correction-form link correlation and Wait for Form Submission match |
| Wait for Form Submission | Submitted `entry_id` | Copy Entry Fields source |
| Copy Entry Fields | `updated_count` and `skipped_fields` | Entry note and audit trail |
| Reload application | Fresh `items[0]` entry snapshot | Final approval entry source and email summary |

## Test and activate safely

New workflows start **Inactive**. While inactive, use builder tests for Approved and Rejected on both approval nodes. Then temporarily activate on staging or with test recipients for controlled live runs: reject the initial review to create the correction wait, submit the correction form with that run key, and confirm only mapped fields change. Expired also requires a genuinely parked run, so use short deadlines in these live tests. Verify a blank source answer behaves as intended: a present blank value can clear a target, while a missing or null source value is skipped. Use short expiries only in staging, restore the real deadlines, activate, and watch the first application through both review stages.

## What Flowcrafter adds

A notification can ask for missing information, but it cannot hold the process, match the reply to the application, or resume the review. Flowcrafter keeps the review and correction on one record: the reviewer asks, the applicant answers, the approved corrections land on the entry, and the final approval reloads the entry so the reviewer sees the updated application.

The same shape works for grant and scholarship applications, job applications returned for missing documents, vendor onboarding compliance, and registration packets.

## Related resources

- [Wait for Approval](/documentation/flowcrafter/nodes/flow/wait-for-approval/) — the initial and final reviews
- [Wait for Form Submission](/documentation/flowcrafter/nodes/flow/wait-for-form-submission/) — wait for the matching corrections form
- [Copy Entry Fields](/documentation/flowcrafter/nodes/actions/copy-entry-fields/) — write corrected answers onto the application
- [Get Entries](/documentation/flowcrafter/nodes/actions/get-entries/) — create a fresh flow tag source after copying fields
- [Add Entry Note](/documentation/flowcrafter/nodes/actions/add-entry-note/) — leave an audit trail for staff
- [Passing Data Between Nodes](/documentation/flowcrafter/building/using-flow-tags/) — use the returned entry ID, copy result, and reviewer notes
