Relationships (Base Entity)
Relationships define how Relations connect to each other and to your business. Every Relationship links two Relations — a parent and a child — and defines the role of that connection (Customer, Supplier, Contact, etc.).
The Relationship endpoint provides a unified view across all relationship types. Use the subtype-specific endpoints (e.g., Relationship_Organization_CommercialRelationship_Customer, Relationship_Person_Contact_Standard) when you need to work with a single type.
Relationship is a base entity and cannot be created directly. You must create a concrete subtype. See Subtypes for the full list.
Endpoints
List Relationships
Retrieve a paginated list of all relationships across all types.
/v1/odata/RelationshipSingle Relationship
Retrieve a single relationship by its ID.
/v1/odata/Relationship({id})With expanded relations:
/v1/odata/Relationship({id})?$expand=RelationCreate Relationship
The Relationship endpoint does not support direct creation. Use a subtype-specific endpoint instead:
POST /v1/odata/Relationship_Organization_CommercialRelationship_Customer— Create a customerPOST /v1/odata/Relationship_Organization_CommercialRelationship_Lead— Create a leadPOST /v1/odata/Relationship_Organization_Supplier— Create a supplierPOST /v1/odata/Relationship_Person_Contact_Standard— Create a contactPOST /v1/odata/Relationship_Person_Contact_Employee— Create an employee
See Subtypes for the full list.
With a New Relation
Create the Relationship and its child Relation in one call:
/v1/odata/Relationship_Organization_CommercialRelationship_LeadRelation.ID— The parent Relation (must already exist)Organization— The child Relation fields (created automatically)
Between Two Existing Relations
Link two Relations that already exist in your CRM:
/v1/odata/Relationship_Person_Contact_StandardUpdate Relationship
Update an existing relationship. Provide only the fields to update.
/v1/odata/Relationship({id})Change the Nature of a Relationship
Convert a Relationship from one type to another (e.g., Lead to Customer). This can only be done between relationships on the same level (e.g., all types under Commercial Relationship are interchangeable).
Request body
{
"ID": "d3a432f4-e9d0-400b-9321-1a3cd996ab97",
"_Type": "Relationship.Organization.CommercialRelationship.Customer"
}
Use the Relationship ID, not any of the Relation IDs.
Delete Relationship
Delete a relationship by ID. This removes the connection but does not delete the underlying Relations.
/v1/odata/Relationship({id})Make sure you do not orphan Relations when deleting Relationships. If the Relationship is the only one linking a Relation to your network, consider deleting the Relation instead.
Subtypes
Relationship is the abstract parent type. Common concrete subtypes include:
| Subtype | OData Entity Set | Description |
|---|---|---|
| Suspect | Relationship_Organization_CommercialRelationship_Suspect | Unqualified company contact at the top of the funnel |
| Suspect | Relationship_Person_CommercialRelationship_Suspect | Unqualified individual contact at the top of the funnel |
| Lead | Relationship_Organization_CommercialRelationship_Lead | Qualified company lead |
| Lead | Relationship_Person_CommercialRelationship_Lead | Qualified individual lead |
| Hot Prospect | Relationship_Organization_CommercialRelationship_HotProspect | Engaged company lead showing buying signals |
| Hot Prospect | Relationship_Person_CommercialRelationship_HotProspect | Engaged individual lead showing buying signals |
| Prospect | Relationship_Organization_CommercialRelationship_Prospect | Company in active negotiation |
| Prospect | Relationship_Person_CommercialRelationship_Prospect | Individual in active negotiation |
| Customer | Relationship_Organization_CommercialRelationship_Customer | Signed company customer |
| Customer | Relationship_Person_CommercialRelationship_Customer | Signed individual customer |
| Supplier | Relationship_Organization_Supplier | Organization that is a supplier |
| Contact | Relationship_Person_Contact_Standard | Person who is a contact |
| Employee | Relationship_Person_Contact_Employee | Person who is an employee |
Subtypes inherit all Relationship fields and may add their own role-specific fields (e.g., account manager, payment terms).
Relationship names follow the pattern Relationship_{RelationType}_{RelationshipPath}. To find the correct name, go to Configuration > Relations in Tribe CRM and look at the Relationships (types) section.
Fields
Standard Fields (all entities)
| Field | Type | Description |
|---|---|---|
ID | Guid | Primary key (UUID) |
_Type | String | Entity type discriminator (e.g., Relationship.Organization.CommercialRelationship.Customer) |
_Name | String | Computed display name |
SortIndex | Double | Sorting order |
CreationDate | DateTimeOffset | Date the record was created |
LastMutationDate | DateTimeOffset | Date of the last modification |
IsActive | Boolean | Whether the record is active |
IsClosed | Boolean | Whether the record is closed |
Relationship Fields
| Field | Type | Description |
|---|---|---|
Name | String | Relationship display name |
Relationships
| Relationship | Target Entity | Cardinality | Description |
|---|---|---|---|
| Relation | Relation | N:1 | Parent relation |
| Person | Relation.Person | N:1 | Child person (subtype-specific, e.g., Relationship_Person_Contact_Standard) |
| Organization | Relation.Organization | N:1 | Child organization (subtype-specific, e.g., Relationship_Organization_CommercialRelationship_Customer) |
Expanding Relationships
/v1/odata/Relationship({id})?$expand=RelationUse $expand=Relation on the base type, or $expand=Relation,Person (or Organization) on a specific subtype to get the underlying Relation details in one API call.
Navigating Relationships
/v1/odata/Relationship({id})/RelationFiltering Examples
:::warning Filtering by _Type is not supported
To narrow by relationship subtype, query that subtype's own entity set instead (e.g. /v1/odata/Relationship_Organization_CommercialRelationship_Customer, /v1/odata/Relationship_Person_Contact_Standard). See Filtering by Type.
:::
/v1/odata/Relationship?$filter=contains(Name, '{Name}')&$top={top}&$select=ID,_Name/v1/odata/Relationship?$filter=CreationDate gt {CreationDate}&$top={top}&$select=ID,_Name,CreationDate/v1/odata/Relationship?$filter=IsClosed eq {IsClosed}&$top={top}&$count=true&$select=ID,_Name,_Type