{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/zoominfo/main/json-schema/zoominfo-organization-offering-model-schema.json", "title": "OrganizationOfferingModel", "description": "API model for a single product or service.", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/zoominfo-products-and-services-api-openapi.yml#/components/schemas/OrganizationOfferingModel", "type": "object", "required": [ "data" ], "properties": { "data": { "allOf": [ { "$ref": "#/$defs/OrganizationOffering" } ], "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." }, "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." } }, "OrganizationOffering": { "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": "OrganizationOffering", "pattern": "OrganizationOffering" }, "attributes": { "allOf": [ { "$ref": "#/$defs/OrganizationOfferingAttributes" } ], "description": "The attributes defining the resource" }, "meta": { "allOf": [ { "$ref": "#/$defs/GtmConfigAuditFields" } ], "description": "Non-standard meta information about the resource", "readOnly": true } }, "description": "Product or Service resource." }, "OrganizationOfferingAttributes": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 1024, "description": "Name of the Product or Service. Required when creating a new record. When provided (for create or update), must be between 1 and 1024 characters." }, "description": { "type": "string", "maxLength": 10000, "description": "Detailed description of the Product or Service, including its purpose, target audience, and key benefits. Maximum 10,000 characters." }, "painPoints": { "type": "array", "items": { "type": "string" }, "maxItems": 100, "description": "Customer pain points this Product or Service addresses." }, "valueProposition": { "type": "array", "items": { "type": "string" }, "maxItems": 100, "description": "Value propositions as articulated by the customer — the key reasons a buyer should choose this Product or Service." }, "proofPoints": { "type": "array", "items": { "type": "string" }, "maxItems": 100, "description": "Reviews, testimonials, or case-study references that validate the Product or Service's effectiveness." }, "url": { "type": "string", "format": "uri", "description": "URL of the Product or Service's webpage or landing page. Maximum 1024 characters." }, "competitors": { "type": "string", "maxLength": 10000, "description": "Text description of competitor information relevant to this specific Product or Service. Maximum 10,000 characters." }, "idealCompanySegment": { "type": "string", "maxLength": 10000, "description": "Text description of the ideal company segment for this Product or Service. Maximum 10,000 characters." }, "offeringBuyerPersonas": { "type": "string", "maxLength": 10000, "description": "Text description of the buyer personas relevant to this Product or Service. Maximum 10,000 characters." }, "source": { "allOf": [ { "$ref": "#/$defs/GtmConfigSourceType" } ], "description": "Source type indicating how this Product or Service record was created or last modified. Defaults to `manual`. See `GtmConfigSourceType` for allowed values. When set explicitly, the backend validates source consistency with the `created_by` and `updated_by` fields.", "readOnly": true }, "customFields": { "type": "array", "items": { "$ref": "#/$defs/CustomFieldItem" }, "description": "Flexible key-value store for customer-specific custom fields and extended metadata. The backend validates schema and value types. Use this to capture additional Product or Service details beyond the standard fields." } }, "description": "Attributes that define a Product or Service — the discrete products or services provided by a customer's company.\n\nProducts or services form the foundation of a customer's go-to-market configuration, capturing the essential strategic context of a product. \nA product or service serves as a centralized record for:\n\n* Product Positioning: Capturing how the product is uniquely situated in the market.\n* Targeting: Identifying the specific audiences, industries, or company types the product is intended for.\n* Pain Point Resolution: Documenting the specific customer problems or challenges the product or service is designed to address.\n* Value Proposition: Defining the core benefits and outcomes the product or service provides to the customer.\n\nCollectively, these attributes provide the necessary framework to build a complete GTM picture. The product or service acts as the \nprimary anchor to which Buyer Personas, Ideal Customer Profiles, and Competitive Intelligence are linked, ensuring all \nrevenue-generating activities are aligned with the product's strategic intent." } } }