version: 2.0.0
type: DeclarativeSource
check:
type: CheckStream
stream_names:
- tags
definitions:
bearer_authenticator:
type: BearerAuthenticator
api_token: "{{ config['credentials']['access_token'] }}"
basic_authenticator:
type: BasicHttpAuthenticator
username: "{{ config['credentials']['email'] + '/token' }}"
password: "{{ config['credentials']['api_token'] }}"
retriever:
type: SimpleRetriever
requester:
type: HttpRequester
url_base: https://{{ config['subdomain'] }}.zendesk.com/api/v2/
http_method: GET
authenticator:
type: SelectiveAuthenticator
authenticator_selection_path: ["credentials", "credentials"]
authenticators:
oauth2.0: "#/definitions/bearer_authenticator"
api_token: "#/definitions/basic_authenticator"
error_handler:
type: DefaultErrorHandler
response_filters:
- http_codes: [403, 404]
action: FAIL
failure_type: config_error
error_message: "Unable to read data for stream {{ parameters.get('name') }} due to an issue with permissions. Please ensure that your account has the necessary access level. You can try to re-authenticate on the Set Up Connector page or you can disable stream {{ parameters.get('name') }} on the Schema Tab. Error message: {{ response.get('error') }}"
backoff_strategies:
- type: WaitTimeFromHeader
header: Retry-After
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
["{{ parameters.get('data_path') or parameters.get('name') }}"]
schema_normalization: Default
paginator:
type: DefaultPaginator
page_size_option:
type: RequestOption
field_name: "per_page"
inject_into: request_parameter
pagination_strategy:
type: CursorPagination
page_size: 100
cursor_value: '{{ response.get("next_page", {}) }}'
stop_condition: "{{ last_page_size == 0 }}"
page_token_option:
type: RequestPath
base_stream:
type: DeclarativeStream
retriever:
$ref: "#/definitions/retriever"
# Semi-incremental streams for endpoints that doesn't support filtering or sorting but include updated or created fields
semi_incremental_stream:
$ref: "#/definitions/base_stream"
retriever:
$ref: "#/definitions/retriever"
record_selector:
$ref: "#/definitions/retriever/record_selector"
record_filter:
condition: "{{ record[parameters['cursor_field']] >= stream_interval.get('start_time', config.get('start_date')) }}"
incremental_sync:
type: DatetimeBasedCursor
cursor_datetime_formats:
- "%Y-%m-%dT%H:%M:%SZ"
- "%Y-%m-%dT%H:%M:%S%z"
datetime_format: "%Y-%m-%dT%H:%M:%SZ"
cursor_field: "{{ parameters.get('cursor_field', 'updated_at') }}"
start_datetime:
datetime: "{{ config.get('start_date') or day_delta(-730, '%Y-%m-%dT%H:%M:%SZ') }}"
cursor_incremental_sync:
type: DatetimeBasedCursor
cursor_datetime_formats:
- "%s"
- "%Y-%m-%dT%H:%M:%SZ"
- "%Y-%m-%dT%H:%M:%S%z"
datetime_format: "%s"
cursor_field: "{{ parameters.get('cursor_field', 'updated_at') }}"
start_datetime:
datetime: "{{ timestamp(config.get('start_date')) | int if config.get('start_date') else day_delta(-730, '%s') }}"
start_time_option:
inject_into: request_parameter
field_name: "{{ parameters['cursor_filter'] }}"
type: RequestOption
base_incremental_stream:
$ref: "#/definitions/base_stream"
incremental_sync:
$ref: "#/definitions/cursor_incremental_sync"
# Paginators
links_next_paginator:
type: DefaultPaginator
pagination_strategy:
type: CursorPagination
cursor_value: "{{ response['links']['next'] }}"
stop_condition: "{{ not response['meta']['has_more'] }}"
page_size: 100
page_token_option:
type: RequestPath
page_size_option:
type: RequestOption
field_name: "page[size]"
inject_into: request_parameter
after_url_paginator:
type: DefaultPaginator
pagination_strategy:
type: CursorPagination
cursor_value: '{{ response.get("after_url") }}'
# there is a `end_of_stream` property inside the `response`,
# we should use it, instead of relying on `last_page_size`,
# which could be `[]` but, `end_of_stream == false` and `after_url != null`
stop_condition: '{{ response.get("end_of_stream") }}'
page_size: 100
page_token_option:
type: RequestPath
end_of_stream_paginator:
type: DefaultPaginator
pagination_strategy:
type: CursorPagination
cursor_value: '{{ response.get("next_page", {}) }}'
stop_condition: '{{ response.get("end_of_stream") }}'
page_token_option:
type: RequestPath
# Full-refresh streams
account_attributes_stream:
$ref: "#/definitions/base_stream"
$parameters:
name: "account_attributes"
path: "routing/attributes"
data_path: "attributes"
primary_key: "id"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/account_attributes"
attribute_definitions_stream:
$ref: "#/definitions/base_stream"
retriever:
$ref: "#/definitions/retriever"
record_selector:
type: RecordSelector
extractor:
type: CustomRecordExtractor
class_name: source_declarative_manifest.components.ZendeskSupportAttributeDefinitionsExtractor
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/attribute_definitions"
$parameters:
name: "attribute_definitions"
path: "routing/attributes/definitions"
data_path: "attributes"
brands_stream:
# ToDo: add incremental sync
$ref: "#/definitions/base_stream"
retriever:
$ref: "#/definitions/retriever"
paginator:
$ref: "#/definitions/links_next_paginator"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/brands"
$parameters:
name: "brands"
path: "brands"
primary_key: "id"
user_fields_stream:
$ref: "#/definitions/base_stream"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/user_fields"
$parameters:
name: "user_fields"
path: "user_fields"
primary_key: "id"
tags_stream:
$ref: "#/definitions/base_stream"
retriever:
$ref: "#/definitions/retriever"
paginator:
$ref: "#/definitions/links_next_paginator"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/tags"
$parameters:
name: "tags"
path: "tags"
primary_key: "name"
automations_stream:
$ref: "#/definitions/base_stream"
retriever:
$ref: "#/definitions/retriever"
paginator:
$ref: "#/definitions/links_next_paginator"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/automations"
$parameters:
name: "automations"
path: "automations"
primary_key: "id"
categories_stream:
$ref: "#/definitions/base_stream"
retriever:
$ref: "#/definitions/retriever"
paginator:
$ref: "#/definitions/links_next_paginator"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/categories"
$parameters:
name: "categories"
path: "help_center/categories"
primary_key: "id"
sections_stream:
$ref: "#/definitions/base_stream"
retriever:
$ref: "#/definitions/retriever"
paginator:
$ref: "#/definitions/links_next_paginator"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/sections"
$parameters:
name: "sections"
path: "help_center/sections"
primary_key: "id"
# Incremental cursor-based streams
articles_stream:
$ref: "#/definitions/base_incremental_stream"
name: "articles"
primary_key: "id"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/articles"
incremental_sync:
$ref: "#/definitions/cursor_incremental_sync"
start_time_option:
$ref: "#/definitions/cursor_incremental_sync/start_time_option"
field_name: "start_time"
retriever:
$ref: "#/definitions/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
requester:
$ref: "#/definitions/retriever/requester"
path: "help_center/incremental/articles"
paginator:
type: DefaultPaginator
pagination_strategy:
type: CursorPagination
cursor_value: '{{ response.get("next_page", {}) }}'
stop_condition: "{{ last_page_size == 0 }}"
page_token_option:
type: RequestPath
record_selector:
extractor:
type: DpathExtractor
field_path: ["articles"]
article_attachments_stream:
$ref: "#/definitions/base_incremental_stream"
name: "article_attachments"
primary_key: "id"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/article_attachments"
retriever:
$ref: "#/definitions/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
requester:
$ref: "#/definitions/retriever/requester"
path: "help_center/articles/{{ stream_partition.article_id }}/attachments"
partition_router:
type: SubstreamPartitionRouter
parent_stream_configs:
- type: ParentStreamConfig
parent_key: "id"
partition_field: "article_id"
stream:
$ref: "#/definitions/articles_stream"
incremental_dependency: true
record_selector:
extractor:
type: DpathExtractor
field_path: ["article_attachments"]
file_uploader:
type: FileUploader
requester:
type: HttpRequester
url_base: "{{download_target}}"
http_method: GET
authenticator:
type: SelectiveAuthenticator
authenticator_selection_path: ["credentials", "credentials"]
authenticators:
oauth2.0: "#/definitions/bearer_authenticator"
api_token: "#/definitions/basic_authenticator"
download_target_extractor:
type: DpathExtractor
field_path: ["content_url"]
filename_extractor: "{{ record.id }}/{{ record.file_name }}/"
article_comments_stream:
$ref: "#/definitions/base_incremental_stream"
name: "article_comments"
primary_key: "id"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/article_comments"
incremental_sync:
$ref: "#/definitions/cursor_incremental_sync"
start_time_option:
$ref: "#/definitions/cursor_incremental_sync/start_time_option"
field_name: "start_time"
retriever:
$ref: "#/definitions/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
requester:
$ref: "#/definitions/retriever/requester"
path: "help_center/articles/{{ stream_partition.article_id }}/comments"
paginator:
$ref: "#/definitions/links_next_paginator"
partition_router:
type: SubstreamPartitionRouter
parent_stream_configs:
- type: ParentStreamConfig
parent_key: "id"
partition_field: "article_id"
stream:
$ref: "#/definitions/articles_stream"
incremental_dependency: true
record_selector:
extractor:
type: DpathExtractor
field_path: ["comments"]
transformations:
- type: AddFields
fields:
- path:
- _airbyte_parent_id # used for article_comment_votes stream
value: "{{ { 'article_id': record['source_id'], 'comment_id': record['id'] } }}"
article_votes_stream:
$ref: "#/definitions/base_incremental_stream"
name: "article_votes"
primary_key: "id"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/votes"
incremental_sync:
$ref: "#/definitions/cursor_incremental_sync"
start_time_option:
$ref: "#/definitions/cursor_incremental_sync/start_time_option"
field_name: "start_time"
retriever:
$ref: "#/definitions/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
requester:
$ref: "#/definitions/retriever/requester"
path: "help_center/articles/{{ stream_partition.article_id }}/votes"
paginator:
$ref: "#/definitions/links_next_paginator"
partition_router:
type: SubstreamPartitionRouter
parent_stream_configs:
- type: ParentStreamConfig
parent_key: "id"
partition_field: "article_id"
stream:
$ref: "#/definitions/articles_stream"
incremental_dependency: true
record_selector:
extractor:
type: DpathExtractor
field_path: ["votes"]
article_comment_votes_stream:
$ref: "#/definitions/base_incremental_stream"
name: "article_comment_votes"
primary_key: "id"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/votes"
incremental_sync:
$ref: "#/definitions/cursor_incremental_sync"
start_time_option:
$ref: "#/definitions/cursor_incremental_sync/start_time_option"
field_name: "start_time"
retriever:
$ref: "#/definitions/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
requester:
$ref: "#/definitions/retriever/requester"
path: "help_center/articles/{{ stream_partition.id.article_id }}/comments/{{ stream_partition.id.comment_id }}/votes"
paginator:
$ref: "#/definitions/links_next_paginator"
partition_router:
type: SubstreamPartitionRouter
parent_stream_configs:
- type: ParentStreamConfig
parent_key: "_airbyte_parent_id"
partition_field: "id"
stream:
$ref: "#/definitions/article_comments_stream"
incremental_dependency: true
record_selector:
extractor:
type: DpathExtractor
field_path: ["votes"]
audit_logs_stream:
$ref: "#/definitions/base_incremental_stream"
retriever:
$ref: "#/definitions/base_stream/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
requester:
$ref: "#/definitions/retriever/requester"
request_parameters:
filter[created_at][]: "{{ [ stream_interval['start_time'], stream_interval['end_time'] ] if next_page_token is none else '' }}"
sort: "created_at"
paginator:
$ref: "#/definitions/links_next_paginator"
incremental_sync:
type: DatetimeBasedCursor
cursor_datetime_formats:
- "%Y-%m-%dT%H:%M:%SZ"
- "%Y-%m-%dT%H:%M:%S%z"
datetime_format: "%Y-%m-%dT%H:%M:%SZ"
cursor_field: "{{ parameters.get('cursor_field', 'updated_at') }}"
start_datetime:
datetime: "{{ config.get('start_date') or day_delta(-3650, '%Y-%m-%dT%H:%M:%SZ') }}"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/audit_logs"
$parameters:
name: "audit_logs"
path: "audit_logs"
cursor_field: "created_at"
cursor_filter: "filter[created_at][]"
primary_key: "id"
custom_roles_stream:
$ref: "#/definitions/semi_incremental_stream"
retriever:
$ref: "#/definitions/semi_incremental_stream/retriever"
paginator:
type: DefaultPaginator
pagination_strategy:
type: CursorPagination
cursor_value: '{{ response.get("next_page", {}) }}'
stop_condition: "{{ last_page_size == 0 }}"
page_token_option:
type: RequestPath
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/custom_roles"
$parameters:
name: "custom_roles"
path: "custom_roles"
data_path: "custom_roles"
cursor_field: "updated_at"
primary_key: "id"
group_memberships_stream:
$ref: "#/definitions/semi_incremental_stream"
retriever:
$ref: "#/definitions/semi_incremental_stream/retriever"
paginator:
$ref: "#/definitions/links_next_paginator"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/group_memberships"
$parameters:
name: "group_memberships"
path: "group_memberships"
cursor_field: "updated_at"
primary_key: "id"
groups_stream:
$ref: "#/definitions/semi_incremental_stream"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/groups"
$parameters:
name: "groups"
path: "groups"
cursor_field: "updated_at"
primary_key: "id"
macros_stream:
$ref: "#/definitions/base_incremental_stream"
retriever:
$ref: "#/definitions/semi_incremental_stream/retriever"
requester:
$ref: "#/definitions/retriever/requester"
request_parameters:
sort_by: "created_at"
sort_order: "asc"
paginator:
$ref: "#/definitions/links_next_paginator"
incremental_sync:
$ref: "#/definitions/semi_incremental_stream/incremental_sync"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/macros"
$parameters:
name: "macros"
path: "macros"
cursor_field: "updated_at"
primary_key: "id"
organization_fields_stream:
$ref: "#/definitions/semi_incremental_stream"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/organization_fields"
$parameters:
name: "organization_fields"
path: "organization_fields"
cursor_field: "updated_at"
primary_key: "id"
organization_memberships_stream:
$ref: "#/definitions/semi_incremental_stream"
retriever:
$ref: "#/definitions/semi_incremental_stream/retriever"
paginator:
$ref: "#/definitions/links_next_paginator"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/organization_memberships"
$parameters:
name: "organization_memberships"
path: "organization_memberships"
cursor_field: "updated_at"
primary_key: "id"
organizations_stream:
$ref: "#/definitions/base_incremental_stream"
retriever:
$ref: "#/definitions/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
paginator:
$ref: "#/definitions/end_of_stream_paginator"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/organizations"
$parameters:
name: "organizations"
path: "incremental/organizations"
cursor_field: "updated_at"
cursor_filter: "start_time"
primary_key: "id"
posts_stream:
$ref: "#/definitions/base_incremental_stream"
name: "posts"
primary_key: "id"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/posts"
incremental_sync:
$ref: "#/definitions/cursor_incremental_sync"
start_time_option:
$ref: "#/definitions/cursor_incremental_sync/start_time_option"
field_name: "start_time"
retriever:
$ref: "#/definitions/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
requester:
$ref: "#/definitions/retriever/requester"
path: "community/posts"
paginator:
$ref: "#/definitions/links_next_paginator"
record_selector:
extractor:
type: DpathExtractor
field_path: ["posts"]
schema_normalization: None
post_comments_stream:
$ref: "#/definitions/base_incremental_stream"
name: "post_comments"
primary_key: "id"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/post_comments"
incremental_sync:
$ref: "#/definitions/cursor_incremental_sync"
start_time_option:
$ref: "#/definitions/cursor_incremental_sync/start_time_option"
field_name: "start_time"
retriever:
$ref: "#/definitions/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
requester:
$ref: "#/definitions/retriever/requester"
path: "community/posts/{{ stream_partition.post_id }}/comments"
paginator:
$ref: "#/definitions/links_next_paginator"
partition_router:
type: SubstreamPartitionRouter
parent_stream_configs:
- type: ParentStreamConfig
parent_key: id
partition_field: post_id
stream:
$ref: "#/definitions/posts_stream"
incremental_dependency: true
record_selector:
extractor:
type: DpathExtractor
field_path: ["comments"]
transformations:
- type: AddFields
fields:
- path:
- _airbyte_parent_id # used for post_comment_votes stream
value: "{{ { 'post_id': record['post_id'], 'comment_id': record['id'] } }}"
post_votes_stream:
$ref: "#/definitions/base_incremental_stream"
name: "post_votes"
primary_key: "id"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/votes"
incremental_sync:
$ref: "#/definitions/cursor_incremental_sync"
start_time_option:
$ref: "#/definitions/cursor_incremental_sync/start_time_option"
field_name: "start_time"
retriever:
$ref: "#/definitions/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
requester:
$ref: "#/definitions/retriever/requester"
path: "community/posts/{{ stream_partition.post_id }}/votes"
paginator:
$ref: "#/definitions/links_next_paginator"
partition_router:
type: SubstreamPartitionRouter
parent_stream_configs:
- type: ParentStreamConfig
parent_key: id
partition_field: post_id
stream:
$ref: "#/definitions/posts_stream"
incremental_dependency: true
record_selector:
extractor:
type: DpathExtractor
field_path: ["votes"]
post_comment_votes_stream:
$ref: "#/definitions/base_incremental_stream"
name: "post_comment_votes"
primary_key: "id"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/votes"
incremental_sync:
$ref: "#/definitions/cursor_incremental_sync"
start_time_option:
$ref: "#/definitions/cursor_incremental_sync/start_time_option"
field_name: "start_time"
retriever:
$ref: "#/definitions/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
requester:
$ref: "#/definitions/retriever/requester"
path: "community/posts/{{ stream_partition.id.post_id }}/comments/{{ stream_partition.id.comment_id }}/votes"
paginator:
$ref: "#/definitions/links_next_paginator"
partition_router:
type: SubstreamPartitionRouter
parent_stream_configs:
- type: ParentStreamConfig
parent_key: "_airbyte_parent_id"
partition_field: id
stream:
$ref: "#/definitions/post_comments_stream"
incremental_dependency: true
record_selector:
extractor:
type: DpathExtractor
field_path: ["votes"]
satisfaction_ratings_stream:
$ref: "#/definitions/base_incremental_stream"
retriever:
$ref: "#/definitions/retriever"
requester:
$ref: "#/definitions/retriever/requester"
request_parameters:
sort: "created_at"
paginator:
$ref: "#/definitions/links_next_paginator"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/satisfaction_ratings"
$parameters:
name: "satisfaction_ratings"
path: "satisfaction_ratings"
cursor_field: "updated_at"
cursor_filter: "start_time"
primary_key: "id"
schedules_stream:
$ref: "#/definitions/semi_incremental_stream"
retriever:
$ref: "#/definitions/semi_incremental_stream/retriever"
paginator:
$ref: "#/definitions/retriever/paginator"
page_size_option:
type: RequestOption
field_name: "page[size]"
inject_into: request_parameter
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/schedules"
$parameters:
name: "schedules"
path: "business_hours/schedules.json"
cursor_field: "updated_at"
primary_key: "id"
sla_policies_stream:
$ref: "#/definitions/semi_incremental_stream"
retriever:
$ref: "#/definitions/semi_incremental_stream/retriever"
paginator:
type: DefaultPaginator
pagination_strategy:
type: CursorPagination
cursor_value: '{{ response.get("next_page", {}) }}'
stop_condition: "{{ last_page_size == 0 }}"
page_token_option:
type: RequestPath
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/sla_policies"
$parameters:
name: "sla_policies"
path: "slas/policies.json"
cursor_field: "updated_at"
primary_key: "id"
ticket_activities_stream:
$ref: "#/definitions/semi_incremental_stream"
retriever:
$ref: "#/definitions/semi_incremental_stream/retriever"
requester:
$ref: "#/definitions/retriever/requester"
request_parameters:
sort: "created_at"
sort_by: "created_at"
sort_order: "asc"
paginator:
$ref: "#/definitions/links_next_paginator"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/ticket_activities"
$parameters:
name: "ticket_activities"
path: "activities"
data_path: "activities"
cursor_field: "updated_at"
primary_key: "id"
ticket_audits_stream:
$ref: "#/definitions/semi_incremental_stream"
retriever:
$ref: "#/definitions/semi_incremental_stream/retriever"
requester:
$ref: "#/definitions/retriever/requester"
request_parameters:
sort_by: "created_at"
sort_order: "desc"
error_handler:
type: DefaultErrorHandler
backoff_strategies:
- type: WaitTimeFromHeader
header: Retry-After
response_filters:
- http_codes: [504]
action: FAIL
error_message: "Skipping stream `{{ parameters.get('name') }}`. Timed out waiting for response: {{ response.text }}..."
- http_codes: [403, 404]
action: FAIL
failure_type: config_error
error_message: "Unable to read data for stream {{ parameters.get('name') }} due to an issue with permissions. Please ensure that your account has the necessary access level. You can try to re-authenticate on the Set Up Connector page or you can disable stream {{ parameters.get('name') }} on the Schema Tab. Error message: {{ response.get('error') }}"
paginator:
type: DefaultPaginator
page_size_option:
type: RequestOption
field_name: "limit"
inject_into: request_parameter
pagination_strategy:
type: CursorPagination
page_size: 200
cursor_value: "{{ response.get('before_url') }}"
stop_condition: "{{ last_page_size == 0 }}"
page_token_option:
type: RequestPath
incremental_sync:
$ref: "#/definitions/semi_incremental_stream/incremental_sync"
is_data_feed: true
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/ticket_audits"
$parameters:
name: "ticket_audits"
path: "ticket_audits"
data_path: "audits"
cursor_field: "created_at"
primary_key: "id"
ticket_comments_stream:
$ref: "#/definitions/base_incremental_stream"
retriever:
$ref: "#/definitions/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
requester:
$ref: "#/definitions/retriever/requester"
request_parameters:
include: "comment_events"
record_selector:
type: RecordSelector
extractor:
type: CustomRecordExtractor
class_name: source_declarative_manifest.components.ZendeskSupportExtractorEvents
field_path: ["ticket_events", "*", "child_events", "*"]
paginator:
$ref: "#/definitions/end_of_stream_paginator"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/ticket_comments"
$parameters:
name: "ticket_comments"
path: "incremental/ticket_events.json"
cursor_field: "created_at"
cursor_filter: "start_time"
primary_key: "id"
ticket_fields_stream:
$ref: "#/definitions/semi_incremental_stream"
retriever:
$ref: "#/definitions/semi_incremental_stream/retriever"
paginator:
$ref: "#/definitions/links_next_paginator"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/ticket_fields"
$parameters:
name: "ticket_fields"
path: "ticket_fields"
cursor_field: "updated_at"
primary_key: "id"
ticket_forms_stream:
$ref: "#/definitions/semi_incremental_stream"
retriever:
$ref: "#/definitions/retriever"
requester:
$ref: "#/definitions/retriever/requester"
error_handler:
type: CompositeErrorHandler
error_handlers:
- type: DefaultErrorHandler
response_filters:
- http_codes: [403, 404]
action: FAIL # fail as this stream used to define enterprise plan
error_message: "Unable to read data for stream {{ parameters.get('name') }} due to an issue with permissions. Please ensure that your account has the necessary access level. You can try to re-authenticate on the Set Up Connector page or you can disable stream {{ parameters.get('name') }} on the Schema Tab. Error message: {{ response.get('error') }}"
- type: DefaultErrorHandler
backoff_strategies:
- type: WaitTimeFromHeader
header: Retry-After
paginator:
type: DefaultPaginator
pagination_strategy:
type: CursorPagination
cursor_value: '{{ response.get("next_page", {}) }}'
stop_condition: "{{ last_page_size == 0 }}"
page_token_option:
type: RequestPath
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/ticket_forms"
$parameters:
name: "ticket_forms"
path: "ticket_forms"
cursor_field: "updated_at"
primary_key: "id"
ticket_metric_events_stream:
$ref: "#/definitions/base_incremental_stream"
retriever:
$ref: "#/definitions/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
paginator:
$ref: "#/definitions/links_next_paginator"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/ticket_metric_events"
$parameters:
name: "ticket_metric_events"
path: "incremental/ticket_metric_events"
cursor_field: "time"
cursor_filter: "start_time"
primary_key: "id"
ticket_skips_stream:
$ref: "#/definitions/semi_incremental_stream"
retriever:
$ref: "#/definitions/semi_incremental_stream/retriever"
requester:
$ref: "#/definitions/retriever/requester"
request_parameters:
sort_order: "desc"
paginator:
$ref: "#/definitions/links_next_paginator"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/ticket_skips"
$parameters:
name: "ticket_skips"
path: "skips.json"
data_path: "skips"
cursor_field: "updated_at"
primary_key: "id"
tickets_stream:
$ref: "#/definitions/base_incremental_stream"
retriever:
$ref: "#/definitions/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
paginator:
$ref: "#/definitions/after_url_paginator"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/tickets"
$parameters:
name: "tickets"
path: "incremental/tickets/cursor.json"
cursor_field: "generated_timestamp"
cursor_filter: "start_time"
primary_key: "id"
ticket_metrics_stream:
type: StateDelegatingStream
name: "ticket_metrics"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/ticket_metrics"
full_refresh_stream:
$ref: "#/definitions/base_incremental_stream"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/ticket_metrics"
name: "ticket_metrics"
primary_key: "id"
incremental_sync:
type: DatetimeBasedCursor
cursor_datetime_formats:
- "%s"
datetime_format: "%s"
cursor_field: "_ab_updated_at"
start_datetime:
datetime: "0" # not used as the API does not take filters in and we don't define a step so there is only one request
retriever:
$ref: "#/definitions/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
requester:
$ref: "#/definitions/retriever/requester"
path: "ticket_metrics"
paginator:
$ref: "#/definitions/links_next_paginator"
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path: ["ticket_metrics"]
transformations:
- type: AddFields
fields:
- path:
- "_ab_updated_at"
value: "{{ format_datetime(record['updated_at'], '%s') }}"
incremental_stream:
$ref: "#/definitions/base_incremental_stream"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/ticket_metrics"
name: "ticket_metrics"
primary_key: "id"
incremental_sync:
type: DatetimeBasedCursor
cursor_datetime_formats:
- "%s"
datetime_format: "%s"
cursor_field: "_ab_updated_at"
start_datetime:
datetime: "0" # not used as we should start from the state value
retriever:
$ref: "#/definitions/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
requester:
$ref: "#/definitions/retriever/requester"
path: "tickets/{{ stream_partition.ticket_id }}/metrics"
error_handler:
type: DefaultErrorHandler
backoff_strategies:
- type: WaitTimeFromHeader
header: Retry-After
response_filters:
- http_codes: [403]
action: IGNORE
failure_type: config_error
error_message: "Please ensure the authenticated user has access to stream: {self.name}. If the issue persists, contact Zendesk support."
- http_codes: [404]
action: IGNORE
failure_type: config_error
error_message: "Not found. Ticket was deleted. If the issue persists, contact Zendesk support."
paginator:
type: NoPagination
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path: ["ticket_metric"]
partition_router:
type: SubstreamPartitionRouter
parent_stream_configs:
- type: ParentStreamConfig
parent_key: "id"
partition_field: "ticket_id"
extra_fields:
- ["generated_timestamp"]
stream:
$ref: "#/definitions/tickets_stream"
incremental_dependency: true
transformations:
- type: AddFields
fields:
- path:
- "_ab_updated_at"
value: "{{ record['generated_timestamp'] if 'generated_timestamp' in record else stream_slice.extra_fields['generated_timestamp'] }}"
value_type: "integer"
topics_stream:
$ref: "#/definitions/semi_incremental_stream"
retriever:
$ref: "#/definitions/semi_incremental_stream/retriever"
paginator:
$ref: "#/definitions/links_next_paginator"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/topics"
$parameters:
name: "topics"
path: "community/topics"
cursor_field: "updated_at"
primary_key: "id"
triggers_stream:
$ref: "#/definitions/semi_incremental_stream"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/triggers"
$parameters:
name: "triggers"
path: "triggers"
cursor_field: "updated_at"
primary_key: "id"
users_stream:
$ref: "#/definitions/base_incremental_stream"
retriever:
$ref: "#/definitions/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
paginator:
$ref: "#/definitions/after_url_paginator"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/users"
$parameters:
name: "users"
path: "incremental/users/cursor.json"
cursor_field: "updated_at"
cursor_filter: "start_time"
primary_key: "id"
users_identities_stream:
$ref: "#/definitions/base_incremental_stream"
retriever:
$ref: "#/definitions/retriever"
ignore_stream_slicer_parameters_on_paginated_requests: true
paginator:
$ref: "#/definitions/after_url_paginator"
requester:
$ref: "#/definitions/retriever/requester"
request_parameters:
include: "identities"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/user_identities"
$parameters:
name: "user_identities"
data_path: "identities"
path: "incremental/users/cursor.json"
cursor_field: "updated_at"
cursor_filter: "start_time"
primary_key: "id"
streams:
# Full refresh streams
- $ref: "#/definitions/account_attributes_stream"
- $ref: "#/definitions/attribute_definitions_stream"
- $ref: "#/definitions/brands_stream"
- $ref: "#/definitions/custom_roles_stream"
- $ref: "#/definitions/schedules_stream"
- $ref: "#/definitions/sla_policies_stream"
- $ref: "#/definitions/tags_stream"
- $ref: "#/definitions/ticket_fields_stream"
- $ref: "#/definitions/ticket_forms_stream"
- $ref: "#/definitions/topics_stream"
- $ref: "#/definitions/user_fields_stream"
- $ref: "#/definitions/automations_stream"
- $ref: "#/definitions/categories_stream"
- $ref: "#/definitions/sections_stream"
# Incremental streams
- $ref: "#/definitions/articles_stream"
- $ref: "#/definitions/article_attachments_stream"
- $ref: "#/definitions/article_comments_stream"
- $ref: "#/definitions/article_votes_stream"
- $ref: "#/definitions/article_comment_votes_stream"
- $ref: "#/definitions/audit_logs_stream"
- $ref: "#/definitions/groups_stream"
- $ref: "#/definitions/group_memberships_stream"
- $ref: "#/definitions/macros_stream"
- $ref: "#/definitions/organization_fields_stream"
- $ref: "#/definitions/organization_memberships_stream"
- $ref: "#/definitions/organizations_stream"
- $ref: "#/definitions/posts_stream"
- $ref: "#/definitions/post_comment_votes_stream"
- $ref: "#/definitions/post_comments_stream"
- $ref: "#/definitions/post_votes_stream"
- $ref: "#/definitions/satisfaction_ratings_stream"
- $ref: "#/definitions/ticket_activities_stream"
- $ref: "#/definitions/ticket_audits_stream"
- $ref: "#/definitions/ticket_comments_stream"
- $ref: "#/definitions/ticket_metric_events_stream"
- $ref: "#/definitions/ticket_skips_stream"
- $ref: "#/definitions/tickets_stream"
- $ref: "#/definitions/ticket_metrics_stream"
- $ref: "#/definitions/triggers_stream"
- $ref: "#/definitions/users_stream"
- $ref: "#/definitions/users_identities_stream"
# todo: The following streams are enterprise-only streams. However, the low-code CDK does not support
# ConditionalStreams based on an API endpoint. These should be under that component once the CDK supports it.
# - $ref: "#/definitions/ticket_forms_stream"
# - $ref: "#/definitions/account_attributes_stream"
# - $ref: "#/definitions/attribute_definitions_stream"
# Zendesk Support offers four tiers of rate limits:
# - Team: 200 req/min (3.3 req/sec)
# - Professional: 400 req/min (6.7 req/sec)
# - Enterprise: 700 req/min (11.7 req/sec)
# - High Volume API add-on: 2500 req/min (41.7 req/sec)
#
# We use defer to a level of 3 because we assume by default that customers are on the Team tier, but
# customers can specify a higher concurrency level as needed up to the theoretical max rate limit.
concurrency_level:
type: ConcurrencyLevel
default_concurrency: "{{ config.get('num_workers', 3) }}"
max_concurrency: 40
spec:
type: Spec
documentationUrl: "https://docs.airbyte.com/integrations/sources/zendesk-support"
connection_specification:
$schema: "http://json-schema.org/draft-07/schema#"
title: Source Zendesk Support Spec
type: object
required:
- subdomain
additionalProperties: true
properties:
start_date:
type: string
title: Start Date
description: >-
The UTC date and time from which you'd like to replicate data, in the
format YYYY-MM-DDT00:00:00Z. All data generated after this date will be
replicated.
examples:
- "2020-10-15T00:00:00Z"
pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
pattern_descriptor: "YYYY-MM-DDTHH:mm:ssZ"
format: date-time
order: 2
subdomain:
type: string
title: Subdomain
description: >-
This is your unique Zendesk subdomain that can be found in your account
URL. For example, in https://MY_SUBDOMAIN.zendesk.com/, MY_SUBDOMAIN is
the value of your subdomain.
order: 0
credentials:
title: Authentication
type: object
description: >-
Zendesk allows two authentication methods. We recommend using `OAuth2.0`
for Airbyte Cloud users and `API token` for Airbyte Open Source users.
order: 1
oneOf:
- title: OAuth2.0
type: object
required:
- access_token
additionalProperties: true
properties:
credentials:
type: string
const: oauth2.0
order: 0
access_token:
type: string
title: Access Token
description: >-
The OAuth access token. See the Zendesk
docs for more information on generating this token.
airbyte_secret: true
client_id:
type: string
title: Client ID
description: >-
The OAuth client's ID. See this
guide for more information.
airbyte_secret: true
client_secret:
type: string
title: Client Secret
description: >-
The OAuth client secret. See this
guide for more information.
airbyte_secret: true
- title: API Token
type: object
required:
- email
- api_token
additionalProperties: true
properties:
credentials:
type: string
const: api_token
order: 0
email:
title: Email
type: string
description: The user email for your Zendesk account.
api_token:
title: API Token
type: string
description: >-
The value of the API token generated. See our full
documentation for more information on generating this token.
airbyte_secret: true
ignore_pagination:
type: boolean
default: false
description: "[Deprecated] Makes each stream read a single page of data."
title: >-
[Deprecated] Should the connector read the second and further pages of
data.
airbyte_hidden: true
num_workers:
type: integer
title: Number of concurrent workers
minimum: 1
maximum: 40
default: 3
examples:
- 1
- 2
- 3
description: >-
The number of worker threads to use for the sync. The performance upper
boundary is based on the limit of your Zendesk Support plan. More info
about the rate limit plan tiers can be found on Zendesk's API docs.
order: 3
advanced_auth:
auth_flow_type: oauth2.0
predicate_key:
- credentials
- credentials
predicate_value: oauth2.0
oauth_config_specification:
complete_oauth_output_specification:
type: object
additionalProperties: false
properties:
access_token:
type: string
path_in_connector_config:
- credentials
- access_token
complete_oauth_server_input_specification:
type: object
additionalProperties: false
properties:
client_id:
type: string
client_secret:
type: string
complete_oauth_server_output_specification:
type: object
additionalProperties: false
properties:
client_id:
type: string
path_in_connector_config:
- credentials
- client_id
client_secret:
type: string
path_in_connector_config:
- credentials
- client_secret
oauth_user_input_from_connector_config_specification:
type: object
additionalProperties: false
properties:
subdomain:
type: string
path_in_connector_config:
- subdomain
schemas:
article_attachments:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
id:
description: Assigned ID when the article attachment is created.
type:
- "null"
- integer
url:
description: The URL of the article attachment.
type:
- "null"
- string
article_id:
description: The associated article, if present.
type:
- "null"
- integer
display_file_name:
description: The file name displayed.
type:
- "null"
- string
file_name:
description: The file name.
type:
- "null"
- string
locale:
description:
TThe locale of translation that the attachment will be attached
to and can only be set on inline attachments.
type:
- "null"
- string
content_url:
description: URL where the attachment file can be downloaded.
type:
- "null"
- string
relative_path:
description: Relative path of the file.
type:
- "null"
- string
content_type:
description: "The file type. Example: image/png"
type:
- "null"
- string
size:
description: The attachment file size in bytes.
type:
- "null"
- integer
inline:
description:
The attached file is shown in the admin interface for inline
attachments.
type:
- "null"
- boolean
created_at:
description: The time the article attachment was created.
type:
- "null"
- string
format: date-time
updated_at:
description: The time the article attachment was last updated.
type:
- "null"
- string
format: date-time
categories:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
id:
description: Unique identifier for the category.
type:
- "null"
- integer
name:
description: Name of the category.
type:
- "null"
- string
position:
description: The position of this category relative to other categories.
type:
- "null"
- integer
description:
description: The description of the category.
type:
- "null"
- string
locale:
description: The locale where the category is displayed.
type:
- "null"
- string
url:
description: The API url of this category.
type:
- "null"
- string
html_url:
description: The url of this category in Help Center.
type:
- "null"
- string
source_locale:
description: The source (default) locale of the category.
type:
- "null"
- string
outdated:
description: Whether the category is out of date.
type:
- "null"
- string
created_at:
description: Timestamp of when the category was created.
type:
- "null"
- string
format: date-time
updated_at:
description: Timestamp of when the category was last updated.
type:
- "null"
- string
format: date-time
sla_policies:
$schema: https://json-schema.org/draft-07/schema#
type:
- object
properties:
id:
description: The unique identifier for the SLA policy.
type:
- integer
url:
description: The URL link to access the SLA policy details.
type:
- "null"
- string
title:
description: The title of the SLA policy.
type:
- "null"
- string
description:
description: The description of the SLA policy.
type:
- "null"
- string
position:
description: The position of the SLA policy.
type:
- "null"
- integer
filter:
description: Contains filtering criteria for retrieving SLA policies data.
properties:
all:
description:
All conditions within this array must be met for a policy
to be returned.
type:
- "null"
- array
items:
description: Defines specific conditions for filtering SLA policies.
properties:
field:
description: The field to filter on.
type:
- "null"
- string
operator:
description: The operator for the filter.
type:
- "null"
- string
value:
description: The value to filter by.
type:
- "null"
- string
- number
- boolean
type:
- object
any:
description:
At least one condition within this array must be met for
a policy to be returned.
type:
- "null"
- array
items:
description: Defines specific conditions for filtering SLA policies.
properties:
field:
description: The field to filter on.
type:
- "null"
- string
operator:
description: The operator for the filter.
type:
- "null"
- string
value:
description: The value to filter by.
type:
- "null"
- string
type:
- object
type:
- "null"
- object
policy_metrics:
description: Contains metrics associated with SLA policies.
type:
- "null"
- array
items:
description: Specifies individual metrics related to SLA policies.
properties:
priority:
description: The priority level of the SLA policy.
type:
- "null"
- string
target:
description: The target value for the metric.
type:
- "null"
- integer
business_hours:
description: The business hours considered for the SLA policy.
type:
- "null"
- boolean
metric:
description: The metric to measure the SLA policy against.
type:
- "null"
- string
type:
- "null"
- object
created_at:
description: The timestamp for when the SLA policy was created.
type:
- "null"
- string
format: date-time
updated_at:
description: The timestamp for when the SLA policy was last updated.
type:
- "null"
- string
format: date-time
satisfaction_ratings:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
id:
description: The unique identifier of the satisfaction rating entry.
type:
- "null"
- integer
assignee_id:
description: The unique identifier of the user assigned to the ticket.
type:
- "null"
- integer
group_id:
description: The unique identifier of the group associated with the ticket.
type:
- "null"
- integer
reason_id:
description: The unique identifier of the selected satisfaction rating reason.
type:
- "null"
- integer
requester_id:
description: The unique identifier of the requester who provided the rating.
type:
- "null"
- integer
ticket_id:
description:
The unique identifier of the ticket associated with the satisfaction
rating.
type:
- "null"
- integer
updated_at:
description: The date and time when the satisfaction rating was last updated.
type:
- "null"
- string
format: date-time
created_at:
description: The date and time when the satisfaction rating was created.
type:
- "null"
- string
format: date-time
url:
description: The URL to access the details of the satisfaction rating.
type:
- "null"
- string
score:
description:
The satisfaction score given by the requester (usually a numeric
value).
type:
- "null"
- string
reason:
description: The reason selected by the requester for the satisfaction rating.
type:
- "null"
- string
comment:
description: The feedback comment provided by the requester.
type:
- "null"
- string
automations:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
actions:
type: array
description: An object describing what the automation will do
items:
type:
- object
- "null"
properties:
field:
type:
- string
- "null"
value:
type:
- string
- "null"
active:
type:
- boolean
- "null"
description: Whether the automation is active
conditions:
type: object
description:
An object that describes the conditions under which the automation
will execute
properties:
all:
type: array
items:
type:
- object
- "null"
properties:
field:
type:
- string
- "null"
operator:
type:
- string
- "null"
value:
type:
- string
- "null"
any:
type: array
items:
type:
- object
- "null"
properties:
field:
type:
- string
- "null"
operator:
type:
- string
- "null"
value:
type:
- string
- "null"
created_at:
description: The time the automation was created
type:
- string
- "null"
default:
type:
- boolean
- "null"
description: If true, the automation is a default automation
id:
type:
- integer
- "null"
description: Automatically assigned when created
position:
type:
- integer
- "null"
description:
The position of the automation which specifies the order it will
be executed
raw_title:
type:
- string
- "null"
description: The raw title of the automation
title:
type:
- string
- "null"
description: The title of the automation
updated_at:
description: The time of the last update of the automation
type:
- string
- "null"
post_comments:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
author_id:
description: The unique identifier of the author of the comment.
type:
- "null"
- integer
body:
description: The content of the comment.
type:
- "null"
- string
created_at:
description: The timestamp when the comment was created.
type:
- "null"
- string
format: date-time
html_url:
description: The URL to access the comment in HTML format.
type:
- "null"
- string
id:
description: The unique identifier of the comment.
type:
- "null"
- integer
non_author_editor_id:
description: The unique identifier of the non-author editor of the comment.
type:
- "null"
- integer
non_author_updated_at:
description:
The timestamp when the comment was last updated by a non-author
editor.
type:
- "null"
- string
format: date-time
official:
description: Indicates if the comment is from an official source.
type:
- "null"
- boolean
post_id:
description: The unique identifier of the post to which the comment belongs.
type:
- "null"
- integer
updated_at:
description: The timestamp when the comment was last updated.
type:
- "null"
- string
format: date-time
url:
description: The URL to access the comment.
type:
- "null"
- string
vote_count:
description: The total count of votes the comment has received.
type:
- "null"
- integer
vote_sum:
description:
The sum of all votes (positive and negative) the comment has
received.
type:
- "null"
- integer
ticket_audits:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
events:
description: List of events related to the ticket audit
type:
- "null"
- array
items:
type:
- "null"
- object
properties:
attachments:
description: Attachments associated with the event
items:
properties:
id:
description: Unique identifier for the attachment
type:
- "null"
- integer
size:
description: Size of the attachment in bytes
type:
- "null"
- integer
url:
description: URL to access the attachment
type:
- "null"
- string
inline:
description: Indicates if the attachment is displayed inline
type:
- "null"
- boolean
height:
description: Height of the attachment (if applicable)
type:
- "null"
- integer
width:
description: Width of the attachment (if applicable)
type:
- "null"
- integer
content_url:
description: URL to access the content of the attachment
type:
- "null"
- string
mapped_content_url:
description: Mapped URL to access the content of the attachment
type:
- "null"
- string
content_type:
description: Type of content of the attachment
type:
- "null"
- string
file_name:
description: Name of the attachment file
type:
- "null"
- string
thumbnails:
description: Thumbnails associated with the attachment
items:
properties:
id:
description: Unique identifier for the thumbnail attachment
type:
- "null"
- integer
size:
description: Size of the thumbnail attachment in bytes
type:
- "null"
- integer
url:
description: URL to access the thumbnail attachment
type:
- "null"
- string
inline:
description:
Indicates if the thumbnail attachment is displayed
inline
type:
- "null"
- boolean
height:
description: Height of the thumbnail attachment
type:
- "null"
- integer
width:
description: Width of the thumbnail attachment
type:
- "null"
- integer
content_url:
description:
URL to access the content of the thumbnail
attachment
type:
- "null"
- string
mapped_content_url:
description:
Mapped URL to access the content of the thumbnail
attachment
type:
- "null"
- string
content_type:
description: Type of content of the thumbnail attachment
type:
- "null"
- string
file_name:
description: Name of the thumbnail attachment file
type:
- "null"
- string
type:
- "null"
- object
type:
- "null"
- array
deleted:
description: Indicates if the attachment has been deleted
type:
- "null"
- boolean
malware_access_override:
description: Malware access override status for the attachment
type:
- "null"
- boolean
malware_scan_result:
description: Result of malware scan for the attachment
type:
- "null"
- string
type:
- "null"
- object
type:
- "null"
- array
created_at:
description: Date and time when the event was created
type:
- "null"
- string
format: date-time
data:
description: Data associated with the event
type:
- "null"
- object
properties:
author_id:
description: ID of the author of the event
type:
- "null"
- integer
brand_id:
description: ID of the brand associated with the event
type:
- "null"
- integer
call_id:
description: ID of the call associated with the event
type:
- "null"
- integer
line_type:
description: Type of line used for the event
type:
- "null"
- string
location:
description: Location associated with the event
type:
- "null"
- string
public:
description: Indicates if the event is public
type:
- "null"
- boolean
recorded:
description: Indicates if the event was recorded
type:
- "null"
- boolean
recording_consent_action:
description: Action taken for recording consent
type:
- "null"
- string
recording_type:
description: Type of recording for the event
type:
- "null"
- string
via_id:
description: ID of the channel via which the event occurred
type:
- "null"
- integer
transcription_status:
description: Status of transcription for the event
type:
- "null"
- string
transcription_text:
description: Transcribed text of the event
type:
- "null"
- string
to:
description: Recipient of the event
type:
- "null"
- string
call_duration:
description: Duration of the call for the event
type:
- "null"
- number
answered_by_name:
description: Name of the user who answered the event
type:
- "null"
- string
recording_url:
description: URL to access the recording of the event
type:
- "null"
- string
started_at:
description: Date and time when the event started
type:
- "null"
- string
format: date-time
answered_by_id:
description: ID of the user who answered the event
type:
- "null"
- integer
from:
description: Sender of the event
type:
- "null"
- string
current_followers:
description: List of current followers for the event
type:
- "null"
- array
items:
type:
- "null"
- string
previous_followers:
description: List of previous followers for the event
type:
- "null"
- array
items:
type:
- "null"
- string
formatted_from:
description: Formatted sender of the event
type:
- "null"
- string
formatted_to:
description: Formatted recipient of the event
type:
- "null"
- string
transcription_visible:
description: Indicates if transcription is visible for the event
type:
- "null"
- boolean
trusted:
description: Indicates the trust level of the event
type:
- "null"
- boolean
html_body:
description: HTML content of the event body
type:
- "null"
- string
subject:
description: Subject of the event
type:
- "null"
- string
field_name:
description: Name of the field changed in the event
type:
- "null"
- string
audit_id:
description: ID of the audit related to the event
type:
- "null"
- integer
value:
description: Current value of the field changed in the event
oneOf:
- type: array
items:
type:
- "null"
- string
- type: object
properties: {}
additionalProperties: true
- type: string
- type: "null"
author_id:
description: ID of the author of the event
type:
- "null"
- integer
via:
description: Channel via which the event occurred
properties:
channel:
description: Type of channel used for the event
type:
- "null"
- string
source:
description: Source details of the channel
properties:
to:
description: Recipient details
properties:
address:
description: Recipient address
type:
- "null"
- string
name:
description: Name of the recipient
type:
- "null"
- string
type:
- "null"
- object
from:
description: Sender details
properties:
title:
description: Title associated with the sender
type:
- "null"
- string
address:
description: Sender address
type:
- "null"
- string
subject:
description: Subject associated with the sender
type:
- "null"
- string
deleted:
description: Indicates if the sender was deleted
type:
- "null"
- boolean
name:
description: Name of the sender
type:
- "null"
- string
original_recipients:
description: Original recipients of the sender
items:
type:
- "null"
- string
type:
- "null"
- array
id:
description: ID of the sender
type:
- "null"
- integer
ticket_id:
description: ID of the ticket associated with the sender
type:
- "null"
- integer
revision_id:
description: Revision ID of the sender
type:
- "null"
- integer
type:
- "null"
- object
rel:
description: Relationship with the target
type:
- "null"
- string
type:
- "null"
- object
type:
- "null"
- object
type:
description: Type of the event
type:
- "null"
- string
macro_id:
description: ID of the macro associated with the event
type:
- "null"
- string
body:
description: Body content of the event
type:
- "null"
- string
recipients:
description: List of recipients for the event
type:
- "null"
- array
items:
type:
- "null"
- integer
macro_deleted:
description: Indicates if a macro was deleted during the event
type:
- "null"
- boolean
plain_body:
description: Plain text content of the event body
type:
- "null"
- string
id:
description: Unique identifier for the event
type:
- "null"
- integer
previous_value:
description: Previous value of the field changed in the event
type:
- "null"
- string
macro_title:
description: Title of the macro associated with the event
type:
- "null"
- string
public:
description: Indicates if the event is public
type:
- "null"
- boolean
resource:
description: Resource associated with the event
type:
- "null"
- string
author_id:
description: ID of the author of the ticket audit
type:
- "null"
- integer
metadata:
description: Metadata associated with the ticket audit
type:
- "null"
- object
properties:
suspension_type_id:
description: ID of the suspension type associated with the audit
type:
- "null"
- integer
custom:
description: Custom metadata for the audit
type:
- "null"
- object
properties: {}
additionalProperties: true
trusted:
description: Indicates the trust level of the audit
type:
- "null"
- boolean
notifications_suppressed_for:
description: List of notifications suppressed for the audit
type:
- "null"
- array
items:
type:
- "null"
- integer
decoration:
description: Decoration details for the audit
type:
- "null"
- object
properties:
channels:
description: Channels details for the audit
type:
- "null"
- object
properties:
allow_channelback:
description: Indicates if channelback is allowed for the audit
type:
- "null"
- boolean
additionalProperties: true
source:
description: Source details for the audit
type:
- "null"
- object
properties:
id:
description: ID of the source
type:
- "null"
- string
name:
description: Name of the source
type:
- "null"
- string
zendesk_id:
description: Zendesk ID associated with the source
type:
- "null"
- integer
additionalProperties: true
created_at:
description: Date and time when the audit was created
type:
- "null"
- string
external_id:
description: External ID associated with the audit
type:
- "null"
- string
resource_type:
description: Type of resource associated with the audit
type:
- "null"
- string
type:
description: Type of decoration for the audit
type:
- "null"
- string
version:
description: Version of the audit
type:
- "null"
- integer
additionalProperties: true
flags_options:
description: Options for flags associated with the audit
type:
- "null"
- object
properties:
"2":
description: Flag option 2 details
type:
- "null"
- object
properties:
trusted:
description: Indicates the trust level of flag option 2
type:
- "null"
- boolean
"11":
description: Flag option 11 details
type:
- "null"
- object
properties:
trusted:
description: Indicates the trust level of flag option 11
type:
- "null"
- boolean
message:
description: Message associated with flag option 11
type:
- "null"
- object
properties:
user:
description: User associated with the message
type:
- "null"
- string
"15":
description: Flag option 15 details
type:
- "null"
- object
properties:
trusted:
description: Indicates the trust level of flag option 15
type:
- "null"
- boolean
message:
description: Message associated with flag option 15
type:
- "null"
- object
properties:
user:
description: User associated with the message
type:
- "null"
- string
flags:
description: Flags associated with the audit
type:
- "null"
- array
items:
type:
- "null"
- integer
system:
description: System details for the audit
type:
- "null"
- object
properties:
location:
description: Location details associated with the system
type:
- "null"
- string
longitude:
description: Longitude of the location associated with the system
type:
- "null"
- number
message_id:
description: Message ID associated with the system
type:
- "null"
- string
raw_email_identifier:
description: Raw email identifier associated with the system
type:
- "null"
- string
ip_address:
description: IP address associated with the system
type:
- "null"
- string
json_email_identifier:
description: JSON email identifier associated with the system
type:
- "null"
- string
client:
description: Client associated with the system
type:
- "null"
- string
latitude:
description: Latitude of the location associated with the system
type:
- "null"
- number
email_id:
description: Email ID associated with the system
type:
- "null"
- string
eml_redacted:
description: Indicates if EML content is redacted
type:
- "null"
- boolean
id:
description: Unique identifier for the ticket audit
type:
- "null"
- integer
created_at:
description: Date and time when the ticket audit was created
type:
- "null"
- string
format: date-time
ticket_id:
description: ID of the ticket associated with the audit
type:
- "null"
- integer
via:
description: Details of the channel via which the audit occurred
type:
- "null"
- object
properties:
channel:
description: Type of channel used for the audit
type:
- "null"
- string
source:
description: Source details of the channel
type:
- "null"
- object
properties:
from:
description: Sender details
type:
- "null"
- object
properties:
ticket_ids:
description: List of ticket IDs associated with the sender
type:
- "null"
- array
items:
type:
- "null"
- integer
subject:
description: Subject associated with the sender
type:
- "null"
- string
channel:
description: Type of channel used by the sender
type:
- "null"
- string
name:
description: Name of the sender
type:
- "null"
- string
address:
description: Sender address
type:
- "null"
- string
formatted_phone:
description: Formatted phone number of the sender
type:
- "null"
- string
phone:
description: Phone number of the sender
type:
- "null"
- string
original_recipients:
description: Original recipients of the sender
type:
- "null"
- array
items:
type:
- "null"
- string
id:
description: ID of the sender
type:
- "null"
- integer
ticket_id:
description: ID of the ticket associated with the sender
type:
- "null"
- integer
deleted:
description: Indicates if the sender was deleted
type:
- "null"
- boolean
title:
description: Title associated with the sender
type:
- "null"
- string
to:
description: Recipient details
type:
- "null"
- object
properties:
name:
description: Name of the recipient
type:
- "null"
- string
brand_id:
description: ID of the brand associated with the recipient
type:
- "null"
- integer
address:
description: Recipient address
type:
- "null"
- string
formatted_phone:
description: Formatted phone number of the recipient
type:
- "null"
- string
phone:
description: Phone number of the recipient
type:
- "null"
- string
rel:
description: Relationship with the target
type:
- "null"
- string
attachments:
description: Attachments associated with the ticket audit
type:
- "null"
- array
items:
type:
- "null"
- object
properties:
content_type:
description: Type of content of the attachment
type:
- "null"
- string
content_url:
description: URL to access the content of the attachment
type:
- "null"
- string
deleted:
description: Indicates if the attachment has been deleted
type:
- "null"
- boolean
file_name:
description: Name of the attachment file
type:
- "null"
- string
height:
description: Height of the attachment (if applicable)
type:
- "null"
- integer
id:
description: Unique identifier for the attachment
type:
- "null"
- integer
inline:
description: Indicates if the attachment is displayed inline
type:
- "null"
- boolean
malware_access_override:
description: Malware access override status for the attachment
type:
- "null"
- boolean
malware_scan_result:
description: Result of malware scan for the attachment
type:
- "null"
- string
mapped_content_url:
description: Mapped URL to access the content of the attachment
type:
- "null"
- string
size:
description: Size of the attachment in bytes
type:
- "null"
- integer
thumbnails:
description: Thumbnails associated with the attachment
type:
- "null"
- array
items:
type:
- "null"
- object
properties: {}
additionalProperties: true
url:
description: URL to access the attachment
type:
- "null"
- string
width:
description: Width of the attachment (if applicable)
type:
- "null"
- integer
additionalProperties: true
ticket_comments:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
created_at:
description: Timestamp indicating when the ticket comment was created.
type:
- "null"
- string
format: date-time
timestamp:
description: UNIX timestamp representing the time the ticket comment was created.
type:
- "null"
- integer
body:
description: Text body of the ticket comment.
type:
- "null"
- string
id:
description: Unique identifier for the ticket comment.
type:
- "null"
- integer
ticket_id:
description: Identifier of the ticket to which the comment belongs.
type:
- "null"
- integer
event_type:
description: Type of event associated with the ticket comment.
type:
- "null"
- string
type:
description: Type of the ticket comment.
type:
- "null"
- string
via_reference_id:
description:
Reference ID associated with the channel through which the ticket
comment was created.
type:
- "null"
- integer
html_body:
description: HTML formatted body of the ticket comment.
type:
- "null"
- string
plain_body:
description: Plain text version of the ticket comment body.
type:
- "null"
- string
public:
description: Flag indicating if the ticket comment is public or private.
type:
- "null"
- boolean
audit_id:
description: Unique identifier for the audit associated with this ticket comment.
type:
- "null"
- integer
author_id:
description: Identifier of the author of the ticket comment.
type:
- "null"
- integer
via:
description: Channel through which the ticket comment was created.
type:
- "null"
- object
properties:
channel:
type:
- "null"
- string
source:
type:
- "null"
- object
properties:
from:
type:
- "null"
- object
properties:
ticket_ids:
type:
- "null"
- array
items:
type:
- "null"
- integer
subject:
type:
- "null"
- string
channel:
type:
- "null"
- string
name:
type:
- "null"
- string
address:
type:
- "null"
- string
original_recipients:
type:
- "null"
- array
items:
type:
- "null"
- string
id:
type:
- "null"
- integer
ticket_id:
type:
- "null"
- integer
deleted:
type:
- "null"
- boolean
title:
type:
- "null"
- string
to:
type:
- "null"
- object
properties:
name:
type:
- "null"
- string
address:
type:
- "null"
- string
rel:
type:
- "null"
- string
metadata:
description: Additional metadata associated with the ticket comment.
type:
- "null"
- object
properties:
custom:
type:
- "null"
- object
properties: {}
additionalProperties: true
trusted:
type:
- "null"
- boolean
notifications_suppressed_for:
type:
- "null"
- array
items:
type:
- "null"
- integer
flags_options:
type:
- "null"
- object
properties:
"2":
type:
- "null"
- object
properties:
trusted:
type:
- "null"
- boolean
"11":
type:
- "null"
- object
properties:
trusted:
type:
- "null"
- boolean
message:
type:
- "null"
- object
properties:
user:
type:
- "null"
- string
flags:
type:
- "null"
- array
items:
type:
- "null"
- integer
system:
type:
- "null"
- object
properties:
location:
type:
- "null"
- string
longitude:
type:
- "null"
- number
message_id:
type:
- "null"
- string
raw_email_identifier:
type:
- "null"
- string
ip_address:
type:
- "null"
- string
json_email_identifier:
type:
- "null"
- string
client:
type:
- "null"
- string
latitude:
type:
- "null"
- number
attachments:
description: Information about any attachments included in the ticket comment.
type:
- "null"
- array
items:
properties:
id:
type:
- "null"
- integer
size:
type:
- "null"
- integer
url:
type:
- "null"
- string
malware_scan_result:
type:
- "null"
- string
inline:
type:
- "null"
- boolean
deleted:
type:
- "null"
- boolean
malware_access_override:
type:
- "null"
- boolean
height:
type:
- "null"
- integer
width:
type:
- "null"
- integer
content_url:
type:
- "null"
- string
mapped_content_url:
type:
- "null"
- string
content_type:
type:
- "null"
- string
file_name:
type:
- "null"
- string
thumbnails:
items:
properties:
id:
type:
- "null"
- integer
size:
type:
- "null"
- integer
url:
type:
- "null"
- string
inline:
type:
- "null"
- boolean
height:
type:
- "null"
- integer
width:
type:
- "null"
- integer
content_url:
type:
- "null"
- string
mapped_content_url:
type:
- "null"
- string
content_type:
type:
- "null"
- string
file_name:
type:
- "null"
- string
type:
- "null"
- object
type:
- "null"
- array
type:
- "null"
- object
uploads:
description:
Information about any file uploads associated with the ticket
comment.
type:
- "null"
- array
triggers:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
actions:
type:
- array
- "null"
description: An array of actions describing what the ticket trigger will do
items:
type: object
properties:
field:
type:
- string
- "null"
value:
type:
- string
- "null"
active:
description: Whether the ticket trigger is active
type: boolean
category_id:
description: The ID of the category the ticket trigger belongs to
type:
- string
- "null"
conditions:
description:
An object that describes the circumstances under which the trigger
performs its actions
type: object
properties:
all:
type:
- array
- "null"
items:
type: object
properties:
field:
type:
- string
- "null"
operator:
type:
- string
- "null"
value:
type:
- string
- "null"
any:
type:
- array
- "null"
items:
type: object
properties:
field:
type:
- string
- "null"
operator:
type:
- string
- "null"
value:
type:
- string
- "null"
created_at:
description: The time the ticket trigger was created
type:
- string
- "null"
default:
description: If true, the ticket trigger is a standard trigger
type: boolean
description:
description: The description of the ticket trigger
type:
- string
- "null"
id:
description: Automatically assigned when created
type: integer
position:
description:
Position of the ticket trigger, determines the order they will
execute in
type: integer
raw_title:
description: The raw format of the title of the ticket trigger
type:
- string
- "null"
title:
description: The title of the ticket trigger
type:
- string
- "null"
updated_at:
description: The time of the last update of the ticket trigger
type:
- string
- "null"
url:
description: The url of the ticket trigger
type:
- string
- "null"
ticket_metrics:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
metric:
description: Ticket metrics data
type:
- "null"
- string
id:
description: Unique identifier for the ticket
type:
- "null"
- integer
time:
description: Time related to the ticket
type:
- "null"
- string
instance_id:
description: ID of the Zendesk instance associated with the ticket
type:
- "null"
- integer
ticket_id:
description: ID of the ticket
type:
- "null"
- integer
status:
description: The current status of the ticket (open, pending, solved, etc.).
properties:
calendar:
description: The status of the ticket in calendar hours
type:
- "null"
- integer
business:
description: The status of the ticket in business hours
type:
- "null"
- integer
type:
- "null"
- object
type:
description: Type of ticket
type:
- "null"
- string
agent_wait_time_in_minutes:
description:
The total time an agent spent waiting before responding to the
ticket.
type:
- "null"
- object
properties:
calendar:
description: Time spent waiting for an agent to respond in calendar hours
type:
- "null"
- integer
business:
description: Time spent waiting for an agent to respond in business hours
type:
- "null"
- integer
assignee_stations:
description: Number of stations assigned to the ticket's assignee
type:
- "null"
- integer
created_at:
description: Timestamp when the ticket was created
type:
- "null"
- string
format: date-time
first_resolution_time_in_minutes:
description: The time taken to provide the initial resolution to the ticket.
type:
- "null"
- object
properties:
calendar:
description: Time taken to provide the first resolution in calendar hours
type:
- "null"
- integer
business:
description: Time taken to provide the first resolution in business hours
type:
- "null"
- integer
full_resolution_time_in_minutes:
description: The total time taken to completely resolve the ticket.
type:
- "null"
- object
properties:
calendar:
description:
Total time taken to fully resolve the ticket in calendar
hours
type:
- "null"
- integer
business:
description:
Total time taken to fully resolve the ticket in business
hours
type:
- "null"
- integer
group_stations:
description: Number of stations assigned to the ticket's group
type:
- "null"
- integer
latest_comment_added_at:
description: Timestamp when the latest comment was added
type:
- "null"
- string
format: date-time
on_hold_time_in_minutes:
description: The cumulative time the ticket spent on hold during its lifecycle.
type:
- "null"
- object
properties:
calendar:
description: Total time the ticket was on hold in calendar hours
type:
- "null"
- integer
business:
description: Total time the ticket was on hold in business hours
type:
- "null"
- integer
reopens:
description: Number of times the ticket has been reopened
type:
- "null"
- integer
replies:
description: Number of replies made on the ticket
type:
- "null"
- integer
reply_time_in_minutes:
description: The time taken to reply to the ticket after initial submission.
type:
- "null"
- object
properties:
calendar:
description: Average time taken to reply to the ticket in calendar hours
type:
- "null"
- integer
business:
description: Average time taken to reply to the ticket in business hours
type:
- "null"
- integer
requester_updated_at:
description: Timestamp when the requester information was last updated
type:
- "null"
- string
format: date-time
requester_wait_time_in_minutes:
description:
The time a requester had to wait before the ticket was assigned
to an agent.
type:
- "null"
- object
properties:
calendar:
description: Time spent waiting for a requester response in calendar hours
type:
- "null"
- integer
business:
description: Time spent waiting for a requester response in business hours
type:
- "null"
- integer
status_updated_at:
description: Timestamp when the status of the ticket was last updated
type:
- "null"
- string
format: date-time
updated_at:
description: Datetime when the ticket last created a ticket event
type:
- "null"
- string
format: date-time
_ab_updated_at:
description:
Cursor field managed by Airbyte to enable incremental mode for
the stream
type:
- "null"
- integer
generated_timestamp:
description: Timestamp of when record was last updated
type:
- "null"
- integer
url:
description: URL link to the ticket details
type:
- "null"
- string
initially_assigned_at:
description: Timestamp when the ticket was initially assigned
type:
- "null"
- string
format: date-time
assigned_at:
description: Timestamp when the ticket was assigned to an agent
type:
- "null"
- string
format: date-time
solved_at:
description: Timestamp when the ticket was solved
type:
- "null"
- string
format: date-time
assignee_updated_at:
description: Timestamp when the assignee was last updated
type:
- "null"
- string
format: date-time
custom_status_updated_at:
description: Timestamp when the custom status was last updated
type:
- "null"
- string
format: date-time
reply_time_in_seconds:
description:
The time taken to reply to the ticket after initial submission
in seconds.
type:
- "null"
- object
properties:
calendar:
description:
Average time taken to reply to the ticket in seconds (calendar
hours)
type:
- "null"
- integer
business:
description:
Average time taken to reply to the ticket in seconds (business
hours)
type:
- "null"
- integer
account_attributes:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
id:
description: The unique identifier for the account attribute.
type:
- "null"
- string
name:
description: The name or label of the account attribute.
type:
- "null"
- string
created_at:
description: The timestamp indicating when the account attribute was created.
type:
- "null"
- string
format: date-time
updated_at:
description:
The timestamp indicating when the account attribute was last
updated.
type:
- "null"
- string
format: date-time
url:
description: The URL that can be used to access the account attribute.
type:
- "null"
- string
deleted_tickets:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
actor:
description: The user who performed the deletion action
type:
- "null"
- object
properties:
id:
description: The unique identifier of the user
type:
- "null"
- integer
name:
description: The name of the user
type:
- "null"
- string
id:
description: The unique identifier of the deleted ticket
type:
- "null"
- integer
subject:
description: The subject or title of the deleted ticket
type:
- "null"
- string
description:
description: Additional details or comments about the deleted ticket
type:
- "null"
- string
deleted_at:
description: The timestamp when the ticket was deleted
type:
- "null"
- string
format: date-time
previous_state:
description: The state of the ticket before it was deleted
type:
- "null"
- string
organizations:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
group_id:
description: The ID of the group to which the organization belongs
type:
- "null"
- integer
created_at:
description: The date and time when the organization was created
type:
- "null"
- string
format: date-time
tags:
description: List of tags associated with the organization
type:
- "null"
- array
items:
type:
- "null"
- string
shared_tickets:
description: Indicates if tickets are shared with this organization
type:
- "null"
- boolean
organization_fields:
description: Custom fields associated with the organization
type:
- "null"
- object
properties: {}
additionalProperties: true
notes:
description: Any notes or comments related to the organization
type:
- "null"
- string
domain_names:
description: List of domain names associated with the organization
type:
- "null"
- array
items:
type:
- "null"
- string
shared_comments:
description: Indicates if comments are shared with this organization
type:
- "null"
- boolean
details:
description: Additional details about the organization
type:
- "null"
- string
updated_at:
description: The date and time when the organization was last updated
type:
- "null"
- string
format: date-time
name:
description: The name of the organization
type:
- "null"
- string
external_id:
description: The external ID of the organization
type:
- "null"
- string
url:
description: The URL of the organization
type:
- "null"
- string
id:
description: The unique ID of the organization
type:
- "null"
- integer
deleted_at:
description: The date and time when the organization was deleted
type:
- "null"
- string
format: date-time
group_memberships:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
default:
description: Flag indicating if this group membership is the default one.
type:
- "null"
- boolean
url:
description: URL pointing to the group membership resource.
type:
- "null"
- string
user_id:
description:
The unique identifier of the user associated with this group
membership.
type:
- "null"
- integer
updated_at:
description: Timestamp indicating when the group membership was last updated.
type:
- "null"
- string
format: date-time
group_id:
description: The unique identifier of the group this membership belongs to.
type:
- "null"
- integer
created_at:
description: Timestamp indicating when the group membership was created.
type:
- "null"
- string
format: date-time
id:
description: The unique identifier of the group membership.
type:
- "null"
- integer
organization_fields:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
active:
description:
Indicates whether the organization field is currently active
or not
type:
- "null"
- boolean
created_at:
description: The date and time when the organization field was created
type:
- "null"
- string
format: date-time
custom_field_options:
description:
The list of custom field options available for this organization
field
type:
- "null"
- array
description:
description: The description of the organization field
type:
- "null"
- string
id:
description: The unique identifier of the organization field
type:
- "null"
- integer
key:
description: The key associated with the organization field
type:
- "null"
- string
position:
description: The position of the organization field
type:
- "null"
- integer
raw_description:
description: The raw description of the organization field
type:
- "null"
- string
raw_title:
description: The raw title of the organization field
type:
- "null"
- string
regexp_for_validation:
description: Regular expression for validation of the organization field data
type:
- "null"
- string
relationship_filter:
description: Relationship filter associated with the organization field
type:
- "null"
- object
relationship_target_type:
description: The target type of the relationship for this organization field
type:
- "null"
- string
system:
description:
Indicates whether the organization field is a system field or
not
type:
- "null"
- boolean
tag:
description: Tags associated with the organization field
type:
- "null"
- string
title:
description: The title of the organization field
type:
- "null"
- string
type:
description: The type of the organization field data
type:
- "null"
- string
updated_at:
description: The date and time when the organization field was last updated
type:
- "null"
- string
format: date-time
url:
description: The URL associated with the organization field
type:
- "null"
- string
users:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
verified:
description: Indicates if the user's account is verified.
type:
- "null"
- boolean
role:
description: The role or position of the user.
type:
- "null"
- string
tags:
description: Tags associated with the user.
items:
description: A tag associated with the user.
type:
- "null"
- string
type:
- "null"
- array
chat_only:
description: Specifies if the user can only participate in chat interactions.
type:
- "null"
- boolean
role_type:
description: The type of role assigned to the user.
type:
- "null"
- integer
phone:
description: The phone number associated with the user.
type:
- "null"
- string
organization_id:
description: The ID of the organization the user belongs to.
type:
- "null"
- integer
details:
description: Additional details or information about the user.
type:
- "null"
- string
email:
description: The email address associated with the user.
type:
- "null"
- string
only_private_comments:
description: Indicates if the user can only create private comments.
type:
- "null"
- boolean
signature:
description: The user's email signature.
type:
- "null"
- string
restricted_agent:
description: Specifies if the user is a restricted agent.
type:
- "null"
- boolean
moderator:
description: Specifies if the user has moderator privileges.
type:
- "null"
- boolean
updated_at:
description: The datetime when the user account was last updated.
type:
- "null"
- string
format: date-time
external_id:
description: An external identifier for the user.
type:
- "null"
- string
time_zone:
description: The time zone of the user.
type:
- "null"
- string
photo:
description: Information about the user's profile photo.
type:
- "null"
- object
properties:
thumbnails:
description: Thumbnails of the user's profile photo.
items:
type:
- "null"
- object
properties:
width:
description: The width of the thumbnail.
type:
- "null"
- integer
url:
description: The URL of the thumbnail.
type:
- "null"
- string
inline:
description: Specifies if the thumbnail should be displayed inline.
type:
- "null"
- boolean
content_url:
description: The URL to access the thumbnail content.
type:
- "null"
- string
content_type:
description: The content type of the thumbnail.
type:
- "null"
- string
file_name:
description: The file name of the thumbnail.
type:
- "null"
- string
size:
description: The size of the thumbnail.
type:
- "null"
- integer
mapped_content_url:
description: The mapped URL to access the thumbnail content.
type:
- "null"
- string
id:
description: The ID of the thumbnail.
type:
- "null"
- integer
height:
description: The height of the thumbnail.
type:
- "null"
- integer
type:
- "null"
- array
width:
description: The width of the photo.
type:
- "null"
- integer
url:
description: The URL of the user's profile photo.
type:
- "null"
- string
inline:
description: Specifies if the photo should be displayed inline.
type:
- "null"
- boolean
content_url:
description: The URL to access the photo content.
type:
- "null"
- string
content_type:
description: The content type of the photo.
type:
- "null"
- string
file_name:
description: The file name of the photo.
type:
- "null"
- string
size:
description: The size of the photo.
type:
- "null"
- integer
mapped_content_url:
description: The mapped URL to access the photo content.
type:
- "null"
- string
id:
description: The ID of the photo.
type:
- "null"
- integer
height:
description: The height of the photo.
type:
- "null"
- integer
name:
description: The name of the user.
type:
- "null"
- string
shared:
description: Indicates if the user's account is shared.
type:
- "null"
- boolean
id:
description: Unique identifier for the user.
type:
- "null"
- integer
created_at:
description: The datetime when the user account was created.
type:
- "null"
- string
format: date-time
suspended:
description: Indicates if the user's account is suspended.
type:
- "null"
- boolean
shared_agent:
description: Specifies if the user is a shared agent.
type:
- "null"
- boolean
shared_phone_number:
description: Specifies if the user has a shared phone number.
type:
- "null"
- boolean
user_fields:
description: Custom fields associated with the user.
type:
- "null"
- object
properties: {}
additionalProperties: true
last_login_at:
description: The datetime of the user's last login.
type:
- "null"
- string
format: date-time
alias:
description: An alternative name or identifier for the user.
type:
- "null"
- string
two_factor_auth_enabled:
description: Specifies if two-factor authentication is enabled for the user.
type:
- "null"
- boolean
notes:
description: Any notes or comments related to the user.
type:
- "null"
- string
default_group_id:
description: The default group ID for the user.
type:
- "null"
- integer
url:
description: The URL of the user's details.
type:
- "null"
- string
active:
description: Indicates if the user is currently active.
type:
- "null"
- boolean
permanently_deleted:
description: Specifies if the user has been permanently deleted.
type:
- "null"
- boolean
locale_id:
description: The locale ID of the user.
type:
- "null"
- integer
custom_role_id:
description: The custom role ID assigned to the user.
type:
- "null"
- integer
ticket_restriction:
description: Specifies the user's ticket restriction.
type:
- "null"
- string
locale:
description: The preferred locale of the user.
type:
- "null"
- string
report_csv:
description: The report in CSV format associated with the user.
type:
- "null"
- boolean
iana_time_zone:
description: The IANA time zone of the user.
type:
- "null"
- string
organization_memberships:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
default:
description:
Flag indicating if this organization membership is the default
one for the user.
type:
- "null"
- boolean
url:
description: The URL for accessing the details of this organization membership.
type:
- "null"
- string
updated_at:
description: The date and time when the organization membership was last updated.
type:
- "null"
- string
format: date-time
created_at:
description: The date and time when the organization membership was created.
type:
- "null"
- string
format: date-time
id:
description: Unique identifier for the organization membership.
type:
- "null"
- integer
user_id:
description: The ID of the user associated with the organization membership.
type:
- "null"
- integer
organization_id:
description: The ID of the organization associated with the membership.
type:
- "null"
- integer
organization_name:
description: The name of the organization associated with the membership.
type:
- "null"
- string
view_tickets:
description: Flag indicating if the user can view tickets within the organization.
type:
- "null"
- boolean
user_identities:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
verified:
description: Indicates if the user identity is verified.
type:
- "null"
- boolean
primary:
description: Indicates if the user identity is the user's primary.
type:
- "null"
- boolean
type:
description: The type of user identity (e.g. email).
type:
- "null"
- string
value:
description: The user identity value.
type:
- "null"
- string
user_id:
description: The ID of the user the identity belongs to.
type:
- "null"
- integer
id:
description: Unique identifier for the user identity.
type:
- "null"
- integer
created_at:
description: The datetime when the user identity was created.
type:
- "null"
- string
format: date-time
updated_at:
description: The datetime when the user identity was updated.
type:
- "null"
- string
format: date-time
ticket_metric_events:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
metric:
description: Type of metric being tracked for the ticket
type:
- "null"
- string
id:
description: Unique identifier for the ticket metric event
type:
- "null"
- integer
time:
description: Timestamp when the metric event occurred
type:
- "null"
- string
instance_id:
description: Unique identifier for the specific instance of the metric event
type:
- "null"
- integer
ticket_id:
description: Unique identifier for the ticket associated with the metric event
type:
- "null"
- integer
type:
description: Type of metric event (e.g., update, change, escalation)
type:
- "null"
- string
ticket_forms:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
agent_conditions:
description:
Conditions that restrict when the ticket form is available to
agents.
type:
- "null"
- array
end_user_conditions:
description:
Conditions that restrict when the ticket form is available to
end users.
type:
- "null"
- array
created_at:
description: The date and time when the ticket form was created.
type:
- "null"
- string
format: date-time
name:
description: The name of the ticket form.
type:
- "null"
- string
display_name:
description: The display name of the ticket form.
type:
- "null"
- string
raw_display_name:
description: The raw display name of the ticket form.
type:
- "null"
- string
position:
description: The order position of the ticket form within a list.
type:
- "null"
- integer
raw_name:
description: The raw name of the ticket form.
type:
- "null"
- string
updated_at:
description: The date and time when the ticket form was last updated.
type:
- "null"
- string
format: date-time
active:
description: Indicates if the ticket form is currently active.
type:
- "null"
- boolean
default:
description: Indicates if the ticket form is the default form.
type:
- "null"
- boolean
in_all_brands:
description: Indicates if the ticket form is available in all brands.
type:
- "null"
- boolean
end_user_visible:
description: Indicates if the ticket form is visible to end users.
type:
- "null"
- boolean
url:
description: The URL to access the ticket form.
type:
- "null"
- string
id:
description: Unique identifier for the ticket form.
type:
- "null"
- integer
restricted_brand_ids:
description:
An array of brand IDs under which the ticket form is restricted
to be used.
type:
- "null"
- array
items:
type:
- "null"
- integer
ticket_field_ids:
description:
An array of ticket field IDs that are associated with the ticket
form.
type:
- "null"
- array
items:
type:
- "null"
- integer
attribute_definitions:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
title:
description: Title of the attribute definition.
type:
- "null"
- string
subject:
description: Subject or topic of this attribute definition.
type:
- "null"
- string
type:
description: Data type of the attribute.
type:
- "null"
- string
group:
description: The group to which this attribute definition belongs.
type:
- "null"
- string
nullable:
description: Indicates if this attribute definition can be null.
type:
- "null"
- boolean
repeatable:
description: Specifies if this attribute definition can be repeated.
type:
- "null"
- boolean
operators:
description: List of operators allowed for this attribute definition.
type:
- "null"
- array
items:
description: Operator details.
type:
- "null"
- object
properties:
value:
description: Value associated with the operator.
type:
- "null"
- string
title:
description: Title/name of the operator.
type:
- "null"
- string
terminal:
description: Whether the operator is terminal or not.
type:
- "null"
- boolean
values:
description: List of values available for this attribute definition.
type:
- "null"
- array
items:
description: Value details.
type:
- "null"
- object
properties:
value:
description: Actual value.
type:
- "null"
- string
title:
description: Title/name of the value.
type:
- "null"
- string
enabled:
description: Whether the value is enabled or disabled.
type:
- "null"
- boolean
condition:
description: The condition that needs to be met for this attribute definition.
type:
- "null"
- string
confition:
description: Missing field description, please add.
type:
- "null"
- string
metadata:
description: Additional metadata related to this attribute definition.
type:
- "null"
- object
properties:
collection_key:
description: Key for the collection associated with this metadata.
type:
- "null"
- string
item_key:
description: Key for the item associated with this metadata.
type:
- "null"
- string
additionalProperties: true
macros:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
id:
description: Unique identifier for the macro
type:
- "null"
- integer
position:
description: The position/order of the macro
type:
- "null"
- integer
restriction:
description: Restrictions applied to the macro.
properties:
id:
description: Unique identifier for the restriction
type:
- "null"
- integer
ids:
description: IDs for specific restrictions applied.
items:
description: Unique identifiers associated with the restriction
type:
- "null"
- integer
type:
- "null"
- array
type:
description: Type of restriction applied
type:
- "null"
- string
type:
- "null"
- object
title:
description: The title of the macro
type:
- "null"
- string
created_at:
description: The date and time when the macro was created
type:
- "null"
- string
format: date-time
url:
description: URL to access the macro details
type:
- "null"
- string
description:
description: Additional information or notes about the macro
type:
- "null"
- string
default:
description: Indicates if the macro is set as the default
type:
- "null"
- boolean
updated_at:
description: The date and time when the macro was last updated
type:
- "null"
- string
format: date-time
active:
description: Indicates if the macro is currently active
type:
- "null"
- boolean
raw_title:
description: The title of the macro in its raw form
type:
- "null"
- string
actions:
description: List of actions defined within the macro.
items:
description: Properties of each action within the macro.
properties:
field:
description: The field affected by the action
type:
- "null"
- string
value:
description: The value assigned to the field
type:
- "null"
- string
type:
- "null"
- object
type:
- "null"
- array
ticket_fields:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
created_at:
description: The date and time when the ticket field was created.
type:
- "null"
- string
format: date-time
title_in_portal:
description: The title of the ticket field visible in the portal.
type:
- "null"
- string
visible_in_portal:
description:
Indicates whether the ticket field is visible in the portal or
not.
type:
- "null"
- boolean
collapsed_for_agents:
description: Specifies if the ticket field is collapsed for agents.
type:
- "null"
- boolean
regexp_for_validation:
description: Regular expression for validation of the ticket field value.
type:
- "null"
- string
title:
description: The title of the ticket field.
type:
- "null"
- string
position:
description: Position of the ticket field.
type:
- "null"
- integer
type:
description: Type of the ticket field.
type:
- "null"
- string
editable_in_portal:
description:
Indicates whether the ticket field is editable in the portal
or not.
type:
- "null"
- boolean
raw_title_in_portal:
description: The raw title of the ticket field visible in the portal.
type:
- "null"
- string
raw_description:
description: The raw description of the ticket field.
type:
- "null"
- string
custom_field_options:
description:
Options for custom ticket field with properties like default,
id, name, raw_name, and value.
items:
properties:
name:
description: The name of the custom field option.
type:
- "null"
- string
value:
description: The value associated with the custom field option.
type:
- "null"
- string
id:
description: The unique identifier of the custom field option.
type:
- "null"
- integer
default:
description: Indicates if this custom field value is the default one.
type:
- "null"
- boolean
raw_name:
description: The raw name of the custom field option.
type:
- "null"
- string
type:
- "null"
- object
type:
- "null"
- array
updated_at:
description: The date and time when the ticket field was last updated.
type:
- "null"
- string
format: date-time
tag:
description: Tag associated with the ticket field.
type:
- "null"
- string
removable:
description: Specifies if the ticket field is removable.
type:
- "null"
- boolean
active:
description: Indicates whether the ticket field is active or not.
type:
- "null"
- boolean
url:
description: URL of the ticket field.
type:
- "null"
- string
raw_title:
description: The raw title of the ticket field.
type:
- "null"
- string
required:
description: Indicates if the ticket field is required.
type:
- "null"
- boolean
id:
description: The unique identifier of the ticket field.
type:
- "null"
- integer
description:
description: Description of the ticket field.
type:
- "null"
- string
agent_description:
description: The description of the ticket field visible to agents.
type:
- "null"
- string
required_in_portal:
description: Specifies if the ticket field is required in the portal.
type:
- "null"
- boolean
system_field_options:
description: Options for the system field associated with the ticket field.
type:
- "null"
- array
custom_statuses:
description: Custom statuses associated with the ticket field.
type:
- "null"
- array
key:
description: Key associated with the ticket field.
type:
- "null"
- string
sub_type_id:
description: The subtype identifier of the ticket field.
type:
- "null"
- integer
schedules:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
id:
description: The unique identifier for the schedule
type:
- "null"
- integer
name:
description: The name of the schedule
type:
- "null"
- string
intervals:
description: List of time intervals within the schedule
type:
- "null"
- array
items:
type:
- "null"
- object
properties:
start_time:
description: The start time of a specific interval
type:
- "null"
- integer
end_time:
description: The end time of a specific interval
type:
- "null"
- integer
time_zone:
description: The time zone in which the schedule operates
type:
- "null"
- string
created_at:
description: The date and time when the schedule was created
type:
- "null"
- string
format: date-time
updated_at:
description: The date and time when the schedule was last updated
type:
- "null"
- string
format: date-time
sections:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
id:
description: Unique identifier for the section.
type:
- "null"
- integer
name:
description: The name of the section.
type:
- "null"
- string
category_id:
description: The id of the category to which this section belongs.
type:
- "null"
- integer
parent_section_id:
description:
The id of the section to which this section belongs. Only writable
for Guide Enterprise customers.
type:
- "null"
- integer
position:
description: The position of this section in the section list.
type:
- "null"
- integer
description:
description: The description of the section.
type:
- "null"
- string
locale:
description: The locale where the section is displayed.
type:
- "null"
- string
url:
description: The API url of this section.
type:
- "null"
- string
html_url:
description: The url of this section in Help Center.
type:
- "null"
- string
source_locale:
description: The source (default) locale of the section.
type:
- "null"
- string
theme_template:
description:
The theme template name used to display this section in Help
Center.
type:
- "null"
- string
outdated:
description: Whether the section is out of date.
type:
- "null"
- string
created_at:
description: The time at which the section was created.
type:
- "null"
- string
format: date-time
updated_at:
description: The time at which the section was last updated.
type:
- "null"
- string
format: date-time
tickets:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
organization_id:
type:
- "null"
- integer
requester_id:
type:
- "null"
- integer
problem_id:
type:
- "null"
- integer
is_public:
type:
- "null"
- boolean
description:
type:
- "null"
- string
follower_ids:
items:
type:
- "null"
- integer
type:
- "null"
- array
submitter_id:
type:
- "null"
- integer
generated_timestamp:
type:
- "null"
- integer
brand_id:
type:
- "null"
- integer
id:
type:
- "null"
- integer
group_id:
type:
- "null"
- integer
type:
type:
- "null"
- string
recipient:
type:
- "null"
- string
collaborator_ids:
items:
type:
- "null"
- integer
type:
- "null"
- array
tags:
items:
type:
- "null"
- string
type:
- "null"
- array
has_incidents:
type:
- "null"
- boolean
created_at:
type:
- "null"
- string
format: date-time
raw_subject:
type:
- "null"
- string
status:
type:
- "null"
- string
updated_at:
type:
- "null"
- string
format: date-time
fields:
items:
properties:
id:
type:
- "null"
- integer
value:
type:
- "null"
- string
type:
- "null"
- object
additionalProperties: true
type:
- "null"
- array
custom_fields:
items:
properties:
id:
type:
- "null"
- integer
value:
type:
- "null"
- string
type:
- "null"
- object
type:
- "null"
- array
url:
type:
- "null"
- string
allow_channelback:
type:
- "null"
- boolean
allow_attachments:
type:
- "null"
- boolean
due_at:
type:
- "null"
- string
format: date-time
followup_ids:
items:
type:
- "null"
- integer
type:
- "null"
- array
priority:
type:
- "null"
- string
assignee_id:
type:
- "null"
- integer
subject:
type:
- "null"
- string
external_id:
type:
- "null"
- string
via:
type:
- "null"
- object
properties:
channel:
type:
- "null"
- string
source:
type:
- "null"
- object
properties:
from:
type:
- "null"
- object
properties:
name:
type:
- "null"
- string
address:
type:
- "null"
- string
original_recipients:
type:
- "null"
- array
items:
type:
- "null"
- string
ticket_id:
type:
- "null"
- integer
subject:
type:
- "null"
- string
channel:
type:
- "null"
- string
id:
type:
- "null"
- integer
title:
type:
- "null"
- string
deleted:
type:
- "null"
- boolean
revision_id:
type:
- "null"
- integer
topic_id:
type:
- "null"
- integer
topic_name:
type:
- "null"
- string
profile_url:
type:
- "null"
- string
username:
type:
- "null"
- string
phone:
type:
- "null"
- string
formatted_phone:
type:
- "null"
- string
facebook_id:
type:
- "null"
- string
to:
type:
- "null"
- object
properties:
brand_id:
type:
- "null"
- integer
name:
type:
- "null"
- string
address:
type:
- "null"
- string
email_ccs:
type:
- "null"
- string
profile_url:
type:
- "null"
- string
username:
type:
- "null"
- string
phone:
type:
- "null"
- string
formatted_phone:
type:
- "null"
- string
facebook_id:
type:
- "null"
- string
rel:
type:
- "null"
- string
ticket_form_id:
type:
- "null"
- integer
deleted_ticket_form_id:
type:
- "null"
- integer
satisfaction_rating:
type:
- "null"
- object
- string
properties:
id:
type:
- "null"
- integer
assignee_id:
type:
- "null"
- integer
group_id:
type:
- "null"
- integer
reason_id:
type:
- "null"
- integer
requester_id:
type:
- "null"
- integer
ticket_id:
type:
- "null"
- integer
updated_at:
type:
- "null"
- string
format: date-time
created_at:
type:
- "null"
- string
format: date-time
url:
type:
- "null"
- string
score:
type:
- "null"
- string
reason:
type:
- "null"
- string
comment:
type:
- "null"
- string
sharing_agreement_ids:
type:
- "null"
- array
items:
type:
- "null"
- integer
email_cc_ids:
type:
- "null"
- array
items:
type:
- "null"
- integer
forum_topic_id:
type:
- "null"
- integer
custom_status_id:
type:
- "null"
- integer
from_messaging_channel:
type:
- "null"
- boolean
groups:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
name:
description: The name of the group.
type:
- "null"
- string
created_at:
description: The date and time when the group was created.
type:
- "null"
- string
format: date-time
url:
description: The URL of the group.
type:
- "null"
- string
updated_at:
description: The date and time when the group was last updated.
type:
- "null"
- string
format: date-time
default:
description: Indicates if the group is set as the default group.
type:
- "null"
- boolean
deleted:
description: Indicates if the group has been deleted.
type:
- "null"
- boolean
description:
description: The description or details about the group.
type:
- "null"
- string
id:
description: The unique identifier of the group.
type:
- "null"
- integer
is_public:
description: Indicates whether the group is public or private.
type:
- "null"
- boolean
posts:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
author_id:
description: The unique identifier of the author of the post.
type:
- "null"
- number
closed:
description: Indicates whether the post is closed or open for further comments.
type:
- "null"
- boolean
comment_count:
description: The total number of comments on the post.
type:
- "null"
- integer
content_tag_ids:
description:
Array containing unique identifiers of tags associated with the
post.
type:
- "null"
- array
items:
type:
- "null"
- number
details:
description: Additional details or content of the post.
type:
- "null"
- string
featured:
description: Indicates whether the post is featured or not.
type:
- "null"
- boolean
follower_count:
description: The number of users following the post for updates.
type:
- "null"
- integer
frozen:
description: Indicates whether the post content is frozen or editable.
type:
- "null"
- boolean
html_url:
description: The URL that directs to the HTML version of the post.
type:
- "null"
- string
id:
description: The unique identifier of the post.
type:
- "null"
- number
non_author_editor_id:
description:
The unique identifier of a user who is not the author but edited
the post.
type:
- "null"
- integer
non_author_updated_at:
description: The date and time when a non-author user last updated the post.
type:
- "null"
- string
format: date-time
pinned:
description: Indicates if the post is pinned to stay on top of the list.
type:
- "null"
- boolean
status:
description:
The current status of the post, such as 'open', 'solved', 'archived',
etc.
type:
- "null"
- string
title:
description: The title or headline of the post.
type:
- "null"
- string
topic_id:
description: The identifier of the topic under which the post belongs.
type:
- "null"
- integer
vote_count:
description: The total count of votes the post has received.
type:
- "null"
- integer
vote_sum:
description: The sum of all votes received considering both upvotes and downvotes.
type:
- "null"
- integer
created_at:
description: The date and time when the post was created.
type:
- "null"
- string
format: date-time
url:
description: The URL that points to the post details.
type:
- "null"
- string
description:
description: A brief summary or overview of the post content.
type:
- "null"
- string
updated_at:
description: The date and time of the last update made to the post.
type:
- "null"
- string
format: date-time
user_fields:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
active:
description: Flag indicating if the user field is currently active or not.
type:
- "null"
- boolean
created_at:
description: Timestamp indicating when the user field was created.
type:
- "null"
- string
format: date-time
description:
description: Detailed description of the user field.
type:
- "null"
- string
id:
description: Unique identifier for the user field.
type:
- "null"
- number
key:
description: Unique key associated with the user field.
type:
- "null"
- string
position:
description: Position index of the user field in the user profile.
type:
- "null"
- number
raw_description:
description: Raw HTML content for the user field description.
type:
- "null"
- string
raw_title:
description: Raw HTML content for the user field title.
type:
- "null"
- string
regexp_for_validation:
description: Regular expression for validating the user field value.
type:
- "null"
- string
system:
description:
Flag indicating if the user field is a system default field or
a custom field.
type:
- "null"
- boolean
tag:
description: Tag associated with the user field for categorization.
type:
- "null"
- string
title:
description: Title or name of the user field.
type:
- "null"
- string
type:
description: Data type of the user field value.
type:
- "null"
- string
updated_at:
description: Timestamp indicating when the user field was last updated.
type:
- "null"
- string
format: date-time
url:
description: URL pointing to the user field's endpoint for detailed information.
type:
- "null"
- string
votes:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
created_at:
description: Timestamp when the vote was created
type:
- "null"
- string
format: date-time
id:
description: Unique identifier for the vote
type:
- "null"
- integer
item_id:
description: Identifier of the item that was voted on
type:
- "null"
- integer
item_type:
description: Type of the item that was voted on (e.g., ticket, article)
type:
- "null"
- string
updated_at:
description: Timestamp when the vote was last updated
type:
- "null"
- string
format: date-time
url:
description: URL of the resource related to the vote
type:
- "null"
- string
user_id:
description: Unique identifier of the user who voted
type:
- "null"
- integer
value:
description: Value of the vote (e.g., upvote, downvote)
type:
- "null"
- integer
brands:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
id:
description: Unique identifier for the brand.
type:
- "null"
- integer
name:
description: Name of the brand.
type:
- "null"
- string
logo:
description: URL of the brand's logo.
type:
- "null"
- string
brand_url:
description: URL of the brand's website.
type:
- "null"
- string
host_mapping:
description: Mapping for the brand's host.
type:
- "null"
- string
subdomain:
description: Subdomain assigned to the brand.
type:
- "null"
- string
url:
description: URL of the brand's API endpoint.
type:
- "null"
- string
ticket_form_ids:
description: List of IDs for ticket forms associated with the brand.
type:
- "null"
- array
signature_template:
description: Template for the brand's signature.
type:
- "null"
- string
has_help_center:
description: Indicates whether the brand has a help center.
type:
- "null"
- boolean
help_center_state:
description: State of the help center for the brand.
type:
- "null"
- string
active:
description: Indicates whether the brand is currently active or not.
type:
- "null"
- boolean
default:
description: Indicates if the brand is the default brand.
type:
- "null"
- boolean
is_deleted:
description: Indicates if the brand has been deleted.
type:
- "null"
- boolean
created_at:
description: Timestamp of when the brand was created.
type:
- "null"
- string
format: date-time
updated_at:
description: Timestamp of when the brand was last updated.
type:
- "null"
- string
format: date-time
articles:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
author_id:
description: The unique identifier of the author who created the article.
type:
- "null"
- integer
body:
description: The main content or body of the article.
type:
- "null"
- string
comments_disabled:
description: Indicates whether comments are disabled for the article.
type:
- "null"
- boolean
content_tag_ids:
description:
An array of unique identifiers of content tags associated with
the article.
type:
- "null"
- array
created_at:
description: The date and time when the article was created.
type:
- "null"
- string
format: date-time
draft:
description: Indicates whether the article is in draft mode.
type:
- "null"
- boolean
edited_at:
description: The date and time when the article was last edited.
type:
- "null"
- string
format: date-time
html_url:
description: The URL of the article in HTML format.
type:
- "null"
- string
id:
description: The unique identifier of the article.
type:
- "null"
- integer
label_names:
description: An array of label names associated with the article.
type:
- "null"
- array
locale:
description: The language locale of the article.
type:
- "null"
- string
name:
description: The name of the article.
type:
- "null"
- string
outdated:
description: Indicates whether the article is outdated.
type:
- "null"
- boolean
outdated_locales:
description: An array of language locales in which the article is outdated.
type:
- "null"
- array
permission_group_id:
description: The unique identifier of the permission group for the article.
type:
- "null"
- integer
position:
description: The position order of the article within its section.
type:
- "null"
- integer
promoted:
description: Indicates whether the article is promoted.
type:
- "null"
- boolean
section_id:
description: The unique identifier of the section to which the article belongs.
type:
- "null"
- integer
source_locale:
description: The original language locale of the article.
type:
- "null"
- string
title:
description: The title or heading of the article.
type:
- "null"
- string
updated_at:
description: The date and time when the article was last updated.
type:
- "null"
- string
format: date-time
url:
description: The URL of the article.
type:
- "null"
- string
user_segment_id:
description: The unique identifier of the user segment targeted by the article.
type:
- "null"
- integer
vote_count:
description: The total count of votes received for the article.
type:
- "null"
- integer
vote_sum:
description:
The sum of votes received for the article (considering upvotes
and downvotes).
type:
- "null"
- integer
tags:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
count:
description: The number of tags associated with the fetched data.
type:
- "null"
- integer
name:
description: The name of the tag associated with the fetched data.
type:
- "null"
- string
audit_logs:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
action:
description: The type of action performed in the audit log.
type:
- "null"
- string
action_label:
description: A human-readable label representing the action.
type:
- "null"
- string
actor_id:
description: The ID of the actor (user) who performed the action.
type:
- "null"
- number
actor_name:
description: The name of the actor (user) who performed the action.
type:
- "null"
- string
change_description:
description: Description of the change made.
type:
- "null"
- string
created_at:
description: The date and time when the audit log entry was created.
type:
- "null"
- string
format: date-time
id:
description: Unique identifier for the audit log entry.
type:
- "null"
- number
ip_address:
description: The IP address from which the action was performed.
type:
- "null"
- string
source_id:
description: The ID of the source object related to the action.
type:
- "null"
- number
source_label:
description: A human-readable label representing the source object.
type:
- "null"
- string
source_type:
description: The type of the source object.
type:
- "null"
- string
url:
description: The URL associated with the action or source object.
type:
- "null"
- string
ticket_skips:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
created_at:
description: The timestamp when the ticket skip entry was created
type:
- "null"
- string
format: date-time
id:
description: Unique identifier for the ticket skip entry
type:
- "null"
- integer
reason:
description: The reason for skipping the ticket
type:
- "null"
- string
ticket_id:
description: The unique identifier of the skipped ticket
type:
- "null"
- integer
updated_at:
description: The timestamp when the ticket skip entry was last updated
type:
- "null"
- string
format: date-time
user_id:
description: The unique identifier of the user who skipped the ticket
type:
- "null"
- integer
ticket:
description: Information related to the skipped ticket
$schema: https://json-schema.org/draft-07/schema#
title: Tickets
type:
- "null"
- object
properties:
organization_id:
type:
- "null"
- integer
requester_id:
type:
- "null"
- integer
problem_id:
type:
- "null"
- integer
is_public:
type:
- "null"
- boolean
description:
type:
- "null"
- string
follower_ids:
items:
type:
- "null"
- integer
type:
- "null"
- array
submitter_id:
type:
- "null"
- integer
generated_timestamp:
type:
- "null"
- integer
brand_id:
type:
- "null"
- integer
id:
type:
- "null"
- integer
group_id:
type:
- "null"
- integer
type:
type:
- "null"
- string
recipient:
type:
- "null"
- string
collaborator_ids:
items:
type:
- "null"
- integer
type:
- "null"
- array
tags:
items:
type:
- "null"
- string
type:
- "null"
- array
has_incidents:
type:
- "null"
- boolean
created_at:
type:
- "null"
- string
format: date-time
raw_subject:
type:
- "null"
- string
status:
type:
- "null"
- string
updated_at:
type:
- "null"
- string
format: date-time
fields:
items:
properties:
id:
type:
- "null"
- integer
value:
type:
- "null"
- string
type:
- "null"
- object
additionalProperties: true
type:
- "null"
- array
custom_fields:
items:
properties:
id:
type:
- "null"
- integer
value:
type:
- "null"
- string
type:
- "null"
- object
type:
- "null"
- array
url:
type:
- "null"
- string
allow_channelback:
type:
- "null"
- boolean
allow_attachments:
type:
- "null"
- boolean
due_at:
type:
- "null"
- string
format: date-time
followup_ids:
items:
type:
- "null"
- integer
type:
- "null"
- array
priority:
type:
- "null"
- string
assignee_id:
type:
- "null"
- integer
subject:
type:
- "null"
- string
external_id:
type:
- "null"
- string
via:
type:
- "null"
- object
properties:
channel:
type:
- "null"
- string
source:
type:
- "null"
- object
properties:
from:
type:
- "null"
- object
properties:
name:
type:
- "null"
- string
address:
type:
- "null"
- string
original_recipients:
type:
- "null"
- array
items:
type:
- "null"
- string
ticket_id:
type:
- "null"
- integer
subject:
type:
- "null"
- string
channel:
type:
- "null"
- string
id:
type:
- "null"
- integer
title:
type:
- "null"
- string
deleted:
type:
- "null"
- boolean
revision_id:
type:
- "null"
- integer
topic_id:
type:
- "null"
- integer
topic_name:
type:
- "null"
- string
profile_url:
type:
- "null"
- string
username:
type:
- "null"
- string
phone:
type:
- "null"
- string
formatted_phone:
type:
- "null"
- string
facebook_id:
type:
- "null"
- string
to:
type:
- "null"
- object
properties:
brand_id:
type:
- "null"
- integer
name:
type:
- "null"
- string
address:
type:
- "null"
- string
email_ccs:
type:
- "null"
- string
profile_url:
type:
- "null"
- string
username:
type:
- "null"
- string
phone:
type:
- "null"
- string
formatted_phone:
type:
- "null"
- string
facebook_id:
type:
- "null"
- string
rel:
type:
- "null"
- string
ticket_form_id:
type:
- "null"
- integer
deleted_ticket_form_id:
type:
- "null"
- integer
satisfaction_rating:
type:
- "null"
- object
- string
properties:
id:
type:
- "null"
- integer
assignee_id:
type:
- "null"
- integer
group_id:
type:
- "null"
- integer
reason_id:
type:
- "null"
- integer
requester_id:
type:
- "null"
- integer
ticket_id:
type:
- "null"
- integer
updated_at:
type:
- "null"
- string
format: date-time
created_at:
type:
- "null"
- string
format: date-time
url:
type:
- "null"
- string
score:
type:
- "null"
- string
reason:
type:
- "null"
- string
comment:
type:
- "null"
- string
sharing_agreement_ids:
type:
- "null"
- array
items:
type:
- "null"
- integer
email_cc_ids:
type:
- "null"
- array
items:
type:
- "null"
- integer
forum_topic_id:
type:
- "null"
- integer
custom_status_id:
type:
- "null"
- integer
from_messaging_channel:
type:
- "null"
- boolean
ticket_activities:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
actor:
type:
- "null"
- object
properties:
id:
type:
- "null"
- integer
name:
type:
- "null"
- string
description:
The full user record of the user responsible for the ticket activity.
See Users
actor_id:
type:
- "null"
- integer
description:
The id of the user responsible for the ticket activity. An actor_id
of -1 is a Zendesk system user, such as an automations action.
created_at:
type:
- "null"
- string
format: date-time
description: When the record was created
description:
type:
- "null"
- string
description: Description of the activity
id:
type:
- "null"
- integer
description: Automatically assigned on creation
object:
type:
- "null"
- object
description: The content of the activity. Can be a ticket, comment, or change.
target:
type:
- "null"
- object
description: The target of the activity, a ticket.
title:
type:
- "null"
- string
description: Description of the activity
updated_at:
type:
- "null"
- string
format: date-time
description: When the record was last updated
url:
type:
- "null"
- string
description: The API url of the activity
user:
type:
- "null"
- object
description: The full user record of the agent making the request. See Users
user_id:
type:
- "null"
- integer
description: The id of the agent making the request
verb:
type:
- "null"
- string
description:
The type of activity. Can be "tickets.assignment", "tickets.comment",
or "tickets.priority_increase"
custom_roles:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
id:
description: Unique identifier of the custom role
type:
- "null"
- integer
name:
description: Name of the custom role
type:
- "null"
- string
description:
description: Brief description of the custom role
type:
- "null"
- string
role_type:
description: Type of the custom role (e.g., admin, agent, etc)
type:
- "null"
- integer
team_member_count:
description: Number of team members with this custom role
type:
- "null"
- integer
configuration:
description: This object contains custom configuration settings.
properties:
assign_tickets_to_any_group:
description: Allows assigning tickets to any group within the organization
type:
- "null"
- boolean
chat_access:
description: Grants access to chat functionality
type:
- "null"
- boolean
manage_automations:
description: Permission to manage automations
type:
- "null"
- boolean
manage_group_memberships:
description: Ability to manage group memberships
type:
- "null"
- boolean
manage_groups:
description: Permission to manage groups
type:
- "null"
- boolean
manage_macro_content_suggestions:
description: Ability to manage macro content suggestions
type:
- "null"
- boolean
manage_organizations:
description: Ability to manage organizations
type:
- "null"
- boolean
manage_skills:
description: Ability to manage skills
type:
- "null"
- boolean
manage_suspended_tickets:
description: Ability to manage suspended tickets
type:
- "null"
- boolean
manage_triggers:
description: Ability to manage triggers
type:
- "null"
- boolean
manage_slas:
description: Permission to manage SLAs (Service Level Agreements)
type:
- "null"
- boolean
read_macro_content_suggestions:
description: Access for reading macro content suggestions
type:
- "null"
- boolean
ticket_redaction:
description: Ability to redact sensitive information from tickets
type:
- "null"
- boolean
view_filter_tickets:
description: Ability to filter and search through tickets
type:
- "null"
- boolean
view_reduced_count:
description: View reduced counts of specific data
type:
- "null"
- boolean
manage_roles:
description: Permissions related to managing roles
type:
- "null"
- string
custom_objects:
description: Custom objects configuration.
type:
- "null"
- object
properties: {}
additionalProperties: true
manage_deletion_schedules:
description: Ability to manage deletion schedules
type:
- "null"
- string
end_user_list_access:
description: Enables access to the end user list
type:
- "null"
- string
end_user_profile_access:
description: Allows viewing and editing end user profiles
type:
- "null"
- string
explore_access:
description: Grants access to explore functionality
type:
- "null"
- string
forum_access:
description: Provides access to forums
type:
- "null"
- string
forum_access_restricted_content:
description: Access to restricted forum content if applicable
type:
- "null"
- boolean
group_access:
description: Permissions related to accessing and managing groups
type:
- "null"
- boolean
light_agent:
description: Indicates if the role is a light agent with limited capabilities
type:
- "null"
- boolean
macro_access:
description: Allows usage of macros
type:
- "null"
- string
manage_business_rules:
description: Ability to manage business rules
type:
- "null"
- boolean
manage_contextual_workspaces:
description: Permissions to manage contextual workspaces
type:
- "null"
- boolean
manage_dynamic_content:
description: Permission to manage dynamic content
type:
- "null"
- boolean
manage_extensions_and_channels:
description: Access and control over extensions and communication channels
type:
- "null"
- boolean
manage_facebook:
description: Allows management of Facebook integration
type:
- "null"
- boolean
manage_organization_fields:
description: Permission to manage organization-specific fields
type:
- "null"
- boolean
manage_ticket_fields:
description: Allows managing ticket fields
type:
- "null"
- boolean
manage_ticket_forms:
description: Permissions for managing ticket forms
type:
- "null"
- boolean
manage_user_fields:
description: Permission to manage user-specific fields
type:
- "null"
- boolean
manage_team_members:
description: Permissions to manage team members and their roles
type:
- "null"
- string
moderate_forums:
description: Grants moderation abilities for forums
type:
- "null"
- boolean
organization_editing:
description: Allows editing organization details
type:
- "null"
- boolean
organization_notes_editing:
description: Permission to edit organization notes
type:
- "null"
- boolean
report_access:
description: Permission to access reporting features
type:
- "null"
- string
side_conversation_create:
description: Ability to initiate side conversations
type:
- "null"
- boolean
ticket_access:
description: Permissions related to accessing and managing tickets
type:
- "null"
- string
ticket_bulk_edit:
description: Ability to perform bulk editing of tickets
type:
- "null"
- boolean
ticket_comment_access:
description: Allows adding comments to tickets
type:
- "null"
- string
ticket_deletion:
description: Permission to delete tickets
type:
- "null"
- boolean
ticket_editing:
description: Ability to edit ticket details
type:
- "null"
- boolean
ticket_merge:
description: Permission to merge tickets
type:
- "null"
- boolean
ticket_tag_editing:
description: Access to editing ticket tags
type:
- "null"
- boolean
twitter_search_access:
description: Access to Twitter search functionality
type:
- "null"
- boolean
user_view_access:
description: Allows viewing user-related information
type:
- "null"
- string
view_access:
description: Permissions to view various resources
type:
- "null"
- string
view_deleted_tickets:
description: Access to view deleted tickets if applicable
type:
- "null"
- boolean
voice_access:
description: Permission to access voice-related features
type:
- "null"
- boolean
voice_dashboard_access:
description: Access to voice dashboards
type:
- "null"
- boolean
type:
- "null"
- object
created_at:
description: Date and time of the creation of the custom role
type:
- "null"
- string
format: date-time
updated_at:
description: Date and time of the last update of the custom role
type:
- "null"
- string
format: date-time
manage_macro_content_suggestions:
description: Ability to manage macro content suggestions
type:
- "null"
- boolean
read_macro_content_suggestions:
description: Access for reading macro content suggestions
type:
- "null"
- boolean
article_comments:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
author_id:
description: The unique identifier of the author of the comment.
type:
- "null"
- integer
body:
description: The content or text of the comment.
type:
- "null"
- string
created_at:
description: The timestamp when the comment was created.
type:
- "null"
- string
format: date-time
html_url:
description: The URL link to the HTML representation of the comment.
type:
- "null"
- string
id:
description: The unique identifier of the comment.
type:
- "null"
- integer
locale:
description: The locale or language of the comment.
type:
- "null"
- string
non_author_editor_id:
description: The unique identifier of a non-author who edited the comment.
type:
- "null"
- integer
non_author_updated_at:
description: The timestamp when the non-author last updated the comment.
type:
- "null"
- string
format: date-time
source_id:
description: The ID of the source associated with the comment.
type:
- "null"
- integer
source_type:
description: The type of the source associated with the comment.
type:
- "null"
- string
updated_at:
description: The timestamp when the comment was last updated.
type:
- "null"
- string
format: date-time
url:
description: The URL link to the comment resource.
type:
- "null"
- string
vote_count:
description: The total count of votes received on the comment.
type:
- "null"
- integer
vote_sum:
description:
The sum of votes received on the comment, considering upvotes
and downvotes.
type:
- "null"
- integer
topics:
$schema: https://json-schema.org/draft-07/schema#
type:
- "null"
- object
properties:
html_url:
description: The URL of the topic in HTML format.
type:
- "null"
- string
id:
description: The unique identifier of the topic.
type:
- "null"
- number
name:
description: The name/title of the topic.
type:
- "null"
- string
url:
description: The URL of the topic in API format.
type:
- "null"
- string
created_at:
description: The date and time when this topic was created.
type:
- "null"
- string
format: date-time
community_id:
description: The unique identifier of the community to which this topic belongs.
type:
- "null"
- integer
updated_at:
description: The date and time when this topic was last updated.
type:
- "null"
- string
format: date-time
description:
description: The textual description of the topic.
type:
- "null"
- string
manageable_by:
description: The user or group who can manage this topic.
type:
- "null"
- string
follower_count:
description: The count of users following this topic.
type:
- "null"
- number
position:
description: The order position of this topic relative to others.
type:
- "null"
- number
user_segment_id:
description: The identifier of the user segment associated with this topic.
type:
- "null"
- number