# Types

> Object, input, enum, and scalar types referenced by the API operations.

Product: Clad API
Source: https://docs.useclad.ai/api/types

---

Object, input, enum, and scalar types referenced by the operations above. Fields marked `!` are non-null.

List queries return a **connection** (`{ edges { node } pageInfo }`) — see [Pagination](#pagination). Mutations return a **result** payload that wraps the affected object plus an `error` field — see [Errors](#errors). Those wrapper types are omitted below; the objects they wrap are documented here.

### Objects

#### Account

A customer account (company) in the org's CRM.

| Field | Type | Description |
| --- | --- | --- |
| `arrAmount` | `Float` |  |
| `arrCadence` | `String` | monthly | quarterly | annual |
| `channelName` | `String` |  |
| `companyName` | `String` |  |
| `contractNextRenewal` | `String` | Next upcoming renewal date, rolled forward by cadence. |
| `contractNotes` | `String` |  |
| `contractRenewalDate` | `String` | ISO date of the contract anchor renewal. |
| `contractSeats` | `Int` |  |
| `createdAt` | `DateTime` |  |
| `customData` | `JSON` |  |
| `id` | `ID` |  |
| `lastActivityAt` | `DateTime` |  |
| `logoUrl` | `String` |  |
| `notes` | `String` |  |
| `ownerId` | `ID` | Profile id of the account owner (org member), if any. |
| `primaryDomain` | `String` |  |
| `projectedArr` | `Float` | Annualized ARR derived from amount x cadence. |
| `tags` | `[String!]` |  |
| `updatedAt` | `DateTime` |  |

#### AccountView

A saved filter/view for the Accounts surface (org-wide).

| Field | Type | Description |
| --- | --- | --- |
| `config` | `JSON` |  |
| `createdAt` | `DateTime` |  |
| `createdBy` | `ID` | Opaque Profile id of the view's creator. |
| `id` | `ID` |  |
| `isStarred` | `Boolean` |  |
| `name` | `String` |  |
| `updatedAt` | `DateTime` |  |

#### ApiKey

Metadata for a graph-native API key. The secret is only returned at mint time.

| Field | Type | Description |
| --- | --- | --- |
| `createdAt` | `DateTime` |  |
| `expiresAt` | `DateTime` |  |
| `id` | `ID` |  |
| `keyPrefix` | `String` |  |
| `lastUsedAt` | `DateTime` |  |
| `machineUserId` | `ID` |  |
| `name` | `String` |  |
| `revokedAt` | `DateTime` |  |
| `scopes` | `[String!]` |  |

#### Article

A knowledge-base article.

| Field | Type | Description |
| --- | --- | --- |
| `collectionId` | `ID` |  |
| `content` | `String` |  |
| `createdAt` | `DateTime` |  |
| `id` | `ID` |  |
| `isAiGenerated` | `Boolean` |  |
| `publishedAt` | `DateTime` |  |
| `slug` | `String` |  |
| `status` | `ArticleStatus` |  |
| `title` | `String` |  |
| `updatedAt` | `DateTime` |  |
| `visibility` | `ArticleVisibility` |  |

#### ArticleTemplate

A reusable starting-point template for new KB articles.

| Field | Type | Description |
| --- | --- | --- |
| `content` | `String` |  |
| `createdAt` | `DateTime` |  |
| `createdBy` | `ID` | Opaque Profile id of the creator (null for machine-created templates). |
| `id` | `ID` |  |
| `name` | `String` |  |
| `updatedAt` | `DateTime` |  |

#### AutoResponseSettings

Org-level AI auto-response configuration.

| Field | Type | Description |
| --- | --- | --- |
| `enabled` | `Boolean` |  |
| `ignoredAccountIds` | `[ID!]` | Accounts whose issues never receive auto-responses. |
| `kbScope` | `JSON` | Knowledge-base scope: { mode: all|custom, collection_ids, article_ids, statuses }. |
| `prompt` | `String` |  |

#### Collection

A knowledge-base collection (folder) grouping articles.

| Field | Type | Description |
| --- | --- | --- |
| `createdAt` | `DateTime` |  |
| `description` | `String` |  |
| `icon` | `String` |  |
| `id` | `ID` |  |
| `name` | `String` |  |
| `updatedAt` | `DateTime` |  |

#### Contact

A contact (end user) in the org's CRM, optionally linked to an account.

| Field | Type | Description |
| --- | --- | --- |
| `accountId` | `ID` |  |
| `avatarUrl` | `String` |  |
| `createdAt` | `DateTime` |  |
| `customData` | `JSON` |  |
| `email` | `String` |  |
| `id` | `ID` |  |
| `name` | `String` |  |
| `updatedAt` | `DateTime` |  |

#### CustomField

A custom-field (metadata) definition for accounts or contacts.

| Field | Type | Description |
| --- | --- | --- |
| `defaultValue` | `String` |  |
| `description` | `String` |  |
| `fieldKey` | `String` |  |
| `fieldType` | `CustomFieldType` |  |
| `id` | `ID` |  |
| `label` | `String` |  |
| `options` | `JSON` |  |
| `position` | `Int` |  |
| `width` | `Int` |  |

#### FeaturedArticle

An explicitly pinned help-center homepage article. Unavailable pins remain listed so clients can preserve or reorder them.

| Field | Type | Description |
| --- | --- | --- |
| `collectionId` | `ID` |  |
| `id` | `ID` |  |
| `isAvailable` | `Boolean` | Whether the article is currently eligible to render publicly: published, public, listed, and in an included collection. |
| `isUnlisted` | `Boolean` |  |
| `position` | `Int` | Zero-based manual homepage position. |
| `slug` | `String` |  |
| `status` | `ArticleStatus` |  |
| `title` | `String` |  |
| `unavailableReason` | `String` | Stable reason the retained pin is hidden, or null when available. |
| `updatedAt` | `DateTime` |  |
| `visibility` | `ArticleVisibility` |  |

#### FeaturedArticleCandidate

Lightweight metadata for a live article eligible for a new homepage pin.

| Field | Type | Description |
| --- | --- | --- |
| `collectionId` | `ID` |  |
| `currentPosition` | `Int` | Current zero-based pin position, or null when the article is not pinned. |
| `id` | `ID` |  |
| `slug` | `String` |  |
| `title` | `String` |  |
| `updatedAt` | `DateTime` |  |

#### Issue

A support issue (ticket) in an organization's inbox.

| Field | Type | Description |
| --- | --- | --- |
| `account` | `Account` | The linked CRM account, if any. Requires accounts:read. |
| `accountId` | `ID` | Opaque Account id this issue is linked to, if any. |
| `assignedTo` | `ID` | Opaque Profile id of the assigned org member, if any. |
| `contact` | `Contact` | The linked CRM contact (requester), if any. Requires contacts:read. |
| `contactId` | `ID` | Opaque Contact id of the requester, if linked. |
| `createdAt` | `DateTime` |  |
| `followers` | `[Profile!]` | Org members following this issue. Requires members:read. |
| `id` | `ID` |  |
| `intakeSource` | `String` |  |
| `isSpam` | `Boolean` |  |
| `isTrashed` | `Boolean` |  |
| `lastMessageAt` | `DateTime` |  |
| `lastMessagePreview` | `String` |  |
| `manualTeamIds` | `[ID!]` | Opaque Team ids assigned directly on this issue (excludes account-inherited teams). |
| `messages` | `MessageConnection` | Thread messages for this issue, oldest first (cursor-paginated). |
| `priority` | `IssuePriority` |  |
| `status` | `IssueStatus` |  |
| `subject` | `String` |  |
| `tags` | `[String!]` |  |
| `teamIds` | `[ID!]` | Opaque Team ids routed to this issue (manual assignments merged with teams inherited from the linked account). |
| `ticketNumber` | `Int` |  |
| `updatedAt` | `DateTime` |  |

#### MachineUser

A non-human API principal (service account) that owns API keys.

| Field | Type | Description |
| --- | --- | --- |
| `createdAt` | `DateTime` |  |
| `id` | `ID` |  |
| `isActive` | `Boolean` |  |
| `name` | `String` |  |
| `publicDisplayName` | `String` |  |

#### Member

An organization membership (a person + their role in the org).

| Field | Type | Description |
| --- | --- | --- |
| `createdAt` | `DateTime` |  |
| `id` | `ID` |  |
| `profile` | `Profile` |  |
| `profileId` | `ID` |  |
| `role` | `String` |  |

#### Message

A single message in an issue's thread (inbound or outbound).

| Field | Type | Description |
| --- | --- | --- |
| `attachments` | `JSON` |  |
| `body` | `String` |  |
| `createdAt` | `DateTime` |  |
| `direction` | `String` |  |
| `externalMessageId` | `String` |  |
| `id` | `ID` |  |
| `isInternal` | `Boolean` |  |
| `senderAvatarUrl` | `String` |  |
| `senderName` | `String` |  |
| `senderType` | `String` |  |

#### Node

An object with a globally unique opaque ID (Relay global object identification).

| Field | Type | Description |
| --- | --- | --- |
| `id` | `ID` | Globally unique opaque id. |

#### Profile

A person's profile (org member / team member).

| Field | Type | Description |
| --- | --- | --- |
| `availability` | `String` |  |
| `avatarUrl` | `String` |  |
| `displayName` | `String` |  |
| `email` | `String` |  |
| `id` | `ID` |  |

#### SlaPolicy

An SLA policy (evaluation order = priorityOrder ascending). Read-only in API v1.

| Field | Type | Description |
| --- | --- | --- |
| `conditionJson` | `JSON` |  |
| `createdAt` | `DateTime` |  |
| `description` | `String` |  |
| `id` | `ID` |  |
| `isActive` | `Boolean` |  |
| `isDefault` | `Boolean` |  |
| `name` | `String` |  |
| `priorityFilter` | `[String!]` | Issue priorities this policy applies to (null = all). |
| `priorityOrder` | `Int` |  |
| `scheduleId` | `ID` | Opaque SupportHoursSchedule id the timers run against (null = 24/7). |
| `scope` | `String` |  |
| `teamId` | `ID` | Opaque Team id when the policy is team-scoped. |
| `updatedAt` | `DateTime` |  |
| `versions` | `[SlaPolicyVersion!]` | Version history, newest first (versions[0] is in force). |

#### SlaPolicyVersion

An immutable version of an SLA policy's timing targets.

| Field | Type | Description |
| --- | --- | --- |
| `createdAt` | `DateTime` |  |
| `firstResponseMinutes` | `Int` |  |
| `id` | `ID` |  |
| `nextResponseMinutes` | `Int` |  |
| `pauseOnStatuses` | `[String!]` |  |
| `prebreachMinutes` | `Int` |  |
| `resolutionMinutes` | `Int` |  |
| `versionNumber` | `Int` |  |

#### SupportHoursHoliday

| Field | Type | Description |
| --- | --- | --- |
| `holidayDate` | `String` | ISO date (YYYY-MM-DD). |
| `id` | `ID` |  |
| `name` | `String` |  |

#### SupportHoursInterval

| Field | Type | Description |
| --- | --- | --- |
| `dayOfWeek` | `Int` | 0 = Sunday … 6 = Saturday. |
| `endTime` | `String` |  |
| `id` | `ID` |  |
| `startTime` | `String` | HH:MM (schedule timezone). |

#### SupportHoursSchedule

A business-hours schedule SLA timers can run against. Read-only in API v1.

| Field | Type | Description |
| --- | --- | --- |
| `createdAt` | `DateTime` |  |
| `holidays` | `[SupportHoursHoliday!]` |  |
| `id` | `ID` |  |
| `intervals` | `[SupportHoursInterval!]` |  |
| `isDefault` | `Boolean` |  |
| `name` | `String` |  |
| `timezone` | `String` |  |

#### Tag

A workspace tag applied to issues and accounts.

| Field | Type | Description |
| --- | --- | --- |
| `color` | `String` |  |
| `createdAt` | `DateTime` |  |
| `id` | `ID` |  |
| `name` | `String` |  |

#### Team

A team within an organization.

| Field | Type | Description |
| --- | --- | --- |
| `createdAt` | `DateTime` |  |
| `id` | `ID` |  |
| `members` | `[TeamMember!]` |  |
| `name` | `String` |  |
| `updatedAt` | `DateTime` |  |

#### TeamMember

| Field | Type | Description |
| --- | --- | --- |
| `id` | `ID` |  |
| `profile` | `Profile` |  |

#### WebhookDelivery

One delivery attempt record for an event → endpoint pair (debug surface).

| Field | Type | Description |
| --- | --- | --- |
| `attemptCount` | `Int` |  |
| `createdAt` | `DateTime` |  |
| `eventId` | `String` | Consumer-side dedupe key (also the clad-webhook-id header). |
| `eventType` | `String` |  |
| `id` | `ID` |  |
| `lastAttemptAt` | `DateTime` |  |
| `lastError` | `String` |  |
| `nextAttemptAt` | `DateTime` |  |
| `payload` | `JSON` |  |
| `responseStatus` | `Int` |  |
| `status` | `String` | pending | delivering | succeeded | dead |

#### WebhookEndpoint

A customer-registered webhook receiver. The signing secret is returned exactly once (create/rotate) and never readable again.

| Field | Type | Description |
| --- | --- | --- |
| `createdAt` | `DateTime` |  |
| `description` | `String` |  |
| `events` | `[String!]` | Subscribed event types ("*" = all). |
| `id` | `ID` |  |
| `isActive` | `Boolean` |  |
| `updatedAt` | `DateTime` |  |
| `url` | `String` |  |

#### Widget

A web chat widget's configuration (the product-platform surface: toggles, theme, launcher, features).

| Field | Type | Description |
| --- | --- | --- |
| `ai` | `JSON` |  |
| `allowedOrigins` | `[String!]` |  |
| `createdAt` | `DateTime` |  |
| `enabled` | `Boolean` |  |
| `features` | `JSON` |  |
| `id` | `ID` |  |
| `identity` | `JSON` |  |
| `isDefault` | `Boolean` |  |
| `launcher` | `JSON` |  |
| `locale` | `String` |  |
| `name` | `String` |  |
| `routing` | `JSON` |  |
| `theme` | `JSON` |  |
| `updatedAt` | `DateTime` |  |

#### WidgetForm

A structured intake form rendered by the web widget.

| Field | Type | Description |
| --- | --- | --- |
| `createdAt` | `DateTime` |  |
| `description` | `String` |  |
| `enabled` | `Boolean` |  |
| `fields` | `JSON` |  |
| `id` | `ID` |  |
| `name` | `String` |  |
| `slug` | `String` |  |
| `updatedAt` | `DateTime` |  |

#### WorkspaceSettings

Org-level workspace toggles: email signature, trash retention, reactions behavior.

| Field | Type | Description |
| --- | --- | --- |
| `emailSignature` | `String` |  |
| `issueClosedAutoArchiveDays` | `Int` | Auto-archive closed issues out of the Closed column after N days (null = never; 7, 14, 30, or 90). Display-only; archived issues stay in search, analytics, and AI context. |
| `issueTrashAutoClearDays` | `Int` | Auto-clear trashed issues after N days (null = never; 30 or 90). |
| `reactionsChangeStatus` | `Boolean` |  |

### Input objects

#### CreateAccountInput

| Field | Type | Description |
| --- | --- | --- |
| `arrAmount` | `Float` |  |
| `arrCadence` | `String` | monthly | quarterly | annual |
| `companyName` | `String!` |  |
| `contractNotes` | `String` |  |
| `contractRenewalDate` | `String` | ISO date (YYYY-MM-DD). |
| `contractSeats` | `Int` |  |
| `customData` | `JSON` |  |
| `logoUrl` | `String` |  |
| `notes` | `String` |  |
| `ownerId` | `ID` | Profile id of the org member who owns this account. |
| `primaryDomain` | `String` |  |
| `tags` | `[String!]` |  |

#### CreateAccountViewInput

| Field | Type | Description |
| --- | --- | --- |
| `config` | `JSON` |  |
| `isStarred` | `Boolean` |  |
| `name` | `String!` |  |

#### CreateApiKeyInput

| Field | Type | Description |
| --- | --- | --- |
| `expiresAt` | `DateTime` |  |
| `machineUserId` | `ID!` |  |
| `name` | `String` |  |
| `scopes` | `[String!]!` |  |

#### CreateArticleInput

| Field | Type | Description |
| --- | --- | --- |
| `collectionId` | `ID` |  |
| `content` | `String` |  |
| `slug` | `String` |  |
| `status` | `ArticleStatus` |  |
| `title` | `String!` |  |
| `visibility` | `ArticleVisibility` |  |

#### CreateArticleTemplateInput

| Field | Type | Description |
| --- | --- | --- |
| `content` | `String` |  |
| `name` | `String!` |  |

#### CreateCollectionInput

| Field | Type | Description |
| --- | --- | --- |
| `description` | `String` |  |
| `icon` | `String` |  |
| `name` | `String!` |  |

#### CreateContactInput

| Field | Type | Description |
| --- | --- | --- |
| `accountId` | `ID` |  |
| `customData` | `JSON` |  |
| `email` | `String` |  |
| `name` | `String!` |  |

#### CreateCustomFieldInput

| Field | Type | Description |
| --- | --- | --- |
| `defaultValue` | `String` |  |
| `description` | `String` |  |
| `entity` | `CustomFieldEntity!` |  |
| `fieldType` | `CustomFieldType!` |  |
| `label` | `String!` |  |
| `options` | `JSON` |  |
| `position` | `Int` | Column position; defaults to the end. |
| `width` | `Int` |  |

#### CreateIssueInput

| Field | Type | Description |
| --- | --- | --- |
| `accountId` | `ID` |  |
| `body` | `String!` |  |
| `contactId` | `ID` |  |
| `externalId` | `String` |  |
| `idempotencyKey` | `String` |  |
| `priority` | `IssuePriority` |  |
| `requesterEmail` | `String` |  |
| `requesterName` | `String` |  |
| `subject` | `String!` |  |
| `tags` | `[String!]` |  |

#### CreateMachineUserInput

| Field | Type | Description |
| --- | --- | --- |
| `name` | `String!` |  |
| `publicDisplayName` | `String` |  |

#### CreateTagInput

| Field | Type | Description |
| --- | --- | --- |
| `color` | `String` |  |
| `name` | `String!` |  |

#### CreateWebhookEndpointInput

| Field | Type | Description |
| --- | --- | --- |
| `description` | `String` |  |
| `events` | `[String!]` | Event types to subscribe to; omit or ["*"] for all. |
| `url` | `String!` | HTTPS receiver URL. |

#### CreateWidgetFormInput

| Field | Type | Description |
| --- | --- | --- |
| `description` | `String` |  |
| `enabled` | `Boolean` |  |
| `fields` | `JSON` | Array of field definitions. |
| `name` | `String!` |  |
| `slug` | `String!` | Lowercase letters/numbers/hyphens; unique per org. |

#### DeleteCustomFieldInput

| Field | Type | Description |
| --- | --- | --- |
| `entity` | `CustomFieldEntity!` |  |
| `id` | `ID!` |  |

#### ReplaceFeaturedArticlesInput

The complete ordered homepage pin set. Omitted prior pins are unpinned; an empty list restores automatic recency.

| Field | Type | Description |
| --- | --- | --- |
| `articleIds` | `[ID!]!` | Up to 6 unique opaque Article ids in the desired order. |

#### ReplyToIssueInput

| Field | Type | Description |
| --- | --- | --- |
| `body` | `String!` |  |
| `isInternal` | `Boolean` |  |
| `issueId` | `ID!` |  |

#### UpdateAccountInput

| Field | Type | Description |
| --- | --- | --- |
| `arrAmount` | `Float` |  |
| `arrCadence` | `String` | monthly | quarterly | annual |
| `companyName` | `String` |  |
| `contractNotes` | `String` |  |
| `contractRenewalDate` | `String` | ISO date (YYYY-MM-DD); null to clear. |
| `contractSeats` | `Int` |  |
| `customData` | `JSON` | Merged into existing custom data (per-key set; pass a null value to clear a key; pass null to clear all user-defined keys). Clad-reserved system keys (merge/integration metadata) are ignored on write and survive a clear. |
| `id` | `ID!` |  |
| `logoUrl` | `String` |  |
| `notes` | `String` |  |
| `ownerId` | `ID` | Profile id of the org member who owns this account; null to clear. |
| `primaryDomain` | `String` |  |
| `tags` | `[String!]` |  |

#### UpdateAccountViewInput

| Field | Type | Description |
| --- | --- | --- |
| `config` | `JSON` |  |
| `id` | `ID!` |  |
| `isStarred` | `Boolean` |  |
| `name` | `String` |  |

#### UpdateArticleInput

| Field | Type | Description |
| --- | --- | --- |
| `collectionId` | `ID` |  |
| `content` | `String` |  |
| `id` | `ID!` |  |
| `slug` | `String` |  |
| `status` | `ArticleStatus` |  |
| `title` | `String` |  |
| `visibility` | `ArticleVisibility` |  |

#### UpdateArticleTemplateInput

| Field | Type | Description |
| --- | --- | --- |
| `content` | `String` |  |
| `id` | `ID!` |  |
| `name` | `String` |  |

#### UpdateAutoResponseInput

| Field | Type | Description |
| --- | --- | --- |
| `enabled` | `Boolean` |  |
| `ignoredAccountIds` | `[ID!]` | Account ids whose issues never receive auto-responses. |
| `kbScope` | `JSON` | { mode: all|custom, collection_ids: [uuid], article_ids: [uuid], statuses: [published|draft] } |
| `prompt` | `String` |  |

#### UpdateCollectionInput

| Field | Type | Description |
| --- | --- | --- |
| `description` | `String` | Explicit null clears the description. |
| `icon` | `String` | Explicit null resets to the default icon. |
| `id` | `ID!` |  |
| `name` | `String` |  |

#### UpdateContactInput

| Field | Type | Description |
| --- | --- | --- |
| `accountId` | `ID` |  |
| `customData` | `JSON` |  |
| `email` | `String` |  |
| `id` | `ID!` |  |
| `name` | `String` |  |

#### UpdateCustomFieldInput

| Field | Type | Description |
| --- | --- | --- |
| `defaultValue` | `String` | null clears. |
| `description` | `String` | null clears. |
| `entity` | `CustomFieldEntity!` |  |
| `fieldType` | `CustomFieldType` |  |
| `id` | `ID!` |  |
| `label` | `String` |  |
| `options` | `JSON` |  |
| `position` | `Int` | Column position (drag-order). |
| `width` | `Int` | null clears (falls back to default width). |

#### UpdateTagInput

| Field | Type | Description |
| --- | --- | --- |
| `color` | `String` |  |
| `id` | `ID!` |  |
| `name` | `String` |  |

#### UpdateWebhookEndpointInput

| Field | Type | Description |
| --- | --- | --- |
| `description` | `String` | null clears. |
| `events` | `[String!]` |  |
| `id` | `ID!` |  |
| `isActive` | `Boolean` |  |
| `url` | `String` |  |

#### UpdateWidgetFormInput

| Field | Type | Description |
| --- | --- | --- |
| `description` | `String` |  |
| `enabled` | `Boolean` |  |
| `fields` | `JSON` |  |
| `id` | `ID!` |  |
| `name` | `String` |  |
| `slug` | `String` |  |

#### UpdateWidgetInput

| Field | Type | Description |
| --- | --- | --- |
| `ai` | `JSON` |  |
| `allowedOrigins` | `[String!]` |  |
| `enabled` | `Boolean` |  |
| `features` | `JSON` |  |
| `id` | `ID!` |  |
| `identity` | `JSON` |  |
| `launcher` | `JSON` |  |
| `locale` | `String` |  |
| `name` | `String` |  |
| `routing` | `JSON` |  |
| `theme` | `JSON` |  |

#### UpdateWorkspaceSettingsInput

| Field | Type | Description |
| --- | --- | --- |
| `emailSignature` | `String` | Signature appended to outbound email replies; null to clear. |
| `issueClosedAutoArchiveDays` | `Int` | null = never, 7, 14, 30, or 90. |
| `issueTrashAutoClearDays` | `Int` | null = never, 30, or 90. |
| `reactionsChangeStatus` | `Boolean` |  |

### Enums

#### ArticleStatus

`draft` · `published`

#### ArticleVisibility

`ai_agent_only` · `customer` · `internal` · `public`

#### CustomFieldEntity

`account` · `contact`

#### CustomFieldType

`boolean` · `date` · `datetime` · `multi_select` · `number` · `select` · `text` · `url` · `user`

#### InboxTarget

`all` · `following` · `my` · `spam` · `trash`

#### IssuePriority

`high` · `low` · `normal` · `urgent`

#### IssueSortKey

`createdAt` · `updatedAt`

#### IssueStatus

`closed` · `new` · `on_customer` · `on_hold` · `on_you`

### Scalars

- `DateTime` — Custom scalar.
- `JSON` — Custom scalar.

<!-- END GENERATED REFERENCE -->
