Back to Airbyte

Zendesk-Talk authentication

docs/ai-agents/connectors/zendesk-talk/AUTH.md

2.0.07.9 KB
Original Source

Zendesk-Talk authentication

This page documents the authentication and configuration options for the Zendesk-Talk agent connector.

Authentication

Open source execution

In open source mode, you provide API credentials directly to the connector.

OAuth

credentials fields you need:

Field NameTypeRequiredDescription
access_tokenstrYesOAuth 2.0 access token
refresh_tokenstrNoOAuth 2.0 refresh token (optional)
client_idstrNoOAuth client ID
client_secretstrNoOAuth client secret

Example request:

python
from airbyte_agent_zendesk_talk import ZendeskTalkConnector
from airbyte_agent_zendesk_talk.models import ZendeskTalkOauth20AuthConfig

connector = ZendeskTalkConnector(
    auth_config=ZendeskTalkOauth20AuthConfig(
        access_token="<OAuth 2.0 access token>",
        refresh_token="<OAuth 2.0 refresh token (optional)>",
        client_id="<OAuth client ID>",
        client_secret="<OAuth client secret>"
    )
)

Token

credentials fields you need:

Field NameTypeRequiredDescription
emailstrYesYour Zendesk account email address
api_tokenstrYesYour Zendesk API token from Admin Center

Example request:

python
from airbyte_agent_zendesk_talk import ZendeskTalkConnector
from airbyte_agent_zendesk_talk.models import ZendeskTalkApiTokenAuthConfig

connector = ZendeskTalkConnector(
    auth_config=ZendeskTalkApiTokenAuthConfig(
        email="<Your Zendesk account email address>",
        api_token="<Your Zendesk API token from Admin Center>"
    )
)

Hosted execution

In hosted mode, you first create a connector via the Airbyte API (providing your OAuth or Token credentials), then execute operations using either the Python SDK or API. If you need a step-by-step guide, see the hosted execution tutorial.

OAuth

Create a connector with OAuth credentials.

credentials fields you need:

Field NameTypeRequiredDescription
access_tokenstrYesOAuth 2.0 access token
refresh_tokenstrNoOAuth 2.0 refresh token (optional)
client_idstrNoOAuth client ID
client_secretstrNoOAuth client secret

replication_config fields you need:

Field NameTypeRequiredDescription
start_datestr (date-time)YesUTC date and time in the format YYYY-MM-DDT00:00:00Z from which to start replicating data.

Example request:

bash
curl -X POST "https://api.airbyte.ai/api/v1/integrations/connectors" \
  -H "Authorization: Bearer <YOUR_BEARER_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_name": "<CUSTOMER_NAME>",
    "connector_type": "Zendesk-Talk",
    "name": "My Zendesk-Talk Connector",
    "credentials": {
      "access_token": "<OAuth 2.0 access token>",
      "refresh_token": "<OAuth 2.0 refresh token (optional)>",
      "client_id": "<OAuth client ID>",
      "client_secret": "<OAuth client secret>"
    },
    "replication_config": {
      "start_date": "<UTC date and time in the format YYYY-MM-DDT00:00:00Z from which to start replicating data.>"
    }
  }'

Bring your own OAuth flow

To implement your own OAuth flow, use Airbyte's server-side OAuth API endpoints. For a complete guide, see Build your own OAuth flow.

Step 1: Initiate the OAuth flow

Request a consent URL for your user.

Field NameTypeRequiredDescription
customer_namestringYesYour unique identifier for the customer
connector_typestringYesThe connector type (e.g., "Zendesk-Talk")
redirect_urlstringYesURL to redirect to after OAuth authorization

Example request:

bash
curl -X POST "https://api.airbyte.ai/api/v1/integrations/connectors/oauth/initiate" \
  -H "Authorization: Bearer <YOUR_BEARER_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_name": "<CUSTOMER_NAME>",
    "connector_type": "Zendesk-Talk",
    "redirect_url": "https://yourapp.com/oauth/callback"
  }'

Redirect your user to the consent_url from the response.

Step 2: Handle the callback

After the user authorizes access, Airbyte automatically creates the connector and redirects them to your redirect_url with a connector_id query parameter. You don't need to make a separate API call to create the connector.

text
https://yourapp.com/oauth/callback?connector_id=<connector_id>

Extract the connector_id from the callback URL and store it for future operations. For error handling and a complete implementation example, see Build your own OAuth flow.

Token

Create a connector with Token credentials.

credentials fields you need:

Field NameTypeRequiredDescription
emailstrYesYour Zendesk account email address
api_tokenstrYesYour Zendesk API token from Admin Center

replication_config fields you need:

Field NameTypeRequiredDescription
start_datestr (date-time)YesUTC date and time in the format YYYY-MM-DDT00:00:00Z from which to start replicating data.

Example request:

bash
curl -X POST "https://api.airbyte.ai/api/v1/integrations/connectors" \
  -H "Authorization: Bearer <YOUR_BEARER_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_name": "<CUSTOMER_NAME>",
    "connector_type": "Zendesk-Talk",
    "name": "My Zendesk-Talk Connector",
    "credentials": {
      "email": "<Your Zendesk account email address>",
      "api_token": "<Your Zendesk API token from Admin Center>"
    },
    "replication_config": {
      "start_date": "<UTC date and time in the format YYYY-MM-DDT00:00:00Z from which to start replicating data.>"
    }
  }'

Execution

After creating the connector, execute operations using either the Python SDK or API. If your Airbyte client can access multiple organizations, include organization_id in AirbyteAuthConfig and X-Organization-Id in raw API calls.

Python SDK

python
from airbyte_agent_zendesk_talk import ZendeskTalkConnector, AirbyteAuthConfig

connector = ZendeskTalkConnector(
    auth_config=AirbyteAuthConfig(
        customer_name="<your_customer_name>",
        organization_id="<your_organization_id>",  # Optional for multi-org clients
        airbyte_client_id="<your-client-id>",
        airbyte_client_secret="<your-client-secret>"
    )
)

@agent.tool_plain # assumes you're using Pydantic AI
@ZendeskTalkConnector.tool_utils
async def zendesk_talk_execute(entity: str, action: str, params: dict | None = None):
    return await connector.execute(entity, action, params or {})

API

bash
curl -X POST 'https://api.airbyte.ai/api/v1/integrations/connectors/<connector_id>/execute' \
  -H 'Authorization: Bearer <YOUR_BEARER_TOKEN>' \
  -H 'X-Organization-Id: <YOUR_ORGANIZATION_ID>' \
  -H 'Content-Type: application/json' \
  -d '{"entity": "<entity>", "action": "<action>", "params": {}}'

Configuration

The Zendesk-Talk connector requires the following configuration variables. These variables are used to construct the base API URL. Pass them via the config parameter when initializing the connector.

VariableTypeRequiredDefaultDescription
subdomainstringYesyour-subdomainYour Zendesk subdomain (the part before .zendesk.com in your Zendesk URL)