{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/zoominfo/main/json-schema/zoominfo-customer-settings-model-schema.json", "title": "CustomerSettingsModel", "description": "JSON:API response containing the customer settings singleton.", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/zoominfo-customer-settings-api-openapi.yml#/components/schemas/CustomerSettingsModel", "type": "object", "required": [ "data" ], "properties": { "data": { "allOf": [ { "$ref": "#/$defs/CustomerSettings" } ], "description": "The primary data of the document" } }, "$defs": { "CustomFieldItem": { "type": "object", "required": [ "title", "value" ], "properties": { "title": { "type": "string", "description": "The display title of the custom field." }, "description": { "type": "string", "description": "An optional description of the field. Defaults to an empty string in the backend.", "default": "" }, "value": { "type": "string", "description": "The string value associated with this custom field." } }, "description": "Schema for a single custom field item." }, "CustomerSettings": { "type": "object", "required": [ "id", "type", "attributes" ], "properties": { "id": { "type": "string", "description": "The unique identifier for the resource" }, "type": { "type": "string", "description": "The type of the resource", "default": "CustomerSettings", "pattern": "CustomerSettings" }, "attributes": { "allOf": [ { "$ref": "#/$defs/CustomerSettingsAttributes" } ], "description": "The attributes defining the resource" }, "meta": { "allOf": [ { "$ref": "#/$defs/GtmConfigAuditFields" } ], "description": "Non-standard meta information about the resource", "readOnly": true } }, "description": "Customer Settings resource wrapping attributes in JSON:API format." }, "CustomerSettingsAttributes": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 1024, "description": "Editable display name for the customer organization. When provided (for create or update), must be between 1 and 1024 characters." }, "elevatorPitch": { "type": "string", "maxLength": 1024, "description": "Brief elevator pitch or value proposition for the customer organization. Used by AI agents to understand the company's core offering. When provided (for create or update), must be less than 1024 characters." }, "description": { "type": "string", "maxLength": 10000, "description": "Company description providing context about what the organization does, its market position, and its target audience. Maximum 10,000 characters." }, "strategicPriorities": { "type": "string", "maxLength": 10000, "description": "Strategic priorities text describing the organization's key business objectives, growth targets, and focus areas. Used by AI agents to align GTM recommendations with business goals. Maximum 10,000 characters." }, "source": { "allOf": [ { "$ref": "#/$defs/GtmConfigSourceType" } ], "description": "Source type indicating how this settings record was created or last modified. Defaults to `manual`. See `GtmConfigSourceType` for allowed values.", "readOnly": true }, "customFields": { "type": "array", "items": { "$ref": "#/$defs/CustomFieldItem" }, "description": "Flexible key-value storage for customer-specific custom fields and metadata. The backend validates the schema and value types. This allows storing organization-specific data beyond the standard fields." } }, "description": "Attributes defining customer-level settings and configuration" }, "GtmConfigAuditFields": { "type": "object", "properties": { "createdAt": { "type": "string", "format": "date-time", "description": "ISO 8601 timestamp when the record was originally created. Auto-populated by backend.", "readOnly": true }, "updatedAt": { "type": "string", "format": "date-time", "description": "ISO 8601 timestamp of the most recent modification to the record. Auto-populated by backend.", "readOnly": true }, "createdBy": { "type": "string", "description": "User ID of the person who created the record. Extracted from the JWT token on creation.", "readOnly": true }, "updatedBy": { "type": "string", "description": "User ID of the person who last modified the record. Extracted from the JWT token on update.", "readOnly": true }, "archivedAt": { "type": "string", "format": "date-time", "description": "ISO 8601 timestamp when the record was archived. Archived records are identified by archivedAt and archivedBy", "readOnly": true }, "archivedBy": { "type": "string", "description": "User ID of the person who archived the record", "readOnly": true } }, "description": "Common audit fields present on all customer-level GTM configuration entities.\nThese fields track the full lifecycle of a record including creation, modification,\narchival (temporary hiding), and soft deletion (permanent hiding for compliance).\nA record can be active, deleted only, or both." }, "GtmConfigSourceType": { "type": "string", "enum": [ "manual", "import", "system", "mcp" ], "description": "Source type indicating how a GTM configuration record was created or last modified.\nUsed across all customer-level entities for audit provenance tracking.\nWhen source is explicitly set in a request, the corresponding created_by/updated_by must also be provided.\nDefaults to 'manual' when not specified.", "x-enumDescriptions": { "MANUAL": "Created or updated manually by a user through the GTM Studio UI.", "IMPORT": "Imported from an external data source such as CRM or CSV upload.", "SYSTEM": "Generated automatically by the platform (e.g., system enrichment or background jobs).", "MCP": "Created or updated via the GTM Config MCP integration by an AI agent." } } } }