Skip to main content

Persons

Entity›Relation›Relation.Person

Persons represent individual people in your CRM — the Relation_Person entity type. A Person stores identity and contact information such as name, email, phone number, and date of birth.

Not to be confused with "Contacts"

A Person (Relation_Person) is the entity itself — the individual record. A Contact (Relationship_Person_Contact_Standard) is a Relationship that links a Person to an Organization, defining their role (e.g., "Jan is a contact at Acme Corp"). The same Person can be a Contact at multiple organizations.

A Person can also play commercial roles of your business — Suspect, Lead, Hot Prospect, Prospect, or Customer — each represented by the matching Relationship_Person_CommercialRelationship_* subtype.

Endpoints​

List Persons​

Retrieve a paginated list of persons.

GET/v1/odata/Relation_Person

Single Person​

Retrieve a single person by its ID.

GET/v1/odata/Relation_Person({id})

With expanded relations:

GET/v1/odata/Relation_Person({id})?$expand=Address,Gender,Language

Create Person​

Create a new person.

POST/v1/odata/Relation_Person

Update Person​

Update an existing person. Provide only the fields to update.

PUT/v1/odata/Relation_Person({id})

Delete Person​

Delete a person by ID.

DELETE/v1/odata/Relation_Person({id})

Fields​

Standard Fields (all entities)​

These fields are present on every entity, including persons.

FieldTypeDescription
IDGuidPrimary key (UUID)
_TypeStringEntity type discriminator (Relation.Person)
_NameStringComputed display name
SortIndexDoubleSorting order

Person Fields​

FieldTypeRequiredDescription
firstNameStringNoFirst name
middleNameStringNoMiddle name / prefix (e.g., "van", "de")
lastNameStringYesLast name
initialsStringNoInitials
titleStringNoTitle (e.g., "Mr.", "Ms.", "Dr.")
suffixStringNoName suffix (e.g., "Jr.", "III")
phoneNumberStringNoPrimary phone number
mobilePhoneNumberStringNoMobile phone number
emailAddressStringNoEmail address
birthDateDateNoDate of birth (YYYY-MM-DD)
birthDayStringNoBirthday without year (MM-dd format)

Inherited Fields (from Relation)​

These fields are inherited from the parent Relation type and available on all persons.

FieldTypeDescription
numberDoubleRelation number
pictureFileProfile picture
debtorNumberStringDebtor number
creditorNumberStringCreditor number
ibanStringIBAN bank account number
bicStringBIC/SWIFT code
bankNameStringBank name
facebookStringFacebook URL
twitterStringTwitter/X URL
linkedinStringLinkedIn URL
blogStringBlog URL

Relationships​

RelationshipTarget EntityCardinalityDescription
AddressAddress1:NAddress
GenderDatastore.GenderN:1Gender (lookup value)
LanguageDatastore.LanguageN:1Preferred language (lookup value)
LegalEntityLegalEntityN:1Legal entity reference
AccountRelation.Person.Account1:1Account settings (nested type)
SuspectRelationship_Person_CommercialRelationship_SuspectN:NUnqualified individual contact (top of funnel)
LeadRelationship_Person_CommercialRelationship_LeadN:NQualified individual lead
HotProspectRelationship_Person_CommercialRelationship_HotProspectN:NEngaged individual showing buying signals
ProspectRelationship_Person_CommercialRelationship_ProspectN:NIndividual in active negotiation
CustomerRelationship_Person_CommercialRelationship_CustomerN:NSigned individual customer
ContactRelationship_Person_Contact_StandardN:NPerson acting as a contact at an organisation
EmployeeRelationship_Person_Contact_EmployeeN:NPerson acting as an employee
Person Contact (base)Relationship_Person_ContactN:NBase aggregate endpoint covering Standard Contact + Employee variants

Expanding Relationships​

GET/v1/odata/Relation_Person({id})?$expand=Address
GET/v1/odata/Relation_Person({id})?$expand=Address,Gender,Language

You can navigate directly to related entities:

GET/v1/odata/Relation_Person({id})/Address
DELETE/v1/odata/Relation_Person({id})/Gender/$ref

Inline Relationship Updates​

When creating or updating a person, you can include related entities inline:

{
"firstName": "Jan",
"lastName": "Jansen",
"emailAddress": "jan@example.com",
"Address": {
"street": "Herengracht 456",
"city": "Amsterdam",
"postalCode": "1017 CA",
"country": "NL"
}
}

You can also use binding links to reference existing lookup values:

{
"firstName": "Jan",
"lastName": "Jansen",
"Gender@odata.bind": "Datastore_Gender(gender-id-here)",
"Language@odata.bind": "Datastore_Language(language-id-here)"
}

Filtering Examples​

GET/v1/odata/Relation_Person?$filter=lastName eq '{lastName}'&$top={top}
GET/v1/odata/Relation_Person?$filter=contains(lastName, '{lastName}')&$top={top}
GET/v1/odata/Relation_Person?$filter=firstName eq '{firstName}' and lastName eq '{lastName}'&$top={top}
GET/v1/odata/Relation_Person?$filter=contains(emailAddress, '{emailAddress}')&$top={top}
GET/v1/odata/Relation_Person?$filter=BirthDate gt {BirthDate}&$top={top}
GET/v1/odata/Relation_Person?$filter=Gender/Name eq '{Name}'&$top={top}
GET/v1/odata/Relation_Person?$filter=startswith(birthDay, '{birthDay}')&$top={top}
GET/v1/odata/Relation_Person?$filter=contains(lastName, '{lastName}') and emailAddress ne null&$top={top}

Linking Persons to Organizations​

Persons and organizations are linked through Relationships. To make a Person a contact at an Organization, create a Relationship_Person_Contact_Standard:

POST/v1/odata/Relationship_Person_Contact_Standard

Query persons linked to an organization​

warning

$filter=_Type eq … on a Relationships navigation collection is silently ignored — see Filtering by Type. Fetch the full Relationships collection and filter the result client-side by inspecting each row's _Type.

GET/v1/odata/Relation_Organization({org-id})/Relationships

Query organizations linked to a person​

GET/v1/odata/Relation_Person({contact-id})/Relationships

Custom Query​

Build your own OData query against Relation_Person. Open Run and edit the whole request inline — swap the entity set, change the $filter, or add $expand, $select, $orderby, $top, $skip. Type $ for suggestions; use ↺ Reset to restore this example.

GET/v1/odata/Relation_Person?$top=10