Skip to content

Project Agent Discovery

POST
/agent/onboarding/discovery/project

Turn the interview into real objects: an ICP, a persona, AND A CAMPAIGN.

Takes no body. The campaign is the part that surprises people, so it is said plainly: this CREATES a campaign and provisions its Work channel. It does not SEND anything - the campaign sits there for a human to launch - which is why this is a write and not an external operation.

IDEMPOTENT: the projection is idempotent by object name, and the build is claim-fenced, so calling twice updates the same ICP and returns the same campaign rather than minting a second one.

PARTIAL SUCCESS IS A REAL OUTCOME. A refused build does not fail the projection, because the ICP and persona are committed by the time the build runs and reporting the whole call as failed would send someone to re-run a projection that worked. Read campaign.ok in the body; a blocked build names what is still open rather than counting it.

Authorizations

Parameters

Header Parameters

X-Target-Org-Id
Any of:
string

Responses

200

Successful Response

object
data
required

An open envelope for an onboarding or discovery result.

Open on purpose. Discovery state carries a per-field coverage matrix whose field set is the product’s own onboarding questionnaire - it changes as the questionnaire does, and a pinned mirror would silently DROP a field the customer had answered. On a surface whose whole job is “what do we still not know about you”, a dropped field reads as an answered question.

object
key
additional properties
any
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
notes
Any of:
Array<string>
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer
total_available
Any of:
integer
total_is_lower_bound
Any of:
boolean

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string