Skip to main content

Module airbyte_agent_sdk.connectors.zendesk_support

Zendesk-Support connector for Airbyte SDK.

Auto-generated from OpenAPI specification.

Sub-modules

  • airbyte_agent_sdk.connectors.zendesk_support.connector
  • airbyte_agent_sdk.connectors.zendesk_support.connector_model
  • airbyte_agent_sdk.connectors.zendesk_support.models
  • airbyte_agent_sdk.connectors.zendesk_support.types

Classes

AirbyteAuthConfig(**data: Any) : Authentication configuration for Airbyte hosted mode execution.

Pass this to the connector's auth_config parameter to use hosted mode, where API credentials are stored securely in Airbyte Cloud.

For hosted mode execution, provide client credentials with either:

  • connector_id: Direct connector/source ID (skips lookup)
  • workspace_name: Workspace name for connector lookup

Attributes: workspace_name: Workspace name for hosted mode connector lookup organization_id: Optional Airbyte organization ID for multi-org selection airbyte_client_id: Airbyte OAuth client ID (required for hosted mode) airbyte_client_secret: Airbyte OAuth client secret (required for hosted mode) connector_id: Specific connector/source ID (skips lookup if provided)

Examples:

Hosted mode with connector_id (no lookup needed)

connector = GongConnector( auth_config=AirbyteAuthConfig( airbyte_client_id="client_abc123", airbyte_client_secret="secret_xyz789", connector_id="existing-source-uuid" ) )

Hosted mode with workspace_name (lookup by workspace)

