Sync to Table
Module · Stable
Upsert a batch of rows into a custom table — match-and-update by key, no duplicates.
Upserts a whole list of rows into an admin-defined custom table in one step — the same validate-and-upsert engine as the bulk CSV/XLSX import. rows is a list of {column_key: value} objects. Set key_column to a column key to make it idempotent: a row whose key matches an existing row updates it, otherwise it inserts, and duplicates within the batch collapse. Leave key_column empty to always append. Column-tolerant: keys that are not columns of the table are dropped (and returned in dropped_keys) while the columns that do exist are still filled — so a rich feed maps onto whatever subset of columns you kept. A non-empty dropped_keys flags a mistyped or mis-mapped column. A row missing a required column is counted in errors and skipped; one bad row never aborts the batch.
When to use
Section titled “When to use”Use to sync a feed into a table on a schedule — e.g. a Calendar (iCal) step produces a list of events, each with a stable uid; Sync to Table with key_column=“uid” writes them once and keeps them current on every re-run instead of duplicating. Also the right step whenever an upstream node yields a list of rows to persist in bulk.
When not to use
Section titled “When not to use”To insert a single new row, use Create Record. This IS the single-row upsert tile too, though — pass a one-item list and a key_column to match-and-update one row in one step. To create a contact, company, or deal use the dedicated Contacts steps. Note: it upserts and inserts but does not delete rows absent from the batch — it will not remove entries cancelled at the source.
Inputs
Section titled “Inputs”Configured per use: table, rows, key_column.
Outputs
Section titled “Outputs”Auto-generated from the skill registry (load_skills()). Do not edit by hand.