Row sources

A worksheet uses one row source to provide its working rows.

A row source is the saved route that brings base rows into one worksheet. Use it after you can state what a row must prove, before you add columns that judge or enrich it. In Workbooks at /dashboard/workbooks, the source is the evidence boundary for how a row entered the worksheet.

Each worksheet has one row source. Put a different row type or search chain in another worksheet in the same workbook. A source brings rows in; cells record the values and states that result, which you inspect on cells and provenance.

Choose and attach a source

Use tables.findable_catalog.list for the compact source list: id, label, produces, pricing, readiness, and when to use it. Pass definition_id to read one source's inputs and output fields, then add it with tables.table_sources.attach. When the user provides a LinkedIn search URL, attach provider.linkedin.people.search_by_url with raw_search_url set to that URL. Use provider.linkedin.people.search only when building a search from words. Do not pass columns to copy source fields; reference {{source_key.field}} in prompts and formulas.

Architect uses the list-building skill to begin with purpose, qualification evidence, disqualifiers, and the distinction between required and nice-to-have criteria. It chooses the route that can carry the scarcest criterion or strongest signal. Intent is not itself a source field, so Architect translates it into observable evidence before choosing a route.

Put every stated criterion into the source input that supports it. A location is a location filter, a title is a title filter, and a size is a size filter. A criterion omitted from source inputs is not applied. A guessed filter value may not fail, but it can return the wrong rows, so plan output and a landed sample both need inspection.

For hiring intent, the plan starts with qualifying company rows and then follows with people at those companies. The people follow-up projects current title, person location, and profile URL. Keep the company hiring role separate from the titles of people to contact. Passing person titles as a company hiring role can return companies hiring the wrong role.

Plan a source for an Operations Leaders worksheet. The people must be in California and work at companies with an observable operations signal. Show every route, which request filters it applies or drops, required inputs, source fields, estimate, and the first sample to read. Do not attach or run a source.

Attach the exact planned binding

tables.table_sources.attach binds one provider fetch, canonical producer, or CSV file to a worksheet. Attachment writes the binding row only. It fetches no rows and spends no credits. The operation is a free, internally reversible draft write, so a missing connection does not prevent you from authoring the worksheet and its source.

Attach the plan route's exact binding_spec, including its definition_id and input_bindings. Do not attach an empty binding. The attach response lists available_output_paths for every field. field_guidance names a few relevant {{source_column_key.field}} references. Pass paths in columns only when the caller wants them as their own formula columns. Omit columns and only the source column is created. project_fields does not add columns.

The response is the full source record, not a signal that rows landed. It includes source_id, workspace and table ids, source column and tool ids, output row kind, the canonical upsert key, binding, state, frontier, timestamps, and archive state. Use tables.table_sources.list, a free read-only capability, to inspect sources bound to one worksheet before replacing a binding.

Returned fieldWhat it lets you inspect
source_idIdentifier for the attached source record.
table_idWorksheet table that owns the source.
bindingSaved executable definition and input bindings.
stateCurrent source state.
frontierRevision, watermark, and last update time for progress.
canonical_upsert_keyKey used for canonical source upserts.
Attach the selected plan route to the Operations Leaders worksheet using the plan binding exactly. Project name, role, location, company evidence, and profile URL only when the route exposes them. Read the saved source record and stop before running it.

Preserve the one-source boundary

A worksheet has one row source. When the current worksheet is named by the user or is the active canvas, treat it as the target and add requested columns there. Do not create an empty workbook or worksheet merely because a source needs more work. Create another worksheet only when the request needs a new list or a distinct row type.

For a companies-then-people plan, keep the source chain visible. The company worksheet receives the qualifying signal. The people worksheet uses the company input named by the plan, so every person can remain linked to the company evidence. For people at companies already on a company worksheet, use the find-people action on that worksheet rather than manually creating, attaching, and running a second source. It creates or reuses the linked People worksheet and binds the company input.

To continue a list, run the attached source again. A company-scoped people source resumes companies it has not searched yet. Re-attaching a source or changing its inputs starts it over, so do that only when the filters need to change. This distinction prevents an avoidable duplicate pass through rows that were already inspected.

