Contact Request Properties
This page defines the structure of the contact request entity, including all properties and their descriptions. Server-managed fields are read-only.
🔹 Identity
| Property | Type | Required | Read-Only | Description | Example |
|---|---|---|---|---|---|
id | string (UUID) | No | Yes | Unique identifier for the contact request | "123e4567-e89b-12d3-a456-426614174000" |
organizationId | string (UUID) | Yes (create) | Yes | UUID of the organization that owns the request | "123e4567-e89b-12d3-a456-426614174001" |
organizationName | string | No | Yes | Denormalized organization name | "Acme Inc." |
externalId | string | No | No | External identifier from the upstream integration (e.g. Dilema form id) | "frm_abc123" |
🔹 Type & Status
| Property | Type | Required | Read-Only | Description | Example |
|---|---|---|---|---|---|
type | enum | Yes | No | Contact request type. One of: contactmeback, keepmeinformed | "contactmeback" |
status | enum | Yes | No | Request status. One of: pending, accepted, rejected | "pending" |
preferredContact | enum | Yes | No | Preferred contact method. One of: email, phone, whatsapp | "email" |
🔹 Contact Information
| Property | Type | Required | Read-Only | Description | Example |
|---|---|---|---|---|---|
name | string | No | No | Name associated with the request | "John Doe" |
email | string (email) | No | No | Email address (validated when present) | "[email protected]" |
phone | string | No | No | Phone number (free-form, E.164 recommended) | "+33612345678" |
message | string | No | No | Free-form message from the contact | "Please send me a copy of the contract" |
🔹 Routing & Assignment
| Property | Type | Required | Read-Only | Description | Example |
|---|---|---|---|---|---|
userGroupId | string (UUID) | No | No | User group this request is assigned to | "550e8400-e29b-41d4-a716-446655440000" |
userGroup | string | No | Yes | Denormalized user group name | "Sales Team" |
agentId | string (UUID) | No | No | Agent assigned to the request | "e4567-e89b-12d3-a456-426614174000" |
agentComment | string | No | No | Comment left by the assigned agent | "Forwarded to sales team" |
relatedService | string (UUID) | No | No | Service associated with the request | "7a96c97a-bcf9-42df-984a-051c0fb8487e" |
🔹 Classification
| Property | Type | Required | Read-Only | Description | Example |
|---|---|---|---|---|---|
taxonomies | array of strings | No | No | Free-form taxonomy tags for categorization | ["/model/contact-request"] |
extraFields | object | No | No | Custom metadata bag for integration-specific data | { "department": "Sales", "location": "New York" } |
🔹 Communication
| Property | Type | Required | Read-Only | Description | Example |
|---|---|---|---|---|---|
communicationLogs | array of [CommunicationLog] | No | Yes | Audit trail of messages/calls related to the request | [] |
countCommunicationLogs | number | No | Yes | Convenience count of communication logs | 3 |
🔹 Timestamps
| Property | Type | Required | Read-Only | Description | Example |
|---|---|---|---|---|---|
createdAt | date (ISO 8601) | No | Yes | Creation timestamp | "2025-05-13T15:00:00Z" |
updatedAt | date (ISO 8601) | No | Yes | Last update timestamp | "2025-05-13T15:00:00Z" |
deletedAt | date (ISO 8601) | No | Yes | Deletion timestamp (soft delete) | null |
🧩 Property Details
- id: UUID generated by the server. Cannot be modified.
- organizationId: Server-derived from the security context on create. Pass on create for clarity, but the server enforces ownership.
- type:
contactmeback= contact-me-back / lead capture;keepmeinformed= subscription / newsletter. - status: Default
pending. The DTO does not acceptdraft(reserved for internal use). - preferredContact: Required. Default
emailon the response class but the DTO requires it on create. - email: Validated against RFC email format only when provided.
- relatedService: UUID of a Service in the same organization.
- taxonomies: String array; commonly used to scope by source model.
- extraFields: Free-form JSON; useful for storing custom form data.
- communicationLogs: Server-managed. Do not send on create/update.
📊 Property Usage Examples
Basic Contact Request
{
"organizationId": "123e4567-e89b-12d3-a456-426614174001",
"type": "contactmeback",
"status": "pending",
"preferredContact": "email",
"name": "John Doe",
"message": "Please contact me regarding a quote"
}
Complete Contact Request
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"organizationId": "123e4567-e89b-12d3-a456-426614174001",
"organizationName": "Acme Inc.",
"externalId": "frm_abc123",
"type": "contactmeback",
"status": "pending",
"preferredContact": "email",
"name": "John Doe",
"phone": "+33612345678",
"message": "Please send me a copy of the contract",
"userGroupId": "550e8400-e29b-41d4-a716-446655440000",
"userGroup": "Sales Team",
"agentId": "e4567-e89b-12d3-a456-426614174000",
"agentComment": "Forwarded to sales",
"relatedService": "7a96c97a-bcf9-42df-984a-051c0fb8487e",
"taxonomies": ["/model/contact-request"],
"extraFields": {
"department": "Sales",
"location": "New York"
},
"communicationLogs": [],
"countCommunicationLogs": 0,
"createdAt": "2025-05-13T15:00:00Z",
"updatedAt": "2025-05-13T15:00:00Z"
}
📘 Notes
- All timestamps are returned in ISO 8601 format with UTC timezone
- Enum values are case-sensitive strings
- The
organizationIdis enforced server-side from the security context communicationLogsandcountCommunicationLogsare populated by the server