Inspection data model

Updated:

An inspection of a part, lot or serial against its requirements

View field support, webhooks, and list parameters for each integration on the Supported Integrations page.

FieldTypeRequiredDescription
idstringNo
created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
numberstringNo
namestringNo
typeenumNoValues: RECEIVING, IN_PROCESS, FINAL, FIRST_ARTICLE, SOURCE, OTHER
original_typestringNoThe vendor's own inspection type name
statusenumNoNormalized status of a quality record Values: OPEN, IN_PROGRESS, IN_REVIEW, CLOSED, CANCELLED
lifecycle_statestringNoVendor's own state or workflow step name
resultenumNoValues: PASS, FAIL, CONDITIONAL
plan_namestringNoThe inspection plan or template followed
part_idstringNoThe PlmPart (revision) ID, when the same vendor also provides PLM
part_numberstringNo
revisionstringNo
lot_numberstringNo
serial_numberstringNo
quantity_inspectednumberNo
quantity_acceptednumberNo
quantity_rejectednumberNo
supplier_namestringNo
characteristicsQmsCharacteristic[]No
characteristics[].namestringNo
characteristics[].specificationstringNoRequirement or drawing reference
characteristics[].nominal_valuenumberNo
characteristics[].lower_limitnumberNo
characteristics[].upper_limitnumberNo
characteristics[].measured_valuestringNoMeasured or observed value; text so attribute checks fit
characteristics[].unit_of_measurestringNo
characteristics[].resultenumNoValues: PASS, FAIL, CONDITIONAL
characteristics[].notesstringNo
issue_idsstring[]NoQmsIssue IDs raised from this inspection
user_idstringNoInspector (reference to HrisEmployee)
inspected_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
file_idsstring[]NoAttachment IDs retrievable from StorageFile
urlstringNoDeep link to the vendor UI
metadataQmsMetadata[]No
metadata[].idstringNoThe ID of the custom field definition (from the metadata/metadata endpoint).
metadata[].slugstringNoThe integration's API name (key) of an existing custom field.
metadata[].valueobjectNoThe field's value, typed by format.
metadata[].namespacestringNo
metadata[].formatenumNoThe 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_dataobjectNo

TypeScript

TypeScript
export type QmsInspection = {
	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;
	name?: string;
	type?: 'RECEIVING' | 'IN_PROCESS' | 'FINAL' | 'FIRST_ARTICLE' | 'SOURCE' | 'OTHER';
	original_type?: string; // The vendor's own inspection type name
	status?: 'OPEN' | 'IN_PROGRESS' | 'IN_REVIEW' | 'CLOSED' | 'CANCELLED'; // Normalized status of a quality record
	lifecycle_state?: string; // Vendor's own state or workflow step name
	result?: 'PASS' | 'FAIL' | 'CONDITIONAL';
	plan_name?: string; // The inspection plan or template followed
	part_id?: string; // The PlmPart (revision) ID, when the same vendor also provides PLM
	part_number?: string;
	revision?: string;
	lot_number?: string;
	serial_number?: string;
	quantity_inspected?: number;
	quantity_accepted?: number;
	quantity_rejected?: number;
	supplier_name?: string;
	characteristics?: [];
	issue_ids?: string[]; // QmsIssue IDs raised from this inspection
	user_id?: string; // Inspector (reference to HrisEmployee)
	inspected_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	file_ids?: string[]; // Attachment IDs retrievable from StorageFile
	url?: string; // Deep link to the vendor UI
	metadata?: [];
	raw?: any; // Raw data from integration
} 

Zod

Zod
import { z } from 'zod';

export const ZodQmsInspection = 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(),
	name: z.string().optional(),
	type: z.enum("RECEIVING", "IN_PROCESS", "FINAL", "FIRST_ARTICLE", "SOURCE", "OTHER").optional(),
	original_type: z.string().optional().describe("The vendor's own inspection type name"),
	status: z.enum("OPEN", "IN_PROGRESS", "IN_REVIEW", "CLOSED", "CANCELLED").optional().describe("Normalized status of a quality record"),
	lifecycle_state: z.string().optional().describe("Vendor's own state or workflow step name"),
	result: z.enum("PASS", "FAIL", "CONDITIONAL").optional(),
	plan_name: z.string().optional().describe("The inspection plan or template followed"),
	part_id: z.string().optional().describe("The PlmPart (revision) ID, when the same vendor also provides PLM"),
	part_number: z.string().optional(),
	revision: z.string().optional(),
	lot_number: z.string().optional(),
	serial_number: z.string().optional(),
	quantity_inspected: z.number().optional(),
	quantity_accepted: z.number().optional(),
	quantity_rejected: z.number().optional(),
	supplier_name: z.string().optional(),
	characteristics: z.array().optional(),
	issue_ids: z.array().optional().describe("QmsIssue IDs raised from this inspection"),
	user_id: z.string().optional().describe("Inspector (reference to HrisEmployee)"),
	inspected_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	file_ids: z.array().optional().describe("Attachment IDs retrievable from StorageFile"),
	url: z.string().optional().describe("Deep link to the vendor UI"),
	metadata: z.array().optional(),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class QmsInspectionType(str, Enum):
	RECEIVING = 'RECEIVING'
	IN_PROCESS = 'IN_PROCESS'
	FINAL = 'FINAL'
	FIRST_ARTICLE = 'FIRST_ARTICLE'
	SOURCE = 'SOURCE'
	OTHER = 'OTHER'

@dataclasses.dataclass
class QmsInspectionStatus(str, Enum):
	OPEN = 'OPEN'
	IN_PROGRESS = 'IN_PROGRESS'
	IN_REVIEW = 'IN_REVIEW'
	CLOSED = 'CLOSED'
	CANCELLED = 'CANCELLED'

@dataclasses.dataclass
class QmsInspectionResult(str, Enum):
	PASS = 'PASS'
	FAIL = 'FAIL'
	CONDITIONAL = 'CONDITIONAL'

@dataclasses.dataclass
class QmsInspection:
	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]
	number: Optional[str]
	name: Optional[str]
	type: Optional[QmsInspectionType]
	"""The vendor's own inspection type name"""
	original_type: Optional[str]
	"""Normalized status of a quality record"""
	status: Optional[QmsInspectionStatus]
	"""Vendor's own state or workflow step name"""
	lifecycle_state: Optional[str]
	result: Optional[QmsInspectionResult]
	"""The inspection plan or template followed"""
	plan_name: Optional[str]
	"""The PlmPart (revision) ID, when the same vendor also provides PLM"""
	part_id: Optional[str]
	part_number: Optional[str]
	revision: Optional[str]
	lot_number: Optional[str]
	serial_number: Optional[str]
	quantity_inspected: Optional[int]
	quantity_accepted: Optional[int]
	quantity_rejected: Optional[int]
	supplier_name: Optional[str]
	characteristics: Optional[PropertyQmsInspectionCharacteristics]
	"""QmsIssue IDs raised from this inspection"""
	issue_ids: Optional[List[List[str]]]
	"""Inspector (reference to HrisEmployee)"""
	user_id: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	inspected_at: Optional[str]
	"""Attachment IDs retrievable from StorageFile"""
	file_ids: Optional[List[List[str]]]
	"""Deep link to the vendor UI"""
	url: Optional[str]
	metadata: Optional[PropertyQmsInspectionMetadata]
Are we missing anything? Let us know
Was this page helpful?