PPL: Contact
The PPL entity holds person records. A single PPL record can represent a client contact, a prospect, or a recruitment candidate, and a contact may hold more than one of these roles at the same time. PPL is linked to companies (COM) and clients (CLIENT) via foreign-key fields, and supports a self-referential "reports to" relationship for org-chart use.
Default definition. This article describes the default
PPL definition shipped with DemandFlow. Administrators can add, remove, rename, or re-type fields, change which ones are required, and alter the layout from the Definitions screen in Settings. Your tenant's current schema may differ from what is shown here. To read the current definition at any time, GET the DEFINITION object whose id matches PPL.Entity properties
| Property | Value |
|---|---|
| Entity code | PPL |
| Display name | Contact |
| Plural | Contacts |
| Level | 210 |
| Extended by | LEAD, PATENTI, CANDIDATE |
Computed name | {{nameFirst}} {{nameLast}} |
Use cases
- Client contacts. Individuals at companies you do business with. Link to their employing company (
company) and the specific client relationship (client). - Candidates. People being considered for roles. The Documents panel carries a CV upload and candidate-sourcing fields (
source,linkedin) support recruitment workflows. - Prospects. People who are not yet clients or candidates but are on your radar. The
likelyToBuyandlastContactedfields support sales tracking.
Fields
Basics
| Field | Type | Required | Notes |
|---|---|---|---|
name | text | Read-only. Auto-computed from nameFirst + nameLast. | |
title | text | Mr, Mrs, Dr, etc. | |
nameFirst | text | Yes | First name. |
nameMiddle | text | Middle name. | |
nameLast | text | Yes | Last name. |
email | text | Email address. | |
phone | text | Primary phone number. | |
phone2 | text | Secondary phone number. | |
doNotCall | boolean | Suppresses calling workflows. | |
job | text | Job title. | |
manager | reference → PPL | Reports-to relationship. Self-referential. | |
salutation | text | Preferred informal name, for example "Mike" instead of "Michael". | |
language | reference → LANGUAGE | Preferred language. | |
source | array of references → LEADSOURCE | Where the contact was sourced. Multi-select. | |
persona | enum | Valid ids: Buyer (Buyer), Economic Buyer (Economic Buyer), Influencer (Influencer), Champion (Champion), End User (End User). | |
seniority | enum | Valid ids: C-Level (C-Level), VP (VP), Director (Director), Manager (Manager), Senior IC (Senior IC), IC (IC). | |
likelyToBuy | enum | Valid ids: High (High), Medium (Medium), Low (Low). | |
lastContacted | datetime | Timestamp of most recent contact. |
Consent
| Field | Type | Required | Notes |
|---|---|---|---|
consentMarketing | boolean | Top-level marketing consent flag. | |
consentDataProcessing | boolean | Top-level data processing consent flag. | |
consentThirdParty | boolean | Top-level third-party sharing consent flag. | |
consents | array | Detailed consent records. Each entry has: consentType, status, dateGiven, dateWithdrawn, method, note. |
Employment
| Field | Type | Required | Notes |
|---|---|---|---|
company | reference → COM | Current employer. | |
client | reference → CLIENT | Client relationship this contact belongs to. | |
lastEmployer | text | Previous employer, free text. |
Social
| Field | Type | Required | Notes |
|---|---|---|---|
linkedin | text (URL) | LinkedIn profile URL. | |
facebook | text (URL) | Facebook profile URL. | |
x | text (URL) | X (Twitter) profile URL. | |
instagram | text (URL) | Instagram profile URL. |
Documents
| Field | Type | Required | Notes |
|---|---|---|---|
cv | file | CV upload. PDF only. Max one file. |
Relationships
- Self-reference:
managerpoints at anotherPPLrecord for org-chart lookups. - Belongs to a company:
companypoints at aCOM. - Belongs to a client:
clientpoints at aCLIENT. - Extended by:
LEAD,PATENTI, andCANDIDATEall inherit the PPL shape and add their own fields.
Creating a PPL via the API
POST /v1/objects
Authorization: Bearer <your-pat>
Content-Type: application/json
{
"entity": "PPL",
"level": 210,
"comboKey": "SUB:<your-sub-id>|ENT:",
"nameFirst": "Ada",
"nameLast": "Lovelace",
"email": "ada@example.com",
"job": "Chief Mathematician"
}
Listing PPL records
# All contacts in your tenant
GET /v1/entities/PPL/SUB
# All contacts linked to a specific company via the parent hierarchy
GET /v1/entities/PPL/SUB:<your-sub-id>|COM:<company-id>