connector = GongConnector( auth_config=AirbyteAuthConfig( workspace_name="user-123", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc123", airbyte_client_secret="secret_xyz789" ) )

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • pydantic.main.BaseModel

Class variables

airbyte_client_id: str | None : The type of the None singleton.

airbyte_client_secret: str | None : The type of the None singleton.

connector_id: str | None : The type of the None singleton.

model_config : The type of the None singleton.

organization_id: str | None : The type of the None singleton.

workspace_name: str | None : The type of the None singleton.

AirbyteSearchMeta(**data: Any) : Pagination metadata for search responses.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • pydantic.main.BaseModel

Class variables

cursor: str | None : Cursor for fetching the next page of results.

has_more: bool : Whether more results are available.

model_config : The type of the None singleton.

took_ms: int | None : Time taken to execute the search in milliseconds.

AirbyteSearchResult(**data: Any) : Result from Airbyte cache search operations with typed records.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • pydantic.main.BaseModel
  • typing.Generic

Descendants

  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[BrandsSearchData]
  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[DeletedTicketsSearchData]
  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[GroupsSearchData]
  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[OrganizationsSearchData]
  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[SatisfactionRatingsSearchData]
  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[TagsSearchData]
  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[TicketAuditsSearchData]
  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[TicketCommentsSearchData]
  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[TicketFieldsSearchData]
  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[TicketFormsSearchData]
  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[TicketMetricsSearchData]
  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[TicketsSearchData]
  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult[UsersSearchData]

Class variables

data: list[~D] : List of matching records.

meta: airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchMeta : Pagination metadata.

model_config : The type of the None singleton.

BrandsSearchResult(**data: Any) : Result from Airbyte cache search operations with typed records.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
  • pydantic.main.BaseModel
  • typing.Generic

DeletedTicketsSearchResult(**data: Any) : Result from Airbyte cache search operations with typed records.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
  • pydantic.main.BaseModel
  • typing.Generic

GroupsSearchResult(**data: Any) : Result from Airbyte cache search operations with typed records.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
  • pydantic.main.BaseModel
  • typing.Generic

OrganizationsSearchResult(**data: Any) : Result from Airbyte cache search operations with typed records.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
  • pydantic.main.BaseModel
  • typing.Generic

SatisfactionRatingsSearchResult(**data: Any) : Result from Airbyte cache search operations with typed records.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
  • pydantic.main.BaseModel
  • typing.Generic

TagsSearchResult(**data: Any) : Result from Airbyte cache search operations with typed records.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
  • pydantic.main.BaseModel
  • typing.Generic

TicketAuditsSearchResult(**data: Any) : Result from Airbyte cache search operations with typed records.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
  • pydantic.main.BaseModel
  • typing.Generic

TicketCommentsSearchResult(**data: Any) : Result from Airbyte cache search operations with typed records.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
  • pydantic.main.BaseModel
  • typing.Generic

TicketFieldsSearchResult(**data: Any) : Result from Airbyte cache search operations with typed records.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
  • pydantic.main.BaseModel
  • typing.Generic

TicketFormsSearchResult(**data: Any) : Result from Airbyte cache search operations with typed records.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
  • pydantic.main.BaseModel
  • typing.Generic

TicketMetricsSearchResult(**data: Any) : Result from Airbyte cache search operations with typed records.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
  • pydantic.main.BaseModel
  • typing.Generic

TicketsSearchResult(**data: Any) : Result from Airbyte cache search operations with typed records.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
  • pydantic.main.BaseModel
  • typing.Generic

UsersSearchResult(**data: Any) : Result from Airbyte cache search operations with typed records.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • airbyte_agent_sdk.connectors.zendesk_support.models.AirbyteSearchResult
  • pydantic.main.BaseModel
  • typing.Generic

BrandsSearchData(**data: Any) : Search result data for brands entity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • pydantic.main.BaseModel

Class variables

active: bool | None : Indicates whether the brand is set as active

brand_url: str | None : The public URL of the brand

created_at: str | None : Timestamp when the brand was created

default: bool | None : Indicates whether the brand is the default brand for tickets generated from non-branded channels

has_help_center: bool | None : Indicates whether the brand has a Help Center enabled

help_center_state: str | None : The state of the Help Center, with allowed values of enabled, disabled, or restricted

host_mapping: str | None : The host mapping configuration for the brand, visible only to administrators

id: int | None : Unique identifier automatically assigned when the brand is created

is_deleted: bool | None : Indicates whether the brand has been deleted

logo: str | None : Brand logo image file represented as an Attachment object

model_config : The type of the None singleton.

name: str | None : The name of the brand

signature_template: str | None : The signature template used for the brand

subdomain: str | None : The subdomain associated with the brand

ticket_form_ids: list[typing.Any] | None : Array of ticket form IDs that are available for use by this brand

updated_at: str | None : Timestamp when the brand was last updated

url: str | None : The API URL for accessing this brand resource

DeletedTicketsSearchData(**data: Any) : Search result data for deleted_tickets entity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • pydantic.main.BaseModel

Class variables

actor: dict[str, typing.Any] | None : The user who performed the deletion action

deleted_at: str | None : The timestamp when the ticket was deleted

description: str | None : Additional details or comments about the deleted ticket

id: int | None : The unique identifier of the deleted ticket

model_config : The type of the None singleton.

previous_state: str | None : The state of the ticket before it was deleted

subject: str | None : The subject or title of the deleted ticket

GroupsSearchData(**data: Any) : Search result data for groups entity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • pydantic.main.BaseModel

Class variables

created_at: str | None : Timestamp indicating when the group was created

default: bool | None : Indicates if the group is the default one for the account

deleted: bool | None : Indicates whether the group has been deleted

description: str | None : The description of the group

id: int | None : Unique identifier automatically assigned when creating groups

is_public: bool | None : Indicates if the group is public (true) or private (false)

model_config : The type of the None singleton.

name: str | None : The name of the group

updated_at: str | None : Timestamp indicating when the group was last updated

url: str | None : The API URL of the group

OrganizationsSearchData(**data: Any) : Search result data for organizations entity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • pydantic.main.BaseModel

Class variables

created_at: str | None : Timestamp when the organization was created

deleted_at: str | None : Timestamp when the organization was deleted

details: str | None : Details about the organization, such as the address

domain_names: list[typing.Any] | None : Array of domain names associated with this organization for automatic user assignment

external_id: str | None : Unique external identifier to associate the organization to an external record (case-insensitive)

group_id: int | None : ID of the group where new tickets from users in this organization are automatically assigned

id: int | None : Unique identifier automatically assigned when the organization is created

model_config : The type of the None singleton.

name: str | None : Unique name for the organization (mandatory field)

notes: str | None : Notes about the organization

organization_fields: dict[str, typing.Any] | None : Key-value object for custom organization fields

shared_comments: bool | None : Boolean indicating whether end users in this organization can comment on each other's tickets

shared_tickets: bool | None : Boolean indicating whether end users in this organization can see each other's tickets

tags: list[typing.Any] | None : Array of tags associated with the organization

updated_at: str | None : Timestamp of the last update to the organization

url: str | None : The API URL of this organization

SatisfactionRatingsSearchData(**data: Any) : Search result data for satisfaction_ratings entity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • pydantic.main.BaseModel

Class variables

assignee_id: int | None : The identifier of the agent assigned to the ticket at the time the rating was submitted

comment: str | None : Optional comment provided by the requester with the rating

created_at: str | None : Timestamp indicating when the satisfaction rating was created

group_id: int | None : The identifier of the group assigned to the ticket at the time the rating was submitted

id: int | None : Unique identifier for the satisfaction rating, automatically assigned upon creation

model_config : The type of the None singleton.

reason: str | None : Free-text reason for a bad rating provided by the requester in a follow-up question

reason_id: int | None : Identifier for the predefined reason given for a negative rating

requester_id: int | None : The identifier of the ticket requester who submitted the satisfaction rating

score: str | None : The satisfaction rating value: 'offered', 'unoffered', 'good', or 'bad'

ticket_id: int | None : The identifier of the ticket being rated

updated_at: str | None : Timestamp indicating when the satisfaction rating was last updated

url: str | None : The API URL of this satisfaction rating resource

TagsSearchData(**data: Any) : Search result data for tags entity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • pydantic.main.BaseModel

Class variables

count: int | None : The number of times this tag has been used across resources

model_config : The type of the None singleton.

name: str | None : The tag name string used to label and categorize resources

TicketAuditsSearchData(**data: Any) : Search result data for ticket_audits entity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • pydantic.main.BaseModel

Class variables

attachments: list[typing.Any] | None : Files or documents attached to the audit

author_id: int | None : The unique identifier of the user who created the audit

created_at: str | None : Timestamp indicating when the audit was created

events: list[typing.Any] | None : Array of events that occurred in this audit, such as field changes, comments, or tag updates

id: int | None : Unique identifier for the audit record, automatically assigned when the audit is created

metadata: dict[str, typing.Any] | None : Custom and system data associated with the audit

model_config : The type of the None singleton.

ticket_id: int | None : The unique identifier of the ticket associated with this audit

via: dict[str, typing.Any] | None : Describes how the audit was created, providing context about the creation source

TicketCommentsSearchData(**data: Any) : Search result data for ticket_comments entity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • pydantic.main.BaseModel

Class variables

attachments: list[typing.Any] | None : List of files or media attached to the comment

audit_id: int | None : Identifier of the audit record associated with this comment event

author_id: int | None : Identifier of the user who created the comment

body: str | None : Content of the comment in its original format

created_at: str | None : Timestamp when the comment was created

event_type: str | None : Specific classification of the event within the ticket event stream

html_body: str | None : HTML-formatted content of the comment

id: int | None : Unique identifier for the comment event

metadata: dict[str, typing.Any] | None : Additional structured information about the comment not covered by standard fields

model_config : The type of the None singleton.

plain_body: str | None : Plain text content of the comment without formatting

public: bool | None : Boolean indicating whether the comment is visible to end users or is an internal note

ticket_id: int | None : Identifier of the ticket to which this comment belongs

timestamp: int | None : Timestamp of when the event occurred in the incremental export stream

type_: str | None : Type of event, typically indicating this is a comment event

uploads: list[typing.Any] | None : Array of upload tokens or identifiers for files being attached to the comment

via: dict[str, typing.Any] | None : Channel or method through which the comment was submitted

via_reference_id: int | None : Reference identifier for the channel through which the comment was created

TicketFieldsSearchData(**data: Any) : Search result data for ticket_fields entity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • pydantic.main.BaseModel

Class variables

active: bool | None : Whether this field is currently available for use

agent_description: str | None : A description of the ticket field that only agents can see

collapsed_for_agents: bool | None : If true, the field is shown to agents by default; if false, it is hidden alongside infrequently used fields

created_at: str | None : Timestamp when the custom ticket field was created

custom_field_options: list[typing.Any] | None : Array of option objects for custom ticket fields of type multiselect or tagger

custom_statuses: list[typing.Any] | None : List of customized ticket statuses, only present for system ticket fields of type custom_status

description: str | None : Text describing the purpose of the ticket field to users

editable_in_portal: bool | None : Whether this field is editable by end users in Help Center

id: int | None : Unique identifier for the ticket field, automatically assigned when created

key: str | None : Internal identifier or reference key for the field

model_config : The type of the None singleton.

position: int | None : The relative position of the ticket field on a ticket, controlling display order

raw_description: str | None : The dynamic content placeholder if present, or the description value if not

raw_title: str | None : The dynamic content placeholder if present, or the title value if not

raw_title_in_portal: str | None : The dynamic content placeholder if present, or the title_in_portal value if not

regexp_for_validation: str | None : For regexp fields only, the validation pattern for a field value to be deemed valid

removable: bool | None : If false, this field is a system field that must be present on all tickets

required: bool | None : If true, agents must enter a value in the field to change the ticket status to solved

required_in_portal: bool | None : If true, end users must enter a value in the field to create a request

sub_type_id: int | None : For system ticket fields of type priority and status, controlling available options

system_field_options: list[typing.Any] | None : Array of options for system ticket fields of type tickettype, priority, or status

tag: str | None : For checkbox fields only, a tag added to tickets when the checkbox field is selected

title: str | None : The title of the ticket field displayed to agents

title_in_portal: str | None : The title of the ticket field displayed to end users in Help Center

type_: str | None : Field type such as text, textarea, checkbox, date, integer, decimal, regexp, multiselect, or tagger

updated_at: str | None : Timestamp when the custom ticket field was last updated

url: str | None : The API URL for this ticket field resource

visible_in_portal: bool | None : Whether this field is visible to end users in Help Center

TicketFormsSearchData(**data: Any) : Search result data for ticket_forms entity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • pydantic.main.BaseModel

Class variables

active: bool | None : Indicates if the form is set as active

agent_conditions: list[typing.Any] | None : Array of condition sets for agent workspaces

created_at: str | None : Timestamp when the ticket form was created

default: bool | None : Indicates if the form is the default form for this account

display_name: str | None : The name of the form that is displayed to an end user

end_user_conditions: list[typing.Any] | None : Array of condition sets for end user products

end_user_visible: bool | None : Indicates if the form is visible to the end user

id: int | None : Unique identifier for the ticket form, automatically assigned when creating the form

in_all_brands: bool | None : Indicates if the form is available for use in all brands on this account

model_config : The type of the None singleton.

name: str | None : The name of the ticket form

position: int | None : The position of this form among other forms in the account, such as in a dropdown

raw_display_name: str | None : The dynamic content placeholder if present, or the display_name value if not

raw_name: str | None : The dynamic content placeholder if present, or the name value if not

restricted_brand_ids: list[typing.Any] | None : IDs of all brands that this ticket form is restricted to

ticket_field_ids: list[typing.Any] | None : IDs of all ticket fields included in this ticket form

updated_at: str | None : Timestamp of the last update to the ticket form

url: str | None : URL of the ticket form

TicketMetricsSearchData(**data: Any) : Search result data for ticket_metrics entity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • pydantic.main.BaseModel

Class variables

agent_wait_time_in_minutes: dict[str, typing.Any] | None : Number of minutes the agent spent waiting during calendar and business hours

assigned_at: str | None : Timestamp when the ticket was assigned

assignee_stations: int | None : Number of assignees the ticket had

assignee_updated_at: str | None : Timestamp when the assignee last updated the ticket

created_at: str | None : Timestamp when the metric record was created

custom_status_updated_at: str | None : Timestamp when the ticket's custom status was last updated

first_resolution_time_in_minutes: dict[str, typing.Any] | None : Number of minutes to the first resolution time during calendar and business hours

full_resolution_time_in_minutes: dict[str, typing.Any] | None : Number of minutes to the full resolution during calendar and business hours

generated_timestamp: int | None : Timestamp of when record was last updated

group_stations: int | None : Number of groups the ticket passed through

id: int | None : Unique identifier for the ticket metric record

initially_assigned_at: str | None : Timestamp when the ticket was initially assigned

instance_id: int | None : ID of the Zendesk instance associated with the ticket

latest_comment_added_at: str | None : Timestamp when the latest comment was added

metric: str | None : Ticket metrics data

model_config : The type of the None singleton.

on_hold_time_in_minutes: dict[str, typing.Any] | None : Number of minutes on hold

reopens: int | None : Total number of times the ticket was reopened

replies: int | None : The number of public replies added to a ticket by an agent

reply_time_in_minutes: dict[str, typing.Any] | None : Number of minutes to the first reply during calendar and business hours

reply_time_in_seconds: dict[str, typing.Any] | None : Number of seconds to the first reply during calendar hours, only available for Messaging tickets

requester_updated_at: str | None : Timestamp when the requester last updated the ticket

requester_wait_time_in_minutes: dict[str, typing.Any] | None : Number of minutes the requester spent waiting during calendar and business hours

solved_at: str | None : Timestamp when the ticket was solved

status: dict[str, typing.Any] | None : The current status of the ticket (open, pending, solved, etc.).

status_updated_at: str | None : Timestamp when the status of the ticket was last updated

ticket_id: int | None : Identifier of the associated ticket

time: str | None : Time related to the ticket

type_: str | None : Type of ticket

updated_at: str | None : Timestamp when the metric record was last updated

url: str | None : The API url of the ticket metric

TicketsSearchData(**data: Any) : Search result data for tickets entity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • pydantic.main.BaseModel

Class variables

allow_attachments: bool | None : Boolean indicating whether attachments are allowed on the ticket

allow_channelback: bool | None : Boolean indicating whether agents can reply to the ticket through the original channel

assignee_id: int | None : Unique identifier of the agent currently assigned to the ticket

brand_id: int | None : Unique identifier of the brand associated with the ticket in multi-brand accounts

collaborator_ids: list[typing.Any] | None : Array of user identifiers who are collaborating on the ticket

created_at: str | None : Timestamp indicating when the ticket was created

custom_fields: list[typing.Any] | None : Array of custom field values specific to the account's ticket configuration

custom_status_id: int | None : Unique identifier of the custom status applied to the ticket

deleted_ticket_form_id: int | None : The ID of the ticket form that was previously associated with this ticket but has since been deleted

description: str | None : Initial description or content of the ticket when it was created

due_at: str | None : Timestamp indicating when the ticket is due for completion or resolution

email_cc_ids: list[typing.Any] | None : Array of user identifiers who are CC'd on ticket email notifications

external_id: str | None : External identifier for the ticket, used for integrations with other systems

fields: list[typing.Any] | None : Array of ticket field values including both system and custom fields

follower_ids: list[typing.Any] | None : Array of user identifiers who are following the ticket for updates

followup_ids: list[typing.Any] | None : Array of identifiers for follow-up tickets related to this ticket

forum_topic_id: int | None : Unique identifier linking the ticket to a forum topic if applicable

from_messaging_channel: bool | None : Boolean indicating whether the ticket originated from a messaging channel

generated_timestamp: int | None : Timestamp updated for all ticket updates including system changes, used for incremental export

group_id: int | None : Unique identifier of the agent group assigned to handle the ticket

has_incidents: bool | None : Boolean indicating whether this problem ticket has related incident tickets

id: int | None : Unique identifier for the ticket

is_public: bool | None : Boolean indicating whether the ticket is publicly visible

model_config : The type of the None singleton.

organization_id: int | None : Unique identifier of the organization associated with the ticket

priority: str | None : Priority level assigned to the ticket (e.g., urgent, high, normal, low)

problem_id: int | None : Unique identifier of the problem ticket if this is an incident ticket

raw_subject: str | None : Original unprocessed subject line before any system modifications

recipient: str | None : Email address or identifier of the ticket recipient

requester_id: int | None : Unique identifier of the user who requested or created the ticket

result_type: str | None : The type of the search result (e.g. ticket) when returned from search endpoints

satisfaction_rating: Any : Object containing customer satisfaction rating data for the ticket

sharing_agreement_ids: list[typing.Any] | None : Array of sharing agreement identifiers if the ticket is shared across Zendesk instances

status: str | None : Current status of the ticket (e.g., new, open, pending, solved, closed)

subject: str | None : Subject line of the ticket describing the issue or request

submitter_id: int | None : Unique identifier of the user who submitted the ticket on behalf of the requester

tags: list[typing.Any] | None : Array of tags applied to the ticket for categorization and filtering

ticket_form_id: int | None : Unique identifier of the ticket form used when creating the ticket

type_: str | None : Type of ticket (e.g., problem, incident, question, task)

updated_at: str | None : Timestamp indicating when the ticket was last updated with a ticket event

url: str | None : API URL to access the full ticket resource

via: dict[str, typing.Any] | None : Object describing the channel and method through which the ticket was created

UsersSearchData(**data: Any) : Search result data for users entity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • pydantic.main.BaseModel

Class variables

active: bool | None : Indicates if the user account is currently active

alias: str | None : Alternative name or nickname for the user

chat_only: bool | None : Indicates if the user can only interact via chat

created_at: str | None : Timestamp indicating when the user was created

custom_role_id: int | None : Identifier for a custom role assigned to the user

default_group_id: int | None : Identifier of the default group assigned to the user

details: str | None : Additional descriptive information about the user

email: str | None : Email address of the user

external_id: str | None : External system identifier for the user, used for integrations

iana_time_zone: str | None : IANA standard time zone identifier for the user

id: int | None : Unique identifier for the user

last_login_at: str | None : Timestamp of the user's most recent login

locale: str | None : Locale setting determining language and regional format preferences

locale_id: int | None : Identifier for the user's locale preference

model_config : The type of the None singleton.

moderator: bool | None : Indicates if the user has moderator privileges

name: str | None : Display name of the user

notes: str | None : Internal notes about the user, visible only to agents

only_private_comments: bool | None : Indicates if the user can only make private comments on tickets

organization_id: int | None : Identifier of the organization the user belongs to

permanently_deleted: bool | None : Indicates if the user has been permanently deleted from the system

phone: str | None : Phone number of the user

photo: dict[str, typing.Any] | None : Profile photo or avatar of the user

report_csv: bool | None : Indicates if the user receives reports in CSV format

restricted_agent: bool | None : Indicates if the agent has restricted access permissions

role: str | None : Role assigned to the user defining their permissions level

role_type: int | None : Type classification of the user's role

shared: bool | None : Indicates if the user is shared across multiple accounts

shared_agent: bool | None : Indicates if the user is a shared agent across multiple brands or accounts

shared_phone_number: bool | None : Indicates if the phone number is shared with other users

signature: str | None : Email signature text for the user

suspended: bool | None : Indicates if the user account is suspended

tags: list[typing.Any] | None : Labels or tags associated with the user for categorization

ticket_restriction: str | None : Defines which tickets the user can access based on restrictions

time_zone: str | None : Time zone setting for the user

two_factor_auth_enabled: bool | None : Indicates if two-factor authentication is enabled for the user

updated_at: str | None : Timestamp indicating when the user was last updated

url: str | None : API endpoint URL for accessing the user's detailed information

user_fields: dict[str, typing.Any] | None : Custom field values specific to the user, stored as key-value pairs

verified: bool | None : Indicates if the user's identity has been verified

ZendeskSupportConnector(auth_config: ZendeskSupportAuthConfig | AirbyteAuthConfig | BaseModel | None = None, on_token_refresh: Any | None = None, subdomain: str | None = None) : Type-safe Zendesk-Support API connector.

Auto-generated from OpenAPI specification with full type safety.

Initialize a new zendesk-support connector instance.

Supports both local and hosted execution modes:

  • Local mode: Provide connector-specific auth config (e.g., ZendeskSupportAuthConfig)
  • Hosted mode: Provide AirbyteAuthConfig with client credentials and either connector_id or workspace_name

Args: auth_config: Either connector-specific auth config for local mode, or AirbyteAuthConfig for hosted mode on_token_refresh: Optional callback for OAuth2 token refresh persistence. Called with new_tokens dict when tokens are refreshed. Can be sync or async. Example: lambda tokens: save_to_database(tokens) subdomain: Your Zendesk subdomain Examples:

Local mode (direct API calls)

connector = ZendeskSupportConnector(auth_config=ZendeskSupportAuthConfig(access_token="...", refresh_token="..."))

Hosted mode with explicit connector_id (no lookup needed)

connector = ZendeskSupportConnector( auth_config=AirbyteAuthConfig( airbyte_client_id="client_abc123", airbyte_client_secret="secret_xyz789", connector_id="existing-source-uuid" ) )

Hosted mode with lookup by workspace_name

connector = ZendeskSupportConnector( auth_config=AirbyteAuthConfig( workspace_name="user-123", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc123", airbyte_client_secret="secret_xyz789" ) )

Class variables

connector_name : The type of the None singleton.

connector_version : The type of the None singleton.

sdk_version : The type of the None singleton.

Static methods

create(*, airbyte_config: AirbyteAuthConfig, auth_config: "'ZendeskSupportAuthConfig' | None" = None, server_side_oauth_secret_id: str | None = None, name: str | None = None, replication_config: dict[str, Any] | None = None, source_template_id: str | None = None) : Create a new hosted connector on Airbyte Cloud.

This factory method:

  1. Creates a source on Airbyte Cloud with the provided credentials
  2. Returns a connector configured with the new connector_id

Supports two authentication modes:

  1. Direct credentials: Provide auth_config with typed credentials
  2. Server-side OAuth: Provide server_side_oauth_secret_id from OAuth flow

Args: airbyte_config: Airbyte hosted auth config with client credentials and workspace_name. Optionally include organization_id for multi-org request routing. auth_config: Typed auth config. Required unless using server_side_oauth_secret_id. server_side_oauth_secret_id: OAuth secret ID from get_consent_url redirect. When provided, auth_config is not required. name: Optional source name (defaults to connector name + workspace_name) replication_config: Optional replication settings dict. Required for connectors with x-airbyte-replication-config (REPLICATION mode sources). source_template_id: Source template ID. Required when organization has multiple source templates for this connector type.

Returns: A ZendeskSupportConnector instance configured in hosted mode

Raises: ValueError: If neither or both auth_config and server_side_oauth_secret_id provided

Example:

Create a new hosted connector with API key auth

connector = await ZendeskSupportConnector.create( airbyte_config=AirbyteAuthConfig( workspace_name="my-workspace", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc", airbyte_client_secret="secret_xyz", ), auth_config=ZendeskSupportAuthConfig(access_token="...", refresh_token="..."), )

With server-side OAuth:

connector = await ZendeskSupportConnector.create( airbyte_config=AirbyteAuthConfig( workspace_name="my-workspace", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc", airbyte_client_secret="secret_xyz", ), server_side_oauth_secret_id="airbyte_oauth_...secret...", )

Use the connector

result = await connector.execute("entity", "list", {})

get_consent_url(*, airbyte_config: AirbyteAuthConfig, redirect_url: str, name: str | None = None, replication_config: dict[str, Any] | None = None, source_template_id: str | None = None) ‑> str : Initiate server-side OAuth flow with auto-source creation.

Returns a consent URL where the end user should be redirected to grant access. After completing consent, the source is automatically created and the user is redirected to your redirect_url with a connector_id query parameter.

Args: airbyte_config: Airbyte hosted auth config with client credentials and workspace_name. Optionally include organization_id for multi-org request routing. redirect_url: URL where users will be redirected after OAuth consent. After consent, user arrives at: redirect_url?connector_id=... name: Optional name for the source. Defaults to connector name + workspace_name. replication_config: Optional replication settings dict. Merged with OAuth credentials. source_template_id: Source template ID. Required when organization has multiple source templates for this connector type.

Returns: The OAuth consent URL

Example: consent_url = await ZendeskSupportConnector.get_consent_url( airbyte_config=AirbyteAuthConfig( workspace_name="my-workspace", organization_id="00000000-0000-0000-0000-000000000123", airbyte_client_id="client_abc", airbyte_client_secret="secret_xyz", ), redirect_url="https://myapp.com/oauth/callback", name="My Zendesk-Support Source", )

Redirect user to: consent_url

After consent, user arrives at: https://myapp.com/oauth/callback?connector_id=...

tool_utils(func: _F | None = None, *, update_docstring: bool = True, max_output_chars: int | None = 100000, framework: FrameworkName | None = None, internal_retries: int = 0, should_internal_retry: Callable[[Exception, tuple[Any, ...], dict[str, Any]], bool] | None = None, exhausted_runtime_failure_message: Callable[[Exception, tuple[Any, ...], dict[str, Any]], str | None] | None = None) ‑> ~_F | Callable[[~_F], ~_F] : Decorator that adds tool utilities like docstring augmentation and output limits.

Composes :func:airbyte_agent_sdk.translation.translate_exceptions for runtime wrapping (sync/async branch + output-size check + framework signal translation + optional internal retry loop), and adds connector-specific docstring augmentation on top of it.

Usage: @mcp.tool() @ZendeskSupportConnector.tool_utils async def execute(entity: str, action: str, params: dict): ...

@mcp.tool() @ZendeskSupportConnector.tool_utils(update_docstring=False, max_output_chars=None) async def execute(entity: str, action: str, params: dict): ...

@mcp.tool() @ZendeskSupportConnector.tool_utils(framework="pydantic_ai", internal_retries=2) async def execute(entity: str, action: str, params: dict): ...

Args: update_docstring: When True, append connector capabilities to doc. max_output_chars: Max serialized output size before raising. Use None to disable. framework: One of "pydantic_ai" | "langchain" | "openai_agents" | "mcp". Defaults to None → auto-detect by attempting each framework's canonical import in order. Explicit always wins. internal_retries: How many transient runtime failures (429/5xx, network, timeout) to retry silently before surfacing. Default 0. Forwarded to :func:airbyte_agent_sdk.translation.translate_exceptions. should_internal_retry: Optional predicate (error, args, kwargs) -> bool further restricting which retryable errors are safe for this specific tool. Forwarded to :func:airbyte_agent_sdk.translation.translate_exceptions. exhausted_runtime_failure_message: Optional callback (error, args, kwargs) -> str | None. Invoked after internal retries are exhausted OR were skipped via should_internal_retry returning False. Forwarded to :func:airbyte_agent_sdk.translation.translate_exceptions.

Instance variables

connector_id: str | None : Get the connector/source ID (only available in hosted mode).

Returns: The connector ID if in hosted mode, None if in local mode.

Example: connector = await ZendeskSupportConnector.create(...) print(f"Created connector: {connector.connector_id}")

Methods

check(self) ‑> airbyte_agent_sdk.connectors.zendesk_support.models.ZendeskSupportCheckResult : Perform a health check to verify connectivity and credentials.

Executes a lightweight list operation (limit=1) to validate that the connector can communicate with the API and credentials are valid.

Returns: ZendeskSupportCheckResult with status ("healthy" or "unhealthy") and optional error message

Example: result = await connector.check() if result.status == "healthy": print("Connection verified!") else: print(f"Check failed: {result.error}")

close(self) : Close the connector and release resources.

entity_schema(self, entity: str) ‑> dict[str, typing.Any] | None : Get the JSON schema for an entity.

Args: entity: Entity name (e.g., "contacts", "companies")

Returns: JSON schema dict describing the entity structure, or None if not found.

Example: schema = connector.entity_schema("contacts") if schema: print(f"Contact properties: {list(schema.get('properties', {}).keys())}")

execute(self, entity: str, action: "Literal['list', 'create', 'get', 'update', 'download', 'context_store_search']", params: Mapping[str, Any] | None = None) ‑> Any : Execute an entity operation with full type safety.

This is the recommended interface for blessed connectors as it:

  • Uses the same signature as non-blessed connectors
  • Provides full IDE autocomplete for entity/action/params
  • Makes migration from generic to blessed connectors seamless

Args: entity: Entity name (e.g., "customers") action: Operation action (e.g., "create", "get", "list") params: Operation parameters (typed based on entity+action)

Returns: Typed response based on the operation

Example: customer = await connector.execute( entity="customers", action="get", params={"id": "cus_123"} )

list_entities(self) ‑> list[dict[str, typing.Any]] : Get structured data about available entities, actions, and parameters.

Returns a list of entity descriptions with:

  • entity_name: Name of the entity (e.g., "contacts", "deals")
  • description: Entity description from the first endpoint
  • available_actions: List of actions (e.g., ["list", "get", "create"])
  • parameters: Dict mapping action -> list of parameter dicts

Example: entities = connector.list_entities() for entity in entities: print(f"{entity['entity_name']}: {entity['available_actions']}")