Use Cases for Individual

I want to
Request TypeExample URL
Retrieve and display details of a particular individual.GET by ID{{orgendpoint}}/services/data/{{version}}/connect/comms/partymanagement/v5/individual/{ID}

NOTE:
For an invalid ID, you receive HTTP 404 error.
Based on the provided field values, retrieve and display details of individuals.GET with Fields{{orgendpoint}}/services/data/{{version}}/connect/comms/partymanagement/v5/individual?fields=name

NOTE:
The requested fields are part of the output if they have a value.
List all the individuals present in the system.GET List{{orgendpoint}}/services/data/{{version}}/connect/comms/partymanagement/v5/individual
List individuals present in the system based on the filter applied.GET List with Filtering{{orgendpoint}}/services/data/{{version}}/connect/comms/partymanagement/v5/individual?name=John Doe

NOTE:
The requested fields are part of the output if they have a value.
List individuals, limit the number of records to a specified limit, and start the results from the page specified by offset.GET List by limit and offset{{orgendpoint}}/services/data/{{version}}/connect/comms/partymanagement/v5/individual?offset=4&pageLimit=1&pageinfo=true
Create a new individual by providing the required details.POST{{orgendpoint}}/services/data/{{version}}/connect/comms/partymanagement/v5/individual

NOTE:
A new individual is created based on the values mentioned for the mandatory fields.
Update details of a particular individual.PATCH{{orgendpoint}}/services/data/{{version}}/connect/comms/partymanagement/v5/individual/{ID}
Delete an individual.DELETE{{orgendpoint}}/services/data/{{version}}/connect/comms/partymanagement/v5/individual/{ID}

NOTE:
DELETE requires an Apex extensibility implementation. Without it, the API returns HTTP 400.

GET by ID 

Consider you want to retrieve details of a particular individual.

Sample URL 

{{orgendpoint}}/services/data/{{version}}/connect/comms/partymanagement/v5/individual/{ID}

Sample Response 

1{
2    "id": "003xx000004WofUAAS",
3    "href": "/connect/comms/partymanagement/v5/individual/003xx000004WofUAAS",
4    "@type": "Individual",
5    "familyName": "Doe",
6    "givenName": "John",
7    "name": "John Doe",
8    "title": "Mr.",
9    "birthDate": "1990-01-15",
10    "contactMedium": [
11        {
12            "@type": "EmailContactMedium",
13            "emailAddress": "john.doe@example.com"
14        },
15        {
16            "@type": "PhoneContactMedium",
17            "phoneNumber": "+1-555-123-4567"
18        },
19        {
20            "@type": "FaxContactMedium",
21            "faxNumber": "+1-555-987-6543"
22        },
23        {
24            "@type": "GeographicAddressContactMedium",
25            "street1": "123 Main Street",
26            "city": "San Francisco",
27            "stateOrProvince": "CA",
28            "postCode": "94105",
29            "country": "US"
30        }
31    ],
32    "relatedParty": [
33        {
34            "@type": "RelatedPartyRefOrPartyRoleRef",
35            "role": "employer",
36            "partyOrPartyRole": {
37                "id": "001xx000003Hg0xAAC",
38                "href": "/connect/comms/partymanagement/v5/organization/001xx000003Hg0xAAC",
39                "name": "Acme Corporation",
40                "@type": "PartyRef",
41                "@referredType": "Organization"
42            }
43        }
44    ]
45}

GET with Fields 

Consider you want to retrieve individuals and return only these fields in the output.

  • id
  • name

Sample URL 

{{orgendpoint}}/services/data/{{version}}/connect/comms/partymanagement/v5/individual?fields=name

Sample Response 

1[
2    {
3        "id": "003xx000004WofUAAS",
4        "href": "/connect/comms/partymanagement/v5/individual/003xx000004WofUAAS",
5        "name": "John Doe",
6        "@type": "Individual"
7    }
8]

GET List 

Consider there are multiple individuals in the system and you want to list all of them.

Sample URL 

{{orgendpoint}}/services/data/{{version}}/connect/comms/partymanagement/v5/individual

Sample Response 

1[
2    {
3        "id": "003xx000004WofUAAS",
4        "href": "/connect/comms/partymanagement/v5/individual/003xx000004WofUAAS",
5        "familyName": "Doe",
6        "givenName": "John",
7        "name": "John Doe",
8        "@type": "Individual"
9    }
10]

GET List with Filtering 

Consider you want to retrieve individuals with applied filter values.

Sample URL 

{{orgendpoint}}/services/data/{{version}}/connect/comms/partymanagement/v5/individual?name=John Doe

Sample Response 

1[
2    {
3        "id": "003xx000004WofUAAS",
4        "href": "/connect/comms/partymanagement/v5/individual/003xx000004WofUAAS",
5        "familyName": "Doe",
6        "givenName": "John",
7        "name": "John Doe",
8        "@type": "Individual"
9    }
10]

GET List by limit and offset 

Consider you want to retrieve a list of individuals, limit the number of records, and start the results from the specified offset.

Sample URL 

{{orgendpoint}}/services/data/{{version}}/connect/comms/partymanagement/v5/individual?offset=4&pageLimit=1&pageinfo=true

POST 

Consider you want to create a new individual. givenName and familyName are mandatory.

Sample URL 

{{orgendpoint}}/services/data/{{version}}/connect/comms/partymanagement/v5/individual

Sample Request 

1{
2  "givenName": "Jane",
3  "familyName": "Doe",
4  "@type": "Individual"
5}

Sample Response 

1{
2  "id": "003xx000004WofUAAS",
3  "href": "/connect/comms/partymanagement/v5/individual/003xx000004WofUAAS",
4  "familyName": "Doe",
5  "givenName": "Jane",
6  "name": "Jane Doe",
7  "@type": "Individual"
8}

PATCH 

Consider you want to update details of a particular individual. Patchable attributes include givenName, familyName, title, birthDate, contactMedium, and relatedParty. These attributes are not patchable: id, href, name, and @type.

Sample URL 

{{orgendpoint}}/services/data/{{version}}/connect/comms/partymanagement/v5/individual/{ID}

Sample Request 

1{
2  "@type": "Individual",
3  "givenName": "Jane",
4  "familyName": "Smith",
5  "title": "Prof",
6  "birthDate": "1991-06-20",
7  "contactMedium": [
8    {
9      "@type": "EmailContactMedium",
10      "emailAddress": "jane.smith@newexample.com"
11    },
12    {
13      "@type": "PhoneContactMedium",
14      "phoneNumber": "+1-555-0200"
15    }
16  ]
17}

DELETE 

Contact and Account do not include a status field that supports soft delete out of the box. The DELETE endpoint is provided as an extensibility hook. Without a custom Apex implementation, the API returns HTTP 400.

Sample URL 

{{orgendpoint}}/services/data/{{version}}/connect/comms/partymanagement/v5/individual/{ID}

Sample Request 

No request body.

Sample Response 

With an Apex extensibility implementation: HTTP 204 with no response body.

Without extensibility:

1[
2    {
3        "errorCode": "BAD_REQUEST",
4        "message": "DELETE operation for Individual requires an extensibility class implementing comms_apex_ext.IIndividualPartyManagementDELETE. Configure a custom Apex class that provides a soft-delete status field via the customiseMutationPayload hook."
5    }
6]