---
title: "Change data model"
url: "https://docs.unified.to/plm/change/model"
description: "The Change data model object in Unified's Change API: 18 fields, including created_at, updated_at and number, with types and enum values."
date: "2026-11-02T06:50:20.035Z"
updated: "2026-11-02T06:50:20.035Z"
---
# Change data model

Updated: November 2, 2026

A change request, order or notice

 View field support, webhooks, and list parameters for each integration on the [Supported Integrations](https://docs.unified.to/plm/integrations.md) page. 

| Field                                     | Type                | Required | Description                                                                                                                                                                                                   |
| ----------------------------------------- | ------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id                                        | string              | No       |                                                                                                                                                                                                               |
| created\_at                               | string (date-time)  | No       | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)                                                                                                                                                                      |
| updated\_at                               | string (date-time)  | No       | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)                                                                                                                                                                      |
| number                                    | string              | No       | Change number, e.g. ECO-0042                                                                                                                                                                                  |
| name                                      | string              | No       |                                                                                                                                                                                                               |
| description                               | string              | No       |                                                                                                                                                                                                               |
| type                                      | enum                | No       | Values: REQUEST, ORDER, NOTICE, DEVIATION, OTHER                                                                                                                                                              |
| category\_id                              | string              | No       | The PlmCategory the change is filed under (reference to AccountingCategory)                                                                                                                                   |
| status                                    | enum                | No       | Values: OPEN, IN\_REVIEW, APPROVED, IMPLEMENTED, REJECTED, CANCELLED                                                                                                                                          |
| priority                                  | string              | No       | Vendor priority value                                                                                                                                                                                         |
| affected\_items                           | PlmAffectedItem\[\] | No       |                                                                                                                                                                                                               |
| affected\_items\[\].part\_id              | string              | No       |                                                                                                                                                                                                               |
| affected\_items\[\].document\_id          | string              | No       |                                                                                                                                                                                                               |
| affected\_items\[\].from\_revision        | string              | No       |                                                                                                                                                                                                               |
| affected\_items\[\].to\_revision          | string              | No       |                                                                                                                                                                                                               |
| affected\_items\[\].new\_lifecycle\_state | string              | No       |                                                                                                                                                                                                               |
| affected\_items\[\].disposition           | string              | No       | What to do with existing stock or work in progress                                                                                                                                                            |
| effective\_at                             | string (date-time)  | No       | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)                                                                                                                                                                      |
| expires\_at                               | string (date-time)  | No       | When a temporary change (deviation) expires (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)                                                                                                                          |
| user\_id                                  | string              | No       | Originator (reference to HrisEmployee)                                                                                                                                                                        |
| approved\_at                              | string (date-time)  | No       | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)                                                                                                                                                                      |
| implemented\_at                           | string (date-time)  | No       | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)                                                                                                                                                                      |
| url                                       | string              | No       |                                                                                                                                                                                                               |
| metadata                                  | PlmMetadata\[\]     | No       |                                                                                                                                                                                                               |
| metadata\[\].id                           | string              | No       | The ID of the custom field definition (from the metadata/metadata endpoint).                                                                                                                                  |
| metadata\[\].slug                         | string              | No       | The integration's API name (key) of an existing custom field.                                                                                                                                                 |
| metadata\[\].value                        | object              | No       | The field's value, typed by format.                                                                                                                                                                           |
| metadata\[\].namespace                    | string              | No       |                                                                                                                                                                                                               |
| metadata\[\].format                       | enum                | No       | The data type of the custom field, which determines how value is formatted. Values: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE\_SELECT, MULTIPLE\_SELECT, MEASUREMENT, PRICE, YES\_NO, CURRENCY, URL |
| metadata\[\].extra\_data                  | object              | No       |                                                                                                                                                                                                               |

## TypeScript

```typescript
export type PlmChange = {
	id?: string;
	created_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	updated_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	number?: string; // Change number, e.g. ECO-0042
	name?: string;
	description?: string;
	type?: 'REQUEST' | 'ORDER' | 'NOTICE' | 'DEVIATION' | 'OTHER';
	category_id?: string; // The PlmCategory the change is filed under (reference to AccountingCategory)
	status?: 'OPEN' | 'IN_REVIEW' | 'APPROVED' | 'IMPLEMENTED' | 'REJECTED' | 'CANCELLED';
	priority?: string; // Vendor priority value
	affected_items?: [];
	effective_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	expires_at?: string-time; // When a temporary change (deviation) expires (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	user_id?: string; // Originator (reference to HrisEmployee)
	approved_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	implemented_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	url?: string;
	metadata?: [];
	raw?: any; // Raw data from integration
} 
```

## Zod

```typescript
import { z } from 'zod';

export const ZodPlmChange = z.object({
	id: z.string().optional(),
	created_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	updated_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	number: z.string().optional().describe("Change number, e.g. ECO-0042"),
	name: z.string().optional(),
	description: z.string().optional(),
	type: z.enum("REQUEST", "ORDER", "NOTICE", "DEVIATION", "OTHER").optional(),
	category_id: z.string().optional().describe("The PlmCategory the change is filed under (reference to AccountingCategory)"),
	status: z.enum("OPEN", "IN_REVIEW", "APPROVED", "IMPLEMENTED", "REJECTED", "CANCELLED").optional(),
	priority: z.string().optional().describe("Vendor priority value"),
	affected_items: z.array().optional(),
	effective_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	expires_at: z.string-time().optional().describe("When a temporary change (deviation) expires (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	user_id: z.string().optional().describe("Originator (reference to HrisEmployee)"),
	approved_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	implemented_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	url: z.string().optional(),
	metadata: z.array().optional(),

});
```

## Python

```python
import dataclasses

@dataclasses.dataclass
class PlmChangeType(str, Enum):
	REQUEST = 'REQUEST'
	ORDER = 'ORDER'
	NOTICE = 'NOTICE'
	DEVIATION = 'DEVIATION'
	OTHER = 'OTHER'

@dataclasses.dataclass
class PlmChangeStatus(str, Enum):
	OPEN = 'OPEN'
	IN_REVIEW = 'IN_REVIEW'
	APPROVED = 'APPROVED'
	IMPLEMENTED = 'IMPLEMENTED'
	REJECTED = 'REJECTED'
	CANCELLED = 'CANCELLED'

@dataclasses.dataclass
class PlmChange:
	id: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	created_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	updated_at: Optional[str]
	"""Change number, e.g. ECO-0042"""
	number: Optional[str]
	name: Optional[str]
	description: Optional[str]
	type: Optional[PlmChangeType]
	"""The PlmCategory the change is filed under (reference to AccountingCategory)"""
	category_id: Optional[str]
	status: Optional[PlmChangeStatus]
	"""Vendor priority value"""
	priority: Optional[str]
	affected_items: Optional[PropertyPlmChangeAffected_items]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	effective_at: Optional[str]
	"""When a temporary change (deviation) expires (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	expires_at: Optional[str]
	"""Originator (reference to HrisEmployee)"""
	user_id: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	approved_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	implemented_at: Optional[str]
	url: Optional[str]
	metadata: Optional[PropertyPlmChangeMetadata]

```
