Leads
Create and update leads with complete curl request examples.
Collection path: events/{event_id}/leads
| Input | Type | POST | PATCH | Notes |
|---|---|---|---|---|
sponsor_id |
Scalar ID | Required unless exactly one sponsor is injected by a row restriction | Optional | POST creates ownership for one sponsor. PATCH replaces all ownerships for an unrestricted scope, or only the visible restricted ownership set for a restricted scope. |
registrant_id |
Scalar ID | Required for a successful create | Optional | Target registrant; must belong to the event. |
created_by_registrant_id |
Scalar ID | Optional | Optional for unrestricted scopes | Creator/scanner registrant. Sponsor-restricted scopes cannot change it on PATCH. |
notes |
Scalar string or null |
Optional | Optional | Lead notes. |
custom_fields_attributes |
Raw array | Ignored | Optional | Lead-scan answers are processed only on PATCH. |
The wrapper enforces event boundaries for the target registrant, optional creator, sponsor, and lead-scan answers. The scope’s sponsor row restriction also limits which existing leads can be patched.
POST a lead
curl --request POST \
--url "${BRELLA_API_BASE_URL}/api/core/organizations/${BRELLA_ORGANIZATION_ID}/events/${BRELLA_EVENT_ID}/leads" \
--header "Accept: application/vnd.brella.v4+json" \
--header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--data-raw '{
"sponsor_id": 103705,
"registrant_id": 1201,
"created_by_registrant_id": 1301,
"notes": "Requested pricing information"
}'
On a scope restricted to exactly one sponsor, sponsor_id may be omitted and that sponsor is injected. A scope restricted to one or more sponsors cannot create a lead for a sponsor outside the restricted set.
The response type is lead. Useful write-response fields include event_id, sponsor_ids, registrant_id, created_by_registrant_id, notes, and updated_at.
PATCH a lead
This example updates notes and saves lead-scan answers. Each answer identifies the sponsor and question definition that own the answer.
curl --request PATCH \
--url "${BRELLA_API_BASE_URL}/api/core/organizations/${BRELLA_ORGANIZATION_ID}/events/${BRELLA_EVENT_ID}/leads/3898" \
--header "Accept: application/vnd.brella.v4+json" \
--header "Brella-API-Access-Token: ${BRELLA_API_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--data-raw '{
"notes": "Requested pricing and a Q4 follow-up",
"custom_fields_attributes": [
{
"sponsor_id": 103705,
"question_id": 901,
"values": ["Q4"]
}
]
}'
An unrestricted scope may reassign created_by_registrant_id; a sponsor-restricted scope receives 404 for that reattribution attempt. A lead created without a creator can legitimately return created-by-registrant-id: null.