---
title: "Upsert Customer Settings"
method: POST
path: "/copilot/v1/customer-settings"
tags: ["Customer Settings"]
---

# Upsert Customer Settings

`POST /copilot/v1/customer-settings`

## Request

- Base URL: `https://api.zoominfo.com/gtm`
- URL: `https://api.zoominfo.com/gtm/copilot/v1/customer-settings`
- Auth: OAuth 2
  - Authorization code: `https://login.zoominfo.com`
  - Token URL: `https://okta-login.zoominfo.com/oauth2/default/v1/token` scopes: `api:gtm-config:manage`

Creates or updates the Customer Settings for the authenticated customer.
Customer Settings store the Company Overview configuration including the company name, description, elevator pitch,
and strategic go-to-market priorities.

This endpoint performs an upsert operation:
If a Customer Settings record does not exist, it will be created.
If a record already exists, only the fields included in the request will be updated.

Each customer can have only one Customer Settings record.
All attributes in the request body are optional, but at least one attribute must be provided. Requests with no attributes will
return a **400 Bad Request**. Updates are applied as a partial update, meaning only the fields included in the request will be modified.
All other fields remain unchanged.

Common use cases
- Initialize company configuration during setup
- Update company overview information
- Modify strategic priorities used by AI recommendations

Use [Get Customer Settings](ref:customersettingsinterface_getcustomersettings) to retrieve the current settings
before updating, or [Delete Customer Settings](ref:customersettingsinterface_deletecustomersettings) to remove them.

## Request body

- CustomerSettingsModelCreate: JSON:API response containing the customer settings singleton.
  - `data` CustomerSettingsCreate, required: Customer Settings resource wrapping attributes in JSON:API format.
    - `type` string, required: The type of the resource
    - `attributes` CustomerSettingsAttributes, required: Attributes defining customer-level settings and configuration
      - `name` string: Editable display name for the customer organization. When provided (for create or update), must be between 1 and 1024 characters.
      - `elevatorPitch` string: 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` string: Company description providing context about what the organization does, its market position, and its target audience. Maximum 10,000 characters.
      - `strategicPriorities` string: 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` 'manual' | 'import' | 'system' | 'mcp': Source type indicating how a GTM configuration record was created or last modified. Used across all customer-level entities for audit provenance tracking. When source is explicitly set in a request, the corresponding created_by/updated_by must also be provided. Defaults to 'manual' when not specified.
      - `customFields` CustomFieldItem[]: 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.
        - `title` string, required: The display title of the custom field.
        - `description` string: An optional description of the field. Defaults to an empty string in the backend.
        - `value` string, required: The string value associated with this custom field.

## Response `201`

Created

- CustomerSettingsModel: JSON:API response containing the customer settings singleton.
  - `data` CustomerSettings, required: Customer Settings resource wrapping attributes in JSON:API format.
    - `id` string, required: The unique identifier for the resource
    - `type` string, required: The type of the resource
    - `attributes` CustomerSettingsAttributes, required: Attributes defining customer-level settings and configuration
      - `name` string: Editable display name for the customer organization. When provided (for create or update), must be between 1 and 1024 characters.
      - `elevatorPitch` string: 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` string: Company description providing context about what the organization does, its market position, and its target audience. Maximum 10,000 characters.
      - `strategicPriorities` string: 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` 'manual' | 'import' | 'system' | 'mcp': Source type indicating how a GTM configuration record was created or last modified. Used across all customer-level entities for audit provenance tracking. When source is explicitly set in a request, the corresponding created_by/updated_by must also be provided. Defaults to 'manual' when not specified.
      - `customFields` CustomFieldItem[]: 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.
        - `title` string, required: The display title of the custom field.
        - `description` string: An optional description of the field. Defaults to an empty string in the backend.
        - `value` string, required: The string value associated with this custom field.
    - `meta` GtmConfigAuditFields: Common audit fields present on all customer-level GTM configuration entities. These fields track the full lifecycle of a record including creation, modification, archival (temporary hiding), and soft deletion (permanent hiding for compliance). A record can be active, deleted only, or both.
      - `createdAt` string, date-time: ISO 8601 timestamp when the record was originally created. Auto-populated by backend.
      - `updatedAt` string, date-time: ISO 8601 timestamp of the most recent modification to the record. Auto-populated by backend.
      - `createdBy` string: User ID of the person who created the record. Extracted from the JWT token on creation.
      - `updatedBy` string: User ID of the person who last modified the record. Extracted from the JWT token on update.
      - `archivedAt` string, date-time: ISO 8601 timestamp when the record was archived. Archived records are identified by archivedAt and archivedBy
      - `archivedBy` string: User ID of the person who archived the record

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `429`: Too Many Requests

---

[API](https://skmtc.dev/zoominfo/apis/copilot-api-v1.md) - [All operations](https://skmtc.dev/zoominfo/apis/copilot-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/zoominfo/apis/copilot-api-v1/revisions/f737ab239c2a?raw)
