---
title: Refresh Values with GP Populate Anything
description: "**Goal:** every recurring submission should carry *today's* looked-up values, not the ones that were true when the parent entry was created. **Requires:** GP Populate Anything, and a form already using it. --- ## The Recipe 1. **Set the feed to…"
url: "https://brightleafdigital.io/docs/refresh-values-with-populate-anything/"
updated: "2026-10-18"
category: Recurring Form Submissions for Gravity Forms / How To Guides Recurring Form Submissions For Gravity Forms
---

# Refresh Values with GP Populate Anything

**Goal:** every recurring submission should carry *today's* looked-up values, not the ones that were true when the parent entry was created.

**Requires:** GP Populate Anything, and a form already using it.

---

## The Recipe

1. **Set the feed to Dynamic.** In the feed's submission options, leave **Input mode: Snapshot (unchecked = Dynamic)** unchecked.
2. **Make sure the lookup's source value is saved on the parent entry.** This is the step people miss — see below.
3. **Preview and save** the feed.
4. **Submit a parent entry** and click **Run Next Submission Now**.
5. **Compare** the child entry with what the lookup should return today.

---

## Step 2, Properly

Dynamic mode reloads the **saved parent entry**, then uses those saved values to seed the lookups.

So the identifier your lookup depends on — a vehicle number, a member ID, a reference code — must be **stored in a field on the parent entry**.

> If the identifier only ever existed in the browser (a URL parameter used for display, a value that was never saved), Dynamic mode has nothing to look up with and the field comes back empty.

---

## What Happens on Each Attempt

1. The current saved parent entry is loaded.
2. Populate Anything dependencies are seeded from those values.
3. Populated fields are evaluated **in dependency order**, so a field that depends on another gets the fresh upstream value — including dependent and compound fields.
4. The result is submitted as the child entry.

---

## Empty Results Are Valid Input

An empty lookup result **replaces** the previous value. It does not fall back to what was there before.

That is deliberate and useful:

- A blank-result notification can fire.
- Required-field validation can reject the submission and raise a visible failure.

Decide which behaviour you want:

| You want… | Do this |
| --- | --- |
| A blank to be reported, but the submission to proceed | Leave the field optional and add a notification keyed on the blank |
| A blank to **stop** the submission | Make the field required — the attempt fails with the field ID listed |
| A blank to be impossible | Fix the data source; the plugin will not invent a value |

---

## Worked Example: a Daily Vehicle Check

A daily inspection form looks up a vehicle's current service status from its registration number.

| Setup | Value |
| --- | --- |
| Registration number field | Saved on the parent entry |
| Service status field | Populated by Populate Anything, keyed on the registration |
| Feed input mode | **Dynamic** |
| Cadence | Every 1 day, 06:00, weekdays only |

Each morning the attempt reloads the parent, reads the saved registration, re-runs the lookup, and submits a child carrying **today's** status. If the vehicle leaves the source list, the status comes back blank and your notification or validation reacts.

---

## Troubleshooting

| Symptom | Likely cause |
| --- | --- |
| Values never change | The feed is in **Snapshot** mode. |
| Lookup is empty on every child | The source identifier isn't saved on the parent entry. |
| Attempt reports a dependency issue | Populate Anything is unavailable or the dependency can't be resolved. Ordinary forms without Populate Anything continue normally. |
| Some dependent fields update, others don't | Check the dependency chain — evaluation follows dependency order, so a broken link stops everything downstream. |
| Validation failure naming a populated field | The lookup returned blank and the field is required. That's the design working. |

**Attempt context** reports Populate Anything field IDs, whether the dependency was present, and how many results came back — **never** the values themselves. That's enough to diagnose a lookup without recording personal data.

---

## Snapshot Mode and Populate Anything

In Snapshot mode, Populate Anything values are **never** re-evaluated. The values captured when the series started are reused for its whole life.

That's the right choice when the record must not drift — see *Choosing Snapshot or Dynamic Inputs*.
