Bulk-create deals

POST/api/v1/o2c/deals/bulk

Create up to 250 pipeline deals in one request — the import path behind the Pipeline page's Import button, for moving an existing pipeline spreadsheet in.

Rows are independent: one invalid row does not reject the rest. Every row comes back in results with its 1-based row number and, on failure, the reason — so a caller fixes and re-submits only what failed. Each row needs prospect_name or customer_id, and expected_value_cents is in CENTS.

Operation ID: bulk_create_deals_api_v1_o2c_deals_bulk_post·View as markdown·OpenAPI slice

Authentication

Bearer token authentication. Pass your DayZero API token in the Authorization header and the target business UUID in x-business-id.

Request body

dealsarray · DealBulkRowrequiredDealBulkRow

Deals to create (1-250).

17 fields
prospect_namestring

Free-text prospect/company name, used before a real customer record exists. Required unless customer_id is set.

customer_idstring

Existing customer this deal is for (expansion deal). Required unless prospect_name is set.

namestring

Deal name. Defaults to the prospect/customer name.

contact_namestring

Sales contact.

contact_emailstring

Sales contact email. Never written to the customer record -- may later become the order signer.

sourcestring

Validated per row; an unknown source fails that row.

stagestring

Validated per row; an unknown stage fails that row.

is_expansionboolean

True if this is expansion revenue on an existing customer.

expected_value_centsinteger

Estimated deal value in cents.

expected_hoursnumber | string

Estimated hours.

expected_term_monthsinteger

Estimated contract term in months.

expected_start_datestring · date

Estimated start date.

expected_close_datestring · date

Estimated close date.

notesstring

Free-text notes.

owner_namestring

Sales rep / deal owner. Free text (reps are often not DayZero users); the pipeline's owner filter matches on it exactly.

deal_typestring

Business-defined deal category, e.g. 'Subcontractor', 'EPC', 'Developer'. Free text -- every business slices deals differently.

revenue_typestring

Validated per row; an unknown value fails that row.

Responses

201Successful Response

successboolean
messagestring
codestring
dataDealBulkCreateResponse

400Bad Request - Invalid input

401Unauthorized - Authentication required

403Forbidden - Insufficient permissions

422Validation Error

detailarray · ValidationErrorValidationError
5 fields
locarray · string | integerrequired
msgstringrequired
typestringrequired
inputobject
ctxobject