Skip to content

People Bulk-upsert ​

lindris people bulk-upsert

Stream a CSV of contacts to /api/people. One POST per row.

Synopsis ​

Stream a CSV of contacts to the upsert endpoint POST /api/people. One POST per row. Default concurrency 2 matches the documented sustained rate limit.

Pass "-" as the path to read from stdin.

A row that does not land makes the run exit non-zero: 4 if the API rejected the credential (the stream stops there), else 5 for a refused or unbuildable row, else 7 for throttling, else 6.

Columns are mapped by header name (case-sensitive) with overrides via --map col=field. The first non-empty of email or id is the required identifier.

bash
lindris people bulk-upsert <file.csv> [flags]

Examples ​

bash
lindris people bulk-upsert customers.csv --source woocommerce
cat customers.csv | lindris people bulk-upsert - --source api --dry-run

Options ​

  • --concurrency int - Parallel POSTs. Default: 2) (default 2
  • --dry-run - Validate rows without POSTing
  • --errors-out string - Write failed rows + error message to this CSV
  • --map strings - Map CSV columns to API fields, e.g. --map e_mail=email,first=firstName
  • --series-prefix string - Columns starting with this prefix are drip-series toggles keyed by ID after the prefix. Default: series.
  • --skip-double-opt-in - Set skipDoubleOptIn=true on every row
  • --source string - Default source applied to every row (required unless rows carry a source column)
  • --tag-column string - CSV column whose cell value is a single tag NAME to toggle. Default: tag) (default "tag"
  • --tag-prefix string - Columns starting with this prefix are tag toggles keyed by NAME after the prefix. Default: tag.

See Also ​