airbyte-agent-zendesk-support 0.18.26__tar.gz → 0.18.28__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/CHANGELOG.md +10 -0
  2. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/PKG-INFO +8 -8
  3. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/README.md +7 -7
  4. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/local_executor.py +39 -19
  5. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/pyproject.toml +1 -1
  6. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/.gitignore +0 -0
  7. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/REFERENCE.md +0 -0
  8. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/__init__.py +0 -0
  9. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/__init__.py +0 -0
  10. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/__init__.py +0 -0
  11. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/auth_strategies.py +0 -0
  12. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/auth_template.py +0 -0
  13. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/cloud_utils/__init__.py +0 -0
  14. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/cloud_utils/client.py +0 -0
  15. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/connector_model_loader.py +0 -0
  16. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/constants.py +0 -0
  17. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/exceptions.py +0 -0
  18. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/__init__.py +0 -0
  19. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/hosted_executor.py +0 -0
  20. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/executor/models.py +0 -0
  21. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/extensions.py +0 -0
  22. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/http/__init__.py +0 -0
  23. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/http/adapters/__init__.py +0 -0
  24. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/http/adapters/httpx_adapter.py +0 -0
  25. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/http/config.py +0 -0
  26. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/http/exceptions.py +0 -0
  27. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/http/protocols.py +0 -0
  28. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/http/response.py +0 -0
  29. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/http_client.py +0 -0
  30. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/logging/__init__.py +0 -0
  31. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/logging/logger.py +0 -0
  32. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/logging/types.py +0 -0
  33. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/__init__.py +0 -0
  34. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/models.py +0 -0
  35. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/redactor.py +0 -0
  36. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/observability/session.py +0 -0
  37. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/performance/__init__.py +0 -0
  38. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/performance/instrumentation.py +0 -0
  39. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/performance/metrics.py +0 -0
  40. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/__init__.py +0 -0
  41. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/base.py +0 -0
  42. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/components.py +0 -0
  43. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/connector.py +0 -0
  44. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/extensions.py +0 -0
  45. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/operations.py +0 -0
  46. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/schema/security.py +0 -0
  47. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/secrets.py +0 -0
  48. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/telemetry/__init__.py +0 -0
  49. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/telemetry/config.py +0 -0
  50. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/telemetry/events.py +0 -0
  51. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/telemetry/tracker.py +0 -0
  52. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/types.py +0 -0
  53. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/utils.py +0 -0
  54. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/_vendored/connector_sdk/validation.py +0 -0
  55. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/connector.py +0 -0
  56. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/connector_model.py +0 -0
  57. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/models.py +0 -0
  58. {airbyte_agent_zendesk_support-0.18.26 → airbyte_agent_zendesk_support-0.18.28}/airbyte_agent_zendesk_support/types.py +0 -0
@@ -1,5 +1,15 @@
1
1
  # Zendesk Support changelog
2
2
 
3
+ ## [0.18.28] - 2026-01-06
4
+ - Updated connector definition (YAML version 0.1.4)
5
+ - Source commit: 0580c727
6
+ - SDK version: 0.1.0
7
+
8
+ ## [0.18.27] - 2026-01-06
9
+ - Updated connector definition (YAML version 0.1.4)
10
+ - Source commit: e0e2f989
11
+ - SDK version: 0.1.0
12
+
3
13
  ## [0.18.26] - 2026-01-05
4
14
  - Updated connector definition (YAML version 0.1.4)
5
15
  - Source commit: 3e274293
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airbyte-agent-zendesk-support
3
- Version: 0.18.26
3
+ Version: 0.18.28
4
4
  Summary: Airbyte Zendesk-Support Connector for AI platforms
5
5
  Project-URL: Homepage, https://github.com/airbytehq/airbyte-embedded
6
6
  Project-URL: Documentation, https://github.com/airbytehq/airbyte-embedded/tree/main/integrations
@@ -47,10 +47,10 @@ The Zendesk-Support connector is optimized to handle prompts like these.
47
47
 
48
48
  - Show me the tickets assigned to me last week
49
49
  - What are the top 5 support issues our organization has faced this month?
50
- - List all unresolved tickets for {customer}
50
+ - List all unresolved tickets for \{customer\}
51
51
  - Analyze the satisfaction ratings for our support team in the last 30 days
52
52
  - Compare ticket resolution times across different support groups
53
- - Show me the details of recent tickets tagged with {tag}
53
+ - Show me the details of recent tickets tagged with \{tag\}
54
54
  - Identify the most common ticket fields used in our support workflow
55
55
  - Summarize the performance of our SLA policies this quarter
56
56
 
@@ -58,11 +58,11 @@ The Zendesk-Support connector is optimized to handle prompts like these.
58
58
 
59
59
  The Zendesk-Support connector isn't currently able to handle prompts like these.
60
60
 
61
- - Create a new support ticket for {customer}
61
+ - Create a new support ticket for \{customer\}
62
62
  - Update the priority of this ticket
