tables-trace
Trace a record
Use when: you have an identifier and want to find the record and see its overall state — "trace 12345", "where is jane@acme.com?", "what enrichments ran for this lead?", "is this record done?". This is a locate + snapshot: which table(s) hold it, and each cell's status. It does not explain why a cell holds what it holds — that's /tables-value-trace.
Treat each in-scope table independently. Tables may not share identifiers or have any relationship; presence (or absence) in one says nothing about another.
1. Settle scope
Resolve which table(s) to look in as in the tables entry-point skill ("Finding a table"), or pass a tbl_... id directly. {id} is whatever the user gave (email, HubSpot ID, row id, etc.).
If {id} is already a rec_... row id and the table is known, skip discovery and go straight to get the row (step 4).
2. Per table: find the identifier's column and archive linkage
For each in-scope table:
clay tables columns list <tableId>— find the column that holds this kind of identifier by matching names (Emailfor an email,HSID/HubSpot IDfor a HubSpot id, etc.). Cache thef_id → namemap and note column types. The match column must bebasicto value-filter on it. If several columns could match, or none does, show the columns and ask which to search.clay tables get <tableId>— readarchive. Ifarchiveis non-null, resolvearchive.searchableFieldFormula(a{{f_xxx}}) to its column via the columns list. Plan to search the archive only if{id}is the value of that indexed column; otherwise the archive isn't searchable by this identifier.