POST api/entity/person/camper/Camper/UpsertLead
Upserts a camper lead (a season-0 tbl_potcamper row plus the lead fields on tblcamper) for an already-resolved legacy personID, without creating or modifying the person or household. This is the Option B legacy-write transport for the comms Lead Legacy Orchestrator (work item #20341); see spike #20340 §15.9. Lead-only by design: it writes nothing to tblPerson, tblfamily (including lead source), or the relationship graph — those are owned by the People domain's legacy projection. The person must already exist; this endpoint attaches the lead to it. Sunset: this is a transitional shim. Retire it once the People domain owns the full legacy write path — at which point the orchestrator moves to an event-driven CORE-access worker (spike #20340 §15.9 Option C).
Request Information
URI Parameters
None.
Body Parameters
UpsertLeadRequest| Name | Description | Type | Additional information |
|---|---|---|---|
| PersonID |
The already-resolved legacy personID the lead attaches to. The person must already exist (projected by People); this endpoint does not create it. Required. |
integer |
None. |
| SchoolName |
The attendee's school name. Maps to tblcamper.school. |
string |
None. |
| GradeLevel |
The attendee's grade, written as received — no GradeCompleted offset is applied (the legacy DB trigger still clamps to [-3, 14]). Maps to Camper2.CampGradeID. |
integer |
None. |
| SeasonOfInterest |
The season the family is interested in (a legacy season id). Maps to tbl_potcamper.SeasonInterestedIn. The lead row itself is always season 0. |
integer |
None. |
| PreviousExperience |
The attendee's prior camp experience. Maps to tblcamper.previousCampExperience. |
string |
None. |
Request Formats
application/json, text/json
{
"PersonID": 1,
"SchoolName": "sample string 2",
"GradeLevel": 1,
"SeasonOfInterest": 1,
"PreviousExperience": "sample string 3"
}
application/javascript
{"PersonID":1,"SchoolName":"sample string 2","GradeLevel":1,"SeasonOfInterest":1,"PreviousExperience":"sample string 3"}
application/xml, text/xml
<UpsertLeadRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <PersonID>1</PersonID> <SchoolName>sample string 2</SchoolName> <GradeLevel>1</GradeLevel> <SeasonOfInterest>1</SeasonOfInterest> <PreviousExperience>sample string 3</PreviousExperience> </UpsertLeadRequest>
application/x-www-form-urlencoded
Response Information
Resource Description
WebMethodResultOfUpsertLeadResponse| Name | Description | Type | Additional information |
|---|---|---|---|
| Result | UpsertLeadResponse |
None. |
|
| Success | boolean |
None. |
|
| ErrorText | string |
None. |
Response Formats
application/json, text/json
{
"Result": {
"PersonID": 1
},
"Success": true,
"ErrorText": "sample string 2"
}
application/javascript
{"Result":{"PersonID":1},"Success":true,"ErrorText":"sample string 2"}
application/xml, text/xml
<WebMethodResultOfUpsertLeadResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Success>true</Success>
<ErrorText>sample string 2</ErrorText>
<Result>
<PersonID>1</PersonID>
</Result>
</WebMethodResultOfUpsertLeadResponse>