63
- - Assign this ticket to {team_member}
63
+ - Assign this ticket to \{team_member\}
64
64
  - Delete these old support tickets
65
- - Send an automatic response to {customer}
65
+ - Send an automatic response to \{customer\}
66
66
 
67
67
  ## Installation
68
68
 
@@ -141,6 +141,6 @@ For the service's official API docs, see the [Zendesk-Support API reference](htt
141
141
 
142
142
  ## Version information
143
143
 
144
- - **Package version:** 0.18.26
144
+ - **Package version:** 0.18.28
145
145
  - **Connector version:** 0.1.4
146
- - **Generated with Connector SDK commit SHA:** 3e2742932eecef344732bfedb7036ca6299c8f80
146
+ - **Generated with Connector SDK commit SHA:** 0580c7278394ff52ee3bec5d5192905ac3b15878
@@ -13,10 +13,10 @@ The Zendesk-Support connector is optimized to handle prompts like these.
13
13
 
14
14
  - Show me the tickets assigned to me last week
15
15
  - What are the top 5 support issues our organization has faced this month?
16
- - List all unresolved tickets for {customer}
16
+ - List all unresolved tickets for \{customer\}
17
17
  - Analyze the satisfaction ratings for our support team in the last 30 days
18
18
  - Compare ticket resolution times across different support groups
19
- - Show me the details of recent tickets tagged with {tag}
19
+ - Show me the details of recent tickets tagged with \{tag\}
20
20
  - Identify the most common ticket fields used in our support workflow
21
21
  - Summarize the performance of our SLA policies this quarter
22
22
 
@@ -24,11 +24,11 @@ The Zendesk-Support connector is optimized to handle prompts like these.
24
24
 
25
25
  The Zendesk-Support connector isn't currently able to handle prompts like these.
26
26
 
27
- - Create a new support ticket for {customer}
27
+ - Create a new support ticket for \{customer\}
28
28
  - Update the priority of this ticket
29
- - Assign this ticket to {team_member}
29
+ - Assign this ticket to \{team_member\}
30
30
  - Delete these old support tickets
31
- - Send an automatic response to {customer}
31
+ - Send an automatic response to \{customer\}
32
32
 
33
33
  ## Installation
34
34
 
@@ -107,6 +107,6 @@ For the service's official API docs, see the [Zendesk-Support API reference](htt
107
107
 
108
108
  ## Version information
109
109
 
110
- - **Package version:** 0.18.26
110
+ - **Package version:** 0.18.28
111
111
  - **Connector version:** 0.1.4
112
- - **Generated with Connector SDK commit SHA:** 3e2742932eecef344732bfedb7036ca6299c8f80
112
+ - **Generated with Connector SDK commit SHA:** 0580c7278394ff52ee3bec5d5192905ac3b15878
@@ -674,16 +674,16 @@ class LocalExecutor:
674
674
  return {key: value for key, value in params.items() if key in allowed_params}
675
675
 
676
676
  def _extract_body(self, allowed_fields: list[str], params: dict[str, Any]) -> dict[str, Any]:
677
- """Extract body fields from params.
677
+ """Extract body fields from params, filtering out None values.
678
678
 
679
679
  Args:
680
680
  allowed_fields: List of allowed body field names
681
681
  params: All parameters
682
682
 
683
683
  Returns:
684
- Dictionary of body fields
684
+ Dictionary of body fields with None values filtered out
685
685
  """
686
- return {key: value for key, value in params.items() if key in allowed_fields}
686
+ return {key: value for key, value in params.items() if key in allowed_fields and value is not None}
687
687
 
688
688
  def _serialize_deep_object_params(self, params: dict[str, Any], deep_object_param_names: list[str]) -> dict[str, Any]:
689
689
  """Serialize deepObject parameters to bracket notation format.
@@ -837,7 +837,9 @@ class LocalExecutor:
837
837
  Request body dict or None if no body needed
838
838
  """
839
839
  if endpoint.graphql_body:
840
- return self._build_graphql_body(endpoint.graphql_body, params)
840
+ # Extract defaults from query_params_schema for GraphQL variable interpolation
841
+ param_defaults = {name: schema.get("default") for name, schema in endpoint.query_params_schema.items() if "default" in schema}
842
+ return self._build_graphql_body(endpoint.graphql_body, params, param_defaults)
841
843
  elif endpoint.body_fields:
842
844
  return self._extract_body(endpoint.body_fields, params)
843
845
  return None
@@ -903,12 +905,18 @@ class LocalExecutor:
903
905
 
904
906
  return query
905
907
 
906
- def _build_graphql_body(self, graphql_config: dict[str, Any], params: dict[str, Any]) -> dict[str, Any]:
908
+ def _build_graphql_body(
909
+ self,
910
+ graphql_config: dict[str, Any],
911
+ params: dict[str, Any],
912
+ param_defaults: dict[str, Any] | None = None,
913
+ ) -> dict[str, Any]:
907
914
  """Build GraphQL request body with variable substitution and field selection.
908
915
 
