Skip to content

docs(send-table-data): expand listData error causes and JSON.parse sources#1483

Open
george-dilthey wants to merge 1 commit into
mainfrom
docsbot/doc-1061-intercom-tag-0709-10b87773
Open

docs(send-table-data): expand listData error causes and JSON.parse sources#1483
george-dilthey wants to merge 1 commit into
mainfrom
docsbot/doc-1061-intercom-tag-0709-10b87773

Conversation

@george-dilthey

Copy link
Copy Markdown
Contributor

What changed

Expanded two sections in docs/send-table-data.md to document a second cause of the "Invalid send table data inputs … 'listData' … 'Required'" error and its fix.

Change 1 — listData troubleshooting bullet (Best practices & troubleshooting): The existing note described only one cause (no data for the row, received: "undefined") with one fix (add a run condition). Added a second cause: the list column holds a stringified JSON array from a formula column that uses JSON.stringify() (error shows received: "string" at runtime). Fix for that case: switch the list input to formula mode and enter JSON.parse(/YourColumn).

Change 2 — JSON.parse paragraph (Selecting the right list field manually): The existing paragraph attributed stringified JSON arrays only to HTTP API calls and webhooks. Added formula columns that use JSON.stringify() as a third source of this pattern.

Why

Intercom conversation 215475012970109: customer Areya was using a formula column ("Agents With Email") to filter a JSON array of agent objects down to only those with email addresses, then pointing "Send row for each item in a list" at that column. The action failed with Invalid send table data inputs … listData … Required. Human support agent Bo Morin resolved it by instructing the customer to switch to formula mode in the list input and enter JSON.parse({{Agents With Email}}) — confirmed working by customer ("figured it out").

The root cause: the formula column output a text string (produced via JSON.stringify() in the formula), not a native array. The docs already described JSON.parse() as the fix for stringified arrays from HTTP APIs/webhooks, but didn't cover formula columns as a source, and the listData error troubleshooting note directed users to a run condition fix (wrong for this case).

Verifier verdict: The received: "string" error for a stringified-JSON list column is PASS — confirmed by /workspace/clay-base/apps/api/v3/non-lambda-actions/domain/route-row/types.ts:8-15 (Zod schema requiring listData: z.array(...)) and /workspace/clay-base/apps/api/v3/non-lambda-actions/domain/route-row/index.ts:212-214 (the Invalid send table data inputs error message). The JSON.parse() fix is confirmed by Slack threads in #proj-send-table-data-deprecate-wtt and #team-tables-functions.

Source link(s)

  • Intercom conversation: https://app.intercom.com/a/inbox/w28k1kwz/inbox/conversation/215475012970109
  • Verifier code evidence: clay-base/apps/api/v3/non-lambda-actions/domain/route-row/types.ts:8-15, clay-base/apps/api/v3/non-lambda-actions/domain/route-row/index.ts:212-214
  • Verifier Slack confirmation: #proj-send-table-data-deprecate-wtt (Dec 2025), #team-tables-functions (June 2026)

Uncertainties

None. Both changes are directly supported by code evidence (PASS verdict) and confirmed by the customer's successful resolution.

Related observations

The "Routing data conditionally" example mentions an AI column filtering a list and its output becoming the list source. The verifier confirmed Claygent/AI columns return native JSON objects (not strings), so that case works without JSON.parse() — no change needed there.

Closes DOC-1061

Two gaps identified from Intercom conversation 215475012970109:
1. The listData troubleshooting note treated the error as a single case
   (empty column) with a single fix (run condition). Added a second cause:
   when a formula column holds a stringified JSON array (received: "string"),
   the fix is JSON.parse() in formula mode, not a run condition.
2. The JSON.parse paragraph attributed stringified arrays only to HTTP API
   calls and webhooks. Added formula columns that use JSON.stringify() as
   a third source of this pattern.
@linear-code

linear-code Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

DOC-1061

@george-dilthey george-dilthey marked this pull request as ready for review July 9, 2026 18:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant