Fill ACF fields without a misspelled field name slipping through

ContentIntermediate~10 min

Before you start

Advanced Custom Fields active. Plugin version 1.10.1 or newer, where an ACF update naming an unknown top-level field is refused by name. Switch on the two ACF reads, plus Update post ACF fields for the write pass. ACF tools sit outside the Content editor preset, so use Custom access on the connection. The agent needs edit access to each entry.

A field called “venue_name” and a request to fill “event_venue” look close enough to slip past in a long run. A misspelled field name is refused and nothing is written. Since 1.10.1 the error also names the fields it could not find, so you can see which one was wrong.

Better still is never sending the wrong name. Here the agent confirms the real names with you first, from an entry that already has them filled in.

The prompt
I want ACF fields filled on some [Speaker] entries.
1. List the ACF field groups and note each field's key, label and type.
That list does not show field names, so read the ACF fields on one
existing Speaker entry, [ID 205], match its field names to the labels,
and show me the match. Use only names I confirm.
2. Read the current ACF values on these entries: [IDs 210, 214, 219].
3. Fill these fields from what I give you here: [job title, company,
LinkedIn URL for each speaker]. Do not invent a value I have not given.
4. Show me a table: entry, field name, current value, new value. Wait for
my yes.
5. Write the approved values one entry at a time, sending only the fields
in the table. If a write is refused because a field name is unknown,
stop, show me the refusal, and write nothing more until we have checked
the name.
6. Read each entry back and confirm what was stored.

Why this is safe to run

Steps 1 and 2 only read. The field group list returns structure, never stored values. Writes wait for your yes, go one entry at a time, and carry only the fields in the approved table, so nothing else on the entry is touched.

If a wrong name still gets through, the refusal stops the run, and the prompt tells the agent not to guess a replacement. Update post ACF fields is off until you enable it, it checks the connected user’s edit access to each entry, and every write lands in the Activity Log.

Already connected? Ask your agent to fill the ACF fields you list, and tell it to confirm the field names from an existing entry first.

How it works

  1. List the ACF field groups, then read one existing entry to confirm the field names.
  2. Read the current values on each entry you name.
  3. Show current and proposed values for your approval.
  4. Write approved values one entry at a time, using only the confirmed names.
  5. Stop and report if a write is refused for an unknown field.

Questions

What changed in 1.10.1?
Before 1.10.1 a write naming a field the site does not have was already refused, but with a generic error. Since 1.10.1 the error names the field. A name that is protected meta still gets the generic refusal.
Why read an existing entry first?
The field group list gives each field's key, label and type, but not the name the field uses or which content type the group belongs to. One existing entry shows the names, and the prompt has the agent match them to the labels with you.
Does it handle repeaters?
The prompt keeps to top-level fields. Repeater and flexible content rows need more care; report them and handle them separately.