Use real options offered by the source for locations, industries, companies, and schools. A source field can be narrow in meaning: a company-search location may mean headquarters, while a nested job location is the location of the matched job. Read the entities that landed before treating a route as a match for the user's place requirement.

Inspect the attached source and the workbook structure. If company evidence must qualify people, keep the company worksheet as the source of truth and use the company rows to create or reuse the linked People worksheet. Show the source chain before running it.

Run a small source sample

tables.table_sources.run executes the bound source for real. It can call an external provider and spends variable credits. The executor reserves max_credits, or max_units, before dispatch. The capability applies a generic maximum of 25 credits per call, but that clamp is not the actual provider price. The actual cost belongs to the bound executable.

The run result returns run_id and status. On the authority path it also returns state_version, authority_version, authority_digest, policy_trigger_id, selection_snapshot_id, and replayed. A queued response confirms that execution was requested. It does not prove the source supplied the intended people or companies.

StageWhat to verify
PlanA ranked route, filter coverage, required inputs, estimate, and build steps.
AttachA saved binding and projected source fields, without fetching rows.
RunA real provider execution with a run id and status.
ReadA check of landed entities, projected fields, and run evidence.

Run a small batch first. The list-building skill uses about twenty-five rows as a sample, reads the entities rather than only their count, and can compare two or three parameter variants. Keep the most precise variant. The sample should make most rows right at the source before you add expensive columns or request a larger run.

Run a small sample from the attached Operations Leaders source with the plan estimate as the ceiling. Follow the run to completion, then read landed rows and projected fields. Stop before scale if the rows are outside California, lack the operations signal, or lack profile evidence.

Read the landed rows before scale

Read rows, not only counts. A count that is still being computed is unknown, not zero. Check the selected entities, their locations, the proof for the qualifying signal, and fields needed by later columns. If the sample contains global companies because a company location meant headquarters, or it contains a keyword match without the requested meaning, the source filters are too broad or incomplete.

Try a corrected input on a small sample. Do not make the next step more expensive until the source entities are precise. When the sample reads correctly, scale the same source to the requested count. If no target was stated, the list-building skill uses 100 rows. Target qualified rows, not merely landed rows: a source that lands many near misses still needs a narrower route or filter.

Read the source result after the run finishes, then read the worksheet page. In the completion report, separate landed rows, duplicates, empty evidence, and failures. The next layer should be a column that changes the qualification decision. A source that produces the right raw rows does not remove the need to inspect the cells created by later columns.

Read the completed Operations Leaders sample. Show representative rows, applied source fields, duplicates, and missing required evidence. Identify the one source input to tighten if the sample is imprecise; otherwise name the qualifying column to add next.

When a source does not run

A missing account or credential blocks a run, not planning or attachment. Keep the planned binding, state that it can be attached now and connected or bound at run time, and do not switch to a weaker source merely to avoid a connection. Building every planned step while a connection is unavailable leaves the worksheet ready for a later run.

If the contract refuses the attachment with repair.kind set to fix_input, use repair.hint to correct the payload and retry the corrected binding. If a required criterion has no source filter, retain it for a column and score condition instead of claiming the source applied it. If a cell later reaches a daily limit, that is the workspace pacing cap, not a source defect.

Queued, paced, capped, and unknown are not automatically failures. Read the run state again and inspect the source record frontier before retrying. Do not re-attach a source to solve a temporary run state: reattachment changes the source chain and can start the list over. Diagnose the missing connection, input, or field reference, correct that cause, and read the next sample.

  • Keep a missing credential separate from an invalid source binding.
  • Keep an unsupported filter separate from a source-run state.
  • Keep a queued run separate from a failed row result.
  • Keep the source record as evidence for the next diagnosis.
Diagnose why this attached source did not land the expected rows. Read its binding, state, frontier, and most recent run. Apply a fix_input repair hint if present, otherwise identify the missing connection, unsupported filter, or pacing state. Preserve the current worksheet and verify the corrected sample.

Dreamstate documentation

Start

Guides

Surfaces

Workspace

Knowledge

Data

Execution

Providers

Plays and templates

Safety and cost

API reference