909
916
  Args:
910
917
  graphql_config: GraphQL configuration from x-airbyte-body-type extension
911
918
  params: Parameters from execute() call
919
+ param_defaults: Default values for params from query_params_schema
912
920
 
913
921
  Returns:
914
922
  GraphQL request body: {"query": "...", "variables": {...}}
@@ -922,7 +930,7 @@ class LocalExecutor:
922
930
 
923
931
  # Substitute variables from params
924
932
  if "variables" in graphql_config and graphql_config["variables"]:
925
- body["variables"] = self._interpolate_variables(graphql_config["variables"], params)
933
+ body["variables"] = self._interpolate_variables(graphql_config["variables"], params, param_defaults)
926
934
 
927
935
  # Add operation name if specified
928
936
  if "operationName" in graphql_config:
@@ -981,7 +989,12 @@ class LocalExecutor:
981
989
  fields_str = " ".join(graphql_fields)
982
990
  return query.replace("{{ fields }}", fields_str)
983
991
 
984
- def _interpolate_variables(self, variables: dict[str, Any], params: dict[str, Any]) -> dict[str, Any]:
992
+ def _interpolate_variables(
993
+ self,
994
+ variables: dict[str, Any],
995
+ params: dict[str, Any],
996
+ param_defaults: dict[str, Any] | None = None,
997
+ ) -> dict[str, Any]:
985
998
  """Recursively interpolate variables using params.
986
999
 
987
1000
  Preserves types (doesn't stringify everything).
@@ -990,15 +1003,18 @@ class LocalExecutor:
990
1003
  - Direct replacement: "{{ owner }}" → params["owner"] (preserves type)
991
1004
  - Nested objects: {"input": {"name": "{{ name }}"}}
992
1005
  - Arrays: [{"id": "{{ id }}"}]
993
- - Unsubstituted placeholders: "{{ states }}" → None (for optional params)
1006
+ - Default values: "{{ per_page }}" → param_defaults["per_page"] if not in params
1007
+ - Unsubstituted placeholders: "{{ states }}" → None (for optional params without defaults)
994
1008
 
995
1009
  Args:
996
1010
  variables: Variables dict with template placeholders
997
1011
  params: Parameters to substitute
1012
+ param_defaults: Default values for params from query_params_schema
998
1013
 
999
1014
  Returns:
1000
1015
  Interpolated variables dict with types preserved
1001
1016
  """
1017
+ defaults = param_defaults or {}
1002
1018
 
1003
1019
  def interpolate_value(value: Any) -> Any:
1004
1020
  if isinstance(value, str):
@@ -1012,8 +1028,15 @@ class LocalExecutor:
1012
1028
  value = value.replace(placeholder, str(param_value))
1013
1029
 
1014
1030
  # Check if any unsubstituted placeholders remain
1015
- # If so, return None (treats as "not provided" for optional params)
1016
1031
  if re.search(r"\{\{\s*\w+\s*\}\}", value):
1032
+ # Extract placeholder name and check for default value
1033
+ match = re.search(r"\{\{\s*(\w+)\s*\}\}", value)
1034
+ if match:
1035
+ param_name = match.group(1)
1036
+ if param_name in defaults:
1037
+ # Use default value (preserves type)
1038
+ return defaults[param_name]
1039
+ # No default found - return None (for optional params)
1017
1040
  return None
1018
1041
 
1019
1042
  return value
@@ -1151,21 +1174,18 @@ class LocalExecutor:
1151
1174
  if action not in (Action.CREATE, Action.UPDATE):
1152
1175
  return
1153
1176
 
1154
- # Check if endpoint has body fields defined
1155
- if not endpoint.body_fields:
1177
+ # Get the request schema to find truly required fields
1178
+ request_schema = endpoint.request_schema
1179
+ if not request_schema:
1156
1180
  return
1157
1181
 
1158
- # For now, we treat all body_fields as potentially required for CREATE/UPDATE
1159
- # In a more advanced implementation, we could parse the request schema
1160
- # to identify truly required fields
1161
- missing_fields = []
1162
- for field in endpoint.body_fields:
1163
- if field not in params:
1164
- missing_fields.append(field)
1182
+ # Only validate fields explicitly marked as required in the schema
1183
+ required_fields = request_schema.get("required", [])
1184
+ missing_fields = [field for field in required_fields if field not in params]
1165
1185
 
1166
1186
  if missing_fields:
1167
1187
  raise MissingParameterError(
1168
- f"Missing required body fields for {entity}.{action.value}: {missing_fields}. Provided parameters: {list(params.keys())}"
1188
+ f"Missing required body fields for {entity}.{action.value}: {missing_fields}. " f"Provided parameters: {list(params.keys())}"
1169
1189
  )
1170
1190
 
1171
1191
  async def close(self):
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "airbyte-agent-zendesk-support"
3
- version = "0.18.26"
3
+ version = "0.18.28"
4
4
  description = "Airbyte Zendesk-Support Connector for AI platforms"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.9"