This is the full reference documentation for the Freshdesk agent connector.
Supported entities and actions
The Freshdesk connector supports the following entities and actions.
| Entity | Actions |
|---|
| Tickets | List, Get, Context Store Search, Context Store SQL Query, Semantic Search |
| Contacts | List, Get, Context Store Search, Context Store SQL Query, Semantic Search |
| Agents | List, Get, Context Store Search, Context Store SQL Query |
| Groups | List, Get, Context Store Search, Context Store SQL Query |
| Companies | List, Get, Context Store Search, Context Store SQL Query, Semantic Search |
| Roles | List, Get, Context Store Search, Context Store SQL Query |
| Satisfaction Ratings | List, Context Store Search, Context Store SQL Query, Semantic Search |
| Surveys | List, Context Store Search, Context Store SQL Query |
| Time Entries | List, Context Store Search, Context Store SQL Query, Semantic Search |
| Ticket Fields | List, Context Store Search, Context Store SQL Query |
Tickets
Tickets List
Returns a paginated list of tickets. By default returns tickets created in the past 30 days. Use updated_since to get older tickets.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "tickets",
"action": "list"
}'
Python SDK
await freshdesk.tickets.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "tickets",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
per_page | integer | No | Number of items per page (max 100) |
page | integer | No | Page number (starts at 1) |
updated_since | string | No | Return tickets updated since this timestamp (ISO 8601) |
order_by | "created_at" | "due_by" | "updated_at" | "status" | No | Sort field |
order_type | "asc" | "desc" | No | Sort order |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
subject | null | string | |
description | null | string | |
description_text | null | string | |
status | null | integer | |
priority | null | integer | |
source | null | integer | |
type | null | string | |
requester_id | null | integer | |
responder_id | null | integer | |
company_id | null | integer | |
group_id | null | integer | |
product_id | null | integer | |
email_config_id | null | integer | |
cc_emails | null | array | |
fwd_emails | null | array | |
reply_cc_emails | null | array | |
to_emails | null | array | |
spam | null | boolean | |
deleted | null | boolean | |
fr_escalated | null | boolean | |
is_escalated | null | boolean | |
fr_due_by | null | string | |
due_by | null | string | |
tags | null | array | |
custom_fields | null | object | |
attachments | null | array | |
created_at | null | string | |
updated_at | null | string | |
association_type | null | integer | |
associated_tickets_count | null | integer | |
ticket_cc_emails | null | array | |
ticket_bcc_emails | null | array | |
support_email | null | string | |
source_additional_info | null | object | |
structured_description | null | object | |
form_id | null | integer | |
nr_due_by | null | string | |
nr_escalated | null | boolean | |
| Field Name | Type | Description |
|---|
next | string | |
Tickets Get
Get a single ticket by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "tickets",
"action": "get",
"params": {
"id": 0
}
}'
Python SDK
await freshdesk.tickets.get(
id=0
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "tickets",
"action": "get",
"params": {
"id": 0
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
id | integer | Yes | Ticket ID |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
subject | null | string | |
description | null | string | |
description_text | null | string | |
status | null | integer | |
priority | null | integer | |
source | null | integer | |
type | null | string | |
requester_id | null | integer | |
responder_id | null | integer | |
company_id | null | integer | |
group_id | null | integer | |
product_id | null | integer | |
email_config_id | null | integer | |
cc_emails | null | array | |
fwd_emails | null | array | |
reply_cc_emails | null | array | |
to_emails | null | array | |
spam | null | boolean | |
deleted | null | boolean | |
fr_escalated | null | boolean | |
is_escalated | null | boolean | |
fr_due_by | null | string | |
due_by | null | string | |
tags | null | array | |
custom_fields | null | object | |
attachments | null | array | |
created_at | null | string | |
updated_at | null | string | |
association_type | null | integer | |
associated_tickets_count | null | integer | |
ticket_cc_emails | null | array | |
ticket_bcc_emails | null | array | |
support_email | null | string | |
source_additional_info | null | object | |
structured_description | null | object | |
form_id | null | integer | |
nr_due_by | null | string | |
nr_escalated | null | boolean | |
Tickets Context Store Search
Search and filter tickets records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "tickets",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"id": 0
}
}
}
}
}'
Python SDK
await freshdesk.tickets.context_store_search(
query={"filter": {"eq": {"id": 0}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "tickets",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"id": 0}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
id | integer | Unique ticket ID |
subject | string | Subject of the ticket |
description | string | HTML content of the ticket |
description_text | string | Plain text content of the ticket |
status | integer | Status: 2=Open, 3=Pending, 4=Resolved, 5=Closed |
priority | integer | Priority: 1=Low, 2=Medium, 3=High, 4=Urgent |
source | integer | Source: 1=Email, 2=Portal, 3=Phone, 7=Chat, 9=Feedback Widget, 10=Outbound Email |
type | string | Ticket type |
requester_id | integer | ID of the requester |
requester | object | Requester details including name, email, and contact info |
responder_id | integer | ID of the agent to whom the ticket is assigned |
group_id | integer | ID of the group to which the ticket is assigned |
company_id | integer | Company ID of the requester |
product_id | integer | ID of the product associated with the ticket |
email_config_id | integer | ID of the email config used for the ticket |
cc_emails | array | CC email addresses |
ticket_cc_emails | array | Ticket CC email addresses |
to_emails | array | To email addresses |
fwd_emails | array | Forwarded email addresses |
reply_cc_emails | array | Reply CC email addresses |
tags | array | Tags associated with the ticket |
custom_fields | object | Custom fields associated with the ticket |
due_by | string | Resolution due by timestamp |
fr_due_by | string | First response due by timestamp |
fr_escalated | boolean | Whether the first response time was breached |
is_escalated | boolean | Whether the ticket is escalated |
nr_due_by | string | Next response due by timestamp |
nr_escalated | boolean | Whether the next response time was breached |
spam | boolean | Whether the ticket is marked as spam |
association_type | integer | Association type for parent/child tickets |
associated_tickets_count | integer | Number of associated tickets |
stats | object | Ticket statistics including response and resolution times |
created_at | string | Ticket creation timestamp |
updated_at | string | Ticket last update timestamp |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].id | integer | Unique ticket ID |
data[].subject | string | Subject of the ticket |
data[].description | string | HTML content of the ticket |
data[].description_text | string | Plain text content of the ticket |
data[].status | integer | Status: 2=Open, 3=Pending, 4=Resolved, 5=Closed |
data[].priority | integer | Priority: 1=Low, 2=Medium, 3=High, 4=Urgent |
data[].source | integer | Source: 1=Email, 2=Portal, 3=Phone, 7=Chat, 9=Feedback Widget, 10=Outbound Email |
data[].type | string | Ticket type |
data[].requester_id | integer | ID of the requester |
data[].requester | object | Requester details including name, email, and contact info |
data[].responder_id | integer | ID of the agent to whom the ticket is assigned |
data[].group_id | integer | ID of the group to which the ticket is assigned |
data[].company_id | integer | Company ID of the requester |
data[].product_id | integer | ID of the product associated with the ticket |
data[].email_config_id | integer | ID of the email config used for the ticket |
data[].cc_emails | array | CC email addresses |
data[].ticket_cc_emails | array | Ticket CC email addresses |
data[].to_emails | array | To email addresses |
data[].fwd_emails | array | Forwarded email addresses |
data[].reply_cc_emails | array | Reply CC email addresses |
data[].tags | array | Tags associated with the ticket |
data[].custom_fields | object | Custom fields associated with the ticket |
data[].due_by | string | Resolution due by timestamp |
data[].fr_due_by | string | First response due by timestamp |
data[].fr_escalated | boolean | Whether the first response time was breached |
data[].is_escalated | boolean | Whether the ticket is escalated |
data[].nr_due_by | string | Next response due by timestamp |
data[].nr_escalated | boolean | Whether the next response time was breached |
data[].spam | boolean | Whether the ticket is marked as spam |
data[].association_type | integer | Association type for parent/child tickets |
data[].associated_tickets_count | integer | Number of associated tickets |
data[].stats | object | Ticket statistics including response and resolution times |
data[].created_at | string | Ticket creation timestamp |
data[].updated_at | string | Ticket last update timestamp |
Tickets Context Store SQL Query
Run a SQL query against tickets records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "tickets",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await freshdesk.tickets.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "tickets",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Tickets Semantic Search
Search tickets records by meaning rather than by exact or fuzzy field values. Semantic search embeds a natural-language prompt and returns the most similar passages, ranked by relevance. Pass semantic={field, prompt, filter?, context_size?, min_similarity?, dedup?} to context_store_search instead of query. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "tickets",
"action": "context_store_search",
"params": {
"semantic": {"field": "description_text", "prompt": "<your natural-language query>"}
}
}'
Python SDK
Semantic search is passed through the generic execute method — the typed tickets.context_store_search helper only accepts query.
await freshdesk.execute(
"tickets",
"context_store_search",
{"semantic": {"field": "description_text", "prompt": "<your natural-language query>"}},
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "tickets",
"action": "context_store_search",
"params": {
"semantic": {"field": "description_text", "prompt": "<your natural-language query>"}
}
}'
Semantic Parameters
| Parameter Name | Type | Required | Description |
|---|
semantic.field | string | Yes | Field to search semantically. Mutually exclusive with query. |
semantic.prompt | string | Yes | Natural-language query that is embedded and compared against stored passages. |
semantic.filter | object | No | Filter conditions (same shape/operators as query.filter). sort is not supported — results are ranked by similarity. |
semantic.context_size | integer | No | Characters of surrounding context to return per hit, up to the field's configured window. Omit to return the full configured window. |
semantic.min_similarity | number | No | Minimum similarity score in [-1.0, 1.0]. Omit for 0.25; scores below the threshold are discarded before deduplication and top-k selection. Use -1.0 to disable the cutoff. |
semantic.dedup | string | No | max (default) returns the single best-scoring passage per record; none returns multiple passages per record, still ranked by similarity and capped by limit. |
fields | array | No | Field paths to include in results (dot notation for nested fields). Applied to each hit's entity. |
limit | integer | No | Maximum results to return (default 10, maximum 100). |
Semantically Searchable Fields
| Field Name | Max Context (chars) | Description |
|---|
description_text | 2048 | Plain text content of the ticket |
Each result is also enriched with the following related fields (returned only; not filterable): requesterName, requesterEmail.
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching passages |
data[].entity | object | The matched source record |
data[].entity.id | string | Source record field |
data[].entity.updated_at | string | Source record field |
data[].entity.subject | string | Source record field |
data[].entity.status | string | Source record field |
data[].entity.priority | string | Source record field |
data[].entity.type | string | Source record field |
data[].entity.created_at | string | Source record field |
data[].entity.requester_id | string | Source record field |
data[].entity.responder_id | string | Source record field |
data[].entity.group_id | string | Source record field |
data[].metadata | object | Match metadata |
data[].metadata.score | number | Similarity score |
data[].metadata.context | string | The matched passage text |
data[].metadata.requesterName | string | Enriched from a related entity at read time (returned only; not filterable) |
data[].metadata.requesterEmail | string | Enriched from a related entity at read time (returned only; not filterable) |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
Returns a paginated list of contacts
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "contacts",
"action": "list"
}'
Python SDK
await freshdesk.contacts.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "contacts",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
per_page | integer | No | Number of items per page (max 100) |
page | integer | No | Page number (starts at 1) |
updated_since | string | No | Return contacts updated since this timestamp (ISO 8601) |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
name | null | string | |
email | null | string | |
phone | null | string | |
mobile | null | string | |
active | null | boolean | |
address | null | string | |
avatar | null | object | |
company_id | null | integer | |
view_all_tickets | null | boolean | |
custom_fields | null | object | |
deleted | null | boolean | |
description | null | string | |
job_title | null | string | |
language | null | string | |
twitter_id | null | string | |
unique_external_id | null | string | |
other_emails | null | array | |
other_companies | null | array | |
tags | null | array | |
time_zone | null | string | |
facebook_id | null | string | |
csat_rating | null | integer | |
preferred_source | null | string | |
first_name | null | string | |
last_name | null | string | |
visitor_id | null | string | |
org_contact_id | null | integer | |
org_contact_id_str | null | string | |
other_phone_numbers | null | array | |
created_at | null | string | |
updated_at | null | string | |
| Field Name | Type | Description |
|---|
next | string | |
Get a single contact by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "contacts",
"action": "get",
"params": {
"id": 0
}
}'
Python SDK
await freshdesk.contacts.get(
id=0
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "contacts",
"action": "get",
"params": {
"id": 0
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
id | integer | Yes | Contact ID |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
name | null | string | |
email | null | string | |
phone | null | string | |
mobile | null | string | |
active | null | boolean | |
address | null | string | |
avatar | null | object | |
company_id | null | integer | |
view_all_tickets | null | boolean | |
custom_fields | null | object | |
deleted | null | boolean | |
description | null | string | |
job_title | null | string | |
language | null | string | |
twitter_id | null | string | |
unique_external_id | null | string | |
other_emails | null | array | |
other_companies | null | array | |
tags | null | array | |
time_zone | null | string | |
facebook_id | null | string | |
csat_rating | null | integer | |
preferred_source | null | string | |
first_name | null | string | |
last_name | null | string | |
visitor_id | null | string | |
org_contact_id | null | integer | |
org_contact_id_str | null | string | |
other_phone_numbers | null | array | |
created_at | null | string | |
updated_at | null | string | |
Contacts Context Store Search
Search and filter contacts records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "contacts",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"id": 0
}
}
}
}
}'
Python SDK
await freshdesk.contacts.context_store_search(
query={"filter": {"eq": {"id": 0}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "contacts",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"id": 0}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
id | integer | Unique contact ID |
name | string | Name of the contact |
email | string | Primary email address |
phone | string | Phone number |
mobile | string | Mobile number |
active | boolean | Whether the contact has been verified |
address | string | Address of the contact |
company_id | integer | ID of the primary company |
custom_fields | object | Custom fields associated with the contact |
description | string | Description of the contact |
job_title | string | Job title of the contact |
language | string | Language of the contact |
twitter_id | string | Twitter ID |
unique_external_id | string | External ID of the contact |
time_zone | string | Time zone of the contact |
facebook_id | string | Facebook ID of the contact |
csat_rating | integer | CSAT rating of the contact |
preferred_source | string | Preferred contact source |
created_at | string | Contact creation timestamp |
updated_at | string | Contact last update timestamp |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].id | integer | Unique contact ID |
data[].name | string | Name of the contact |
data[].email | string | Primary email address |
data[].phone | string | Phone number |
data[].mobile | string | Mobile number |
data[].active | boolean | Whether the contact has been verified |
data[].address | string | Address of the contact |
data[].company_id | integer | ID of the primary company |
data[].custom_fields | object | Custom fields associated with the contact |
data[].description | string | Description of the contact |
data[].job_title | string | Job title of the contact |
data[].language | string | Language of the contact |
data[].twitter_id | string | Twitter ID |
data[].unique_external_id | string | External ID of the contact |
data[].time_zone | string | Time zone of the contact |
data[].facebook_id | string | Facebook ID of the contact |
data[].csat_rating | integer | CSAT rating of the contact |
data[].preferred_source | string | Preferred contact source |
data[].created_at | string | Contact creation timestamp |
data[].updated_at | string | Contact last update timestamp |
Contacts Context Store SQL Query
Run a SQL query against contacts records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "contacts",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await freshdesk.contacts.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "contacts",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Search contacts records by meaning rather than by exact or fuzzy field values. Semantic search embeds a natural-language prompt and returns the most similar passages, ranked by relevance. Pass semantic={field, prompt, filter?, context_size?, min_similarity?, dedup?} to context_store_search instead of query. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "contacts",
"action": "context_store_search",
"params": {
"semantic": {"field": "description", "prompt": "<your natural-language query>"}
}
}'
Python SDK
Semantic search is passed through the generic execute method — the typed contacts.context_store_search helper only accepts query.
await freshdesk.execute(
"contacts",
"context_store_search",
{"semantic": {"field": "description", "prompt": "<your natural-language query>"}},
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "contacts",
"action": "context_store_search",
"params": {
"semantic": {"field": "description", "prompt": "<your natural-language query>"}
}
}'
Semantic Parameters
| Parameter Name | Type | Required | Description |
|---|
semantic.field | string | Yes | Field to search semantically. Mutually exclusive with query. |
semantic.prompt | string | Yes | Natural-language query that is embedded and compared against stored passages. |
semantic.filter | object | No | Filter conditions (same shape/operators as query.filter). sort is not supported — results are ranked by similarity. |
semantic.context_size | integer | No | Characters of surrounding context to return per hit, up to the field's configured window. Omit to return the full configured window. |
semantic.min_similarity | number | No | Minimum similarity score in [-1.0, 1.0]. Omit for 0.25; scores below the threshold are discarded before deduplication and top-k selection. Use -1.0 to disable the cutoff. |
semantic.dedup | string | No | max (default) returns the single best-scoring passage per record; none returns multiple passages per record, still ranked by similarity and capped by limit. |
fields | array | No | Field paths to include in results (dot notation for nested fields). Applied to each hit's entity. |
limit | integer | No | Maximum results to return (default 10, maximum 100). |
Semantically Searchable Fields
| Field Name | Max Context (chars) | Description |
|---|
description | 2048 | Description of the contact |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching passages |
data[].entity | object | The matched source record |
data[].entity.id | string | Source record field |
data[].entity.updated_at | string | Source record field |
data[].entity.name | string | Source record field |
data[].entity.email | string | Source record field |
data[].entity.created_at | string | Source record field |
data[].entity.company_id | string | Source record field |
data[].entity.job_title | string | Source record field |
data[].entity.active | string | Source record field |
data[].metadata | object | Match metadata |
data[].metadata.score | number | Similarity score |
data[].metadata.context | string | The matched passage text |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
Agents
Agents List
Returns a paginated list of agents
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "agents",
"action": "list"
}'
Python SDK
await freshdesk.agents.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "agents",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
per_page | integer | No | Number of items per page (max 100) |
page | integer | No | Page number (starts at 1) |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
available | null | boolean | |
available_since | null | string | |
occasional | null | boolean | |
signature | null | string | |
ticket_scope | null | integer | |
type | null | string | |
skill_ids | null | array | |
group_ids | null | array | |
role_ids | null | array | |
focus_mode | null | boolean | |
contact | null | object | |
last_active_at | null | string | |
deactivated | null | boolean | |
agent_operational_status | null | string | |
org_agent_id | null | string | |
org_group_ids | null | array | |
contribution_group_ids | null | array | |
org_contribution_group_ids | null | array | |
scope | null | integer | object | |
availability | null | array | object | |
created_at | null | string | |
updated_at | null | string | |
| Field Name | Type | Description |
|---|
next | string | |
Agents Get
Get a single agent by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "agents",
"action": "get",
"params": {
"id": 0
}
}'
Python SDK
await freshdesk.agents.get(
id=0
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "agents",
"action": "get",
"params": {
"id": 0
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
id | integer | Yes | Agent ID |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
available | null | boolean | |
available_since | null | string | |
occasional | null | boolean | |
signature | null | string | |
ticket_scope | null | integer | |
type | null | string | |
skill_ids | null | array | |
group_ids | null | array | |
role_ids | null | array | |
focus_mode | null | boolean | |
contact | null | object | |
last_active_at | null | string | |
deactivated | null | boolean | |
agent_operational_status | null | string | |
org_agent_id | null | string | |
org_group_ids | null | array | |
contribution_group_ids | null | array | |
org_contribution_group_ids | null | array | |
scope | null | integer | object | |
availability | null | array | object | |
created_at | null | string | |
updated_at | null | string | |
Agents Context Store Search
Search and filter agents records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "agents",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"id": 0
}
}
}
}
}'
Python SDK
await freshdesk.agents.context_store_search(
query={"filter": {"eq": {"id": 0}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "agents",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"id": 0}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
id | integer | Unique agent ID |
available | boolean | Whether the agent is available |
available_since | string | Timestamp since the agent has been available |
contact | object | Contact details of the agent including name, email, phone, and job title |
occasional | boolean | Whether the agent is an occasional agent |
signature | string | Signature of the agent (HTML) |
ticket_scope | integer | Ticket scope: 1=Global, 2=Group, 3=Restricted |
type | string | Agent type: support_agent, field_agent, collaborator |
last_active_at | string | Timestamp of last agent activity |
created_at | string | Agent creation timestamp |
updated_at | string | Agent last update timestamp |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].id | integer | Unique agent ID |
data[].available | boolean | Whether the agent is available |
data[].available_since | string | Timestamp since the agent has been available |
data[].contact | object | Contact details of the agent including name, email, phone, and job title |
data[].occasional | boolean | Whether the agent is an occasional agent |
data[].signature | string | Signature of the agent (HTML) |
data[].ticket_scope | integer | Ticket scope: 1=Global, 2=Group, 3=Restricted |
data[].type | string | Agent type: support_agent, field_agent, collaborator |
data[].last_active_at | string | Timestamp of last agent activity |
data[].created_at | string | Agent creation timestamp |
data[].updated_at | string | Agent last update timestamp |
Agents Context Store SQL Query
Run a SQL query against agents records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "agents",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await freshdesk.agents.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "agents",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Groups
Groups List
Returns a paginated list of groups
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "groups",
"action": "list"
}'
Python SDK
await freshdesk.groups.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "groups",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
per_page | integer | No | Number of items per page (max 100) |
page | integer | No | Page number (starts at 1) |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
name | null | string | |
description | null | string | |
agent_ids | null | array | |
auto_ticket_assign | null | integer | |
business_hour_id | null | integer | |
escalate_to | null | integer | |
unassigned_for | null | string | |
group_type | null | string | |
allow_agents_to_change_availability | null | boolean | |
agent_availability_status | null | boolean | |
created_at | null | string | |
updated_at | null | string | |
| Field Name | Type | Description |
|---|
next | string | |
Groups Get
Get a single group by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "groups",
"action": "get",
"params": {
"id": 0
}
}'
Python SDK
await freshdesk.groups.get(
id=0
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "groups",
"action": "get",
"params": {
"id": 0
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
id | integer | Yes | Group ID |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
name | null | string | |
description | null | string | |
agent_ids | null | array | |
auto_ticket_assign | null | integer | |
business_hour_id | null | integer | |
escalate_to | null | integer | |
unassigned_for | null | string | |
group_type | null | string | |
allow_agents_to_change_availability | null | boolean | |
agent_availability_status | null | boolean | |
created_at | null | string | |
updated_at | null | string | |
Groups Context Store Search
Search and filter groups records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "groups",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"id": 0
}
}
}
}
}'
Python SDK
await freshdesk.groups.context_store_search(
query={"filter": {"eq": {"id": 0}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "groups",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"id": 0}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
id | integer | Unique group ID |
name | string | Name of the group |
description | string | Description of the group |
auto_ticket_assign | integer | Auto ticket assignment: 0=Disabled, 1=Round Robin, 2=Skill Based, 3=Load Based |
business_hour_id | integer | ID of the associated business hour |
escalate_to | integer | User ID for escalation |
group_type | string | Type of the group (e.g., support_agent_group) |
unassigned_for | string | Time after which escalation triggers |
created_at | string | Group creation timestamp |
updated_at | string | Group last update timestamp |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].id | integer | Unique group ID |
data[].name | string | Name of the group |
data[].description | string | Description of the group |
data[].auto_ticket_assign | integer | Auto ticket assignment: 0=Disabled, 1=Round Robin, 2=Skill Based, 3=Load Based |
data[].business_hour_id | integer | ID of the associated business hour |
data[].escalate_to | integer | User ID for escalation |
data[].group_type | string | Type of the group (e.g., support_agent_group) |
data[].unassigned_for | string | Time after which escalation triggers |
data[].created_at | string | Group creation timestamp |
data[].updated_at | string | Group last update timestamp |
Groups Context Store SQL Query
Run a SQL query against groups records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "groups",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await freshdesk.groups.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "groups",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Companies
Companies List
Returns a paginated list of companies
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "companies",
"action": "list"
}'
Python SDK
await freshdesk.companies.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "companies",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
per_page | integer | No | Number of items per page (max 100) |
page | integer | No | Page number (starts at 1) |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
name | null | string | |
description | null | string | |
domains | null | array | |
note | null | string | |
health_score | null | string | |
account_tier | null | string | |
renewal_date | null | string | |
industry | null | string | |
custom_fields | null | object | |
org_company_id | null | integer | string | |
org_company_id_str | null | string | |
created_at | null | string | |
updated_at | null | string | |
| Field Name | Type | Description |
|---|
next | string | |
Companies Get
Get a single company by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "companies",
"action": "get",
"params": {
"id": 0
}
}'
Python SDK
await freshdesk.companies.get(
id=0
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "companies",
"action": "get",
"params": {
"id": 0
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
id | integer | Yes | Company ID |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
name | null | string | |
description | null | string | |
domains | null | array | |
note | null | string | |
health_score | null | string | |
account_tier | null | string | |
renewal_date | null | string | |
industry | null | string | |
custom_fields | null | object | |
org_company_id | null | integer | string | |
org_company_id_str | null | string | |
created_at | null | string | |
updated_at | null | string | |
Companies Context Store Search
Search and filter companies records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "companies",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"id": 0
}
}
}
}
}'
Python SDK
await freshdesk.companies.context_store_search(
query={"filter": {"eq": {"id": 0}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "companies",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"id": 0}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
id | integer | Unique company ID |
name | string | Name of the company |
description | string | Description of the company |
domains | array | Email domains associated with the company |
note | string | Notes about the company |
health_score | string | Health score of the company |
account_tier | string | Account tier of the company |
renewal_date | string | Renewal date |
industry | string | Industry of the company |
custom_fields | object | Custom fields associated with the company |
created_at | string | Company creation timestamp |
updated_at | string | Company last update timestamp |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].id | integer | Unique company ID |
data[].name | string | Name of the company |
data[].description | string | Description of the company |
data[].domains | array | Email domains associated with the company |
data[].note | string | Notes about the company |
data[].health_score | string | Health score of the company |
data[].account_tier | string | Account tier of the company |
data[].renewal_date | string | Renewal date |
data[].industry | string | Industry of the company |
data[].custom_fields | object | Custom fields associated with the company |
data[].created_at | string | Company creation timestamp |
data[].updated_at | string | Company last update timestamp |
Companies Context Store SQL Query
Run a SQL query against companies records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "companies",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await freshdesk.companies.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "companies",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Companies Semantic Search
Search companies records by meaning rather than by exact or fuzzy field values. Semantic search embeds a natural-language prompt and returns the most similar passages, ranked by relevance. Pass semantic={field, prompt, filter?, context_size?, min_similarity?, dedup?} to context_store_search instead of query. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "companies",
"action": "context_store_search",
"params": {
"semantic": {"field": "description", "prompt": "<your natural-language query>"}
}
}'
Python SDK
Semantic search is passed through the generic execute method — the typed companies.context_store_search helper only accepts query.
await freshdesk.execute(
"companies",
"context_store_search",
{"semantic": {"field": "description", "prompt": "<your natural-language query>"}},
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "companies",
"action": "context_store_search",
"params": {
"semantic": {"field": "description", "prompt": "<your natural-language query>"}
}
}'
Semantic Parameters
| Parameter Name | Type | Required | Description |
|---|
semantic.field | string | Yes | Field to search semantically. Mutually exclusive with query. |
semantic.prompt | string | Yes | Natural-language query that is embedded and compared against stored passages. |
semantic.filter | object | No | Filter conditions (same shape/operators as query.filter). sort is not supported — results are ranked by similarity. |
semantic.context_size | integer | No | Characters of surrounding context to return per hit, up to the field's configured window. Omit to return the full configured window. |
semantic.min_similarity | number | No | Minimum similarity score in [-1.0, 1.0]. Omit for 0.25; scores below the threshold are discarded before deduplication and top-k selection. Use -1.0 to disable the cutoff. |
semantic.dedup | string | No | max (default) returns the single best-scoring passage per record; none returns multiple passages per record, still ranked by similarity and capped by limit. |
fields | array | No | Field paths to include in results (dot notation for nested fields). Applied to each hit's entity. |
limit | integer | No | Maximum results to return (default 10, maximum 100). |
Semantically Searchable Fields
| Field Name | Max Context (chars) | Description |
|---|
description | 2048 | Description of the company |
note | 2048 | Notes about the company |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching passages |
data[].entity | object | The matched source record |
data[].entity.id | string | Source record field |
data[].entity.updated_at | string | Source record field |
data[].entity.name | string | Source record field |
data[].entity.created_at | string | Source record field |
data[].entity.industry | string | Source record field |
data[].entity.account_tier | string | Source record field |
data[].entity.health_score | string | Source record field |
data[].metadata | object | Match metadata |
data[].metadata.score | number | Similarity score |
data[].metadata.context | string | The matched passage text |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
Roles
Roles List
Returns a paginated list of roles
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "roles",
"action": "list"
}'
Python SDK
await freshdesk.roles.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "roles",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
per_page | integer | No | Number of items per page (max 100) |
page | integer | No | Page number (starts at 1) |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
name | null | string | |
description | null | string | |
default | null | boolean | |
agent_type | null | integer | |
created_at | null | string | |
updated_at | null | string | |
| Field Name | Type | Description |
|---|
next | string | |
Roles Get
Get a single role by ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "roles",
"action": "get",
"params": {
"id": 0
}
}'
Python SDK
await freshdesk.roles.get(
id=0
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "roles",
"action": "get",
"params": {
"id": 0
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
id | integer | Yes | Role ID |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
name | null | string | |
description | null | string | |
default | null | boolean | |
agent_type | null | integer | |
created_at | null | string | |
updated_at | null | string | |
Roles Context Store Search
Search and filter roles records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "roles",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"id": 0
}
}
}
}
}'
Python SDK
await freshdesk.roles.context_store_search(
query={"filter": {"eq": {"id": 0}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "roles",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"id": 0}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
id | integer | Unique role ID |
name | string | Name of the role |
description | string | Description of the role |
default | boolean | Whether this is a default role |
created_at | string | Role creation timestamp |
updated_at | string | Role last update timestamp |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].id | integer | Unique role ID |
data[].name | string | Name of the role |
data[].description | string | Description of the role |
data[].default | boolean | Whether this is a default role |
data[].created_at | string | Role creation timestamp |
data[].updated_at | string | Role last update timestamp |
Roles Context Store SQL Query
Run a SQL query against roles records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "roles",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await freshdesk.roles.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "roles",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Satisfaction Ratings
Satisfaction Ratings List
Returns a paginated list of satisfaction ratings
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "satisfaction_ratings",
"action": "list"
}'
Python SDK
await freshdesk.satisfaction_ratings.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "satisfaction_ratings",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
per_page | integer | No | Number of items per page (max 100) |
page | integer | No | Page number (starts at 1) |
created_since | string | No | Return ratings created since this timestamp (ISO 8601) |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
survey_id | null | integer | |
user_id | null | integer | |
agent_id | null | integer | |
group_id | null | integer | |
ticket_id | null | integer | |
feedback | null | string | |
ratings | null | object | |
created_at | null | string | |
updated_at | null | string | |
| Field Name | Type | Description |
|---|
next | string | |
Satisfaction Ratings Context Store Search
Search and filter satisfaction ratings records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "satisfaction_ratings",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"id": 0
}
}
}
}
}'
Python SDK
await freshdesk.satisfaction_ratings.context_store_search(
query={"filter": {"eq": {"id": 0}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "satisfaction_ratings",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"id": 0}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
id | integer | Unique satisfaction rating ID |
survey_id | integer | ID of the survey |
user_id | integer | ID of the user (requester) |
agent_id | integer | ID of the agent |
group_id | integer | ID of the group |
ticket_id | integer | ID of the ticket |
feedback | string | Feedback text |
ratings | object | Rating values (question_id to rating mapping) |
created_at | string | Rating creation timestamp |
updated_at | string | Rating last update timestamp |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].id | integer | Unique satisfaction rating ID |
data[].survey_id | integer | ID of the survey |
data[].user_id | integer | ID of the user (requester) |
data[].agent_id | integer | ID of the agent |
data[].group_id | integer | ID of the group |
data[].ticket_id | integer | ID of the ticket |
data[].feedback | string | Feedback text |
data[].ratings | object | Rating values (question_id to rating mapping) |
data[].created_at | string | Rating creation timestamp |
data[].updated_at | string | Rating last update timestamp |
Satisfaction Ratings Context Store SQL Query
Run a SQL query against satisfaction ratings records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "satisfaction_ratings",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await freshdesk.satisfaction_ratings.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "satisfaction_ratings",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Satisfaction Ratings Semantic Search
Search satisfaction ratings records by meaning rather than by exact or fuzzy field values. Semantic search embeds a natural-language prompt and returns the most similar passages, ranked by relevance. Pass semantic={field, prompt, filter?, context_size?, min_similarity?, dedup?} to context_store_search instead of query. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "satisfaction_ratings",
"action": "context_store_search",
"params": {
"semantic": {"field": "feedback", "prompt": "<your natural-language query>"}
}
}'
Python SDK
Semantic search is passed through the generic execute method — the typed satisfaction_ratings.context_store_search helper only accepts query.
await freshdesk.execute(
"satisfaction_ratings",
"context_store_search",
{"semantic": {"field": "feedback", "prompt": "<your natural-language query>"}},
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "satisfaction_ratings",
"action": "context_store_search",
"params": {
"semantic": {"field": "feedback", "prompt": "<your natural-language query>"}
}
}'
Semantic Parameters
| Parameter Name | Type | Required | Description |
|---|
semantic.field | string | Yes | Field to search semantically. Mutually exclusive with query. |
semantic.prompt | string | Yes | Natural-language query that is embedded and compared against stored passages. |
semantic.filter | object | No | Filter conditions (same shape/operators as query.filter). sort is not supported — results are ranked by similarity. |
semantic.context_size | integer | No | Characters of surrounding context to return per hit, up to the field's configured window. Omit to return the full configured window. |
semantic.min_similarity | number | No | Minimum similarity score in [-1.0, 1.0]. Omit for 0.25; scores below the threshold are discarded before deduplication and top-k selection. Use -1.0 to disable the cutoff. |
semantic.dedup | string | No | max (default) returns the single best-scoring passage per record; none returns multiple passages per record, still ranked by similarity and capped by limit. |
fields | array | No | Field paths to include in results (dot notation for nested fields). Applied to each hit's entity. |
limit | integer | No | Maximum results to return (default 10, maximum 100). |
Semantically Searchable Fields
| Field Name | Max Context (chars) | Description |
|---|
feedback | 2048 | Feedback text |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching passages |
data[].entity | object | The matched source record |
data[].entity.id | string | Source record field |
data[].entity.updated_at | string | Source record field |
data[].entity.created_at | string | Source record field |
data[].entity.ticket_id | string | Source record field |
data[].entity.survey_id | string | Source record field |
data[].entity.agent_id | string | Source record field |
data[].entity.group_id | string | Source record field |
data[].entity.user_id | string | Source record field |
data[].entity.ratings | string | Source record field |
data[].metadata | object | Match metadata |
data[].metadata.score | number | Similarity score |
data[].metadata.context | string | The matched passage text |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
Surveys
Surveys List
Returns a paginated list of surveys
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "surveys",
"action": "list"
}'
Python SDK
await freshdesk.surveys.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "surveys",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
per_page | integer | No | Number of items per page (max 100) |
page | integer | No | Page number (starts at 1) |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
title | null | string | |
active | null | boolean | |
questions | null | array | |
created_at | null | string | |
updated_at | null | string | |
| Field Name | Type | Description |
|---|
next | string | |
Surveys Context Store Search
Search and filter surveys records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "surveys",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"id": 0
}
}
}
}
}'
Python SDK
await freshdesk.surveys.context_store_search(
query={"filter": {"eq": {"id": 0}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "surveys",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"id": 0}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
id | integer | Unique survey ID |
title | string | Title of the survey |
active | boolean | Whether the survey is active |
questions | array | Survey questions |
created_at | string | Survey creation timestamp |
updated_at | string | Survey last update timestamp |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].id | integer | Unique survey ID |
data[].title | string | Title of the survey |
data[].active | boolean | Whether the survey is active |
data[].questions | array | Survey questions |
data[].created_at | string | Survey creation timestamp |
data[].updated_at | string | Survey last update timestamp |
Surveys Context Store SQL Query
Run a SQL query against surveys records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "surveys",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await freshdesk.surveys.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "surveys",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Time Entries
Time Entries List
Returns a paginated list of time entries
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "time_entries",
"action": "list"
}'
Python SDK
await freshdesk.time_entries.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "time_entries",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
per_page | integer | No | Number of items per page (max 100) |
page | integer | No | Page number (starts at 1) |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
agent_id | null | integer | |
ticket_id | null | integer | |
company_id | null | integer | |
billable | null | boolean | |
note | null | string | |
time_spent | null | string | |
timer_running | null | boolean | |
executed_at | null | string | |
start_time | null | string | |
time_spent_in_seconds | null | integer | |
created_at | null | string | |
updated_at | null | string | |
| Field Name | Type | Description |
|---|
next | string | |
Time Entries Context Store Search
Search and filter time entries records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "time_entries",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"id": 0
}
}
}
}
}'
Python SDK
await freshdesk.time_entries.context_store_search(
query={"filter": {"eq": {"id": 0}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "time_entries",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"id": 0}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
id | integer | Unique time entry ID |
agent_id | integer | ID of the agent |
ticket_id | integer | ID of the associated ticket |
company_id | integer | ID of the associated company |
billable | boolean | Whether the time entry is billable |
note | string | Description of the time entry |
time_spent | string | Time spent in hh:mm format |
timer_running | boolean | Whether the timer is running |
executed_at | string | Execution timestamp |
start_time | string | Start time of the timer |
created_at | string | Time entry creation timestamp |
updated_at | string | Time entry last update timestamp |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].id | integer | Unique time entry ID |
data[].agent_id | integer | ID of the agent |
data[].ticket_id | integer | ID of the associated ticket |
data[].company_id | integer | ID of the associated company |
data[].billable | boolean | Whether the time entry is billable |
data[].note | string | Description of the time entry |
data[].time_spent | string | Time spent in hh:mm format |
data[].timer_running | boolean | Whether the timer is running |
data[].executed_at | string | Execution timestamp |
data[].start_time | string | Start time of the timer |
data[].created_at | string | Time entry creation timestamp |
data[].updated_at | string | Time entry last update timestamp |
Time Entries Context Store SQL Query
Run a SQL query against time entries records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "time_entries",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await freshdesk.time_entries.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "time_entries",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Time Entries Semantic Search
Search time entries records by meaning rather than by exact or fuzzy field values. Semantic search embeds a natural-language prompt and returns the most similar passages, ranked by relevance. Pass semantic={field, prompt, filter?, context_size?, min_similarity?, dedup?} to context_store_search instead of query. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "time_entries",
"action": "context_store_search",
"params": {
"semantic": {"field": "note", "prompt": "<your natural-language query>"}
}
}'
Python SDK
Semantic search is passed through the generic execute method — the typed time_entries.context_store_search helper only accepts query.
await freshdesk.execute(
"time_entries",
"context_store_search",
{"semantic": {"field": "note", "prompt": "<your natural-language query>"}},
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "time_entries",
"action": "context_store_search",
"params": {
"semantic": {"field": "note", "prompt": "<your natural-language query>"}
}
}'
Semantic Parameters
| Parameter Name | Type | Required | Description |
|---|
semantic.field | string | Yes | Field to search semantically. Mutually exclusive with query. |
semantic.prompt | string | Yes | Natural-language query that is embedded and compared against stored passages. |
semantic.filter | object | No | Filter conditions (same shape/operators as query.filter). sort is not supported — results are ranked by similarity. |
semantic.context_size | integer | No | Characters of surrounding context to return per hit, up to the field's configured window. Omit to return the full configured window. |
semantic.min_similarity | number | No | Minimum similarity score in [-1.0, 1.0]. Omit for 0.25; scores below the threshold are discarded before deduplication and top-k selection. Use -1.0 to disable the cutoff. |
semantic.dedup | string | No | max (default) returns the single best-scoring passage per record; none returns multiple passages per record, still ranked by similarity and capped by limit. |
fields | array | No | Field paths to include in results (dot notation for nested fields). Applied to each hit's entity. |
limit | integer | No | Maximum results to return (default 10, maximum 100). |
Semantically Searchable Fields
| Field Name | Max Context (chars) | Description |
|---|
note | 2048 | Description of the time entry |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching passages |
data[].entity | object | The matched source record |
data[].entity.id | string | Source record field |
data[].entity.updated_at | string | Source record field |
data[].entity.created_at | string | Source record field |
data[].entity.ticket_id | string | Source record field |
data[].entity.agent_id | string | Source record field |
data[].entity.company_id | string | Source record field |
data[].entity.billable | string | Source record field |
data[].entity.time_spent | string | Source record field |
data[].entity.executed_at | string | Source record field |
data[].metadata | object | Match metadata |
data[].metadata.score | number | Similarity score |
data[].metadata.context | string | The matched passage text |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
Ticket Fields
Ticket Fields List
Returns a list of all ticket fields
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "ticket_fields",
"action": "list"
}'
Python SDK
await freshdesk.ticket_fields.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "ticket_fields",
"action": "list"
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
per_page | integer | No | Number of items per page (max 100) |
page | integer | No | Page number (starts at 1) |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | integer | |
name | null | string | |
label | null | string | |
label_for_customers | null | string | |
description | null | string | |
position | null | integer | |
type | null | string | |
default | null | boolean | |
required_for_closure | null | boolean | |
required_for_agents | null | boolean | |
required_for_customers | null | boolean | |
customers_can_edit | null | boolean | |
displayed_to_customers | null | boolean | |
customers_can_filter | null | boolean | |
portal_cc | null | boolean | |
portal_cc_to | null | string | |
choices | any | array<string | object> | object | |
created_at | null | string | |
updated_at | null | string | |
| Field Name | Type | Description |
|---|
next | string | |
Ticket Fields Context Store Search
Search and filter ticket fields records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "ticket_fields",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"id": 0
}
}
}
}
}'
Python SDK
await freshdesk.ticket_fields.context_store_search(
query={"filter": {"eq": {"id": 0}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "ticket_fields",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"id": 0}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
id | integer | Unique ticket field ID |
name | string | Name of the field |
label | string | Display label for agents |
label_for_customers | string | Display label in the customer portal |
description | string | Description of the field |
position | integer | Position of the field in the form |
type | string | Field type (e.g., custom_dropdown, custom_text) |
default | boolean | Whether this is a default (non-custom) field |
required_for_closure | boolean | Whether the field is required for ticket closure |
required_for_agents | boolean | Whether the field is required for agents |
required_for_customers | boolean | Whether the field is required for customers |
customers_can_edit | boolean | Whether customers can edit this field |
displayed_to_customers | boolean | Whether the field is displayed to customers |
portal_cc | boolean | Whether CC is enabled in the portal |
portal_cc_to | string | CC recipients scope (all or company) |
choices | object | Available choices for dropdown fields |
created_at | string | Field creation timestamp |
updated_at | string | Field last update timestamp |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].id | integer | Unique ticket field ID |
data[].name | string | Name of the field |
data[].label | string | Display label for agents |
data[].label_for_customers | string | Display label in the customer portal |
data[].description | string | Description of the field |
data[].position | integer | Position of the field in the form |
data[].type | string | Field type (e.g., custom_dropdown, custom_text) |
data[].default | boolean | Whether this is a default (non-custom) field |
data[].required_for_closure | boolean | Whether the field is required for ticket closure |
data[].required_for_agents | boolean | Whether the field is required for agents |
data[].required_for_customers | boolean | Whether the field is required for customers |
data[].customers_can_edit | boolean | Whether customers can edit this field |
data[].displayed_to_customers | boolean | Whether the field is displayed to customers |
data[].portal_cc | boolean | Whether CC is enabled in the portal |
data[].portal_cc_to | string | CC recipients scope (all or company) |
data[].choices | object | Available choices for dropdown fields |
data[].created_at | string | Field creation timestamp |
data[].updated_at | string | Field last update timestamp |
Ticket Fields Context Store SQL Query
Run a SQL query against ticket fields records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "freshdesk",
"entity": "ticket_fields",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await freshdesk.ticket_fields.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "ticket_fields",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |