Person Management
The People controller lets you read and mutate the individual parts of a person record — aliases (names), tags, notes, addresses, and entity-field attributes. To read the whole person in one call, see Get Identity.
All writes are upserts: PUT with the sub-resource's id creates or updates it; omit the id to create a new one.
API Endpoints
- Base URL (Cloud):
https://customername.econnectcloud.com/identities - Base URL (On-prem):
https://<server-host-or-ip>:5009
All paths are prefixed with /api/v1/people/{personId}.
| Resource | Method | Path | Description |
|---|---|---|---|
| Aliases | GET | /aliases | List the person's aliases. |
| Aliases | PUT | /aliases | Create or update an alias. |
| Aliases | DELETE | /aliases/{aliasId} | Remove an alias. |
| Tags | GET | /tags | List the person's tags (optional ?tagName=). |
| Tags | PUT | /tags | Apply / update a tag on the person. |
| Tags | DELETE | /tags/{personTagId} | Remove a tag from the person. |
| Notes | GET | /notes | List the person's notes. |
| Notes | PUT | /notes | Create or update a note. |
| Notes | DELETE | /notes/{noteId} | Remove a note. |
| Addresses | PUT | /addresses | Create or update an address. |
| Entity fields | GET | /entityFields | List custom attributes (optional ?fieldName=). |
| Entity fields | PUT | /entityFields | Create or update a custom attribute. |
| Entity fields | DELETE | /entityFields/{entityId} | Remove a custom attribute. |
Authentication
Requires a JWT bearer token. See Authentication.
Permissions
The permission names and category below are what you'll see in the Identities web app under System → System settings → Roles.
| Operation | Permission | Category |
|---|---|---|
Reads (GET) | Read All Identity | Identities |
Writes (PUT / DELETE) | Mutate All Identity | Identities |
Object Shapes
Content-Type: application/json. Omit the id field when creating; include it to update an existing item.
Alias
| Field | Type | Description |
|---|---|---|
personAliasId | string (GUID) | Alias id. Omit when creating. |
firstName | string | First name. |
lastName | string | Last name. |
middleName | string | Middle name. |
title | string | Title (e.g. Mr., Dr.). |
Tag (applied to a person)
| Field | Type | Description |
|---|---|---|
tagId | string (GUID) | The tag to apply — from Tag Management. |
created | string (ISO-8601 UTC) | When the tag was applied. |
expires | string (ISO-8601 UTC) | Optional expiry; omit/null for no expiry. |
Note
| Field | Type | Description |
|---|---|---|
noteId | string (GUID) | Note id. Omit when creating. |
summary | string | Short summary. |
body | string | Full note text. |
author | string | Author identifier. |
sharedId | string (GUID) | Optional shared-note linkage. |
Address
| Field | Type | Description |
|---|---|---|
personAddressId | string (GUID) | Address id. Omit when creating. |
street / street2 | string | Street lines. |
city / state / postalCode / country | string | Locality fields. |
Entity Field (custom attribute)
| Field | Type | Description |
|---|---|---|
entityFieldId | string (GUID) | Field id. Omit when creating. |
name | string | Attribute name. |
stringValue | string | String value (use the value field matching the field's type). |
dateValue | string (ISO-8601) | Date value. |
numberValue | number | Numeric value. |
boolValue | bool | Boolean value. |
Code Examples
- Curl
- PowerShell
- C#
API_URL="https://customername.econnectcloud.com/identities"
TOKEN="your_jwt"
PERSON_ID="0a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d"
# Upsert a name / alias
curl -sk -X PUT "$API_URL/api/v1/people/$PERSON_ID/aliases" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "firstName": "Jane", "lastName": "Doe" }'
# Apply a tag (tagId from the Tags endpoints)
curl -sk -X PUT "$API_URL/api/v1/people/$PERSON_ID/tags" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "tagId": "4c5d6e7f-8091-2345-6789-abcdef012345", "created": "2026-06-16T18:32:05Z" }'
# Upsert a custom attribute (entity field)
curl -sk -X PUT "$API_URL/api/v1/people/$PERSON_ID/entityFields" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "name": "LoyaltyTier", "stringValue": "Gold" }'
$API_URL = "https://customername.econnectcloud.com/identities"
$TOKEN = "your_jwt"
$PERSON_ID = "0a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d"
$headers = @{ Authorization = "Bearer $TOKEN" }
# Upsert a name / alias
$alias = @{ firstName = "Jane"; lastName = "Doe" } | ConvertTo-Json
Invoke-RestMethod -Uri "$API_URL/api/v1/people/$PERSON_ID/aliases" -Method Put `
-Headers $headers -Body $alias -ContentType "application/json"
# Upsert a custom attribute (entity field)
$field = @{ name = "LoyaltyTier"; stringValue = "Gold" } | ConvertTo-Json
Invoke-RestMethod -Uri "$API_URL/api/v1/people/$PERSON_ID/entityFields" -Method Put `
-Headers $headers -Body $field -ContentType "application/json"
using eConnect.IdentitiesDbSdk;
// NuGet: eConnect.IdentitiesDbSdk (private package - request access from eConnect support).
var httpClient = new HttpClient();
var sdk = await IdentityDbSdk.GetSdk(
"https://customername.econnectcloud.com/identities",
httpClient,
"your_username",
"your_password");
var personId = Guid.Parse("0a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d");
// Upsert a name / alias
await sdk.UpsertPersonAliasAsync(personId, new IdentityAliasItem
{
FirstName = "Jane",
LastName = "Doe"
});
// Apply a tag (tagId comes from the Tags endpoints)
await sdk.UpsertPersonTagAsync(personId, new IdentityPersonTagItem
{
TagId = Guid.Parse("4c5d6e7f-8091-2345-6789-abcdef012345"),
Created = DateTime.UtcNow
// Expires = DateTime.UtcNow.AddDays(30) // optional
});
// Upsert a custom attribute (entity field)
await sdk.UpsertPersonEntityFieldAsync(personId, new IdentityEntityFieldItem
{
Name = "LoyaltyTier",
StringValue = "Gold"
});
// Add a note
await sdk.UpsertPersonNotesAsync(personId, new IdentityPersonNoteItem
{
Summary = "VIP",
Body = "Prefers window seating",
Author = "host@venue.com"
});
Raw Sample
Apply a tag — Request
PUT https://customername.econnectcloud.com/identities/api/v1/people/{personId}/tags
Authorization: Bearer <your_jwt_token>
Content-Type: application/json
{
"tagId": "4c5d6e7f-8091-2345-6789-abcdef012345",
"created": "2026-06-16T18:32:05Z"
}
Upsert an entity field — Request
PUT https://customername.econnectcloud.com/identities/api/v1/people/{personId}/entityFields
Authorization: Bearer <your_jwt_token>
Content-Type: application/json
{
"name": "LoyaltyTier",
"stringValue": "Gold"
}
PUT operations return the created/updated object; DELETE operations return true on success; GET operations return
an array.
Response Codes
| Code | Meaning |
|---|---|
200 OK | The operation succeeded. |
401 Unauthorized | Missing or invalid JWT. |
403 Forbidden | The user lacks the required Identities permission (Read All Identity / Mutate All Identity). |
500 Internal Server Error | A server-side error occurred. |