Skip to main content
POST
Batch ingest clients into a pipeline

Authorizations

Authorization
string
header
required

API key created in the dashboard under Settings → API Keys. Send it as Authorization: Bearer pk_....

Path Parameters

input_node_uuid
string
required

UUID of the pipeline's API input node. Copy it from the input node's settings in the Salesflow editor, or read it from List API input nodes of a pipeline.

Body

application/json

Request body for the batch ingest.

clients
SalesflowIngestBatchRowSchema · object[]
required

1 to 500 client rows

Required array length: 1 - 500 elements
on_duplicate
enum<string>
default:update

What to do when a row matches an existing client: update = merge the row into it (default; blank fields never clear values), skip = leave it untouched but still place it on the pipeline, fail = report the row as failed

Available options:
update,
skip,
fail
shared_phone_different_document
enum<string>
default:secondary

A row with the same phone as an existing client (or an earlier row) but a different, real identity document: secondary = another person sharing the phone, created as that contact's secondary contact (default; a real document is never overwritten), update = the same person, the row updates that contact and corrects its document. Rows with the same document, or with no real document on either side (blank, all zeros, or the phone itself), always update. Rows may override it.

Available options:
secondary,
update
all_or_none
boolean
default:false

If true, any failed row rolls back the whole batch (400 INGEST_ROLLED_BACK)

dry_run
boolean
default:false

Validate and match without writing anything

trigger_automations
boolean
default:true

Fire the target stage's on-arrival automations for each placed client

stage_id
integer | null

Override the input node's target stage; must belong to the same pipeline

defaults
SalesflowIngestDefaultsSchema · object

Batch-wide values applied wherever a row is silent.

Response

OK

Success response for the batch ingest (rows may still have failed individually unless all_or_none was set).

dry_run
boolean
required

True when nothing was written

input_node_uuid
string
required

The input node the batch was ingested through

pipeline_id
integer
required

Pipeline the clients were placed on

stage_id
integer
required

Stage the clients were placed on

summary
SalesflowIngestBatchSummarySchema · object
required

Counts over all rows

results
SalesflowIngestBatchRowResultSchema · object[]
required

One result per request row, in request order

status
string
default:success

Response status

Allowed value: "success"