View Categories

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.