Skip to main content

Persons

EntityRelationRelation.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
{
"Relation": {
"ID": "organization-id-here"
},
"Person": {
"ID": "person-id-here"
}
}

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