diff --git a/change/@useairfoil-producer-zendesk-2c6d6c00-afc7-4357-b3e4-5047cba0b4f0.json b/change/@useairfoil-producer-zendesk-2c6d6c00-afc7-4357-b3e4-5047cba0b4f0.json new file mode 100644 index 00000000..b592db89 --- /dev/null +++ b/change/@useairfoil-producer-zendesk-2c6d6c00-afc7-4357-b3e4-5047cba0b4f0.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add the Zendesk producer connector", + "packageName": "@useairfoil/producer-zendesk", + "email": "jadejajaipal5@gmail.com", + "dependentChangeType": "patch" +} diff --git a/connectors/producer-zendesk/.env.example b/connectors/producer-zendesk/.env.example new file mode 100644 index 00000000..057ebe35 --- /dev/null +++ b/connectors/producer-zendesk/.env.example @@ -0,0 +1,23 @@ +ZENDESK_SUBDOMAIN=acme +ZENDESK_CLIENT_ID=airfoil +ZENDESK_CLIENT_SECRET=XX +AIRFOIL_HTTP_PORT=8080 + +WINGS_URI=http://localhost:7777 +AIRFOIL_CATALOG=default-catalog +AIRFOIL_TABLE_BINDINGS={"tickets":{"namespace":["default"],"name":"zendesk_tickets"},"ticket_comments":{"namespace":["default"],"name":"zendesk_ticket_comments"},"users":{"namespace":["default"],"name":"zendesk_users"},"organizations":{"namespace":["default"],"name":"zendesk_organizations"},"groups":{"namespace":["default"],"name":"zendesk_groups"},"brands":{"namespace":["default"],"name":"zendesk_brands"},"ticket_fields":{"namespace":["default"],"name":"zendesk_ticket_fields"},"ticket_forms":{"namespace":["default"],"name":"zendesk_ticket_forms"},"custom_statuses":{"namespace":["default"],"name":"zendesk_custom_statuses"},"survey_responses":{"namespace":["default"],"name":"zendesk_survey_responses"},"csat_surveys":{"namespace":["default"],"name":"zendesk_csat_surveys"},"ticket_field_history":{"namespace":["default"],"name":"zendesk_ticket_field_history"},"ticket_metric_events":{"namespace":["default"],"name":"zendesk_ticket_metric_events"},"satisfaction_ratings":{"namespace":["default"],"name":"zendesk_satisfaction_ratings"},"group_memberships":{"namespace":["default"],"name":"zendesk_group_memberships"},"organization_memberships":{"namespace":["default"],"name":"zendesk_organization_memberships"},"user_fields":{"namespace":["default"],"name":"zendesk_user_fields"},"organization_fields":{"namespace":["default"],"name":"zendesk_organization_fields"},"custom_roles":{"namespace":["default"],"name":"zendesk_custom_roles"},"sla_policies":{"namespace":["default"],"name":"zendesk_sla_policies"},"schedules":{"namespace":["default"],"name":"zendesk_schedules"},"macros":{"namespace":["default"],"name":"zendesk_macros"},"articles":{"namespace":["default"],"name":"zendesk_articles"},"sections":{"namespace":["default"],"name":"zendesk_sections"},"categories":{"namespace":["default"],"name":"zendesk_categories"},"community_posts":{"namespace":["default"],"name":"zendesk_community_posts"},"community_topics":{"namespace":["default"],"name":"zendesk_community_topics"},"talk_lines":{"namespace":["default"],"name":"zendesk_talk_lines"}} + +# Production `start` also requires a mounted connector JSON file and PostgreSQL state. +# Sandboxes do not use these values. +# AIRFOIL_CONFIG_PATH=/var/run/airfoil/config/config.json +# AIRFOIL_CONNECTOR_INSTANCE_ID=team-acme-zendesk-primary +# POSTGRES_CONNECTION_STRING=postgresql://user:password@localhost:5432/airfoil + +# Optional OpenTelemetry trace and metric export. Logs remain local. +# The endpoint is the OTLP base URL; Connector Kit appends /v1/traces and /v1/metrics. +OTEL_ENABLED=false +OTEL_SERVICE_NAME=producer-zendesk +# OTEL_SERVICE_VERSION=0.1.0 +# OTEL_RESOURCE_ATTRIBUTES=service.instance.id=team-acme-zendesk-primary,airfoil.connector.revision=1,airfoil.team.id=team-acme +OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 +# OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer ,X-Axiom-Dataset= diff --git a/connectors/producer-zendesk/AGENTS.md b/connectors/producer-zendesk/AGENTS.md new file mode 100644 index 00000000..7cad965e --- /dev/null +++ b/connectors/producer-zendesk/AGENTS.md @@ -0,0 +1,55 @@ +# Zendesk producer + +## Current scope + +- Resources: tickets and their comments, field history, and metric events; + users and organizations with their memberships and fields; CSAT; Help + Center; Talk lines; and the lists in `src/resources/lists.ts` +- Auth: one OAuth client with the client credentials grant, for one account +- Changes: every 5 minutes for the exports, every hour for the rest +- Webhooks: none + +## Zendesk rules + +- Every request goes through `src/client`, so VCR records it. +- Incremental exports allow 10 calls a minute, shared with every other tool on + the account. The users export has its own 20. Their limiters ignore headers, + or they would pick up the account limit. Calls are spaced evenly, because a + full bucket bursts past the limit. +- A `401` drops the cached token and tries once more. +- The token asks for `read`. Schedules and Talk have no narrower scope. +- Tokens ask for `expires_in`. Without it, older clients make tokens that + never expire and pile up in the account. +- Use the cursor exports where they exist (tickets, users). Organizations, + ticket events, metric events, and Help Center articles only have time-based + ones. The articles export has no `end_of_stream`. +- Zendesk holds back the last minute. The first changes run starts a minute + before the cutoff. +- Lists use `page[size]` cursor paging. Custom statuses, SLA policies, roles, + schedules, and Talk lines have none. The survey APIs allow at most 50 a page. + +Ticket versions use `generated_timestamp`: `updated_at` misses system updates. +Comments use the ticket event time. Survey responses use the latest answer's +`updated_at`. Other resources use `updated_at`, except schedules and Talk +lines, which use the read time: holidays don't change `updated_at`, and lines +have none. + +Deleted tickets have `status: "deleted"` and can be restored, so ticket rows +send `_deleted: false`. Users (`active: false`) and organizations +(`deleted_at`) can't be restored, so their other rows leave it out. The small +lists drop deleted items, so they have no `_deleted`. Memberships keep the IDs +they saw in their cursor and send deletes for the ones that are gone. + +A comment event shows the comment as it is now. After a comment or attachment +redaction, read the ticket's comments again. Skip `404` for deleted tickets. +Privacy changes have no child events and are not caught. + +Survey answers can change for 28 days. The list filters by when the survey was +sent, so read from 29 days before the saved cursor, not the current time. +Skip responses with no answers. + +A column can't go back to null. Before adding a column Zendesk often clears, +note it in the README. + +Record VCR against a test account only. The VCR test builds the connector once, +because a second token request would replay the redacted token. diff --git a/connectors/producer-zendesk/Dockerfile b/connectors/producer-zendesk/Dockerfile new file mode 100644 index 00000000..4a5a09a9 --- /dev/null +++ b/connectors/producer-zendesk/Dockerfile @@ -0,0 +1,34 @@ +# syntax=docker/dockerfile:1 + +FROM node:24-bookworm-slim AS build + +ENV PNPM_HOME=/pnpm +ENV PATH=$PNPM_HOME:$PATH + +RUN corepack enable && corepack prepare pnpm@10.33.2 --activate + +WORKDIR /workspace + +COPY pnpm-lock.yaml pnpm-workspace.yaml package.json nx.json ./ +RUN pnpm fetch --frozen-lockfile + +COPY . . +RUN pnpm install --offline --frozen-lockfile +RUN pnpm nx run @useairfoil/producer-zendesk:build +RUN pnpm --config.inject-workspace-packages=true \ + --filter @useairfoil/producer-zendesk deploy --prod /connector + +FROM node:24-bookworm-slim AS runtime + +ENV NODE_ENV=production + +WORKDIR /app + +COPY --from=build --chown=node:node /connector ./ + +USER node + +EXPOSE 8080 + +ENTRYPOINT ["node", "dist/main.mjs"] +CMD ["start"] diff --git a/connectors/producer-zendesk/README.md b/connectors/producer-zendesk/README.md new file mode 100644 index 00000000..fe6e1f38 --- /dev/null +++ b/connectors/producer-zendesk/README.md @@ -0,0 +1,70 @@ +# Zendesk producer + +Syncs tickets, comments, field history, metric events, users, organizations, +satisfaction ratings and surveys, Help Center articles and community posts, +Talk lines, and the lists that name their IDs from one Zendesk account. It +backfills each resource and polls for changes. There are no webhooks. + +## Config + +| Variable | Required | Default | +| ----------------------- | -------- | ------- | +| `ZENDESK_SUBDOMAIN` | yes | none | +| `ZENDESK_CLIENT_ID` | yes | none | +| `ZENDESK_CLIENT_SECRET` | yes | none | + +## Setup + +As an admin, add an OAuth client in Admin Center under +Apps and integrations > APIs > OAuth clients: + +- Client kind: Confidential. +- Scopes: leave empty, or allow `read`. +- No redirect URL is needed. + +Use the Identifier as `ZENDESK_CLIENT_ID` and the secret as +`ZENDESK_CLIENT_SECRET`. Use `acme` for `acme.zendesk.com`; the full address +also works. + +The token uses the permissions of the admin who made the client. + +## Data + +- `tickets.metrics` holds reply, wait, and resolution times. `custom_fields` + maps field IDs to values, and `ticket_fields` names them. +- `ticket_comments` includes internal notes (`public` is false). It has the + text, not attachment files. +- Deleted tickets, users, and organizations get `_deleted`. Restored tickets + come back. +- Groups, brands, ticket fields, forms, and statuses keep deleted items, so + older tickets still have their names. So do the other lists, articles, and + Talk lines. Removed group and organization memberships get `_deleted`. +- `ticket_field_history` has one row per changed field. Custom fields use + their ID. +- `satisfaction_ratings` holds legacy CSAT ratings. A new score is a new row. +- `survey_responses` holds CSAT answers. `csat_surveys` names the questions + and options. Both need the new CSAT, on Support Professional or Suite Growth + and up. Unanswered surveys are skipped. +- Tables hold names, emails, and ticket text. Treat them as confidential. + +## Limits + +- Incremental exports share a limit of 10 calls a minute per account, or 30 + with the High Volume add-on. Large comment backfills can be slow. +- `ticket_comments` and `ticket_field_history` each read the ticket events + export, so both count toward that limit. +- Exports are polled every 5 minutes. Zendesk leaves out the latest minute. +- A column can't go back to null. A cleared assignee keeps its old value, and + so does `organization_id` when its organization is deleted. +- A comment made private later stays public in `ticket_comments`. Zendesk's + event for it has no details. A redacted comment or attachment is read again. + +## Local development + +```bash +cd connectors/producer-zendesk +pnpm sandbox +``` + +`pnpm start` runs the hosted connector. It needs the Wings and PostgreSQL +variables from the [Connector Kit README](../../packages/connector-kit/README.md). diff --git a/connectors/producer-zendesk/package.json b/connectors/producer-zendesk/package.json new file mode 100644 index 00000000..9008036d --- /dev/null +++ b/connectors/producer-zendesk/package.json @@ -0,0 +1,49 @@ +{ + "name": "@useairfoil/producer-zendesk", + "version": "0.0.1", + "repository": "useairfoil/typescript-sdk", + "files": [ + "dist", + "src", + "README.md" + ], + "type": "module", + "main": "./dist/index.mjs", + "types": "./dist/index.d.mts", + "exports": { + ".": { + "types": "./dist/index.d.mts", + "import": "./dist/index.mjs", + "default": "./dist/index.mjs" + }, + "./manifest": { + "types": "./dist/manifest.d.mts", + "import": "./dist/manifest.mjs", + "default": "./dist/manifest.mjs" + } + }, + "scripts": { + "build": "tsdown", + "docker:build": "docker build --load --file Dockerfile --tag airfoil/producer-zendesk:local ../..", + "start": "tsx --env-file=.env src/main.ts start", + "sandbox": "tsx --env-file=.env src/main.ts sandbox", + "test": "dotenvx run --ignore=MISSING_ENV_FILE --quiet -- vitest", + "test:ci": "dotenvx run --ignore=MISSING_ENV_FILE --quiet -- vitest run", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@effect/platform-node": "catalog:", + "@effect/sql-pg": "catalog:", + "@useairfoil/connector-kit": "workspace:*", + "effect": "catalog:" + }, + "devDependencies": { + "@dotenvx/dotenvx": "^1.62.0", + "@effect/vitest": "catalog:", + "@types/node": "catalog:", + "@useairfoil/effect-vcr": "workspace:*", + "tsdown": "catalog:", + "tsx": "^4.21.0", + "vitest": "catalog:" + } +} diff --git a/connectors/producer-zendesk/src/client/auth.ts b/connectors/producer-zendesk/src/client/auth.ts new file mode 100644 index 00000000..60620ba2 --- /dev/null +++ b/connectors/producer-zendesk/src/client/auth.ts @@ -0,0 +1,104 @@ +import { Auth, ConnectorError, Telemetry } from "@useairfoil/connector-kit"; +import { Context, Duration, Effect, Layer, Redacted, Schedule, Schema } from "effect"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; + +import type { ZendeskConfig } from "../manifest"; + +import { baseUrl } from "./constants"; + +type ZendeskAuthConfig = Pick; + +export type ZendeskAuthService = Auth.TokenCache; + +export class ZendeskAuth extends Context.Service()( + "@useairfoil/producer-zendesk/ZendeskAuth", +) {} + +// Schedules and Talk have no narrower scope. +export const scopes = "read"; + +// Older OAuth clients issue non-expiring tokens without expires_in. +const tokenLifetime = Duration.minutes(30); + +const TokenResponseSchema = Schema.Struct({ + access_token: Schema.String, + expires_in: Schema.Number, +}); + +const TokenErrorSchema = Schema.Struct({ error: Schema.optional(Schema.String) }); + +const tokenError = (response: HttpClientResponse.HttpClientResponse, subdomain: string) => + HttpClientResponse.schemaBodyJson(TokenErrorSchema)(response).pipe( + Effect.map((body) => body.error), + Effect.orElseSucceed(() => undefined), + Effect.flatMap((error) => + Effect.fail( + new ConnectorError({ + message: + response.status === 404 + ? `No Zendesk account at ${baseUrl(subdomain)}` + : error === "invalid_client" + ? "Zendesk rejected the OAuth client ID or secret" + : error === "invalid_scope" + ? `The Zendesk OAuth client must allow these scopes: ${scopes}` + : `Zendesk returned ${response.status} for the OAuth token`, + }), + ), + ), + ); + +export const make = Effect.fnUntraced(function* (config: ZendeskAuthConfig) { + const client = (yield* HttpClient.HttpClient).pipe( + HttpClient.retryTransient({ + schedule: Schedule.exponential("250 millis").pipe(Schedule.jittered), + times: 3, + }), + ); + const request = HttpClientRequest.post(`${baseUrl(config.subdomain)}/oauth/tokens`).pipe( + HttpClientRequest.acceptJson, + HttpClientRequest.bodyJsonUnsafe({ + grant_type: "client_credentials", + client_id: config.clientId, + client_secret: Redacted.value(config.clientSecret), + scope: scopes, + expires_in: Duration.toSeconds(tokenLifetime), + }), + ); + + return yield* Auth.makeTokenCache({ + acquire: Effect.gen(function* () { + const response = yield* client + .execute(request) + .pipe( + Effect.mapError( + (cause) => new ConnectorError({ message: "Zendesk OAuth token request failed", cause }), + ), + ); + const body = yield* HttpClientResponse.matchStatus(response, { + "2xx": (ok) => + HttpClientResponse.schemaBodyJson(TokenResponseSchema)(ok).pipe( + Effect.mapError( + (cause) => + new ConnectorError({ message: "Invalid Zendesk OAuth token response", cause }), + ), + ), + orElse: (response) => tokenError(response, config.subdomain), + }); + return { + value: Redacted.make(body.access_token), + expiresIn: Duration.seconds(body.expires_in), + }; + }).pipe( + Effect.tapError((error) => Telemetry.annotateError("api_auth", error)), + Effect.withSpan(Telemetry.SpanName.apiFetch, { + kind: "client", + attributes: { [Telemetry.Attr.apiPath]: "/oauth/tokens" }, + }), + ), + }); +}); + +export const layer = ( + config: ZendeskAuthConfig, +): Layer.Layer => + Layer.effect(ZendeskAuth)(make(config)); diff --git a/connectors/producer-zendesk/src/client/client.ts b/connectors/producer-zendesk/src/client/client.ts new file mode 100644 index 00000000..6a2509e5 --- /dev/null +++ b/connectors/producer-zendesk/src/client/client.ts @@ -0,0 +1,237 @@ +import { ConnectorError, Metrics, Telemetry } from "@useairfoil/connector-kit"; +import { + Config, + Context, + Duration, + Effect, + Layer, + Option, + Predicate, + Redacted, + Schedule, + Schema, +} from "effect"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; +import { RateLimiter } from "effect/persistence"; + +import { type ZendeskConfig, manifest } from "../manifest"; +import * as ZendeskAuth from "./auth"; +import { baseUrl } from "./constants"; + +const maxRetries = 5; +const retryBaseDelay = Duration.seconds(1); +const requestTimeout = Duration.minutes(2); +// Start at the lowest plan limit; headers give the account's actual limit. +const accountLimit = 200; +// Incremental exports allow 10 per minute, shared with every other tool on the +// account. The users export has its own 20. We space calls out evenly, since a +// full bucket would let a burst through on top of the refill. Their limiters +// ignore headers, or they would pick up the account limit. +const exportInterval = "6 seconds"; +const usersExportInterval = "3 seconds"; + +export type ZendeskClientService = { + readonly get: ( + schema: Schema.Decoder, + path: string, + params?: Readonly>, + ) => Effect.Effect; + /** Like `get`, but a `404` gives `None`. */ + readonly find: ( + schema: Schema.Decoder, + path: string, + params?: Readonly>, + ) => Effect.Effect, ConnectorError>; +}; + +export class ZendeskClient extends Context.Service()( + "@useairfoil/producer-zendesk/ZendeskClient", +) {} + +const ErrorBodySchema = Schema.Struct({ + description: Schema.optional(Schema.String), + // The survey API puts it here instead. + errors: Schema.optional(Schema.Array(Schema.Struct({ title: Schema.String }))), +}); + +const statusError = (response: HttpClientResponse.HttpClientResponse, path: string) => + HttpClientResponse.schemaBodyJson(ErrorBodySchema)(response).pipe( + Effect.map((body) => body.description ?? body.errors?.[0]?.title), + Effect.orElseSucceed(() => undefined), + Effect.flatMap((detail) => + Effect.fail( + new ConnectorError({ + message: `Zendesk API returned ${response.status} for ${path}${detail ? `: ${detail}` : ""}`, + }), + ), + ), + Effect.tapError((error) => Telemetry.annotateError("api_status", error)), + ); + +const isResponse = (value: unknown): value is HttpClientResponse.HttpClientResponse => + Predicate.hasProperty(value, HttpClientResponse.TypeId); + +const retrySchedule = Metrics.retrySchedule({ + connector: manifest.name, + baseDelay: retryBaseDelay, + times: maxRetries, +}).pipe( + Schedule.modifyDelay(({ input, duration }) => { + const retryAfter = + isResponse(input) && input.status === 429 ? Number(input.headers["retry-after"]) : Number.NaN; + return Effect.succeed(Number.isFinite(retryAfter) ? Duration.seconds(retryAfter) : duration); + }), +); + +export const make = Effect.fnUntraced(function* (config: Pick) { + const auth = yield* ZendeskAuth.ZendeskAuth; + const limiter = yield* RateLimiter.RateLimiter; + const base = (yield* HttpClient.HttpClient).pipe( + HttpClient.mapRequest(HttpClientRequest.prependUrl(`${baseUrl(config.subdomain)}/api/v2`)), + HttpClient.mapRequest(HttpClientRequest.acceptJson), + HttpClient.mapRequestEffect((request) => + auth.get.pipe( + Effect.map((token) => HttpClientRequest.bearerToken(request, Redacted.value(token))), + ), + ), + // Rate limit waits don't count towards the attempt's timeout. + HttpClient.transform((effect) => Effect.timeout(effect, requestTimeout)), + ); + const limited = (options: { + readonly key: string; + readonly limit: number; + readonly window: Duration.Input; + readonly readHeaders: boolean; + }) => + base.pipe( + HttpClient.withRateLimiter({ + limiter, + key: options.key, + limit: options.limit, + window: options.window, + algorithm: "token-bucket", + // `retryTransient` retries `429`, with a cap and a metric. + times: 0, + disableResponseInspection: !options.readHeaders, + }), + HttpClient.retryTransient({ schedule: retrySchedule }), + ); + const client = limited({ + key: "zendesk", + limit: accountLimit, + window: "1 minute", + readHeaders: true, + }); + const exportClient = limited({ + key: "zendesk-export", + limit: 1, + window: exportInterval, + readHeaders: false, + }); + const usersExportClient = limited({ + key: "zendesk-users-export", + limit: 1, + window: usersExportInterval, + readHeaders: false, + }); + const clientFor = (path: string) => + path.startsWith("/incremental/users/") + ? usersExportClient + : path.startsWith("/incremental/") + ? exportClient + : client; + + const send = (path: string, params: Readonly>) => { + const execute = clientFor(path).execute( + HttpClientRequest.get(path).pipe(HttpClientRequest.setUrlParams(params)), + ); + return execute.pipe( + // A revoked token stays cached until it expires, so get a new one once. + Effect.flatMap((response) => + response.status === 401 + ? auth.invalidate.pipe(Effect.andThen(execute)) + : Effect.succeed(response), + ), + Effect.catchTag(["HttpClientError", "RateLimiterError", "TimeoutError"], (error) => + Telemetry.annotateError("api_http", error).pipe( + Effect.andThen( + Effect.fail( + new ConnectorError({ + message: `Zendesk API request ${error._tag === "TimeoutError" ? "timed out" : "failed"} for ${path}`, + cause: error, + }), + ), + ), + ), + ), + ); + }; + + const decode = ( + schema: Schema.Decoder, + response: HttpClientResponse.HttpClientResponse, + path: string, + ) => + HttpClientResponse.matchStatus(response, { + "2xx": (ok) => + HttpClientResponse.schemaBodyJson(schema)(ok).pipe( + Effect.tapError((error) => Telemetry.annotateError("api_decode", error)), + Effect.mapError( + (error) => + new ConnectorError({ + message: Schema.isSchemaError(error) + ? `Zendesk API response for ${path} does not match the schema` + : `Zendesk API returned invalid JSON for ${path}`, + cause: error, + }), + ), + ), + orElse: (failed) => statusError(failed, path), + }); + + const traced = (path: string) => + Effect.withSpan(Telemetry.SpanName.apiFetch, { + kind: "client", + attributes: { [Telemetry.Attr.apiPath]: path }, + }); + + const get = ( + schema: Schema.Decoder, + path: string, + params: Readonly> = {}, + ) => + send(path, params).pipe( + Effect.flatMap((response) => decode(schema, response, path)), + traced(path), + ); + + const find = ( + schema: Schema.Decoder, + path: string, + params: Readonly> = {}, + ) => + send(path, params).pipe( + Effect.flatMap((response) => + response.status === 404 + ? Effect.succeedNone + : decode(schema, response, path).pipe(Effect.map(Option.some)), + ), + traced(path), + ); + + return ZendeskClient.of({ get, find }); +}); + +const RateLimiterLive = RateLimiter.layer.pipe(Layer.provide(RateLimiter.layerStoreMemory)); + +export const layer = ( + config: ZendeskConfig, +): Layer.Layer => + Layer.effect(ZendeskClient)(make(config)).pipe( + Layer.provide(Layer.merge(RateLimiterLive, ZendeskAuth.layer(config))), + ); + +export const layerConfig = ( + config: Config.Wrap, +): Layer.Layer => + Layer.unwrap(Config.unwrap(config).pipe(Effect.map(layer))); diff --git a/connectors/producer-zendesk/src/client/constants.ts b/connectors/producer-zendesk/src/client/constants.ts new file mode 100644 index 00000000..3a362a8b --- /dev/null +++ b/connectors/producer-zendesk/src/client/constants.ts @@ -0,0 +1,5 @@ +export const baseUrl = (subdomain: string) => + `https://${subdomain + .replace(/^https?:\/\//i, "") + .replace(/\/+$/, "") + .replace(/\.zendesk\.com$/i, "")}.zendesk.com`; diff --git a/connectors/producer-zendesk/src/connector.ts b/connectors/producer-zendesk/src/connector.ts new file mode 100644 index 00000000..8aa2492a --- /dev/null +++ b/connectors/producer-zendesk/src/connector.ts @@ -0,0 +1,90 @@ +import { Connector } from "@useairfoil/connector-kit"; +import { Config, Context, Effect, Layer } from "effect"; + +import type { ZendeskConfig } from "./manifest"; + +import * as ZendeskClient from "./client/client"; +import { makeCsatSurveys, makeSurveyResponses } from "./resources/csat"; +import { + makeArticles, + makeCategories, + makeCommunityPosts, + makeCommunityTopics, + makeSections, +} from "./resources/help-center"; +import { + makeBrands, + makeCustomRoles, + makeCustomStatuses, + makeGroups, + makeMacros, + makeOrganizationFields, + makeSchedules, + makeSlaPolicies, + makeTicketFields, + makeTicketForms, + makeUserFields, +} from "./resources/lists"; +import { makeGroupMemberships, makeOrganizationMemberships } from "./resources/memberships"; +import { makeOrganizations } from "./resources/organizations"; +import { makeSatisfactionRatings } from "./resources/satisfaction-ratings"; +import { makeTalkLines } from "./resources/talk"; +import { makeTicketComments } from "./resources/ticket-comments"; +import { makeTicketFieldHistory, makeTicketMetricEvents } from "./resources/ticket-events"; +import { makeTickets } from "./resources/tickets"; +import { makeUsers } from "./resources/users"; +export { ZendeskConfigDef, manifest } from "./manifest"; +export type { ZendeskConfig } from "./manifest"; + +export const make = Effect.fnUntraced(function* () { + const client = yield* ZendeskClient.ZendeskClient; + + return Connector.define({ + name: "producer-zendesk", + title: "Zendesk", + resources: [ + makeTickets(client), + makeTicketComments(client), + makeUsers(client), + makeOrganizations(client), + makeGroups(client), + makeBrands(client), + makeTicketFields(client), + makeTicketForms(client), + makeCustomStatuses(client), + makeSurveyResponses(client), + makeCsatSurveys(client), + makeTicketFieldHistory(client), + makeTicketMetricEvents(client), + makeSatisfactionRatings(client), + makeGroupMemberships(client), + makeOrganizationMemberships(client), + makeUserFields(client), + makeOrganizationFields(client), + makeCustomRoles(client), + makeSlaPolicies(client), + makeSchedules(client), + makeMacros(client), + makeArticles(client), + makeSections(client), + makeCategories(client), + makeCommunityPosts(client), + makeCommunityTopics(client), + makeTalkLines(client), + ], + }); +}); + +export type ZendeskConnectorRuntime = Effect.Success>; + +export class ZendeskConnector extends Context.Service()( + "@useairfoil/producer-zendesk/ZendeskConnector", +) {} + +export const layer = (config: ZendeskConfig) => + Layer.effect(ZendeskConnector)(make().pipe(Effect.annotateLogs({ component: "zendesk" }))).pipe( + Layer.provide(ZendeskClient.layer(config)), + ); + +export const layerConfig = (config: Config.Wrap) => + Layer.unwrap(Config.unwrap(config).pipe(Effect.map(layer))); diff --git a/connectors/producer-zendesk/src/create-table.ts b/connectors/producer-zendesk/src/create-table.ts new file mode 100644 index 00000000..94004a36 --- /dev/null +++ b/connectors/producer-zendesk/src/create-table.ts @@ -0,0 +1,5 @@ +import { ConnectorApp } from "@useairfoil/connector-kit"; + +import { tableSchemas } from "./tables"; + +export const createTableCommand = ConnectorApp.makeCreateTableCommand(tableSchemas); diff --git a/connectors/producer-zendesk/src/index.ts b/connectors/producer-zendesk/src/index.ts new file mode 100644 index 00000000..a364c462 --- /dev/null +++ b/connectors/producer-zendesk/src/index.ts @@ -0,0 +1,48 @@ +export * as ZendeskClient from "./client/client"; +export * as ZendeskConnector from "./connector"; +export { manifest } from "./manifest"; +export type { TicketComment } from "./schemas/comments"; +export { TicketCommentSchema } from "./schemas/comments"; +export { + BrandSchema, + CustomRoleSchema, + CustomStatusSchema, + GroupSchema, + MacroSchema, + OrganizationFieldSchema, + ScheduleSchema, + SlaPolicySchema, + TicketFieldSchema, + TicketFormSchema, + UserFieldSchema, +} from "./schemas/lists"; +export type { + Article, + Category, + CommunityPost, + CommunityTopic, + Section, +} from "./schemas/help-center"; +export { + ArticleSchema, + CategorySchema, + CommunityPostSchema, + CommunityTopicSchema, + SectionSchema, +} from "./schemas/help-center"; +export type { GroupMembership, OrganizationMembership } from "./schemas/memberships"; +export { GroupMembershipSchema, OrganizationMembershipSchema } from "./schemas/memberships"; +export type { SatisfactionRating } from "./schemas/satisfaction"; +export { SatisfactionRatingSchema } from "./schemas/satisfaction"; +export type { TalkLine } from "./schemas/talk"; +export { TalkLineSchema } from "./schemas/talk"; +export type { TicketFieldChange, TicketMetricEvent } from "./schemas/ticket-events"; +export { TicketFieldChangeSchema, TicketMetricEventSchema } from "./schemas/ticket-events"; +export type { Organization } from "./schemas/organizations"; +export { OrganizationSchema } from "./schemas/organizations"; +export type { CsatSurvey, SurveyResponse } from "./schemas/csat"; +export { CsatSurveySchema, SurveyResponseSchema } from "./schemas/csat"; +export type { Ticket } from "./schemas/tickets"; +export { TicketSchema } from "./schemas/tickets"; +export type { User } from "./schemas/users"; +export { UserSchema } from "./schemas/users"; diff --git a/connectors/producer-zendesk/src/main.ts b/connectors/producer-zendesk/src/main.ts new file mode 100644 index 00000000..355d3350 --- /dev/null +++ b/connectors/producer-zendesk/src/main.ts @@ -0,0 +1,21 @@ +#!/usr/bin/env node + +import { NodeRuntime, NodeServices } from "@effect/platform-node"; +import { Effect, Layer } from "effect"; +import { Command } from "effect/cli"; +import { FetchHttpClient } from "effect/http"; + +import packageJson from "../package.json"; +import { createTableCommand } from "./create-table"; +import { sandboxCommand } from "./sandbox"; +import { startCommand } from "./start"; + +const BootstrapLayer = Layer.mergeAll(FetchHttpClient.layer, NodeServices.layer); + +const program = Command.make("producer-zendesk", {}, () => Effect.void).pipe( + Command.withSubcommands([startCommand, sandboxCommand, createTableCommand]), +); + +const cli = Command.run(program, { version: packageJson.version }); + +NodeRuntime.runMain(cli.pipe(Effect.provide(BootstrapLayer), Effect.scoped)); diff --git a/connectors/producer-zendesk/src/manifest.ts b/connectors/producer-zendesk/src/manifest.ts new file mode 100644 index 00000000..3b30a6ac --- /dev/null +++ b/connectors/producer-zendesk/src/manifest.ts @@ -0,0 +1,56 @@ +import * as Manifest from "@useairfoil/connector-kit/manifest"; + +export const ZendeskConfigDef = Manifest.defineConfig({ + subdomain: Manifest.string({ + runtimeKey: "ZENDESK_SUBDOMAIN", + description: "Zendesk subdomain, for example acme for acme.zendesk.com.", + }), + clientId: Manifest.string({ + runtimeKey: "ZENDESK_CLIENT_ID", + description: "Identifier of a confidential Zendesk OAuth client, created by an admin.", + }), + clientSecret: Manifest.secret({ + runtimeKey: "ZENDESK_CLIENT_SECRET", + description: "Secret of the Zendesk OAuth client.", + }), +}); + +export type ZendeskConfig = Manifest.ConfigValuesOf; + +const capabilities = ["backfill", "changes"] as const; + +export const manifest = Manifest.define({ + name: "producer-zendesk", + title: "Zendesk", + config: ZendeskConfigDef.spec, + resources: [ + { name: "tickets", capabilities }, + { name: "ticket_comments", capabilities }, + { name: "users", capabilities }, + { name: "organizations", capabilities }, + { name: "groups", capabilities }, + { name: "brands", capabilities }, + { name: "ticket_fields", capabilities }, + { name: "ticket_forms", capabilities }, + { name: "custom_statuses", capabilities }, + { name: "survey_responses", capabilities }, + { name: "csat_surveys", capabilities }, + { name: "ticket_field_history", capabilities }, + { name: "ticket_metric_events", capabilities }, + { name: "satisfaction_ratings", capabilities }, + { name: "group_memberships", capabilities: ["changes"] }, + { name: "organization_memberships", capabilities: ["changes"] }, + { name: "user_fields", capabilities }, + { name: "organization_fields", capabilities }, + { name: "custom_roles", capabilities }, + { name: "sla_policies", capabilities }, + { name: "schedules", capabilities }, + { name: "macros", capabilities }, + { name: "articles", capabilities }, + { name: "sections", capabilities }, + { name: "categories", capabilities }, + { name: "community_posts", capabilities }, + { name: "community_topics", capabilities }, + { name: "talk_lines", capabilities }, + ], +}); diff --git a/connectors/producer-zendesk/src/resources/csat.ts b/connectors/producer-zendesk/src/resources/csat.ts new file mode 100644 index 00000000..a5991247 --- /dev/null +++ b/connectors/producer-zendesk/src/resources/csat.ts @@ -0,0 +1,146 @@ +import { Cursor, Fetch, Resource } from "@useairfoil/connector-kit"; +import { DateTime, Duration, Effect, Option } from "effect"; + +import type { ZendeskClientService } from "../client/client"; + +import { + type CsatSurvey, + type CsatSurveyObject, + CsatSurveyObjectSchema, + CsatSurveySchema, + type SurveyResponse, + type SurveyResponseObject, + SurveyResponseObjectSchema, + SurveyResponseSchema, +} from "../schemas/csat"; +import { hourly, listAll, listSources, readPage } from "./pages"; + +const list = { + path: "/guide/survey_responses", + key: "survey_responses", + item: SurveyResponseObjectSchema, + // This list allows at most 50 a page. + params: { "page[size]": "50", sort: "id" }, +}; +// Answers can change for 28 days; the list only filters by when surveys were sent. +const editableWindow = Duration.days(29); +// Allow for clock drift. +const overlap = Duration.minutes(10); + +// Unanswered surveys have no answer time to use as a version. +const toRow = (response: SurveyResponseObject): ReadonlyArray => { + const { answers } = response; + if (answers.length === 0) return []; + const csat = answers.find((answer) => answer.question.sub_type === "customer_satisfaction"); + // A messaging survey is about a conversation, not a ticket. + const ticket = response.subjects.find((subject) => subject.type === "ticket"); + return [ + { + id: response.id, + version: new Date(Math.max(...answers.map((answer) => answer.updated_at.getTime()))), + ticket_id: ticket === undefined ? null : BigInt(ticket.id), + responder_id: response.responder_id, + survey_id: response.survey.id, + survey_version: response.survey.version, + rating: csat?.rating ?? null, + rating_category: csat?.rating_category ?? null, + answers: answers.map((answer) => ({ + question_id: answer.question.id, + question_type: answer.question.type, + type: answer.type, + rating: answer.rating ?? null, + rating_category: answer.rating_category ?? null, + value: answer.value ?? null, + option_ids: (answer.selections ?? []).map((selection) => selection.option_id), + updated_at: answer.updated_at, + })), + expires_at: response.expires_at, + }, + ]; +}; + +export const makeSurveyResponses = (client: ZendeskClientService) => + Resource.entity({ + name: "survey_responses", + rowSchema: SurveyResponseSchema, + key: "id", + version: "version", + + check: readPage(client, { ...list, params: { "page[size]": "1" } }).pipe(Effect.asVoid), + backfill: Fetch.page({ + pageCursor: Cursor.string(), + cutoff: Cursor.isoDateTime(), + fetch: ({ pageCursor }) => + readPage(client, list, Option.fromNullishOr(pageCursor).pipe(Option.map(String))).pipe( + Effect.map(({ items, next }) => + Option.match(next, { + onNone: () => ({ rows: items.flatMap(toRow), hasMore: false }), + onSome: (cursor) => ({ + rows: items.flatMap(toRow), + hasMore: true, + nextPageCursor: cursor, + }), + }), + ), + ), + }), + changes: Fetch.changes({ + cursor: Cursor.isoDateTime(), + interval: hourly, + fetch: ({ cursor }) => + Effect.gen(function* () { + const now = yield* DateTime.now; + const lastRun = DateTime.makeUnsafe(String(cursor)); + const changedAfter = DateTime.subtractDuration(lastRun, overlap); + const responses = yield* listAll(client, { + ...list, + params: { + ...list.params, + "filter[created_at_start]": String( + DateTime.toEpochMillis(DateTime.subtractDuration(lastRun, editableWindow)), + ), + }, + }); + return { + rows: responses + .flatMap(toRow) + .filter((row) => row.version.getTime() > DateTime.toEpochMillis(changedAfter)), + cursor: DateTime.formatIso(now), + }; + }), + }), + }); + +const toSurveyRow = ({ version, questions, ...survey }: CsatSurveyObject): CsatSurvey => ({ + ...survey, + version: survey.updated_at, + survey_version: version, + questions: questions.map((question) => ({ + id: question.id, + type: question.type, + sub_type: question.sub_type ?? null, + headline: question.headline.value, + options: (question.options ?? []).map((option) => ({ + id: option.id ?? null, + rating: option.rating ?? null, + label: option.label.value, + })), + })), +}); + +export const makeCsatSurveys = (client: ZendeskClientService) => + Resource.entity({ + name: "csat_surveys", + rowSchema: CsatSurveySchema, + key: "id", + version: "version", + ...listSources( + // Labels come in this locale when they are dynamic content. + listAll(client, { + path: "/guide/en-us/surveys", + key: "surveys", + item: CsatSurveyObjectSchema, + params: { "page[size]": "50" }, + }).pipe(Effect.map((surveys) => surveys.map(toSurveyRow))), + ), + }); diff --git a/connectors/producer-zendesk/src/resources/exports.ts b/connectors/producer-zendesk/src/resources/exports.ts new file mode 100644 index 00000000..c362d366 --- /dev/null +++ b/connectors/producer-zendesk/src/resources/exports.ts @@ -0,0 +1,131 @@ +import { type ConnectorError, Cursor, Fetch } from "@useairfoil/connector-kit"; +import { DateTime, Duration, Effect, type Schema } from "effect"; + +import type { ZendeskClientService } from "../client/client"; + +const changesInterval = Duration.minutes(5); + +const millis = (time: string) => DateTime.toEpochMillis(DateTime.makeUnsafe(time)); + +// Zendesk leaves out the latest minute. Overlap the cutoff to catch it. +const firstStartTime = (cutoff: string) => + String(Math.floor((millis(cutoff) - Duration.toMillis(Duration.minutes(1))) / 1000)); + +// Only the cutoff is an ISO time. A cursor such as `1` also parses as a date. +const isCutoff = (cursor: string) => /^\d{4}-\d{2}-\d{2}T/.test(cursor); + +type ExportOptions = { + readonly client: ZendeskClientService; + readonly path: string; + readonly schema: Schema.Decoder; + readonly params?: Readonly>; + readonly rows: (page: Page) => Effect.Effect, ConnectorError>; +}; + +const check = (options: ExportOptions): Effect.Effect => + options.client + .get(options.schema, options.path, { ...options.params, start_time: "0", per_page: "1" }) + .pipe(Effect.asVoid); + +export const cursorExport = < + Page extends { readonly after_cursor: string | null; readonly end_of_stream: boolean }, + // Rows come in version order, so the backfill can stop past the cutoff. + Row extends { readonly version: Date }, +>( + options: ExportOptions, +) => { + const read = (params: Readonly>) => + options.client + .get(options.schema, options.path, { ...options.params, ...params }) + .pipe( + Effect.flatMap((page) => options.rows(page).pipe(Effect.map((rows) => ({ page, rows })))), + ); + + return { + check: check(options), + backfill: Fetch.page({ + pageCursor: Cursor.string(), + cutoff: Cursor.isoDateTime(), + fetch: ({ pageCursor, cutoff }) => + read(pageCursor === undefined ? { start_time: "0" } : { cursor: String(pageCursor) }).pipe( + Effect.map(({ page, rows }) => { + const last = rows.at(-1); + const pastCutoff = + last !== undefined && last.version.getTime() > millis(String(cutoff)); + const next = page.end_of_stream || pastCutoff ? null : page.after_cursor; + return next === null + ? { rows, hasMore: false } + : { rows, hasMore: true, nextPageCursor: next }; + }), + ), + }), + changes: Fetch.changes({ + cursor: Cursor.string(), + interval: changesInterval, + fetch: ({ cursor }) => { + const value = String(cursor); + return read( + isCutoff(value) ? { start_time: firstStartTime(value) } : { cursor: value }, + ).pipe( + Effect.map(({ page, rows }) => ({ + rows, + cursor: page.after_cursor ?? value, + hasMore: !page.end_of_stream, + })), + ); + }, + }), + }; +}; + +// Zendesk's end_time is the next start_time. Rows at the page edge can repeat. +export const timeExport = < + Page extends { readonly end_time: number | null; readonly end_of_stream: boolean }, + Row extends object, +>( + options: ExportOptions, +) => { + const read = (startTime: string) => + options.client + .get(options.schema, options.path, { ...options.params, start_time: startTime }) + .pipe( + Effect.flatMap((page) => options.rows(page).pipe(Effect.map((rows) => ({ page, rows })))), + ); + + return { + check: check(options), + backfill: Fetch.page({ + pageCursor: Cursor.string(), + cutoff: Cursor.isoDateTime(), + fetch: ({ pageCursor, cutoff }) => + read(pageCursor === undefined ? "0" : String(pageCursor)).pipe( + Effect.map(({ page, rows }) => { + const hasMore = + !page.end_of_stream && + page.end_time !== null && + page.end_time * 1000 < millis(String(cutoff)); + return { + rows, + hasMore, + ...(hasMore ? { nextPageCursor: String(page.end_time) } : {}), + }; + }), + ), + }), + changes: Fetch.changes({ + cursor: Cursor.string(), + interval: changesInterval, + fetch: ({ cursor }) => { + const value = String(cursor); + const startTime = isCutoff(value) ? firstStartTime(value) : value; + return read(startTime).pipe( + Effect.map(({ page, rows }) => ({ + rows, + cursor: page.end_time === null ? startTime : String(page.end_time), + hasMore: !page.end_of_stream, + })), + ); + }, + }), + }; +}; diff --git a/connectors/producer-zendesk/src/resources/help-center.ts b/connectors/producer-zendesk/src/resources/help-center.ts new file mode 100644 index 00000000..586efdf1 --- /dev/null +++ b/connectors/producer-zendesk/src/resources/help-center.ts @@ -0,0 +1,131 @@ +import { Resource } from "@useairfoil/connector-kit"; +import { Effect, Schema, SchemaTransformation, Struct } from "effect"; + +import type { ZendeskClientService } from "../client/client"; + +import { + ArticleObjectSchema, + ArticleSchema, + CategoryObjectSchema, + CategorySchema, + CommunityPostObjectSchema, + CommunityPostSchema, + CommunityTopicObjectSchema, + CommunityTopicSchema, + SectionObjectSchema, + SectionSchema, +} from "../schemas/help-center"; +import { timeExport } from "./exports"; +import { listAll, listSources } from "./pages"; + +const ArticlePage = { + articles: Schema.Array(ArticleObjectSchema), + end_time: Schema.NullOr(Schema.Number), +}; + +// This export has no `end_of_stream`, so the last page is the one with no +// `next_page`. An empty page says `end_time` is 1, so we drop it and keep the +// start time. +const ArticlePageSchema = Schema.Struct({ + ...ArticlePage, + next_page: Schema.NullOr(Schema.String), +}).pipe( + Schema.decodeTo( + Schema.toType(Schema.Struct({ ...ArticlePage, end_of_stream: Schema.Boolean })), + SchemaTransformation.transform({ + decode: ({ next_page, ...page }) => ({ + ...page, + end_time: page.articles.length === 0 ? null : page.end_time, + end_of_stream: next_page === null, + }), + encode: (page) => ({ ...Struct.omit(page, ["end_of_stream"]), next_page: null }), + }), + ), +); + +export const makeArticles = (client: ZendeskClientService) => + Resource.entity({ + name: "articles", + rowSchema: ArticleSchema, + key: "id", + version: "version", + ...timeExport({ + client, + path: "/help_center/incremental/articles", + schema: ArticlePageSchema, + rows: (page) => + Effect.succeed( + page.articles.map((article) => ({ ...article, version: article.updated_at })), + ), + }), + }); + +export const makeSections = (client: ZendeskClientService) => + Resource.entity({ + name: "sections", + rowSchema: SectionSchema, + key: "id", + version: "version", + ...listSources( + listAll(client, { + path: "/help_center/sections", + key: "sections", + item: SectionObjectSchema, + }).pipe( + Effect.map((sections) => + sections.map((section) => ({ ...section, version: section.updated_at })), + ), + ), + ), + }); + +export const makeCategories = (client: ZendeskClientService) => + Resource.entity({ + name: "categories", + rowSchema: CategorySchema, + key: "id", + version: "version", + ...listSources( + listAll(client, { + path: "/help_center/categories", + key: "categories", + item: CategoryObjectSchema, + }).pipe( + Effect.map((categories) => + categories.map((category) => ({ ...category, version: category.updated_at })), + ), + ), + ), + }); + +export const makeCommunityPosts = (client: ZendeskClientService) => + Resource.entity({ + name: "community_posts", + rowSchema: CommunityPostSchema, + key: "id", + version: "version", + ...listSources( + listAll(client, { + path: "/community/posts", + key: "posts", + item: CommunityPostObjectSchema, + }).pipe(Effect.map((posts) => posts.map((post) => ({ ...post, version: post.updated_at })))), + ), + }); + +export const makeCommunityTopics = (client: ZendeskClientService) => + Resource.entity({ + name: "community_topics", + rowSchema: CommunityTopicSchema, + key: "id", + version: "version", + ...listSources( + listAll(client, { + path: "/community/topics", + key: "topics", + item: CommunityTopicObjectSchema, + }).pipe( + Effect.map((topics) => topics.map((topic) => ({ ...topic, version: topic.updated_at }))), + ), + ), + }); diff --git a/connectors/producer-zendesk/src/resources/lists.ts b/connectors/producer-zendesk/src/resources/lists.ts new file mode 100644 index 00000000..2e498648 --- /dev/null +++ b/connectors/producer-zendesk/src/resources/lists.ts @@ -0,0 +1,241 @@ +import { Resource } from "@useairfoil/connector-kit"; +import { DateTime, Effect } from "effect"; + +import type { ZendeskClientService } from "../client/client"; + +import { + BrandObjectSchema, + BrandSchema, + CustomRoleObjectSchema, + CustomRoleSchema, + CustomStatusObjectSchema, + CustomStatusSchema, + GroupObjectSchema, + GroupSchema, + HolidaySchema, + MacroObjectSchema, + MacroSchema, + OrganizationFieldObjectSchema, + OrganizationFieldSchema, + ScheduleObjectSchema, + ScheduleSchema, + SlaPolicyObjectSchema, + SlaPolicySchema, + TicketFieldObjectSchema, + TicketFieldSchema, + TicketFormObjectSchema, + TicketFormSchema, + UserFieldObjectSchema, + UserFieldSchema, +} from "../schemas/lists"; +import { listAll, listSources } from "./pages"; + +export const makeGroups = (client: ZendeskClientService) => + Resource.entity({ + name: "groups", + rowSchema: GroupSchema, + key: "id", + version: "version", + ...listSources( + listAll(client, { path: "/groups", key: "groups", item: GroupObjectSchema }).pipe( + Effect.map((groups) => groups.map((group) => ({ ...group, version: group.updated_at }))), + ), + ), + }); + +export const makeBrands = (client: ZendeskClientService) => + Resource.entity({ + name: "brands", + rowSchema: BrandSchema, + key: "id", + version: "version", + ...listSources( + listAll(client, { path: "/brands", key: "brands", item: BrandObjectSchema }).pipe( + Effect.map((brands) => brands.map((brand) => ({ ...brand, version: brand.updated_at }))), + ), + ), + }); + +export const makeTicketFields = (client: ZendeskClientService) => + Resource.entity({ + name: "ticket_fields", + rowSchema: TicketFieldSchema, + key: "id", + version: "version", + ...listSources( + listAll(client, { + path: "/ticket_fields", + key: "ticket_fields", + item: TicketFieldObjectSchema, + }).pipe( + Effect.map((fields) => + fields.map(({ custom_field_options, ...rest }) => ({ + ...rest, + version: rest.updated_at, + custom_field_options: custom_field_options ?? [], + })), + ), + ), + ), + }); + +export const makeTicketForms = (client: ZendeskClientService) => + Resource.entity({ + name: "ticket_forms", + rowSchema: TicketFormSchema, + key: "id", + version: "version", + ...listSources( + listAll(client, { + path: "/ticket_forms", + key: "ticket_forms", + item: TicketFormObjectSchema, + }).pipe(Effect.map((forms) => forms.map((form) => ({ ...form, version: form.updated_at })))), + ), + }); + +export const makeCustomStatuses = (client: ZendeskClientService) => + Resource.entity({ + name: "custom_statuses", + rowSchema: CustomStatusSchema, + key: "id", + version: "version", + ...listSources( + // It has no cursor paging and returns everything at once. + listAll(client, { + path: "/custom_statuses", + key: "custom_statuses", + item: CustomStatusObjectSchema, + params: {}, + }).pipe( + Effect.map((statuses) => + statuses.map((status) => ({ ...status, version: status.updated_at })), + ), + ), + ), + }); + +export const makeUserFields = (client: ZendeskClientService) => + Resource.entity({ + name: "user_fields", + rowSchema: UserFieldSchema, + key: "id", + version: "version", + ...listSources( + listAll(client, { + path: "/user_fields", + key: "user_fields", + item: UserFieldObjectSchema, + }).pipe( + Effect.map((fields) => + fields.map(({ custom_field_options, ...rest }) => ({ + ...rest, + version: rest.updated_at, + custom_field_options: custom_field_options ?? [], + })), + ), + ), + ), + }); + +export const makeOrganizationFields = (client: ZendeskClientService) => + Resource.entity({ + name: "organization_fields", + rowSchema: OrganizationFieldSchema, + key: "id", + version: "version", + ...listSources( + listAll(client, { + path: "/organization_fields", + key: "organization_fields", + item: OrganizationFieldObjectSchema, + }).pipe( + Effect.map((fields) => + fields.map(({ custom_field_options, ...rest }) => ({ + ...rest, + version: rest.updated_at, + custom_field_options: custom_field_options ?? [], + })), + ), + ), + ), + }); + +export const makeSlaPolicies = (client: ZendeskClientService) => + Resource.entity({ + name: "sla_policies", + rowSchema: SlaPolicySchema, + key: "id", + version: "version", + ...listSources( + // It has no cursor paging and returns everything at once. + listAll(client, { + path: "/slas/policies", + key: "sla_policies", + item: SlaPolicyObjectSchema, + params: {}, + }).pipe( + Effect.map((policies) => + policies.map((policy) => ({ ...policy, version: policy.updated_at })), + ), + ), + ), + }); + +export const makeSchedules = (client: ZendeskClientService) => + Resource.entity({ + name: "schedules", + rowSchema: ScheduleSchema, + key: "id", + version: "version", + ...listSources( + Effect.gen(function* () { + const schedules = yield* listAll(client, { + path: "/business_hours/schedules", + key: "schedules", + item: ScheduleObjectSchema, + params: {}, + }); + const version = yield* DateTime.nowAsDate; + // Accounts have a few schedules, so read each one's holidays. + return yield* Effect.forEach(schedules, (schedule) => + listAll(client, { + path: `/business_hours/schedules/${schedule.id}/holidays`, + key: "holidays", + item: HolidaySchema, + params: {}, + }).pipe(Effect.map((holidays) => ({ ...schedule, version, holidays }))), + ); + }), + ), + }); + +export const makeCustomRoles = (client: ZendeskClientService) => + Resource.entity({ + name: "custom_roles", + rowSchema: CustomRoleSchema, + key: "id", + version: "version", + ...listSources( + // It has no cursor paging and returns everything at once. + listAll(client, { + path: "/custom_roles", + key: "custom_roles", + item: CustomRoleObjectSchema, + params: {}, + }).pipe(Effect.map((roles) => roles.map((role) => ({ ...role, version: role.updated_at })))), + ), + }); + +export const makeMacros = (client: ZendeskClientService) => + Resource.entity({ + name: "macros", + rowSchema: MacroSchema, + key: "id", + version: "version", + ...listSources( + listAll(client, { path: "/macros", key: "macros", item: MacroObjectSchema }).pipe( + Effect.map((macros) => macros.map((macro) => ({ ...macro, version: macro.updated_at }))), + ), + ), + }); diff --git a/connectors/producer-zendesk/src/resources/memberships.ts b/connectors/producer-zendesk/src/resources/memberships.ts new file mode 100644 index 00000000..62684509 --- /dev/null +++ b/connectors/producer-zendesk/src/resources/memberships.ts @@ -0,0 +1,96 @@ +import { ConnectorError, Cursor, Fetch, Resource } from "@useairfoil/connector-kit"; +import { DateTime, Effect, Option, Schema } from "effect"; + +import type { ZendeskClientService } from "../client/client"; + +import { + GroupMembershipObjectSchema, + GroupMembershipSchema, + OrganizationMembershipObjectSchema, + OrganizationMembershipSchema, +} from "../schemas/memberships"; +import { hourly, listAll } from "./pages"; + +/** IDs seen by the last read. The first read has none. */ +const SeenSchema = Schema.fromJsonString(Schema.Struct({ ids: Schema.Array(Schema.String) })); + +/** + * Zendesk drops a membership from its list once it's removed. So each read + * sends a delete for any ID the last read had and this one doesn't. + * + * There's no backfill. The first read runs at startup and writes every + * membership. A separate backfill could write one that's removed before that + * read, and it would never get its delete. + */ +const membershipSources = ( + read: Effect.Effect, ConnectorError>, +) => ({ + check: read.pipe(Effect.asVoid), + changes: Fetch.changes({ + cursor: Cursor.string(), + interval: hourly, + fetch: ({ cursor }) => + Effect.gen(function* () { + const rows = yield* read; + const now = yield* DateTime.nowAsDate; + const seen = Schema.decodeUnknownOption(SeenSchema)(String(cursor)).pipe( + Option.match({ onNone: () => [], onSome: ({ ids }) => ids }), + ); + const ids = rows.map((row) => String(row.id)); + const current = new Set(ids); + const removed = seen + .filter((id) => !current.has(id)) + .map((id) => ({ id: BigInt(id), version: now, _deleted: true })); + return { + rows: [...rows, ...removed], + cursor: yield* Schema.encodeEffect(SeenSchema)({ ids }).pipe( + Effect.mapError( + (cause) => + new ConnectorError({ + message: "Could not encode Zendesk memberships cursor", + cause, + }), + ), + ), + }; + }), + }), +}); + +export const makeGroupMemberships = (client: ZendeskClientService) => + Resource.entity({ + name: "group_memberships", + rowSchema: GroupMembershipSchema, + key: "id", + version: "version", + ...membershipSources( + listAll(client, { + path: "/group_memberships", + key: "group_memberships", + item: GroupMembershipObjectSchema, + }).pipe( + Effect.map((memberships) => + memberships.map((membership) => ({ ...membership, version: membership.updated_at })), + ), + ), + ), + }); + +export const makeOrganizationMemberships = (client: ZendeskClientService) => + Resource.entity({ + name: "organization_memberships", + rowSchema: OrganizationMembershipSchema, + key: "id", + version: "version", + ...membershipSources( + listAll(client, { + path: "/organization_memberships", + key: "organization_memberships", + item: OrganizationMembershipObjectSchema, + }).pipe( + Effect.map((memberships) => + memberships.map((membership) => ({ ...membership, version: membership.updated_at })), + ), + ), + ), + }); diff --git a/connectors/producer-zendesk/src/resources/organizations.ts b/connectors/producer-zendesk/src/resources/organizations.ts new file mode 100644 index 00000000..05ad302c --- /dev/null +++ b/connectors/producer-zendesk/src/resources/organizations.ts @@ -0,0 +1,40 @@ +import { Resource } from "@useairfoil/connector-kit"; +import { Effect, Schema } from "effect"; + +import type { ZendeskClientService } from "../client/client"; + +import { + type Organization, + type OrganizationObject, + OrganizationObjectSchema, + OrganizationSchema, +} from "../schemas/organizations"; +import { timeExport } from "./exports"; + +const OrganizationPageSchema = Schema.Struct({ + organizations: Schema.Array(OrganizationObjectSchema), + end_time: Schema.NullOr(Schema.Number), + end_of_stream: Schema.Boolean, +}); + +// Zendesk can't restore a deleted organization, so other rows leave +// `_deleted` out. +const toRow = ({ deleted_at, ...rest }: OrganizationObject): Organization => ({ + ...rest, + version: rest.updated_at, + ...(deleted_at === null ? {} : { _deleted: true }), +}); + +export const makeOrganizations = (client: ZendeskClientService) => + Resource.entity({ + name: "organizations", + rowSchema: OrganizationSchema, + key: "id", + version: "version", + ...timeExport({ + client, + path: "/incremental/organizations", + schema: OrganizationPageSchema, + rows: (page) => Effect.succeed(page.organizations.map(toRow)), + }), + }); diff --git a/connectors/producer-zendesk/src/resources/pages.ts b/connectors/producer-zendesk/src/resources/pages.ts new file mode 100644 index 00000000..d92f27e8 --- /dev/null +++ b/connectors/producer-zendesk/src/resources/pages.ts @@ -0,0 +1,78 @@ +import { type ConnectorError, Cursor, Fetch } from "@useairfoil/connector-kit"; +import { DateTime, Duration, Effect, Option, Schema, Stream } from "effect"; + +import type { ZendeskClientService } from "../client/client"; + +export const hourly = Duration.hours(1); + +export const pageSize = { "page[size]": "100" }; + +type ListOptions = { + readonly path: string; + /** The response key that holds the items, such as `groups`. */ + readonly key: string; + readonly item: Schema.Decoder; + readonly params?: Readonly>; + /** A `404` gives no items, such as the comments of a deleted ticket. */ + readonly emptyIfMissing?: boolean; +}; + +export const readPage = ( + client: ZendeskClientService, + options: ListOptions, + after: Option.Option = Option.none(), +) => { + const schema = Schema.Struct({ + items: Schema.Array(options.item), + meta: Schema.optional( + Schema.Struct({ has_more: Schema.Boolean, after_cursor: Schema.NullOr(Schema.String) }), + ), + }).pipe(Schema.encodeKeys({ items: options.key })); + const params = { + ...(options.params ?? pageSize), + ...Option.match(after, { + onNone: () => ({}), + onSome: (cursor) => ({ "page[after]": cursor }), + }), + }; + const page = options.emptyIfMissing + ? client + .find(schema, options.path, params) + .pipe(Effect.map(Option.getOrElse(() => ({ items: [], meta: undefined })))) + : client.get(schema, options.path, params); + return page.pipe( + Effect.map(({ items, meta }) => ({ + items, + next: meta?.has_more ? Option.fromNullishOr(meta.after_cursor) : Option.none(), + })), + ); +}; + +export const listAll = ( + client: ZendeskClientService, + options: ListOptions, +): Effect.Effect, ConnectorError> => + Stream.paginate(Option.none(), (after) => + readPage(client, options, after).pipe( + Effect.map(({ items, next }) => [items, Option.map(next, Option.some)] as const), + ), + ).pipe(Stream.runCollect); + +export const listSources = ( + read: Effect.Effect, ConnectorError>, +) => ({ + check: read.pipe(Effect.asVoid), + backfill: Fetch.page({ + pageCursor: Cursor.string(), + cutoff: Cursor.isoDateTime(), + fetch: () => read.pipe(Effect.map((rows) => ({ rows, hasMore: false }))), + }), + changes: Fetch.changes({ + cursor: Cursor.string(), + interval: hourly, + fetch: () => + Effect.all([read, DateTime.now]).pipe( + Effect.map(([rows, now]) => ({ rows, cursor: DateTime.formatIso(now) })), + ), + }), +}); diff --git a/connectors/producer-zendesk/src/resources/satisfaction-ratings.ts b/connectors/producer-zendesk/src/resources/satisfaction-ratings.ts new file mode 100644 index 00000000..8d197af7 --- /dev/null +++ b/connectors/producer-zendesk/src/resources/satisfaction-ratings.ts @@ -0,0 +1,72 @@ +import { Cursor, Fetch, Resource } from "@useairfoil/connector-kit"; +import { DateTime, Duration, Effect, Option } from "effect"; + +import type { ZendeskClientService } from "../client/client"; + +import { + type SatisfactionRating, + type SatisfactionRatingObject, + SatisfactionRatingObjectSchema, + SatisfactionRatingSchema, +} from "../schemas/satisfaction"; +import { hourly, listAll, pageSize, readPage } from "./pages"; + +const list = { + path: "/satisfaction_ratings", + key: "satisfaction_ratings", + item: SatisfactionRatingObjectSchema, +}; +// Allow for clock drift. +const overlap = Duration.minutes(10); + +const toRow = (rating: SatisfactionRatingObject): SatisfactionRating => ({ + ...rating, + version: rating.updated_at, + reason: rating.reason ?? null, + reason_id: rating.reason_id ?? null, +}); + +// A changed score is a new rating, so reading from the last run is enough. +export const makeSatisfactionRatings = (client: ZendeskClientService) => + Resource.entity({ + name: "satisfaction_ratings", + rowSchema: SatisfactionRatingSchema, + key: "id", + version: "version", + + check: readPage(client, { ...list, params: { "page[size]": "1" } }).pipe(Effect.asVoid), + backfill: Fetch.page({ + pageCursor: Cursor.string(), + cutoff: Cursor.isoDateTime(), + fetch: ({ pageCursor }) => + readPage(client, list, Option.fromNullishOr(pageCursor).pipe(Option.map(String))).pipe( + Effect.map(({ items, next }) => + Option.match(next, { + onNone: () => ({ rows: items.map(toRow), hasMore: false }), + onSome: (cursor) => ({ + rows: items.map(toRow), + hasMore: true, + nextPageCursor: cursor, + }), + }), + ), + ), + }), + changes: Fetch.changes({ + cursor: Cursor.isoDateTime(), + interval: hourly, + fetch: ({ cursor }) => + Effect.gen(function* () { + const now = yield* DateTime.now; + const from = DateTime.subtractDuration(DateTime.makeUnsafe(String(cursor)), overlap); + const ratings = yield* listAll(client, { + ...list, + params: { + ...pageSize, + start_time: String(Math.floor(DateTime.toEpochMillis(from) / 1000)), + }, + }); + return { rows: ratings.map(toRow), cursor: DateTime.formatIso(now) }; + }), + }), + }); diff --git a/connectors/producer-zendesk/src/resources/talk.ts b/connectors/producer-zendesk/src/resources/talk.ts new file mode 100644 index 00000000..9b929fd6 --- /dev/null +++ b/connectors/producer-zendesk/src/resources/talk.ts @@ -0,0 +1,38 @@ +import { Resource } from "@useairfoil/connector-kit"; +import { DateTime, Effect } from "effect"; + +import type { ZendeskClientService } from "../client/client"; + +import { type TalkLine, TalkLineObjectSchema, TalkLineSchema } from "../schemas/talk"; +import { listAll, listSources } from "./pages"; + +export const makeTalkLines = (client: ZendeskClientService) => + Resource.entity({ + name: "talk_lines", + rowSchema: TalkLineSchema, + key: "id", + version: "version", + ...listSources( + Effect.gen(function* () { + // It has no cursor paging. Accounts have a few lines. + const lines = yield* listAll(client, { + path: "/channels/voice/lines", + key: "lines", + item: TalkLineObjectSchema, + params: {}, + }); + const version = yield* DateTime.nowAsDate; + return lines.map( + (line): TalkLine => ({ + ...line, + version, + brand_id: line.brand_id ?? null, + number: line.number ?? null, + display_number: line.display_number ?? null, + country_code: line.country_code ?? null, + toll_free: line.toll_free ?? null, + }), + ); + }), + ), + }); diff --git a/connectors/producer-zendesk/src/resources/ticket-comments.ts b/connectors/producer-zendesk/src/resources/ticket-comments.ts new file mode 100644 index 00000000..3fbe9253 --- /dev/null +++ b/connectors/producer-zendesk/src/resources/ticket-comments.ts @@ -0,0 +1,76 @@ +import { ConnectorError, Resource } from "@useairfoil/connector-kit"; +import { Effect, Schema } from "effect"; + +import type { ZendeskClientService } from "../client/client"; + +import { + CommentObjectSchema, + type CommentObject, + type TicketComment, + TicketCommentSchema, + type TicketEvent, + TicketEventSchema, + isCommentEvent, + isRedactionEvent, +} from "../schemas/comments"; +import { timeExport } from "./exports"; +import { listAll } from "./pages"; + +const TicketEventPageSchema = Schema.Struct({ + ticket_events: Schema.Array(TicketEventSchema), + end_time: Schema.NullOr(Schema.Number), + end_of_stream: Schema.Boolean, +}); + +const toRow = (comment: CommentObject, event: TicketEvent): TicketComment => ({ + ...comment, + version: event.created_at, + ticket_id: event.ticket_id, +}); + +const decodeComment = (value: unknown) => + Schema.decodeUnknownEffect(CommentObjectSchema)(value).pipe( + Effect.mapError( + (cause) => new ConnectorError({ message: "Zendesk comment event does not decode", cause }), + ), + ); + +const rowsOf = (client: ZendeskClientService, events: ReadonlyArray) => + Effect.gen(function* () { + const added = yield* Effect.forEach(events, (event) => + Effect.forEach(event.child_events.filter(isCommentEvent), (child) => + decodeComment(child).pipe(Effect.map((comment) => toRow(comment, event))), + ), + ); + // Redaction events have no comment body. Read each ticket once. + const redacted = new Map( + events + .filter((event) => event.child_events.some(isRedactionEvent)) + .map((event) => [event.ticket_id, event]), + ); + const reread = yield* Effect.forEach(redacted.values(), (event) => + listAll(client, { + path: `/tickets/${event.ticket_id}/comments`, + key: "comments", + item: CommentObjectSchema, + // A deleted ticket returns 404. Its comments stay as they were. + emptyIfMissing: true, + }).pipe(Effect.map((comments) => comments.map((comment) => toRow(comment, event)))), + ); + return [...added, ...reread].flat(); + }); + +export const makeTicketComments = (client: ZendeskClientService) => + Resource.entity({ + name: "ticket_comments", + rowSchema: TicketCommentSchema, + key: "id", + version: "version", + ...timeExport({ + client, + path: "/incremental/ticket_events", + schema: TicketEventPageSchema, + params: { include: "comment_events" }, + rows: (page) => rowsOf(client, page.ticket_events), + }), + }); diff --git a/connectors/producer-zendesk/src/resources/ticket-events.ts b/connectors/producer-zendesk/src/resources/ticket-events.ts new file mode 100644 index 00000000..ab6cc1f9 --- /dev/null +++ b/connectors/producer-zendesk/src/resources/ticket-events.ts @@ -0,0 +1,131 @@ +import { ConnectorError, Resource } from "@useairfoil/connector-kit"; +import { Array as Arr, Effect, Option, Predicate, Schema } from "effect"; + +import type { ZendeskClientService } from "../client/client"; + +import { asText } from "../schemas/shared"; +import { + type FieldChangeEvent, + FieldChangeEventSchema, + type TicketAudit, + TicketAuditSchema, + type TicketFieldChange, + TicketFieldChangeSchema, + type TicketMetricEvent, + type TicketMetricEventObject, + TicketMetricEventObjectSchema, + TicketMetricEventSchema, + isFieldChangeEvent, +} from "../schemas/ticket-events"; +import { timeExport } from "./exports"; + +const TicketAuditPageSchema = Schema.Struct({ + ticket_events: Schema.Array(TicketAuditSchema), + end_time: Schema.NullOr(Schema.Number), + end_of_stream: Schema.Boolean, +}); + +// Keys that aren't the changed field. `added_tags` and `removed_tags` come with `tags`. +const eventKeys = new Set([ + "id", + "via", + "via_reference_id", + "event_type", + "previous_value", + "rel", + "revision_id", + "added_tags", + "removed_tags", +]); + +const decodeChange = (value: unknown) => + Schema.decodeUnknownEffect(FieldChangeEventSchema)(value).pipe( + Effect.mapError( + (cause) => + new ConnectorError({ message: "Zendesk ticket change event does not decode", cause }), + ), + ); + +// Custom fields come as `custom_ticket_fields: { [fieldId]: value }`. +const changedField = (event: FieldChangeEvent) => + Arr.findFirst(Object.entries(event), ([key]) => !eventKeys.has(key)).pipe( + Option.flatMap(([key, value]) => + key === "custom_ticket_fields" && Predicate.isObject(value) + ? Arr.head(Object.entries(value)) + : Option.some([key, value] as const), + ), + ); + +const toChanges = (audit: TicketAudit) => + Effect.forEach(audit.child_events.filter(isFieldChangeEvent), (child) => + decodeChange(child).pipe( + Effect.map((event) => + Option.toArray(changedField(event)).map( + ([name, value]): TicketFieldChange => ({ + id: event.id, + version: audit.created_at, + ticket_id: audit.ticket_id, + updater_id: audit.updater_id, + event_type: event.event_type, + field_name: name, + value: asText(value), + previous_value: event.previous_value ?? null, + via: event.via, + }), + ), + ), + ), + ).pipe(Effect.map((changes) => changes.flat())); + +export const makeTicketFieldHistory = (client: ZendeskClientService) => + Resource.entity({ + name: "ticket_field_history", + rowSchema: TicketFieldChangeSchema, + key: "id", + version: "version", + ...timeExport({ + client, + path: "/incremental/ticket_events", + schema: TicketAuditPageSchema, + rows: (page) => + Effect.forEach(page.ticket_events, toChanges).pipe(Effect.map((rows) => rows.flat())), + }), + }); + +const TicketMetricEventPageSchema = Schema.Struct({ + ticket_metric_events: Schema.Array(TicketMetricEventObjectSchema), + end_time: Schema.NullOr(Schema.Number), + end_of_stream: Schema.Boolean, +}); + +// `deleted` is set on the events of a deleted ticket. Tickets can be restored, +// so other rows send `_deleted: false`. +const toMetricEvent = ({ + deleted, + sla, + status, + ...event +}: TicketMetricEventObject): TicketMetricEvent => ({ + ...event, + version: event.time, + _deleted: deleted, + sla_policy_id: sla?.policy.id ?? null, + sla_target_in_seconds: sla?.target_in_seconds ?? null, + sla_business_hours: sla?.business_hours ?? null, + status_calendar: status?.calendar ?? null, + status_business: status?.business ?? null, +}); + +export const makeTicketMetricEvents = (client: ZendeskClientService) => + Resource.entity({ + name: "ticket_metric_events", + rowSchema: TicketMetricEventSchema, + key: "id", + version: "version", + ...timeExport({ + client, + path: "/incremental/ticket_metric_events", + schema: TicketMetricEventPageSchema, + rows: (page) => Effect.succeed(page.ticket_metric_events.map(toMetricEvent)), + }), + }); diff --git a/connectors/producer-zendesk/src/resources/tickets.ts b/connectors/producer-zendesk/src/resources/tickets.ts new file mode 100644 index 00000000..77bd7942 --- /dev/null +++ b/connectors/producer-zendesk/src/resources/tickets.ts @@ -0,0 +1,50 @@ +import { Resource } from "@useairfoil/connector-kit"; +import { Effect, Schema, Struct } from "effect"; + +import type { ZendeskClientService } from "../client/client"; + +import { + type MetricSet, + MetricSetSchema, + type Ticket, + type TicketObject, + TicketObjectSchema, + TicketSchema, +} from "../schemas/tickets"; +import { cursorExport } from "./exports"; + +const TicketPageSchema = Schema.Struct({ + tickets: Schema.Array(TicketObjectSchema), + metric_sets: Schema.optional(Schema.Array(MetricSetSchema)), + after_cursor: Schema.NullOr(Schema.String), + end_of_stream: Schema.Boolean, +}); + +// Zendesk can restore a deleted ticket, so other rows send `_deleted: false`. +const toRow = ( + { generated_timestamp, ...rest }: TicketObject, + metrics: MetricSet | undefined, +): Ticket => ({ + ...rest, + version: generated_timestamp, + _deleted: rest.status === "deleted", + metrics: metrics === undefined ? null : Struct.omit(metrics, ["ticket_id"]), +}); + +export const makeTickets = (client: ZendeskClientService) => + Resource.entity({ + name: "tickets", + rowSchema: TicketSchema, + key: "id", + version: "version", + ...cursorExport({ + client, + path: "/incremental/tickets/cursor", + schema: TicketPageSchema, + params: { include: "metric_sets" }, + rows: (page) => { + const metrics = new Map((page.metric_sets ?? []).map((set) => [set.ticket_id, set])); + return Effect.succeed(page.tickets.map((ticket) => toRow(ticket, metrics.get(ticket.id)))); + }, + }), + }); diff --git a/connectors/producer-zendesk/src/resources/users.ts b/connectors/producer-zendesk/src/resources/users.ts new file mode 100644 index 00000000..f49304be --- /dev/null +++ b/connectors/producer-zendesk/src/resources/users.ts @@ -0,0 +1,53 @@ +import { Resource } from "@useairfoil/connector-kit"; +import { Array as Arr, Effect, Schema, Struct } from "effect"; + +import type { ZendeskClientService } from "../client/client"; + +import { + type IdentityObject, + IdentityObjectSchema, + type User, + type UserObject, + UserObjectSchema, + UserSchema, +} from "../schemas/users"; +import { cursorExport } from "./exports"; + +const UserPageSchema = Schema.Struct({ + users: Schema.Array(UserObjectSchema), + identities: Schema.Array(IdentityObjectSchema), + after_cursor: Schema.NullOr(Schema.String), + end_of_stream: Schema.Boolean, +}); + +// Zendesk can't restore a deleted user, so other rows leave `_deleted` out. +const toRow = + (identities: Readonly>>) => + ({ active, ...rest }: UserObject): User => ({ + ...rest, + version: rest.updated_at, + identities: (identities[String(rest.id)] ?? []).map((identity) => + Struct.omit(identity, ["user_id"]), + ), + ...(active ? {} : { _deleted: true }), + }); + +export const makeUsers = (client: ZendeskClientService) => + Resource.entity({ + name: "users", + rowSchema: UserSchema, + key: "id", + version: "version", + ...cursorExport({ + client, + path: "/incremental/users/cursor", + schema: UserPageSchema, + params: { include: "identities" }, + rows: (page) => + Effect.succeed( + page.users.map( + toRow(Arr.groupBy(page.identities, (identity) => String(identity.user_id))), + ), + ), + }), + }); diff --git a/connectors/producer-zendesk/src/sandbox.ts b/connectors/producer-zendesk/src/sandbox.ts new file mode 100644 index 00000000..461d4a69 --- /dev/null +++ b/connectors/producer-zendesk/src/sandbox.ts @@ -0,0 +1,35 @@ +import { + ConnectorApp, + Ingestor, + RuntimeConfig, + StateStore, + Telemetry, +} from "@useairfoil/connector-kit"; +import { Effect, Layer, Logger } from "effect"; +import { Command } from "effect/cli"; + +import { ZendeskConnector } from "./index"; + +const ConnectorLayer = ZendeskConnector.layerConfig(ZendeskConnector.ZendeskConfigDef.config); + +const TelemetryLayer = Layer.mergeAll(Telemetry.layerOtlp(), Telemetry.layerMetricsConsoleDump()); + +export const sandboxCommand = Command.make("sandbox", {}, () => + Effect.gen(function* () { + const port = yield* RuntimeConfig.httpPort; + const entrypoint = yield* ZendeskConnector.ZendeskConnector; + + return yield* ConnectorApp.start(entrypoint, { port }); + }).pipe( + Effect.annotateLogs({ component: "zendesk" }), + Effect.provide( + Layer.mergeAll( + StateStore.layerMemory, + Ingestor.layerConsole, + ConnectorLayer, + Logger.layer([Logger.consolePretty()]), + TelemetryLayer, + ), + ), + ), +).pipe(Command.withDescription("Run the connector locally and log ingested data")); diff --git a/connectors/producer-zendesk/src/schemas/comments.ts b/connectors/producer-zendesk/src/schemas/comments.ts new file mode 100644 index 00000000..50f41de5 --- /dev/null +++ b/connectors/producer-zendesk/src/schemas/comments.ts @@ -0,0 +1,54 @@ +import { Schema, Struct } from "effect"; + +import { Long, Timestamp, field, list } from "./shared"; + +export const TicketCommentSchema = Schema.Struct({ + id: Long.pipe(field(1, "Comment ID.")), + version: Schema.Date.pipe(field(2, "Time of the ticket update that changed the comment last.")), + ticket_id: Long.pipe(field(3, "Ticket the comment is on.")), + type: Schema.String.pipe(field(4, "Comment or VoiceComment.")), + author_id: Long.pipe(field(5, "User who wrote the comment.")), + public: Schema.Boolean.pipe( + field(6, "Whether the requester can see it. False for internal notes."), + ), + created_at: Timestamp.pipe(field(7, "Time the comment was added.")), + via: Schema.Struct({ + channel: Schema.String.pipe(field(101, "Channel, such as email, web, or api.")), + }).pipe(field(8, "How the comment was added.")), + body: Schema.String.pipe(field(9, "Comment text. Redacted parts are ▇.")), + attachments: list( + 102, + Schema.Struct({ + id: Long.pipe(field(103, "Attachment ID.")), + file_name: Schema.String.pipe(field(104, "File name.")), + content_type: Schema.String.pipe(field(105, "MIME type.")), + size: Long.pipe(field(106, "Size in bytes.")), + }), + ).pipe(field(10, "Attached files. Only their details, not the files.")), +}).annotate({ description: "Comments and internal notes on Zendesk tickets." }); + +export type TicketComment = Schema.Schema.Type; + +export const CommentObjectSchema = TicketCommentSchema.mapFields((fields) => + Struct.omit(fields, ["version", "ticket_id"]), +); + +export type CommentObject = Schema.Schema.Type; + +export const isCommentEvent = Schema.is( + Schema.Struct({ event_type: Schema.Literals(["Comment", "VoiceComment"]) }), +); + +export const isRedactionEvent = Schema.is( + Schema.Struct({ + event_type: Schema.Literals(["CommentRedactionEvent", "AttachmentRedactionEvent"]), + }), +); + +export const TicketEventSchema = Schema.Struct({ + ticket_id: Long, + created_at: Timestamp, + child_events: Schema.Array(Schema.Unknown), +}); + +export type TicketEvent = Schema.Schema.Type; diff --git a/connectors/producer-zendesk/src/schemas/csat.ts b/connectors/producer-zendesk/src/schemas/csat.ts new file mode 100644 index 00000000..1441e652 --- /dev/null +++ b/connectors/producer-zendesk/src/schemas/csat.ts @@ -0,0 +1,121 @@ +import { Schema } from "effect"; + +import { Long, LongFromString, Timestamp, field, list } from "./shared"; + +const AnswerSchema = Schema.Struct({ + question_id: Schema.String.pipe(field(102, "Question ID in the survey.")), + question_type: Schema.String.pipe( + field(103, "Question type, such as rating_scale_numeric or open_ended."), + ), + type: Schema.String.pipe( + field(104, "Answer type: rating_scale, closed_ended, open_ended, or skipped."), + ), + rating: Schema.NullOr(Long).pipe(field(105, "Rating picked, for a rating question.")), + rating_category: Schema.NullOr(Schema.String).pipe( + field(106, "bad, neutral, or good, for a rating question."), + ), + value: Schema.NullOr(Schema.String).pipe(field(107, "Text written, for an open question.")), + option_ids: list(108, Schema.String).pipe(field(109, "Options picked, for a choice question.")), + updated_at: Timestamp.pipe(field(110, "Time the answer was last changed.")), +}); + +export const SurveyResponseSchema = Schema.Struct({ + id: Schema.String.pipe(field(1, "Survey response ID.")), + version: Schema.Date.pipe(field(2, "Time the latest answer was changed.")), + ticket_id: Schema.NullOr(Long).pipe(field(3, "Ticket the survey was about.")), + responder_id: Long.pipe(field(4, "User who answered.")), + survey_id: Schema.String.pipe(field(5, "Survey ID.")), + survey_version: Long.pipe(field(6, "Survey version answered.")), + rating: Schema.NullOr(Long).pipe(field(7, "Customer satisfaction rating, such as 1 to 5.")), + rating_category: Schema.NullOr(Schema.String).pipe( + field(8, "Customer satisfaction category: bad, neutral, or good."), + ), + answers: list(101, AnswerSchema).pipe(field(9, "Every answer in the response.")), + expires_at: Timestamp.pipe(field(10, "Time after which the answers can't change.")), +}).annotate({ description: "Answers to Zendesk CSAT surveys. Unanswered surveys are left out." }); + +export type SurveyResponse = Schema.Schema.Type; + +export const SurveyResponseObjectSchema = Schema.Struct({ + id: Schema.String, + expires_at: Timestamp, + responder_id: LongFromString, + subjects: Schema.Array(Schema.Struct({ id: Schema.String, type: Schema.String })), + survey: Schema.Struct({ id: Schema.String, version: Long }), + answers: Schema.Array( + Schema.Struct({ + type: Schema.String, + question: Schema.Struct({ + id: Schema.String, + type: Schema.String, + sub_type: Schema.optional(Schema.String), + }), + rating: Schema.optional(Long), + rating_category: Schema.optional(Schema.String), + value: Schema.optional(Schema.String), + selections: Schema.optional(Schema.Array(Schema.Struct({ option_id: Schema.String }))), + updated_at: Timestamp, + }), + ), +}); + +export type SurveyResponseObject = Schema.Schema.Type; + +const Text = Schema.Struct({ value: Schema.String }); + +export const CsatSurveySchema = Schema.Struct({ + id: Schema.String.pipe(field(1, "Survey ID.")), + version: Schema.Date.pipe(field(2, "Time Zendesk last updated the survey.")), + survey_version: Long.pipe(field(3, "Current survey version.")), + state: Schema.String.pipe(field(4, "enabled or disabled.")), + created_at: Timestamp.pipe(field(5, "Time the survey was created.")), + updated_at: Timestamp.pipe(field(6, "Time the survey was last updated.")), + questions: list( + 101, + Schema.Struct({ + id: Schema.String.pipe(field(102, "Question ID, as in `survey_responses.answers`.")), + type: Schema.String.pipe(field(103, "Question type.")), + sub_type: Schema.NullOr(Schema.String).pipe( + field(104, "customer_satisfaction for the main rating question."), + ), + headline: Schema.String.pipe(field(105, "Question text.")), + options: list( + 106, + Schema.Struct({ + id: Schema.NullOr(Schema.String).pipe(field(107, "Option ID, for a choice question.")), + rating: Schema.NullOr(Long).pipe(field(108, "Rating, for a rating question.")), + label: Schema.String.pipe(field(109, "Option text. Can be empty.")), + }), + ).pipe(field(110, "Options of the question.")), + }), + ).pipe(field(7, "Questions in the current version.")), +}).annotate({ description: "Zendesk CSAT surveys. Names the IDs in `survey_responses`." }); + +export type CsatSurvey = Schema.Schema.Type; + +export const CsatSurveyObjectSchema = Schema.Struct({ + id: Schema.String, + version: Long, + state: Schema.String, + created_at: Timestamp, + updated_at: Timestamp, + questions: Schema.Array( + Schema.Struct({ + id: Schema.String, + type: Schema.String, + sub_type: Schema.optional(Schema.String), + headline: Text, + options: Schema.optional( + Schema.Array( + Schema.Struct({ + id: Schema.optional(Schema.String), + rating: Schema.optional(Long), + label: Text, + }), + ), + ), + }), + ), +}); + +export type CsatSurveyObject = Schema.Schema.Type; diff --git a/connectors/producer-zendesk/src/schemas/help-center.ts b/connectors/producer-zendesk/src/schemas/help-center.ts new file mode 100644 index 00000000..9c9ec31d --- /dev/null +++ b/connectors/producer-zendesk/src/schemas/help-center.ts @@ -0,0 +1,85 @@ +import { Schema, Struct } from "effect"; + +import { Long, Timestamp, field, list, version } from "./shared"; + +const common = (object: string) => ({ + id: Long.pipe(field(1, `${object} ID.`)), + version: version(2, object.toLowerCase()), + created_at: Timestamp.pipe(field(3, `Time the ${object.toLowerCase()} was created.`)), + updated_at: Timestamp.pipe(field(4, `Time the ${object.toLowerCase()} was last updated.`)), + html_url: Schema.String.pipe(field(5, `Web address of the ${object.toLowerCase()}.`)), +}); + +export const ArticleSchema = Schema.Struct({ + ...common("Article"), + title: Schema.String.pipe(field(6, "Article title.")), + body: Schema.NullOr(Schema.String).pipe(field(7, "Article body, as HTML.")), + locale: Schema.String.pipe(field(8, "Locale of this version, such as en-us.")), + source_locale: Schema.String.pipe(field(9, "Locale the article was written in.")), + section_id: Long.pipe(field(10, "Section the article is in.")), + author_id: Long.pipe(field(11, "User who wrote the article.")), + draft: Schema.Boolean.pipe(field(12, "Whether the article is a draft.")), + promoted: Schema.Boolean.pipe(field(13, "Whether the article is promoted.")), + position: Long.pipe(field(14, "Position in its section.")), + vote_sum: Long.pipe(field(15, "Up votes minus down votes.")), + vote_count: Long.pipe(field(16, "Number of votes.")), + label_names: list(101, Schema.String).pipe(field(17, "Labels.")), + edited_at: Timestamp.pipe(field(18, "Time the text was last edited.")), +}).annotate({ description: "Zendesk Help Center articles." }); + +export const SectionSchema = Schema.Struct({ + ...common("Section"), + name: Schema.String.pipe(field(6, "Section name.")), + description: Schema.NullOr(Schema.String).pipe(field(7, "Section description.")), + locale: Schema.String.pipe(field(8, "Locale, such as en-us.")), + category_id: Long.pipe(field(9, "Category the section is in.")), + parent_section_id: Schema.NullOr(Long).pipe(field(10, "Parent section, if nested.")), + position: Long.pipe(field(11, "Position in its category.")), +}).annotate({ description: "Zendesk Help Center sections." }); + +export const CategorySchema = Schema.Struct({ + ...common("Category"), + name: Schema.String.pipe(field(6, "Category name.")), + description: Schema.NullOr(Schema.String).pipe(field(7, "Category description.")), + locale: Schema.String.pipe(field(8, "Locale, such as en-us.")), + position: Long.pipe(field(9, "Position in the Help Center.")), +}).annotate({ description: "Zendesk Help Center categories." }); + +export const CommunityPostSchema = Schema.Struct({ + ...common("Post"), + title: Schema.String.pipe(field(6, "Post title.")), + details: Schema.NullOr(Schema.String).pipe(field(7, "Post text, as HTML.")), + author_id: Long.pipe(field(8, "User who wrote the post.")), + topic_id: Long.pipe(field(9, "Topic the post is in.")), + status: Schema.String.pipe(field(10, "none, planned, not_planned, completed, or answered.")), + featured: Schema.Boolean.pipe(field(11, "Whether the post is featured.")), + pinned: Schema.Boolean.pipe(field(12, "Whether the post is pinned.")), + closed: Schema.Boolean.pipe(field(13, "Whether the post is closed for comments.")), + vote_sum: Long.pipe(field(14, "Up votes minus down votes.")), + vote_count: Long.pipe(field(15, "Number of votes.")), + comment_count: Long.pipe(field(16, "Number of comments.")), + follower_count: Long.pipe(field(17, "Number of followers.")), +}).annotate({ description: "Posts in the Zendesk community." }); + +export const CommunityTopicSchema = Schema.Struct({ + ...common("Topic"), + name: Schema.String.pipe(field(6, "Topic name.")), + description: Schema.NullOr(Schema.String).pipe(field(7, "Topic description.")), + position: Long.pipe(field(8, "Position in the community.")), + follower_count: Long.pipe(field(9, "Number of followers.")), +}).annotate({ description: "Topics in the Zendesk community." }); + +export type Article = Schema.Schema.Type; +export type Section = Schema.Schema.Type; +export type Category = Schema.Schema.Type; +export type CommunityPost = Schema.Schema.Type; +export type CommunityTopic = Schema.Schema.Type; + +const objectOf = (schema: Schema.Struct) => + schema.mapFields((fields) => Struct.omit(fields, ["version"])); + +export const ArticleObjectSchema = objectOf(ArticleSchema); +export const SectionObjectSchema = objectOf(SectionSchema); +export const CategoryObjectSchema = objectOf(CategorySchema); +export const CommunityPostObjectSchema = objectOf(CommunityPostSchema); +export const CommunityTopicObjectSchema = objectOf(CommunityTopicSchema); diff --git a/connectors/producer-zendesk/src/schemas/lists.ts b/connectors/producer-zendesk/src/schemas/lists.ts new file mode 100644 index 00000000..82759753 --- /dev/null +++ b/connectors/producer-zendesk/src/schemas/lists.ts @@ -0,0 +1,208 @@ +import { Schema, Struct } from "effect"; + +import { + Json, + Long, + TextOrJson, + Timestamp, + field, + keyedCustomFields, + list, + stringMap, + version, +} from "./shared"; + +const common = (object: string) => ({ + id: Long.pipe(field(1, `${object} ID.`)), + version: version(2, object.toLowerCase()), + created_at: Timestamp.pipe(field(3, `Time the ${object.toLowerCase()} was created.`)), + updated_at: Timestamp.pipe(field(4, `Time the ${object.toLowerCase()} was last updated.`)), +}); + +export const GroupSchema = Schema.Struct({ + ...common("Group"), + name: Schema.String.pipe(field(5, "Group name.")), + description: Schema.String.pipe(field(6, "Group description.")), + default: Schema.Boolean.pipe(field(7, "Whether new tickets go to this group by default.")), + is_public: Schema.Boolean.pipe(field(8, "Whether all agents can see the group.")), +}).annotate({ description: "Zendesk agent groups." }); + +export const BrandSchema = Schema.Struct({ + ...common("Brand"), + name: Schema.String.pipe(field(5, "Brand name.")), + subdomain: Schema.String.pipe(field(6, "Brand subdomain.")), + brand_url: Schema.String.pipe(field(7, "Brand URL.")), + active: Schema.Boolean.pipe(field(8, "Whether the brand is active.")), + default: Schema.Boolean.pipe(field(9, "Whether this is the default brand.")), +}).annotate({ description: "Zendesk brands." }); + +export const TicketFieldSchema = Schema.Struct({ + ...common("Ticket field"), + type: Schema.String.pipe(field(5, "Field type, such as text, tagger, or checkbox.")), + title: Schema.String.pipe(field(6, "Field title shown to agents.")), + raw_title: Schema.String.pipe(field(7, "Title with any dynamic content placeholder.")), + active: Schema.Boolean.pipe(field(8, "Whether the field is active.")), + required: Schema.Boolean.pipe(field(9, "Whether agents must fill it to solve a ticket.")), + custom_field_options: list( + 101, + Schema.Struct({ + id: Long.pipe(field(102, "Option ID.")), + name: Schema.String.pipe(field(103, "Option name.")), + value: Schema.String.pipe(field(104, "Option value, as stored in `custom_fields`.")), + }), + ).pipe(field(10, "Options of a dropdown or multi-select field.")), +}).annotate({ + description: "Zendesk ticket fields. Names the IDs in `tickets.custom_fields`.", +}); + +export const TicketFormSchema = Schema.Struct({ + ...common("Ticket form"), + name: Schema.String.pipe(field(5, "Form name.")), + display_name: Schema.String.pipe(field(6, "Form name shown to end users.")), + active: Schema.Boolean.pipe(field(7, "Whether the form is active.")), + default: Schema.Boolean.pipe(field(8, "Whether this is the default form.")), + ticket_field_ids: list(101, Long).pipe(field(9, "Fields on the form, in order.")), +}).annotate({ description: "Zendesk ticket forms." }); + +export const CustomStatusSchema = Schema.Struct({ + ...common("Custom status"), + status_category: Schema.String.pipe( + field(5, "Status it belongs to: new, open, pending, hold, or solved."), + ), + agent_label: Schema.String.pipe(field(6, "Name shown to agents.")), + end_user_label: Schema.String.pipe(field(7, "Name shown to end users.")), + active: Schema.Boolean.pipe(field(8, "Whether the status is active.")), + default: Schema.Boolean.pipe(field(9, "Whether this is the default for its category.")), +}).annotate({ description: "Zendesk ticket statuses. Names `tickets.custom_status_id`." }); + +const fieldDefinition = (object: string) => ({ + ...common(`${object} field`), + key: Schema.String.pipe(field(5, `Key in \`${object.toLowerCase()}_fields\`.`)), + type: Schema.String.pipe(field(6, "Field type, such as text, dropdown, or checkbox.")), + title: Schema.String.pipe(field(7, "Field title.")), + active: Schema.Boolean.pipe(field(8, "Whether the field is active.")), + position: Long.pipe(field(9, "Position of the field.")), + custom_field_options: list( + 101, + Schema.Struct({ + id: Long.pipe(field(102, "Option ID.")), + name: Schema.String.pipe(field(103, "Option name.")), + value: Schema.String.pipe(field(104, "Option value.")), + }), + ).pipe(field(10, "Options of a dropdown field.")), +}); + +export const UserFieldSchema = Schema.Struct(fieldDefinition("User")).annotate({ + description: "Zendesk user fields. Names the keys in `users.user_fields`.", +}); + +export const OrganizationFieldSchema = Schema.Struct(fieldDefinition("Organization")).annotate({ + description: + "Zendesk organization fields. Names the keys in `organizations.organization_fields`.", +}); + +export const SlaPolicySchema = Schema.Struct({ + ...common("SLA policy"), + title: Schema.String.pipe(field(5, "Policy name.")), + description: Schema.NullOr(Schema.String).pipe(field(6, "Policy description.")), + position: Long.pipe(field(7, "Order in which policies are matched.")), + filter: Schema.String.pipe(field(8, "Conditions a ticket must match, as JSON.")), + policy_metrics: list( + 101, + Schema.Struct({ + priority: Schema.String.pipe(field(102, "Ticket priority the target applies to.")), + metric: Schema.String.pipe(field(103, "Metric, such as first_reply_time.")), + target_in_seconds: Long.pipe(field(104, "Target time in seconds.")), + business_hours: Schema.Boolean.pipe(field(105, "Whether the target counts business hours.")), + }), + ).pipe(field(9, "Targets by priority and metric.")), +}).annotate({ description: "Zendesk SLA policies. Names the policies in `ticket_metric_events`." }); + +export const HolidaySchema = Schema.Struct({ + id: Long.pipe(field(105, "Holiday ID.")), + name: Schema.String.pipe(field(106, "Holiday name.")), + start_date: Schema.String.pipe(field(107, "First day, as YYYY-MM-DD.")), + end_date: Schema.String.pipe(field(108, "Last day, as YYYY-MM-DD.")), +}); + +export const ScheduleSchema = Schema.Struct({ + ...common("Schedule"), + version: Schema.Date.pipe( + field(2, "Time the schedule was read. Holidays don't change `updated_at`."), + ), + name: Schema.String.pipe(field(5, "Schedule name.")), + time_zone: Schema.String.pipe(field(6, "Time zone of the schedule.")), + intervals: list( + 101, + Schema.Struct({ + start_time: Long.pipe(field(102, "Start, in minutes from Sunday midnight.")), + end_time: Long.pipe(field(103, "End, in minutes from Sunday midnight.")), + }), + ).pipe(field(7, "Weekly business hours.")), + holidays: list(104, HolidaySchema).pipe(field(8, "Days off.")), +}).annotate({ description: "Zendesk business hours schedules, with their holidays." }); + +export const CustomRoleSchema = Schema.Struct({ + ...common("Custom role"), + name: Schema.String.pipe(field(5, "Role name.")), + description: Schema.NullOr(Schema.String).pipe(field(6, "Role description.")), + role_type: Long.pipe(field(7, "Role type. 0 is a custom agent role.")), + team_member_count: Long.pipe(field(8, "Agents with the role.")), + configuration: stringMap(101, 102).pipe( + field(9, "Permissions by name. Values other than text are JSON."), + ), +}).annotate({ description: "Zendesk agent roles. Names `users.custom_role_id`." }); + +export const MacroSchema = Schema.Struct({ + ...common("Macro"), + title: Schema.String.pipe(field(5, "Macro name.")), + description: Schema.NullOr(Schema.String).pipe(field(6, "Macro description.")), + active: Schema.Boolean.pipe(field(7, "Whether the macro is active.")), + position: Long.pipe(field(8, "Position of the macro.")), + actions: list( + 101, + Schema.Struct({ + field: Schema.String.pipe(field(102, "Ticket field the action sets.")), + value: Schema.NullOr(Schema.String).pipe(field(103, "Value it sets. Lists are JSON.")), + }), + ).pipe(field(9, "Changes the macro makes to a ticket.")), + restriction: Schema.NullOr(Schema.String).pipe( + field(10, "Who can use the macro, as JSON. Empty for everyone."), + ), +}).annotate({ description: "Zendesk macros: saved replies and ticket changes." }); + +// Zendesk's lists leave out deleted items, so our tables keep them. Older +// tickets still get their names. +const objectOf = (schema: Schema.Struct) => + schema.mapFields((fields) => Struct.omit(fields, ["version"])); + +export const GroupObjectSchema = objectOf(GroupSchema); +export const BrandObjectSchema = objectOf(BrandSchema); +export const TicketFieldObjectSchema = objectOf(TicketFieldSchema).mapFields((fields) => ({ + ...fields, + custom_field_options: Schema.optional(fields.custom_field_options), +})); +export const TicketFormObjectSchema = objectOf(TicketFormSchema); +export const CustomStatusObjectSchema = objectOf(CustomStatusSchema); +const FieldDefinitionObjectSchema = objectOf(UserFieldSchema).mapFields((fields) => ({ + ...fields, + custom_field_options: Schema.optional(fields.custom_field_options), +})); +export const UserFieldObjectSchema = FieldDefinitionObjectSchema; +export const OrganizationFieldObjectSchema = FieldDefinitionObjectSchema; +export const SlaPolicyObjectSchema = objectOf(SlaPolicySchema).mapFields((fields) => ({ + ...fields, + filter: Json, +})); +export const ScheduleObjectSchema = objectOf(ScheduleSchema).mapFields((fields) => + Struct.omit(fields, ["holidays"]), +); +export const CustomRoleObjectSchema = objectOf(CustomRoleSchema).mapFields((fields) => ({ + ...fields, + configuration: keyedCustomFields, +})); +export const MacroObjectSchema = objectOf(MacroSchema).mapFields((fields) => ({ + ...fields, + actions: Schema.Array(Schema.Struct({ field: Schema.String, value: TextOrJson })), + restriction: TextOrJson, +})); diff --git a/connectors/producer-zendesk/src/schemas/memberships.ts b/connectors/producer-zendesk/src/schemas/memberships.ts new file mode 100644 index 00000000..1de27b88 --- /dev/null +++ b/connectors/producer-zendesk/src/schemas/memberships.ts @@ -0,0 +1,42 @@ +import { Schema, Struct } from "effect"; + +import { Long, Timestamp, deleted, field, version } from "./shared"; + +export const GroupMembershipSchema = Schema.Struct({ + id: Long.pipe(field(1, "Membership ID.")), + version: version(2, "membership"), + _deleted: deleted(3, "membership"), + created_at: Timestamp.pipe(field(4, "Time the agent was added to the group.")), + updated_at: Timestamp.pipe(field(5, "Time the membership was last updated.")), + user_id: Long.pipe(field(6, "Agent in the group.")), + group_id: Long.pipe(field(7, "Group.")), + default: Schema.Boolean.pipe(field(8, "Whether this is the agent's default group.")), +}).annotate({ description: "Which agents are in which Zendesk groups." }); + +export type GroupMembership = Schema.Schema.Type; + +export const OrganizationMembershipSchema = Schema.Struct({ + id: Long.pipe(field(1, "Membership ID.")), + version: version(2, "membership"), + _deleted: deleted(3, "membership"), + created_at: Timestamp.pipe(field(4, "Time the user was added to the organization.")), + updated_at: Timestamp.pipe(field(5, "Time the membership was last updated.")), + user_id: Long.pipe(field(6, "User in the organization.")), + organization_id: Long.pipe(field(7, "Organization.")), + default: Schema.NullOr(Schema.Boolean).pipe( + field(8, "Whether this is the user's default organization."), + ), + view_tickets: Schema.Boolean.pipe( + field(9, "Whether the user can see the organization's tickets."), + ), +}).annotate({ + description: "Which users are in which Zendesk organizations. A user can be in several.", +}); + +export type OrganizationMembership = Schema.Schema.Type; + +const objectOf = (schema: Schema.Struct) => + schema.mapFields((fields) => Struct.omit(fields, ["version", "_deleted"])); + +export const GroupMembershipObjectSchema = objectOf(GroupMembershipSchema); +export const OrganizationMembershipObjectSchema = objectOf(OrganizationMembershipSchema); diff --git a/connectors/producer-zendesk/src/schemas/organizations.ts b/connectors/producer-zendesk/src/schemas/organizations.ts new file mode 100644 index 00000000..ab1165f6 --- /dev/null +++ b/connectors/producer-zendesk/src/schemas/organizations.ts @@ -0,0 +1,38 @@ +import { Schema, Struct } from "effect"; + +import { + Long, + Timestamp, + deleted, + field, + keyedCustomFields, + list, + stringMap, + version, +} from "./shared"; + +export const OrganizationSchema = Schema.Struct({ + id: Long.pipe(field(1, "Organization ID.")), + version: version(2, "organization"), + _deleted: deleted(3, "organization"), + created_at: Timestamp.pipe(field(4, "Time the organization was created.")), + updated_at: Timestamp.pipe(field(5, "Time the organization was last updated.")), + name: Schema.String.pipe(field(6, "Organization name. Zendesk renames deleted ones.")), + external_id: Schema.NullOr(Schema.String).pipe(field(7, "ID in another system.")), + group_id: Schema.NullOr(Long).pipe(field(8, "Group that gets new tickets from its users.")), + domain_names: list(101, Schema.String).pipe(field(9, "Email domains of its users.")), + tags: list(102, Schema.String).pipe(field(10, "Organization tags.")), + organization_fields: stringMap(103, 104).pipe( + field(11, "Custom organization field values by field key. Lists are JSON."), + ), +}).annotate({ description: "Zendesk organizations, usually customer companies." }); + +export type Organization = Schema.Schema.Type; + +export const OrganizationObjectSchema = OrganizationSchema.mapFields((fields) => ({ + ...Struct.omit(fields, ["version", "_deleted", "organization_fields"]), + deleted_at: Schema.NullOr(Timestamp), + organization_fields: keyedCustomFields, +})); + +export type OrganizationObject = Schema.Schema.Type; diff --git a/connectors/producer-zendesk/src/schemas/satisfaction.ts b/connectors/producer-zendesk/src/schemas/satisfaction.ts new file mode 100644 index 00000000..b5778fdd --- /dev/null +++ b/connectors/producer-zendesk/src/schemas/satisfaction.ts @@ -0,0 +1,31 @@ +import { Schema, Struct } from "effect"; + +import { Long, Timestamp, field, version } from "./shared"; + +export const SatisfactionRatingSchema = Schema.Struct({ + id: Long.pipe(field(1, "Rating ID.")), + version: version(2, "rating"), + created_at: Timestamp.pipe(field(3, "Time the rating was given.")), + updated_at: Timestamp.pipe(field(4, "Time the rating was last updated.")), + ticket_id: Schema.NullOr(Long).pipe(field(5, "Ticket that was rated.")), + requester_id: Long.pipe(field(6, "User who rated.")), + assignee_id: Schema.NullOr(Long).pipe(field(7, "Agent on the ticket.")), + group_id: Schema.NullOr(Long).pipe(field(8, "Group of the ticket.")), + score: Schema.String.pipe(field(9, "offered, unoffered, good, or bad.")), + comment: Schema.NullOr(Schema.String).pipe(field(10, "Comment with the rating.")), + reason: Schema.NullOr(Schema.String).pipe(field(11, "Reason picked for a bad rating.")), + reason_id: Schema.NullOr(Long).pipe(field(12, "ID of the reason.")), +}).annotate({ + description: + "Zendesk satisfaction ratings, from the legacy CSAT. A new score is a new row; the latest per ticket counts.", +}); + +export type SatisfactionRating = Schema.Schema.Type; + +export const SatisfactionRatingObjectSchema = SatisfactionRatingSchema.mapFields((fields) => ({ + ...Struct.omit(fields, ["version", "reason", "reason_id"]), + reason: Schema.optional(fields.reason), + reason_id: Schema.optional(fields.reason_id), +})); + +export type SatisfactionRatingObject = Schema.Schema.Type; diff --git a/connectors/producer-zendesk/src/schemas/shared.ts b/connectors/producer-zendesk/src/schemas/shared.ts new file mode 100644 index 00000000..c941ed38 --- /dev/null +++ b/connectors/producer-zendesk/src/schemas/shared.ts @@ -0,0 +1,110 @@ +import { Iceberg } from "@useairfoil/connector-kit"; +import { Schema, SchemaTransformation } from "effect"; + +export const field = (fieldId: number, description: string) => + Iceberg.field(fieldId, { description }); + +export const Long = Schema.Int.pipe( + Schema.decodeTo( + Schema.BigInt, + SchemaTransformation.transform({ + decode: (value) => BigInt(value), + encode: (value) => Number(value), + }), + ), +); + +export const LongFromString = Schema.NumberFromString.pipe(Schema.decodeTo(Long)); + +export const Timestamp = Schema.DateFromString; + +export const UnixSeconds = Schema.Number.pipe( + Schema.decodeTo( + Schema.Date, + SchemaTransformation.transform({ + decode: (seconds) => new Date(seconds * 1000), + encode: (date) => date.getTime() / 1000, + }), + ), +); + +export const version = (fieldId: number, object: string) => + Schema.Date.pipe(field(fieldId, `Time Zendesk last updated the ${object}.`)); + +export const deleted = (fieldId: number, object: string) => + Schema.optional(Schema.Boolean).pipe( + field(fieldId, `Whether the ${object} was deleted in Zendesk.`), + ); + +export const list = (elementId: number, item: S) => + Schema.Array(item.annotate({ fieldId: elementId })); + +export const stringMap = (keyId: number, valueId: number) => + Schema.ReadonlyMap( + Schema.String.annotate({ fieldId: keyId }), + Schema.String.annotate({ fieldId: valueId }), + ); + +// Keep list values as JSON. Null values are left out of the map. +const fieldValue = (value: unknown): ReadonlyArray => + value === null || value === undefined + ? [] + : [typeof value === "string" ? value : JSON.stringify(value)]; + +export const Json = Schema.Unknown.pipe( + Schema.decodeTo( + Schema.String, + SchemaTransformation.transform({ + decode: (value) => JSON.stringify(value), + encode: (text) => JSON.parse(text), + }), + ), +); + +/** Strings stay as they are. Other values become JSON. */ +export const asText = (value: unknown): string | null => fieldValue(value)[0] ?? null; + +export const TextOrJson = Schema.Unknown.pipe( + Schema.decodeTo( + Schema.NullOr(Schema.String), + SchemaTransformation.transform({ + decode: asText, + encode: (text) => text, + }), + ), +); + +/** Ticket `custom_fields`, as a map from field ID to value. */ +export const ticketCustomFields = Schema.Array( + Schema.Struct({ id: Schema.Number, value: Schema.Unknown }), +).pipe( + Schema.decodeTo( + Schema.ReadonlyMap(Schema.String, Schema.String), + SchemaTransformation.transform< + ReadonlyMap, + ReadonlyArray<{ readonly id: number; readonly value: unknown }> + >({ + decode: (fields) => + new Map( + fields.flatMap(({ id, value }) => fieldValue(value).map((text) => [String(id), text])), + ), + encode: (fields) => Array.from(fields, ([id, value]) => ({ id: Number(id), value })), + }), + ), +); + +/** User and organization fields, as a map from field key to value. */ +export const keyedCustomFields = Schema.Record(Schema.String, Schema.Unknown).pipe( + Schema.decodeTo( + Schema.ReadonlyMap(Schema.String, Schema.String), + SchemaTransformation.transform, Readonly>>({ + decode: (fields) => + new Map( + Object.entries(fields).flatMap(([key, value]) => + fieldValue(value).map((text) => [key, text]), + ), + ), + encode: (fields) => Object.fromEntries(fields), + }), + ), +); diff --git a/connectors/producer-zendesk/src/schemas/talk.ts b/connectors/producer-zendesk/src/schemas/talk.ts new file mode 100644 index 00000000..554d754b --- /dev/null +++ b/connectors/producer-zendesk/src/schemas/talk.ts @@ -0,0 +1,42 @@ +import { Schema, Struct } from "effect"; + +import { Long, Timestamp, field, list } from "./shared"; + +export const TalkLineSchema = Schema.Struct({ + id: Long.pipe(field(1, "Line ID.")), + version: Schema.Date.pipe(field(2, "Time the line was read. Lines have no update time.")), + created_at: Timestamp.pipe(field(3, "Time the line was added.")), + line_type: Schema.String.pipe(field(4, "phone or digital.")), + nickname: Schema.NullOr(Schema.String).pipe(field(5, "Line name.")), + number: Schema.NullOr(Schema.String).pipe(field(6, "Phone number. Empty for digital lines.")), + display_number: Schema.NullOr(Schema.String).pipe(field(7, "Phone number as shown.")), + country_code: Schema.NullOr(Schema.String).pipe(field(8, "Country of the number.")), + toll_free: Schema.NullOr(Schema.Boolean).pipe(field(9, "Whether the number is toll free.")), + brand_id: Schema.NullOr(Long).pipe(field(10, "Brand of the line.")), + default_group_id: Schema.NullOr(Long).pipe(field(11, "Group calls go to first.")), + group_ids: list(101, Long).pipe(field(12, "Groups that take calls.")), + priority: Long.pipe(field(13, "Priority of calls on the line.")), + recorded: Schema.Boolean.pipe(field(14, "Whether calls are recorded.")), + transcription: Schema.Boolean.pipe(field(15, "Whether voicemails are transcribed.")), +}).annotate({ description: "Zendesk Talk lines: phone numbers and digital lines." }); + +export type TalkLine = Schema.Schema.Type; + +// Digital lines leave out the phone number fields, and phone lines the brand. +export const TalkLineObjectSchema = TalkLineSchema.mapFields((fields) => ({ + ...Struct.omit(fields, [ + "version", + "number", + "display_number", + "country_code", + "toll_free", + "brand_id", + ]), + brand_id: Schema.optional(fields.brand_id), + number: Schema.optional(fields.number), + display_number: Schema.optional(fields.display_number), + country_code: Schema.optional(fields.country_code), + toll_free: Schema.optional(fields.toll_free), +})); + +export type TalkLineObject = Schema.Schema.Type; diff --git a/connectors/producer-zendesk/src/schemas/ticket-events.ts b/connectors/producer-zendesk/src/schemas/ticket-events.ts new file mode 100644 index 00000000..33f0f597 --- /dev/null +++ b/connectors/producer-zendesk/src/schemas/ticket-events.ts @@ -0,0 +1,97 @@ +import { Schema } from "effect"; + +import { TicketEventSchema } from "./comments"; +import { Long, TextOrJson, Timestamp, deleted, field } from "./shared"; + +export const TicketFieldChangeSchema = Schema.Struct({ + id: Long.pipe(field(1, "Change ID.")), + version: Schema.Date.pipe(field(2, "Time of the ticket update.")), + ticket_id: Long.pipe(field(3, "Ticket that changed.")), + updater_id: Long.pipe(field(4, "User who made the update. -1 for Zendesk itself.")), + event_type: Schema.String.pipe(field(5, "Create for the first value, or Change.")), + field_name: Schema.String.pipe( + field(6, "Field that changed, such as status, or a custom field ID from `ticket_fields`."), + ), + value: Schema.NullOr(Schema.String).pipe(field(7, "New value. Lists are JSON.")), + previous_value: Schema.NullOr(Schema.String).pipe( + field(8, "Value before the change. Empty for Create and for tags."), + ), + via: Schema.String.pipe(field(9, "What made the change, such as Web form or Rule.")), +}).annotate({ description: "Every change to a Zendesk ticket field, one row per field." }); + +export type TicketFieldChange = Schema.Schema.Type; + +export const isFieldChangeEvent = Schema.is( + Schema.Struct({ event_type: Schema.Literals(["Create", "Change"]) }), +); + +/** The changed field is the one key left over, named after the field. */ +export const FieldChangeEventSchema = Schema.StructWithRest( + Schema.Struct({ + id: Long, + via: Schema.String, + event_type: Schema.String, + previous_value: Schema.optional(TextOrJson), + }), + [Schema.Record(Schema.String, Schema.Unknown)], +); + +export type FieldChangeEvent = Schema.Schema.Type; + +export const TicketAuditSchema = TicketEventSchema.mapFields((fields) => ({ + ...fields, + updater_id: Long, +})); + +export type TicketAudit = Schema.Schema.Type; + +export const TicketMetricEventSchema = Schema.Struct({ + id: Long.pipe(field(1, "Event ID.")), + version: Schema.Date.pipe(field(2, "Time of the event.")), + _deleted: deleted(3, "ticket"), + ticket_id: Schema.NullOr(Long).pipe(field(4, "Ticket the event is on.")), + metric: Schema.String.pipe( + field(5, "Metric, such as reply_time, agent_work_time, or resolution_time."), + ), + instance_id: Long.pipe(field(6, "Which run of the metric. Reply time counts each reply.")), + type: Schema.String.pipe( + field(7, "activate, pause, fulfill, apply_sla, breach, update_status, measure, and others."), + ), + time: Timestamp.pipe(field(8, "Time of the event.")), + sla_policy_id: Schema.NullOr(Long).pipe(field(9, "SLA policy, on apply_sla events.")), + sla_target_in_seconds: Schema.NullOr(Long).pipe(field(10, "SLA target, on apply_sla events.")), + sla_business_hours: Schema.NullOr(Schema.Boolean).pipe( + field(11, "Whether the SLA target counts business hours."), + ), + status_calendar: Schema.NullOr(Long).pipe( + field(12, "Minutes so far in calendar time, on update_status events."), + ), + status_business: Schema.NullOr(Long).pipe( + field(13, "Minutes so far in business hours, on update_status events."), + ), +}).annotate({ + description: + "Zendesk ticket metric events: SLA targets and breaches, and each step of reply and resolution times.", +}); + +export type TicketMetricEvent = Schema.Schema.Type; + +export const TicketMetricEventObjectSchema = Schema.Struct({ + id: Long, + ticket_id: Schema.NullOr(Long), + metric: Schema.String, + instance_id: Long, + type: Schema.String, + time: Timestamp, + deleted: Schema.Boolean, + sla: Schema.optional( + Schema.Struct({ + target_in_seconds: Long, + business_hours: Schema.Boolean, + policy: Schema.Struct({ id: Long }), + }), + ), + status: Schema.optional(Schema.Struct({ calendar: Long, business: Long })), +}); + +export type TicketMetricEventObject = Schema.Schema.Type; diff --git a/connectors/producer-zendesk/src/schemas/tickets.ts b/connectors/producer-zendesk/src/schemas/tickets.ts new file mode 100644 index 00000000..65c92b48 --- /dev/null +++ b/connectors/producer-zendesk/src/schemas/tickets.ts @@ -0,0 +1,95 @@ +import { Schema, Struct } from "effect"; + +import { + Long, + Timestamp, + UnixSeconds, + deleted, + field, + list, + stringMap, + ticketCustomFields, +} from "./shared"; + +const minutes = (baseId: number, description: string) => + Schema.Struct({ + calendar: Schema.NullOr(Long).pipe(field(baseId, "Minutes in calendar hours.")), + business: Schema.NullOr(Long).pipe(field(baseId + 1, "Minutes in business hours.")), + }).pipe(field(baseId + 2, description)); + +const MetricsSchema = Schema.Struct({ + replies: Long.pipe(field(110, "Number of agent replies.")), + reopens: Long.pipe(field(111, "Number of times the ticket was reopened.")), + assignee_stations: Long.pipe(field(112, "Number of assignees the ticket had.")), + group_stations: Long.pipe(field(113, "Number of groups the ticket had.")), + reply_time_in_minutes: minutes(114, "Time to the first agent reply."), + first_resolution_time_in_minutes: minutes(117, "Time to the first solve."), + full_resolution_time_in_minutes: minutes(120, "Time to the last solve."), + agent_wait_time_in_minutes: minutes(123, "Time spent pending, waiting on the agent."), + requester_wait_time_in_minutes: minutes(126, "Time spent waiting on the requester."), + on_hold_time_in_minutes: minutes(129, "Time spent on hold."), + assigned_at: Schema.NullOr(Timestamp).pipe(field(132, "Time of the last assignment.")), + initially_assigned_at: Schema.NullOr(Timestamp).pipe(field(133, "Time of the first assignment.")), + solved_at: Schema.NullOr(Timestamp).pipe(field(134, "Time the ticket was last solved.")), + latest_comment_added_at: Schema.NullOr(Timestamp).pipe(field(135, "Time of the latest comment.")), + status_updated_at: Schema.NullOr(Timestamp).pipe(field(136, "Time the status last changed.")), +}); + +export const TicketSchema = Schema.Struct({ + id: Long.pipe(field(1, "Ticket ID.")), + version: Schema.Date.pipe( + field(2, "Time Zendesk last changed the ticket, system updates included."), + ), + _deleted: deleted(3, "ticket"), + created_at: Timestamp.pipe(field(4, "Time the ticket was created.")), + updated_at: Timestamp.pipe(field(5, "Time someone last updated the ticket.")), + subject: Schema.NullOr(Schema.String).pipe(field(6, "Ticket subject.")), + description: Schema.NullOr(Schema.String).pipe(field(7, "Text of the first comment.")), + status: Schema.String.pipe( + field(8, "Status: new, open, pending, hold, solved, closed, or deleted."), + ), + custom_status_id: Schema.NullOr(Long).pipe(field(9, "Custom status ID, in `custom_statuses`.")), + priority: Schema.NullOr(Schema.String).pipe(field(10, "Priority: low, normal, high, or urgent.")), + type: Schema.NullOr(Schema.String).pipe(field(11, "Type: problem, incident, question, or task.")), + via: Schema.Struct({ + channel: Schema.String.pipe(field(101, "Channel, such as email, web, or api.")), + }).pipe(field(12, "How the ticket was created.")), + requester_id: Schema.NullOr(Long).pipe(field(13, "User who asked for help.")), + submitter_id: Schema.NullOr(Long).pipe(field(14, "User who created the ticket.")), + assignee_id: Schema.NullOr(Long).pipe(field(15, "Agent assigned to the ticket.")), + organization_id: Schema.NullOr(Long).pipe(field(16, "Organization of the requester.")), + group_id: Schema.NullOr(Long).pipe(field(17, "Group assigned to the ticket.")), + brand_id: Schema.NullOr(Long).pipe(field(18, "Brand of the ticket.")), + ticket_form_id: Schema.NullOr(Long).pipe(field(19, "Form of the ticket.")), + problem_id: Schema.NullOr(Long).pipe(field(20, "Problem ticket this incident is linked to.")), + due_at: Schema.NullOr(Timestamp).pipe(field(21, "Due time of a task ticket.")), + external_id: Schema.NullOr(Schema.String).pipe(field(22, "ID in another system.")), + is_public: Schema.Boolean.pipe(field(23, "Whether the ticket has a public comment.")), + satisfaction_rating: Schema.NullOr( + Schema.Struct({ + score: Schema.String.pipe(field(102, "Score: offered, unoffered, good, or bad.")), + comment: Schema.optional(Schema.NullOr(Schema.String)).pipe( + field(103, "Comment left with the rating."), + ), + }), + ).pipe(field(24, "Customer satisfaction. The full answers are in `survey_responses`.")), + tags: list(104, Schema.String).pipe(field(25, "Ticket tags.")), + custom_fields: stringMap(105, 106).pipe( + field(26, "Custom field values by field ID, in `ticket_fields`. Lists are JSON."), + ), + metrics: Schema.NullOr(MetricsSchema).pipe(field(27, "Reply, wait, and resolution times.")), +}).annotate({ description: "Zendesk tickets, with their metrics." }); + +export type Ticket = Schema.Schema.Type; + +export const TicketObjectSchema = TicketSchema.mapFields((fields) => ({ + ...Struct.omit(fields, ["version", "_deleted", "custom_fields", "metrics"]), + generated_timestamp: UnixSeconds, + custom_fields: ticketCustomFields, +})); + +export type TicketObject = Schema.Schema.Type; + +export const MetricSetSchema = Schema.Struct({ ticket_id: Long, ...MetricsSchema.fields }); + +export type MetricSet = Schema.Schema.Type; diff --git a/connectors/producer-zendesk/src/schemas/users.ts b/connectors/producer-zendesk/src/schemas/users.ts new file mode 100644 index 00000000..4a59a8f6 --- /dev/null +++ b/connectors/producer-zendesk/src/schemas/users.ts @@ -0,0 +1,65 @@ +import { Schema, Struct } from "effect"; + +import { + Long, + Timestamp, + deleted, + field, + keyedCustomFields, + list, + stringMap, + version, +} from "./shared"; + +const IdentitySchema = Schema.Struct({ + id: Long.pipe(field(105, "Identity ID.")), + type: Schema.String.pipe(field(106, "email, phone_number, twitter, and others.")), + value: Schema.String.pipe(field(107, "Email address, phone number, or handle.")), + verified: Schema.Boolean.pipe(field(108, "Whether the identity is verified.")), + primary: Schema.Boolean.pipe(field(109, "Whether it's the primary one of its type.")), +}); + +export const UserSchema = Schema.Struct({ + id: Long.pipe(field(1, "User ID.")), + version: version(2, "user"), + _deleted: deleted(3, "user"), + created_at: Timestamp.pipe(field(4, "Time the user was created.")), + updated_at: Timestamp.pipe(field(5, "Time the user was last updated.")), + name: Schema.String.pipe(field(6, "User name.")), + email: Schema.NullOr(Schema.String).pipe(field(7, "Primary email. Empty for some end users.")), + role: Schema.String.pipe(field(8, "Role: end-user, agent, or admin.")), + custom_role_id: Schema.NullOr(Long).pipe(field(9, "Custom agent role ID.")), + organization_id: Schema.NullOr(Long).pipe(field(10, "Default organization of the user.")), + default_group_id: Schema.NullOr(Long).pipe(field(11, "Default group of an agent.")), + suspended: Schema.Boolean.pipe(field(12, "Whether the user is suspended.")), + verified: Schema.Boolean.pipe(field(13, "Whether the primary identity is verified.")), + locale: Schema.NullOr(Schema.String).pipe(field(14, "Locale, such as en-US.")), + time_zone: Schema.NullOr(Schema.String).pipe(field(15, "Time zone name.")), + external_id: Schema.NullOr(Schema.String).pipe(field(16, "ID in another system.")), + last_login_at: Schema.NullOr(Timestamp).pipe(field(17, "Time of the last sign-in.")), + tags: list(101, Schema.String).pipe(field(18, "User tags.")), + user_fields: stringMap(102, 103).pipe( + field(19, "Custom user field values by field key. Lists are JSON."), + ), + identities: list(104, IdentitySchema).pipe( + field(20, "Every email, phone number, and other identity of the user."), + ), +}).annotate({ description: "Zendesk users: end users, agents, and admins." }); + +export type User = Schema.Schema.Type; + +export const UserObjectSchema = UserSchema.mapFields((fields) => ({ + ...Struct.omit(fields, ["version", "_deleted", "user_fields", "identities"]), + // `false` once the user is deleted. + active: Schema.Boolean, + user_fields: keyedCustomFields, +})); + +export type UserObject = Schema.Schema.Type; + +export const IdentityObjectSchema = Schema.Struct({ + ...IdentitySchema.fields, + user_id: Long, +}); + +export type IdentityObject = Schema.Schema.Type; diff --git a/connectors/producer-zendesk/src/start.ts b/connectors/producer-zendesk/src/start.ts new file mode 100644 index 00000000..ad246ce6 --- /dev/null +++ b/connectors/producer-zendesk/src/start.ts @@ -0,0 +1,47 @@ +import { PgClient } from "@effect/sql-pg"; +import { + ConnectorApp, + Ingestor, + RuntimeConfig, + StateStore, + Telemetry, +} from "@useairfoil/connector-kit"; +import { Config, Effect, Layer, Logger, Schema } from "effect"; +import { Command } from "effect/cli"; + +import { ZendeskConnector } from "./index"; + +const ConnectorLayer = ZendeskConnector.layerConfig(ZendeskConnector.ZendeskConfigDef.config); +const TelemetryLayer = Telemetry.layerOtlp(); +const PostgresLayer = PgClient.layerConfig({ + url: Config.schema( + Schema.Redacted(Schema.NonEmptyString), + RuntimeConfig.PlatformRuntimeKey.postgresConnectionString, + ), + maxConnections: Config.succeed(2), + connectTimeout: Config.succeed("5 seconds"), + applicationName: Config.succeed("airfoil-producer-zendesk"), +}); +const StateStoreLayer = StateStore.layerSql().pipe(Layer.provide(PostgresLayer)); + +export const startCommand = Command.make("start", {}, () => + Effect.gen(function* () { + const port = yield* RuntimeConfig.httpPort; + const entrypoint = yield* ZendeskConnector.ZendeskConnector; + + return yield* ConnectorApp.start(entrypoint, { port }).pipe( + Effect.provide(Ingestor.layerWingsConfig(entrypoint)), + ); + }).pipe( + Effect.annotateLogs({ component: "zendesk" }), + Effect.provide( + Layer.mergeAll( + StateStoreLayer, + ConnectorLayer, + Logger.layer([Logger.consolePretty()]), + TelemetryLayer, + ), + ), + Effect.provide(RuntimeConfig.layerHosted()), + ), +).pipe(Command.withDescription("Run the production connector against Wings")); diff --git a/connectors/producer-zendesk/src/tables.ts b/connectors/producer-zendesk/src/tables.ts new file mode 100644 index 00000000..9a8ca797 --- /dev/null +++ b/connectors/producer-zendesk/src/tables.ts @@ -0,0 +1,62 @@ +import type { Schema } from "effect"; + +import { TicketCommentSchema } from "./schemas/comments"; +import { CsatSurveySchema, SurveyResponseSchema } from "./schemas/csat"; +import { + ArticleSchema, + CategorySchema, + CommunityPostSchema, + CommunityTopicSchema, + SectionSchema, +} from "./schemas/help-center"; +import { + BrandSchema, + CustomRoleSchema, + CustomStatusSchema, + GroupSchema, + MacroSchema, + OrganizationFieldSchema, + ScheduleSchema, + SlaPolicySchema, + TicketFieldSchema, + TicketFormSchema, + UserFieldSchema, +} from "./schemas/lists"; +import { GroupMembershipSchema, OrganizationMembershipSchema } from "./schemas/memberships"; +import { OrganizationSchema } from "./schemas/organizations"; +import { SatisfactionRatingSchema } from "./schemas/satisfaction"; +import { TalkLineSchema } from "./schemas/talk"; +import { TicketFieldChangeSchema, TicketMetricEventSchema } from "./schemas/ticket-events"; +import { TicketSchema } from "./schemas/tickets"; +import { UserSchema } from "./schemas/users"; + +export const tableSchemas: Readonly> = { + tickets: TicketSchema, + ticket_comments: TicketCommentSchema, + users: UserSchema, + organizations: OrganizationSchema, + groups: GroupSchema, + brands: BrandSchema, + ticket_fields: TicketFieldSchema, + ticket_forms: TicketFormSchema, + custom_statuses: CustomStatusSchema, + survey_responses: SurveyResponseSchema, + csat_surveys: CsatSurveySchema, + ticket_field_history: TicketFieldChangeSchema, + ticket_metric_events: TicketMetricEventSchema, + satisfaction_ratings: SatisfactionRatingSchema, + group_memberships: GroupMembershipSchema, + organization_memberships: OrganizationMembershipSchema, + user_fields: UserFieldSchema, + organization_fields: OrganizationFieldSchema, + custom_roles: CustomRoleSchema, + sla_policies: SlaPolicySchema, + schedules: ScheduleSchema, + macros: MacroSchema, + articles: ArticleSchema, + sections: SectionSchema, + categories: CategorySchema, + community_posts: CommunityPostSchema, + community_topics: CommunityTopicSchema, + talk_lines: TalkLineSchema, +}; diff --git a/connectors/producer-zendesk/test/__cassettes__/api.vcr.test.cassette b/connectors/producer-zendesk/test/__cassettes__/api.vcr.test.cassette new file mode 100644 index 00000000..8f01968c --- /dev/null +++ b/connectors/producer-zendesk/test/__cassettes__/api.vcr.test.cassette @@ -0,0 +1,2470 @@ +{ + "exports": { + "default": { + "meta": { + "createdAt": "2026-10-12T11:59:12.154Z", + "version": "1" + }, + "entries": {} + }, + "Zendesk API (vcr) > checks, backfills, and reads changes for every resource": { + "meta": { + "createdAt": "2026-10-12T11:59:12.158Z", + "version": "1" + }, + "entries": { + "{\"body\":\"{\\\"expires_in\\\":1800,\\\"grant_type\\\":\\\"client_credentials\\\",\\\"scope\\\":\\\"read\\\"}\",\"headers\":{\"accept\":\"application/json\",\"content-type\":\"application/json\"},\"method\":\"POST\",\"url\":\"https://stealth-37618.zendesk.com/oauth/tokens\"}": { + "request": { + "method": "POST", + "url": "https://stealth-37618.zendesk.com/oauth/tokens", + "headers": { + "accept": "application/json", + "content-type": "application/json" + }, + "body": "{\"client_id\":\"zendesk-client-id-placeholder\",\"client_secret\":\"zendesk-client-secret-placeholder\",\"expires_in\":1800,\"grant_type\":\"client_credentials\",\"scope\":\"read\"}" + }, + "response": { + "status": 200, + "body": "{\"access_token\":\"zendesk-access-token-placeholder\",\"expires_in\":1800,\"scope\":\"read\",\"token_type\":\"bearer\"}", + "headers": { + "cache-control": "no-store", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495efe30954446f-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json", + "date": "Mon, 12 Oct 2026 11:59:12 GMT", + "etag": "W/\"da4f686209c440dd63d59e983f8fc71b\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "p3p": "CP=\"NOI DSP COR NID ADMa OPTa OUR NOR\"", + "pragma": "no-cache", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=sFq%2F14pHOu2wbjygWhQAXTR%2BWtID9Cf4dqpzWpWHjenAOIGfHf%2BdhC266P%2BE%2FzJVwuDdonNbt0zB%2FHi%2BqtyoABgTElhve4z%2B3F5G0xr8xj9FICv3RvF4C9oyqpeUIQ%2BFolimUZO3agVuAPg%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept, Accept-Encoding", + "via": "zorg", + "x-envoy-decorator-operation": "/oauth", + "x-envoy-upstream-service-time": "116", + "x-frame-options": "SAMEORIGIN", + "x-request-id": "a495efe30954446f-BOM", + "x-request-validation": "ignored", + "x-runtime": "0.103250", + "x-zendesk-origin-server": "classic-app-server-684948598d-2pcv9", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/tickets/cursor?include=metric_sets&start_time=0&per_page=1\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/tickets/cursor?include=metric_sets&start_time=0&per_page=1", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"after_cursor\":\"MTc5MTQ5NDA2MC4wfHwxfA==\",\"after_url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/tickets/cursor.json?cursor=MTc5MTQ5NDA2MC4wfHwxfA%3D%3D&include=metric_sets&per_page=1\",\"before_cursor\":null,\"before_url\":null,\"end_of_stream\":false,\"metric_sets\":[{\"agent_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"assigned_at\":\"2026-10-08T21:14:17Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-08T21:14:17Z\",\"created_at\":\"2026-10-08T21:14:17Z\",\"custom_status_updated_at\":\"2026-10-08T21:14:17Z\",\"first_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"full_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"group_stations\":1,\"id\":39771696929565,\"initially_assigned_at\":\"2026-10-08T21:14:17Z\",\"latest_comment_added_at\":\"2026-10-08T21:14:17Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":0,\"reply_time_in_minutes\":{\"business\":null,\"calendar\":null},\"requester_updated_at\":\"2026-10-08T21:14:17Z\",\"requester_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"solved_at\":null,\"status_updated_at\":\"2026-10-08T21:14:17Z\",\"ticket_id\":1,\"updated_at\":\"2026-10-08T21:14:17Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771696929565.json\"}],\"tickets\":[{\"allow_attachments\":true,\"allow_channelback\":false,\"assignee_id\":39771704393373,\"brand_id\":39771695429277,\"collaborator_ids\":[],\"created_at\":\"2026-10-08T21:14:17Z\",\"custom_fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__software__login_issues__cant_login\"},{\"id\":39771680545309,\"value\":\"topic_confidence__high\"},{\"id\":39771680548637,\"value\":\"sentiment__negative\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"custom_status_id\":39771695441053,\"description\":\"Hi, I reset my password earlier today, but I’m still not able to log in. I keep getting an error message when I try, and I’ve already attempted it a couple of times. Could someone please take a look? I need to get into my account as soon as possible.\",\"due_at\":null,\"email_cc_ids\":[],\"encoded_id\":\"LMNP2J-W5D43\",\"external_id\":null,\"fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__software__login_issues__cant_login\"},{\"id\":39771680545309,\"value\":\"topic_confidence__high\"},{\"id\":39771680548637,\"value\":\"sentiment__negative\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"follower_ids\":[],\"followup_ids\":[],\"forum_topic_id\":null,\"from_messaging_channel\":false,\"generated_timestamp\":1791494060,\"group_id\":39771663256989,\"has_incidents\":false,\"id\":1,\"is_public\":true,\"metric_set\":{\"agent_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"assigned_at\":\"2026-10-08T21:14:17Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-08T21:14:17Z\",\"created_at\":\"2026-10-08T21:14:17Z\",\"custom_status_updated_at\":\"2026-10-08T21:14:17Z\",\"first_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"full_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"group_stations\":1,\"id\":39771696929565,\"initially_assigned_at\":\"2026-10-08T21:14:17Z\",\"latest_comment_added_at\":\"2026-10-08T21:14:17Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":0,\"reply_time_in_minutes\":{\"business\":null,\"calendar\":null},\"requester_updated_at\":\"2026-10-08T21:14:17Z\",\"requester_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"solved_at\":null,\"status_updated_at\":\"2026-10-08T21:14:17Z\",\"ticket_id\":1,\"updated_at\":\"2026-10-08T21:14:17Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771696929565.json\"},\"organization_id\":null,\"priority\":\"normal\",\"problem_id\":null,\"raw_subject\":\"SAMPLE: Unable to log in after password reset\",\"recipient\":null,\"requester_id\":39771664570525,\"satisfaction_rating\":{\"score\":\"unoffered\"},\"sharing_agreement_ids\":[],\"status\":\"open\",\"subject\":\"SAMPLE: Unable to log in after password reset\",\"submitter_id\":39771664570525,\"support_type\":\"agent\",\"tags\":[\"zendesk_accelerated_setup\"],\"ticket_form_id\":39771663206685,\"type\":null,\"updated_at\":\"2026-10-08T21:14:20Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/tickets/1.json\",\"via\":{\"channel\":\"email\",\"source\":{\"from\":{\"address\":\"example@zendesk.com\",\"name\":\"Customer\"},\"rel\":null,\"to\":{\"name\":\"Stealth\"}}}}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495efe51b2d446f-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:12 GMT", + "etag": "W/\"01fa51e57f188fbe714e3bbd79f388d9\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "399", + "ratelimit-reset": "48", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=TgreIGZbcseVim6pYAgpTtrt2BxhwsmlNIqyfGmpSvduWZXWeVZaCXQh%2FER9hmE4YOL2cZSarw3vzUFGoT1xRWMsC0azeTtUxbKkoJ4g8cdVuLVr%2B%2FncKHDD3Pkqd%2BN5ZBAS3lXKq7%2FIex0%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "132", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/tickets/cursor", + "x-rate-limit": "400", + "x-rate-limit-remaining": "399", + "x-request-id": "a495efe51b2d446f-BOM", + "x-request-validation": "matched", + "x-runtime": "0.126305", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-pktsb", + "x-zendesk-zorg": "yes", + "zendesk-ratelimit-incremental-exports": "total=10; remaining=9; resets=48", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events?include=comment_events&start_time=0&per_page=1\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events?include=comment_events&start_time=0&per_page=1", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"count\":2,\"end_of_stream\":false,\"end_time\":1791494058,\"next_page\":\"https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events.json?include=comment_events&per_page=1&start_time=1791494058\",\"ticket_events\":[{\"child_events\":[{\"attachments\":[],\"audit_id\":39771664580253,\"author_id\":39771664570525,\"body\":\"Hi, I reset my password earlier today, but I’m still not able to log in. I keep getting an error message when I try, and I’ve already attempted it a couple of times. Could someone please take a look? I need to get into my account as soon as possible.\",\"created_at\":\"2026-10-08T21:14:17Z\",\"event_type\":\"Comment\",\"html_body\":\"
Hi, I reset my password earlier today, but I’m still not able to log in. I keep getting an error message when I try, and I’ve already attempted it a couple of times. Could someone please take a look? I need to get into my account as soon as possible.
\",\"id\":39771664580381,\"plain_body\":\"Hi, I reset my password earlier today, but I’m still not able to log in. I keep getting an error message when I try, and I’ve already attempted it a couple of times. Could someone please take a look? I need to get into my account as soon as possible.\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"email\",\"source\":{\"from\":{\"address\":\"example@zendesk.com\",\"name\":\"Customer\",\"original_recipients\":[]},\"rel\":null,\"to\":{\"name\":\"Stealth\"}}},\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664580509,\"priority\":\"normal\",\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664580637,\"subject\":\"SAMPLE: Unable to log in after password reset\",\"via\":\"Mail\",\"via_reference_id\":null},{\"added_tags\":[\"zendesk_accelerated_setup\"],\"event_type\":\"Create\",\"id\":39771664580765,\"removed_tags\":[],\"tags\":[\"zendesk_accelerated_setup\"],\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664580893,\"type\":null,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664581021,\"status\":\"open\",\"via\":\"Mail\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771664581149,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771664581277,\"via\":\"Mail\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771664581405,\"via\":\"Mail\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771664581533,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664581661,\"ticket_form_id\":\"39771663206685\",\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664581789,\"requester_id\":39771664570525,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664589853,\"sla_policy\":\"Set first reply time\",\"via\":\"Mail\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:14:17Z\",\"event_type\":\"Audit\",\"id\":39771664580253,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4ENVV107JJBG1ENJXS7JETF\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":1,\"timestamp\":1791494057,\"updater_id\":39771664570525,\"via\":\"Mail\"},{\"child_events\":[],\"created_at\":\"2026-10-08T21:14:17Z\",\"event_type\":\"Audit\",\"id\":39771681970845,\"metadata\":{\"custom\":{},\"parent_audit_id\":\"39771664580253\",\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":1,\"timestamp\":1791494057,\"updater_id\":-1,\"via\":\"SLA\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f00b0c413b0a-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:18 GMT", + "etag": "W/\"a085f827a4ad1ae7dde1385efa8fc802\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "398", + "ratelimit-reset": "42", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=CcuBbkZItrNbD%2B6Hd5KFVgKTcoLf5ttbI2NRv6gQrdpQFG%2FiqOcmagTKCuRf3J1H8vw1UXOdz93A%2BRcL5Fz7CrlBqwvLorWbAgUIBfVB1efECsZWY37IRhSXQEtMHJFYrtSdF0yZevkJDjg%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "107", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/ticket_events", + "x-rate-limit": "400", + "x-rate-limit-remaining": "398", + "x-request-id": "a495f00b0c413b0a-DUB", + "x-request-validation": "matched", + "x-runtime": "0.102972", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-pktsb", + "x-zendesk-zorg": "yes", + "zendesk-ratelimit-incremental-exports": "total=10; remaining=8; resets=42", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/users/cursor?include=identities&start_time=0&per_page=1\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/users/cursor?include=identities&start_time=0&per_page=1", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"after_cursor\":\"MTc5MTQ5NDA1Ny4wfHwzOTc3MTY2NDU3MDUyNXw=\",\"after_url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/users/cursor?cursor=MTc5MTQ5NDA1Ny4wfHwzOTc3MTY2NDU3MDUyNXw%3D&include=identities&per_page=1\",\"before_cursor\":null,\"before_url\":null,\"end_of_stream\":false,\"identities\":[{\"created_at\":\"2026-10-08T21:14:17Z\",\"deliverable_state\":\"deliverable\",\"id\":39771696925853,\"primary\":true,\"type\":\"email\",\"undeliverable_count\":0,\"updated_at\":\"2026-10-08T21:14:17Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771664570525/identities/39771696925853.json\",\"user_id\":39771664570525,\"value\":\"example@zendesk.com\",\"verification_method\":\"none\",\"verified\":false,\"verified_at\":null}],\"users\":[{\"active\":true,\"alias\":null,\"created_at\":\"2026-10-08T21:14:17Z\",\"custom_role_id\":null,\"default_group_id\":null,\"details\":null,\"email\":\"user@example.com\",\"external_id\":null,\"iana_time_zone\":\"Asia/Kolkata\",\"id\":39771664570525,\"is_billing_admin\":null,\"last_login_at\":null,\"locale\":\"en-US\",\"locale_id\":1,\"moderator\":false,\"name\":\"Customer\",\"notes\":null,\"only_private_comments\":false,\"organization_id\":null,\"phone\":null,\"photo\":null,\"report_csv\":false,\"restricted_agent\":false,\"role\":\"end-user\",\"role_type\":null,\"shared\":false,\"shared_agent\":false,\"shared_phone_number\":null,\"signature\":null,\"suspended\":false,\"suspension_details\":null,\"tags\":[],\"ticket_restriction\":\"requested\",\"time_zone\":\"Asia/Kolkata\",\"two_factor_auth_enabled\":null,\"updated_at\":\"2026-10-08T21:14:17Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771664570525.json\",\"user_fields\":{\"plan_tier\":null},\"verified\":false}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f00d2dc23b0a-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:18 GMT", + "etag": "W/\"e23f41102a7b62723638db969d067528\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "397", + "ratelimit-reset": "42", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=iPYwSZiG1%2BBUNZMfW2W2Fq1zYBrZdt3k1FUbRmbeOzheSwuI8qu5eV4Oud7jj%2BJCHQVIpV6AKYDJ9BRzQlovHoKWq4jIXisi01jfeoKWFhccI4QXItZqMBYeth9zk2yiyaPel1Y32GhjGJ0%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept, Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "119", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/users/cursor", + "x-rate-limit": "400", + "x-rate-limit-remaining": "397", + "x-request-id": "a495f00d2dc23b0a-DUB", + "x-request-validation": "matched", + "x-runtime": "0.114462", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-pktsb", + "x-zendesk-zorg": "yes", + "zendesk-ratelimit-incremental-exports-cursor": "total=20; remaining=19; resets=42", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/organizations?start_time=0&per_page=1\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/organizations?start_time=0&per_page=1", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"count\":1,\"end_of_stream\":false,\"end_time\":1791494006,\"next_page\":\"https://stealth-37618.zendesk.com/api/v2/incremental/organizations.json?per_page=1&start_time=1791494006\",\"organizations\":[{\"children_count\":0,\"created_at\":\"2026-10-08T21:13:25Z\",\"deleted_at\":null,\"details\":null,\"domain_names\":[],\"external_id\":null,\"group_id\":null,\"id\":39771695451037,\"name\":\"Stealth\",\"notes\":null,\"organization_fields\":{\"account_manager\":null},\"shared_comments\":false,\"shared_tickets\":false,\"tags\":[],\"ticket_restriction\":\"restricted\",\"updated_at\":\"2026-10-08T21:13:25Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/organizations/39771695451037.json\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f0308ad248fe-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:24 GMT", + "etag": "W/\"13fbd2e58c6a87436ea9a199a2d68ff4\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "396", + "ratelimit-reset": "36", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=2BkK3WpAH%2BM2sWHnC%2FwwGptn4GqrvNSoRelFbGmofM9U%2BXZ%2Bg1qW1yilyJQnRqcjnEKvKbw9bUjaCGjMuAEH6sPrFo5gs4vAKPQ6%2BTeLO3Dn%2FC1mXv5TaDyHrM0NUdiIGmxlbiNuYQp1wwM%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "99", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/organizations", + "x-rate-limit": "400", + "x-rate-limit-remaining": "396", + "x-request-id": "a495f0308ad248fe-BOM", + "x-request-validation": "matched", + "x-runtime": "0.094900", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-pktsb", + "x-zendesk-zorg": "yes", + "zendesk-ratelimit-incremental-exports": "total=10; remaining=7; resets=36", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/groups?page%5Bsize%5D=100\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/groups?page%5Bsize%5D=100", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"groups\":[{\"created_at\":\"2026-10-12T11:34:51Z\",\"default\":false,\"deleted\":false,\"description\":\"\",\"id\":39845169086621,\"is_public\":true,\"name\":\"Billing\",\"updated_at\":\"2026-10-12T11:34:51Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/groups/39845169086621.json\"},{\"created_at\":\"2026-10-08T21:13:25Z\",\"default\":true,\"deleted\":false,\"description\":\"\",\"id\":39771663256989,\"is_public\":true,\"name\":\"Support\",\"updated_at\":\"2026-10-08T21:13:25Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/groups/39771663256989.json\"}],\"links\":{\"next\":\"https://stealth-37618.zendesk.com/api/v2/groups.json?page%5Bafter%5D=eyJvIjoibmFtZSxpZCIsInYiOiJjd2NBQUFCVGRYQndiM0owYVoxTjNBOHNKQUFBIn0%3D&page%5Bsize%5D=100\",\"prev\":\"https://stealth-37618.zendesk.com/api/v2/groups.json?page%5Bbefore%5D=eyJvIjoibmFtZSxpZCIsInYiOiJjd2NBQUFCQ2FXeHNhVzVuYVoxQUppMDlKQUFBIn0%3D&page%5Bsize%5D=100\"},\"meta\":{\"after_cursor\":\"eyJvIjoibmFtZSxpZCIsInYiOiJjd2NBQUFCVGRYQndiM0owYVoxTjNBOHNKQUFBIn0=\",\"before_cursor\":\"eyJvIjoibmFtZSxpZCIsInYiOiJjd2NBQUFCQ2FXeHNhVzVuYVoxQUppMDlKQUFBIn0=\",\"has_more\":false}}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f0329cdf48fe-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:25 GMT", + "etag": "W/\"f2fdc4b9c1328842fae9a59706ed923f\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "395", + "ratelimit-reset": "35", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=TdjDmF%2BJD2qQpBdQgVahU6YefqM7uNxtyq4NuJQCY1X6yK5z1bpvpkLUJ9fJc43wvDsixH3VoolMsWYq58etqSrggR4SK5z00kd5XmaK%2F1ytm8RpvRXqKU4389rav%2BfoWt0Q6%2Fe5q0k8mF4%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/groups", + "x-envoy-upstream-service-time": "59", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/groups", + "x-rate-limit": "400", + "x-rate-limit-remaining": "395", + "x-request-id": "a495f0329cdf48fe-BOM", + "x-request-validation": "matched", + "x-runtime": "0.055322", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-8lxpr", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/brands?page%5Bsize%5D=100\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/brands?page%5Bsize%5D=100", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"brands\":[{\"active\":true,\"brand_url\":\"https://stealth-37618.zendesk.com\",\"created_at\":\"2026-10-08T21:13:24Z\",\"default\":true,\"has_help_center\":true,\"help_center_state\":\"restricted\",\"host_mapping\":null,\"id\":39771695429277,\"is_deleted\":false,\"logo\":null,\"name\":\"Stealth\",\"signature_template\":\"{{agent.signature}}\",\"subdomain\":\"stealth-37618\",\"ticket_form_ids\":[39771663206685],\"updated_at\":\"2026-10-08T21:13:24Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/brands/39771695429277.json\"}],\"links\":{\"next\":\"https://stealth-37618.zendesk.com/api/v2/brands.json?page%5Bafter%5D=eyJvIjoibmFtZSxpZCIsInYiOiJjd2NBQUFCVGRHVmhiSFJvYVowMnh4RXNKQUFBIn0%3D&page%5Bsize%5D=100\",\"prev\":\"https://stealth-37618.zendesk.com/api/v2/brands.json?page%5Bbefore%5D=eyJvIjoibmFtZSxpZCIsInYiOiJjd2NBQUFCVGRHVmhiSFJvYVowMnh4RXNKQUFBIn0%3D&page%5Bsize%5D=100\"},\"meta\":{\"after_cursor\":\"eyJvIjoibmFtZSxpZCIsInYiOiJjd2NBQUFCVGRHVmhiSFJvYVowMnh4RXNKQUFBIn0=\",\"before_cursor\":\"eyJvIjoibmFtZSxpZCIsInYiOiJjd2NBQUFCVGRHVmhiSFJvYVowMnh4RXNKQUFBIn0=\",\"has_more\":false}}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=60, private", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f0363ff348fe-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:25 GMT", + "etag": "W/\"ee6c0583ed5b6fd7bfd34eb8a99a6d96\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "394", + "ratelimit-reset": "35", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=dhyANaSoIVxqNV%2B0TNmVwLli%2FgH9Q4TtRAiXRl5An1Xz7aNIN%2F6Jeb7pgV39TlPYG%2B98oZdgcceUuXp09RW%2F%2Bc6S%2BsmERoDYw7cNRHmG%2B01xhP5IyCXUtzNbv5nIgdk14KLNLOHSvy5vwf8%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/brands", + "x-envoy-upstream-service-time": "65", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/brands", + "x-rate-limit": "400", + "x-rate-limit-remaining": "394", + "x-request-id": "a495f0363ff348fe-BOM", + "x-request-validation": "matched", + "x-runtime": "0.061404", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-dq9l2", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields?page%5Bsize%5D=100\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/ticket_fields?page%5Bsize%5D=100", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"links\":{\"next\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields.json?page%5Bafter%5D=eyJvIjoiaWQiLCJ2IjoiYVIydk1CTXNKQUFBIn0%3D&page%5Bsize%5D=100\",\"prev\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields.json?page%5Bbefore%5D=eyJvIjoiaWQiLCJ2IjoiYVIwTDJnOHNKQUFBIn0%3D&page%5Bsize%5D=100\"},\"meta\":{\"after_cursor\":\"eyJvIjoiaWQiLCJ2IjoiYVIydk1CTXNKQUFBIn0=\",\"before_cursor\":\"eyJvIjoiaWQiLCJ2IjoiYVIwTDJnOHNKQUFBIn0=\",\"has_more\":false},\"ticket_fields\":[{\"active\":true,\"agent_can_edit\":false,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:19Z\",\"description\":\"Agent ID that generated the summary.\",\"editable_in_portal\":false,\"id\":39771663108893,\"key\":\"standard::ticket_summary_agent_id\",\"position\":9999,\"raw_agent_description\":null,\"raw_description\":\"{{zd.ticket_summary_agent_id_description}}\",\"raw_title\":\"{{zd.ticket_summary_agent_id_field}}\",\"raw_title_in_portal\":\"{{zd.ticket_summary_agent_id_field}}\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Summary agent ID\",\"title_in_portal\":\"Summary agent ID\",\"type\":\"text\",\"updated_at\":\"2026-10-08T21:13:19Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771663108893.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":false,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:19Z\",\"description\":\"Date and time of the summary with the following format 'yyyy-MM-dd HH:mm:ss UTC'.\",\"editable_in_portal\":false,\"id\":39771663109021,\"key\":\"standard::ticket_summary_datetime\",\"position\":9999,\"raw_agent_description\":null,\"raw_description\":\"{{zd.ticket_summary_datetime_description}}\",\"raw_title\":\"{{zd.ticket_summary_datetime_field}}\",\"raw_title_in_portal\":\"{{zd.ticket_summary_datetime_field}}\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Summary date and time\",\"title_in_portal\":\"Summary date and time\",\"type\":\"text\",\"updated_at\":\"2026-10-08T21:13:19Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771663109021.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":false,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:19Z\",\"description\":\"Locale of the summary with format 'en-US', 'fr-FR', etc.\",\"editable_in_portal\":false,\"id\":39771663109277,\"key\":\"standard::ticket_summary_locale\",\"position\":9999,\"raw_agent_description\":null,\"raw_description\":\"{{zd.ticket_summary_locale_description}}\",\"raw_title\":\"{{zd.ticket_summary_locale_field}}\",\"raw_title_in_portal\":\"{{zd.ticket_summary_locale_field}}\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Summary locale\",\"title_in_portal\":\"Summary locale\",\"type\":\"text\",\"updated_at\":\"2026-10-08T21:13:19Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771663109277.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":true,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:23Z\",\"description\":\"Request status\",\"editable_in_portal\":false,\"id\":39771663202205,\"key\":null,\"position\":3,\"raw_agent_description\":null,\"raw_description\":\"Request status\",\"raw_title\":\"Status\",\"raw_title_in_portal\":\"Status\",\"regexp_for_validation\":null,\"removable\":false,\"required\":false,\"required_in_portal\":false,\"sub_type_id\":0,\"system_field_options\":[{\"name\":\"Open\",\"value\":\"open\"},{\"name\":\"Pending\",\"value\":\"pending\"},{\"name\":\"Solved\",\"value\":\"solved\"}],\"tag\":null,\"title\":\"Status\",\"title_in_portal\":\"Status\",\"type\":\"status\",\"updated_at\":\"2026-10-08T21:13:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771663202205.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":true,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:23Z\",\"custom_statuses\":[{\"active\":true,\"agent_label\":\"New\",\"created_at\":\"2026-10-08T21:13:24Z\",\"default\":true,\"description\":\"Ticket is awaiting assignment to an agent\",\"end_user_description\":\"We are working on a response for you\",\"end_user_label\":\"Open\",\"id\":39771663247389,\"status_category\":\"new\",\"updated_at\":\"2026-10-08T21:13:24Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/custom_statuses/39771663247389.json\"},{\"active\":true,\"agent_label\":\"Open\",\"created_at\":\"2026-10-08T21:13:24Z\",\"default\":true,\"description\":\"Staff is working on the ticket\",\"end_user_description\":\"We are working on a response for you\",\"end_user_label\":\"Open\",\"id\":39771695441053,\"status_category\":\"open\",\"updated_at\":\"2026-10-08T21:13:24Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/custom_statuses/39771695441053.json\"},{\"active\":true,\"agent_label\":\"In Progress\",\"created_at\":\"2026-10-08T21:13:25Z\",\"default\":false,\"description\":\"Ticket is being worked on\",\"end_user_description\":\"Ticket is being worked on\",\"end_user_label\":\"In Progress\",\"id\":39771695448605,\"status_category\":\"open\",\"updated_at\":\"2026-10-08T21:13:25Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/custom_statuses/39771695448605.json\"},{\"active\":true,\"agent_label\":\"Pending\",\"created_at\":\"2026-10-08T21:13:25Z\",\"default\":true,\"description\":\"Staff is waiting for the requester to reply\",\"end_user_description\":\"We are waiting for you to respond\",\"end_user_label\":\"Awaiting your reply\",\"id\":39771695444253,\"status_category\":\"pending\",\"updated_at\":\"2026-10-08T21:13:25Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/custom_statuses/39771695444253.json\"},{\"active\":false,\"agent_label\":\"On-hold\",\"created_at\":\"2026-10-08T21:13:25Z\",\"default\":true,\"description\":\"Staff is waiting for a third party\",\"end_user_description\":\"We are working on a response for you\",\"end_user_label\":\"Open\",\"id\":39771695445533,\"status_category\":\"hold\",\"updated_at\":\"2026-10-08T21:13:25Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/custom_statuses/39771695445533.json\"},{\"active\":true,\"agent_label\":\"Solved\",\"created_at\":\"2026-10-08T21:13:25Z\",\"default\":true,\"description\":\"The ticket has been solved\",\"end_user_description\":\"This request has been solved\",\"end_user_label\":\"Solved\",\"id\":39771663254173,\"status_category\":\"solved\",\"updated_at\":\"2026-10-08T21:13:25Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/custom_statuses/39771663254173.json\"}],\"description\":\"Request ticket status\",\"editable_in_portal\":false,\"id\":39771663202461,\"key\":null,\"position\":8,\"raw_agent_description\":null,\"raw_description\":\"Request ticket status\",\"raw_title\":\"Ticket status\",\"raw_title_in_portal\":\"Ticket status\",\"regexp_for_validation\":null,\"removable\":false,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Ticket status\",\"title_in_portal\":\"Ticket status\",\"type\":\"custom_status\",\"updated_at\":\"2026-10-08T21:13:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771663202461.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":true,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:23Z\",\"description\":\"Request priority\",\"editable_in_portal\":false,\"id\":39771663202717,\"key\":null,\"position\":5,\"raw_agent_description\":null,\"raw_description\":\"Request priority\",\"raw_title\":\"Priority\",\"raw_title_in_portal\":\"Priority\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"sub_type_id\":0,\"system_field_options\":[{\"name\":\"Low\",\"value\":\"low\"},{\"name\":\"Normal\",\"value\":\"normal\"},{\"name\":\"High\",\"value\":\"high\"},{\"name\":\"Urgent\",\"value\":\"urgent\"}],\"tag\":null,\"title\":\"Priority\",\"title_in_portal\":\"Priority\",\"type\":\"priority\",\"updated_at\":\"2026-10-08T21:13:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771663202717.json\",\"visible_in_portal\":true},{\"active\":true,\"agent_can_edit\":false,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:27Z\",\"custom_field_options\":[{\"allow_solving\":true,\"default\":false,\"id\":39771695520157,\"name\":\"Automated\",\"raw_name\":\"{{zd.resolution_type_automated_resolution}}\",\"value\":\"zd_automated_resolution\"},{\"allow_solving\":true,\"default\":false,\"id\":39771695520285,\"name\":\"Assisted\",\"raw_name\":\"{{zd.resolution_type_assisted_resolution}}\",\"value\":\"zd_assisted_resolution\"}],\"description\":\"Identifies whether a ticket was resolved automatically or with agent assistance.\",\"editable_in_portal\":false,\"id\":39771663336605,\"key\":\"standard::resolution_type\",\"position\":9999,\"raw_agent_description\":null,\"raw_description\":\"{{zd.resolution_type_ticket_field_description}}\",\"raw_title\":\"{{zd.resolution_type_ticket_field}}\",\"raw_title_in_portal\":\"{{zd.resolution_type_ticket_field}}\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Resolution type\",\"title_in_portal\":\"Resolution type\",\"type\":\"tagger\",\"updated_at\":\"2026-10-08T21:13:27Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771663336605.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":true,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:32Z\",\"custom_field_options\":[{\"allow_solving\":true,\"default\":false,\"id\":39771680529565,\"name\":\"Account::Account activation::Account verification status\",\"raw_name\":\"Account::Account activation::Account verification status\",\"value\":\"topic__account__activation__waiting\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680529693,\"name\":\"Account::Account data restrictions::Close or delete account\",\"raw_name\":\"Account::Account data restrictions::Close or delete account\",\"value\":\"topic__account__data_restrictions__delete_account\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680529821,\"name\":\"Account::Account data restrictions::Delete data\",\"raw_name\":\"Account::Account data restrictions::Delete data\",\"value\":\"topic__account__data_restrictions__delete_data\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680530589,\"name\":\"Account::New account::Create new account\",\"raw_name\":\"Account::New account::Create new account\",\"value\":\"topic__account__new__creating\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680530717,\"name\":\"Account::New account::Signup issue\",\"raw_name\":\"Account::New account::Signup issue\",\"value\":\"topic__account__new__signup_issue\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680530333,\"name\":\"Account::Account update::Change post address\",\"raw_name\":\"Account::Account update::Change post address\",\"value\":\"topic__account__update__address_for_post\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680529949,\"name\":\"Account::Account update::Change email address\",\"raw_name\":\"Account::Account update::Change email address\",\"value\":\"topic__account__update__email\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680530077,\"name\":\"Account::Account update::Change name\",\"raw_name\":\"Account::Account update::Change name\",\"value\":\"topic__account__update__name\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680530205,\"name\":\"Account::Account update::Change phone number\",\"raw_name\":\"Account::Account update::Change phone number\",\"value\":\"topic__account__update__phone\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680530461,\"name\":\"Account::Account verification::Unable to verify account\",\"raw_name\":\"Account::Account verification::Unable to verify account\",\"value\":\"topic__account__verification__unable_to_verify\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680530973,\"name\":\"Billing::Billing checkout::Payment or checkout issue\",\"raw_name\":\"Billing::Billing checkout::Payment or checkout issue\",\"value\":\"topic__billing__checkout__issue\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680530845,\"name\":\"Billing::Billing checkout::Payment not recognized\",\"raw_name\":\"Billing::Billing checkout::Payment not recognized\",\"value\":\"topic__billing__checkout__payment_not_recognized\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680531357,\"name\":\"Billing::Discount::Apply promo code, discount or gift card\",\"raw_name\":\"Billing::Discount::Apply promo code, discount or gift card\",\"value\":\"topic__billing__discount__apply_promo_code_discount_or_gift_card\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680531869,\"name\":\"Billing::Discount::Unable to apply promo code, discount, gift card\",\"raw_name\":\"Billing::Discount::Unable to apply promo code, discount, gift card\",\"value\":\"topic__billing__discount__cant_apply_promo_code_discount_or_gift_card\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680531485,\"name\":\"Billing::Discount::Didn't receive gift card or credit\",\"raw_name\":\"Billing::Discount::Didn't receive gift card or credit\",\"value\":\"topic__billing__discount__didnt_get_gift_card_or_credit\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680531613,\"name\":\"Billing::Discount::Request discount or price match\",\"raw_name\":\"Billing::Discount::Request discount or price match\",\"value\":\"topic__billing__discount__request\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680531741,\"name\":\"Billing::Discount::Request new promo code\",\"raw_name\":\"Billing::Discount::Request new promo code\",\"value\":\"topic__billing__discount__request_new_promo_code\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680531101,\"name\":\"Billing::Billing documentation::Sending proof of payment\",\"raw_name\":\"Billing::Billing documentation::Sending proof of payment\",\"value\":\"topic__billing__documentation__sending_proof_of_payment\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680531229,\"name\":\"Billing::Billing documentation::Sending transaction history or running balance report\",\"raw_name\":\"Billing::Billing documentation::Sending transaction history or running balance report\",\"value\":\"topic__billing__documentation__statement_report\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680532125,\"name\":\"Billing::Invoice::Request invoice or receipt\",\"raw_name\":\"Billing::Invoice::Request invoice or receipt\",\"value\":\"topic__billing__invoice__request\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680532253,\"name\":\"Billing::Invoice::Sending or submitting invoice\",\"raw_name\":\"Billing::Invoice::Sending or submitting invoice\",\"value\":\"topic__billing__invoice__submission\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680531997,\"name\":\"Billing::Invoice::Change invoice or receipt data\",\"raw_name\":\"Billing::Invoice::Change invoice or receipt data\",\"value\":\"topic__billing__invoice__update_data\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680532381,\"name\":\"Billing::Payment change::Cancel payment\",\"raw_name\":\"Billing::Payment change::Cancel payment\",\"value\":\"topic__billing__payment_change__cancel_payment\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680532509,\"name\":\"Billing::Payment change::Change payment info or method\",\"raw_name\":\"Billing::Payment change::Change payment info or method\",\"value\":\"topic__billing__payment_change__method\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680532765,\"name\":\"Billing::Payment information::Chargeback\",\"raw_name\":\"Billing::Payment information::Chargeback\",\"value\":\"topic__billing__payment_info__chargeback\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680532637,\"name\":\"Billing::Payment information::Accepted payment methods\",\"raw_name\":\"Billing::Payment information::Accepted payment methods\",\"value\":\"topic__billing__payment_info__how_can_i_pay\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680532893,\"name\":\"Billing::Payment information::Request for payment confirmation\",\"raw_name\":\"Billing::Payment information::Request for payment confirmation\",\"value\":\"topic__billing__payment_info__request_confirmation\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680533021,\"name\":\"Billing::Price clarification::Price is different than expected\",\"raw_name\":\"Billing::Price clarification::Price is different than expected\",\"value\":\"topic__billing__price_clarification__which_price\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680533277,\"name\":\"Billing::Refund::Refund request\",\"raw_name\":\"Billing::Refund::Refund request\",\"value\":\"topic__billing__refund__request\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680533405,\"name\":\"Billing::Refund::Refund via specific channel\",\"raw_name\":\"Billing::Refund::Refund via specific channel\",\"value\":\"topic__billing__refund__request_refund_channel\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680533533,\"name\":\"Billing::Refund::Waiting for refund\",\"raw_name\":\"Billing::Refund::Waiting for refund\",\"value\":\"topic__billing__refund__waiting\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680533149,\"name\":\"Billing::Refund::Incorrect refund amount\",\"raw_name\":\"Billing::Refund::Incorrect refund amount\",\"value\":\"topic__billing__refund__wrong_amount\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680533661,\"name\":\"Billing::Subscription cancel::Cancel subscription\",\"raw_name\":\"Billing::Subscription cancel::Cancel subscription\",\"value\":\"topic__billing__subscription_cancel__request\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680533789,\"name\":\"Billing::Wrong charge::Incorrect amount charged\",\"raw_name\":\"Billing::Wrong charge::Incorrect amount charged\",\"value\":\"topic__billing__wrong__charge\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680533917,\"name\":\"Billing::Wrong charge::Unexpected charge question\",\"raw_name\":\"Billing::Wrong charge::Unexpected charge question\",\"value\":\"topic__billing__wrong__why_charged\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680534045,\"name\":\"Misc::Communications::Unsubscribe from communications\",\"raw_name\":\"Misc::Communications::Unsubscribe from communications\",\"value\":\"topic__misc__communication__unsubscribe\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680534173,\"name\":\"Misc::Contact::Contact request\",\"raw_name\":\"Misc::Contact::Contact request\",\"value\":\"topic__misc__contact__request_contact\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680534301,\"name\":\"Misc::Contact::Request phone call with agent\",\"raw_name\":\"Misc::Contact::Request phone call with agent\",\"value\":\"topic__misc__contact__talk_to_agent_over_phone\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680534429,\"name\":\"Misc::Contact::Request to contact specific person or role\",\"raw_name\":\"Misc::Contact::Request to contact specific person or role\",\"value\":\"topic__misc__contact__want_to_contact_this_person\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680534557,\"name\":\"Misc::Feedback::Complaint\",\"raw_name\":\"Misc::Feedback::Complaint\",\"value\":\"topic__misc__feedback__complaint\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680534685,\"name\":\"Misc::Feedback::Customer satisfaction survey\",\"raw_name\":\"Misc::Feedback::Customer satisfaction survey\",\"value\":\"topic__misc__feedback__customer_satisfaction_survey\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680534813,\"name\":\"Misc::Feedback::Negative service feedback\",\"raw_name\":\"Misc::Feedback::Negative service feedback\",\"value\":\"topic__misc__feedback__negative\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680534941,\"name\":\"Misc::Feedback::Positive service feedback\",\"raw_name\":\"Misc::Feedback::Positive service feedback\",\"value\":\"topic__misc__feedback__positive\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680535069,\"name\":\"Misc::Feedback::Suggestion\",\"raw_name\":\"Misc::Feedback::Suggestion\",\"value\":\"topic__misc__feedback__suggestion\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680535197,\"name\":\"Misc::Image::Image of product with problem\",\"raw_name\":\"Misc::Image::Image of product with problem\",\"value\":\"topic__misc__image__product_issue\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680535325,\"name\":\"Misc::Intellectual property::Copyright infringement\",\"raw_name\":\"Misc::Intellectual property::Copyright infringement\",\"value\":\"topic__misc__intellectual_property__copyright_infringement\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680535453,\"name\":\"Misc::Job application::Job application\",\"raw_name\":\"Misc::Job application::Job application\",\"value\":\"topic__misc__job_application__new\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680536221,\"name\":\"Misc::Unable to receive message::Out-of-office reply\",\"raw_name\":\"Misc::Unable to receive message::Out-of-office reply\",\"value\":\"topic__misc__not_received__out_of_office\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680535581,\"name\":\"Misc::Received message::Confirm if this is a legitimate message\",\"raw_name\":\"Misc::Received message::Confirm if this is a legitimate message\",\"value\":\"topic__misc__received__confirm_if_legitimate_message\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680535709,\"name\":\"Misc::Received message::Contact acknowledgement\",\"raw_name\":\"Misc::Received message::Contact acknowledgement\",\"value\":\"topic__misc__received__contact_acknowledgement\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680535837,\"name\":\"Misc::Received message::New voicemail message\",\"raw_name\":\"Misc::Received message::New voicemail message\",\"value\":\"topic__misc__received__new_voicemail\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680535965,\"name\":\"Misc::Received message::Received communication intended for someone else\",\"raw_name\":\"Misc::Received message::Received communication intended for someone else\",\"value\":\"topic__misc__received__received_communication_intended_for_someone_else\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680536093,\"name\":\"Misc::Thanks::Thank you\",\"raw_name\":\"Misc::Thanks::Thank you\",\"value\":\"topic__misc__thanks__thanks\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680536349,\"name\":\"Misc::Unsolicited::Event invitation\",\"raw_name\":\"Misc::Unsolicited::Event invitation\",\"value\":\"topic__misc__unsolicited__event_invitation\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680536477,\"name\":\"Misc::Unsolicited::Marketing campaign or newsletter\",\"raw_name\":\"Misc::Unsolicited::Marketing campaign or newsletter\",\"value\":\"topic__misc__unsolicited__marketing_or_newsletter\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680536605,\"name\":\"Misc::Unsolicited::Spam\",\"raw_name\":\"Misc::Unsolicited::Spam\",\"value\":\"topic__misc__unsolicited__spam\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680536733,\"name\":\"Misc::Video::Video of product with problem\",\"raw_name\":\"Misc::Video::Video of product with problem\",\"value\":\"topic__misc__video__product_issue\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680536989,\"name\":\"Order::Order availability::Do you sell this product\",\"raw_name\":\"Order::Order availability::Do you sell this product\",\"value\":\"topic__order__availability__do_you_sell_this_product\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680537117,\"name\":\"Order::Order availability::Product stock availability\",\"raw_name\":\"Order::Order availability::Product stock availability\",\"value\":\"topic__order__availability__stock\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680537245,\"name\":\"Order::Order cancelation::Cancel order\",\"raw_name\":\"Order::Order cancelation::Cancel order\",\"value\":\"topic__order__cancellation__cancel\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680537373,\"name\":\"Order::Order cancelation::Reason for order cancellation\",\"raw_name\":\"Order::Order cancelation::Reason for order cancellation\",\"value\":\"topic__order__cancellation__why_cancelled\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680536861,\"name\":\"Order::Delivery information::Where do you ship to\",\"raw_name\":\"Order::Delivery information::Where do you ship to\",\"value\":\"topic__order__delivery_info__where_do_you_ship_to\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680537501,\"name\":\"Order::Order documentation::Sending order confirmation\",\"raw_name\":\"Order::Order documentation::Sending order confirmation\",\"value\":\"topic__order__documentation__sending_order_confirmation\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680539933,\"name\":\"Order::Place new order::Place new order or how to place order\",\"raw_name\":\"Order::Place new order::Place new order or how to place order\",\"value\":\"topic__order__new__place\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680540061,\"name\":\"Order::Place new order::Quote request\",\"raw_name\":\"Order::Place new order::Quote request\",\"value\":\"topic__order__new__quote_request\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680537629,\"name\":\"Order::Order not delivered::Order delivery is late\",\"raw_name\":\"Order::Order not delivered::Order delivery is late\",\"value\":\"topic__order__not_delivered__late\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680537757,\"name\":\"Order::Order not delivered::Order not delivered\",\"raw_name\":\"Order::Order not delivered::Order not delivered\",\"value\":\"topic__order__not_delivered__not_delivered\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680537885,\"name\":\"Order::Order not delivered::Order returned to sender\",\"raw_name\":\"Order::Order not delivered::Order returned to sender\",\"value\":\"topic__order__not_delivered__returned_to_sender\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680540189,\"name\":\"Order::Product choice::Which product to buy\",\"raw_name\":\"Order::Product choice::Which product to buy\",\"value\":\"topic__order__product_choice__which_product\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680540317,\"name\":\"Order::Product details::Request product details\",\"raw_name\":\"Order::Product details::Request product details\",\"value\":\"topic__order__product_details__details\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680540445,\"name\":\"Order::Product issue::Claim details request\",\"raw_name\":\"Order::Product issue::Claim details request\",\"value\":\"topic__order__product_issue__additional_claim_details_request\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680540701,\"name\":\"Order::Product issue::Received item has problem or damage\",\"raw_name\":\"Order::Product issue::Received item has problem or damage\",\"value\":\"topic__order__product_issue__damaged_on_arrival\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680540829,\"name\":\"Order::Product issue::Replace damaged or defective product\",\"raw_name\":\"Order::Product issue::Replace damaged or defective product\",\"value\":\"topic__order__product_issue__need_replacement\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680540573,\"name\":\"Order::Product issue::Product not working as expected\",\"raw_name\":\"Order::Product issue::Product not working as expected\",\"value\":\"topic__order__product_issue__not_working_as_expected\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680540957,\"name\":\"Order::Product usage::Product instructions\",\"raw_name\":\"Order::Product usage::Product instructions\",\"value\":\"topic__order__product_usage__how_to_use\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680538525,\"name\":\"Order::Order return::What is the return policy\",\"raw_name\":\"Order::Order return::What is the return policy\",\"value\":\"topic__order__return__policy\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680538397,\"name\":\"Order::Order return::Send return label\",\"raw_name\":\"Order::Order return::Send return label\",\"value\":\"topic__order__return__request_return_label\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680538269,\"name\":\"Order::Order return::Return status\",\"raw_name\":\"Order::Order return::Return status\",\"value\":\"topic__order__return__status\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680538013,\"name\":\"Order::Order return::Exchange items\",\"raw_name\":\"Order::Order return::Exchange items\",\"value\":\"topic__order__return__want_exchange\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680538141,\"name\":\"Order::Order return::Return order\",\"raw_name\":\"Order::Order return::Return order\",\"value\":\"topic__order__return__want_return\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680538909,\"name\":\"Order::Order status::Unable to find or view order\",\"raw_name\":\"Order::Order status::Unable to find or view order\",\"value\":\"topic__order__status__cant_find_order\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680538781,\"name\":\"Order::Order status::Tracking information\",\"raw_name\":\"Order::Order status::Tracking information\",\"value\":\"topic__order__status__how_to_track\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680538653,\"name\":\"Order::Order status::Shipping status\",\"raw_name\":\"Order::Order status::Shipping status\",\"value\":\"topic__order__status__what_is_status\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680539037,\"name\":\"Order::Order status::When will order arrive\",\"raw_name\":\"Order::Order status::When will order arrive\",\"value\":\"topic__order__status__when_arrive\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680539165,\"name\":\"Order::Order status::When will order be shipped\",\"raw_name\":\"Order::Order status::When will order be shipped\",\"value\":\"topic__order__status__when_is_shipped\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680539421,\"name\":\"Order::Order update::Change or specify delivery date\",\"raw_name\":\"Order::Order update::Change or specify delivery date\",\"value\":\"topic__order__update__delivery_date\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680539677,\"name\":\"Order::Order update::Deliver with drop-off instructions\",\"raw_name\":\"Order::Order update::Deliver with drop-off instructions\",\"value\":\"topic__order__update__dropoff_instructions\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680539293,\"name\":\"Order::Order update::Change items or quantity\",\"raw_name\":\"Order::Order update::Change items or quantity\",\"value\":\"topic__order__update__items\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680539805,\"name\":\"Order::Order update::Send order again\",\"raw_name\":\"Order::Order update::Send order again\",\"value\":\"topic__order__update__request_to_send_again\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680539549,\"name\":\"Order::Order update::Change shipping address\",\"raw_name\":\"Order::Order update::Change shipping address\",\"value\":\"topic__order__update__ship_address\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680541085,\"name\":\"Order::Wrong delivery::Delivered to incorrect address\",\"raw_name\":\"Order::Wrong delivery::Delivered to incorrect address\",\"value\":\"topic__order__wrong_delivery__address\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680541213,\"name\":\"Order::Wrong product::Item missing from order\",\"raw_name\":\"Order::Wrong product::Item missing from order\",\"value\":\"topic__order__wrong_product__missing_item\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680541341,\"name\":\"Order::Wrong product::Received wrong item or size\",\"raw_name\":\"Order::Wrong product::Received wrong item or size\",\"value\":\"topic__order__wrong_product__wrong_item\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680541469,\"name\":\"Service::Appointment::Appointment confirmation\",\"raw_name\":\"Service::Appointment::Appointment confirmation\",\"value\":\"topic__service__appointment__confirmation\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680541597,\"name\":\"Service::Appointment::Schedule appointment\",\"raw_name\":\"Service::Appointment::Schedule appointment\",\"value\":\"topic__service__appointment__new\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680541725,\"name\":\"Service::Service information::Available services\",\"raw_name\":\"Service::Service information::Available services\",\"value\":\"topic__service__info__do_you_provide_this_service\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680543005,\"name\":\"Software::Software connection::Connection issue\",\"raw_name\":\"Software::Software connection::Connection issue\",\"value\":\"topic__software__connection__issue\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680541853,\"name\":\"Software::Feature feedback::Feature not working\",\"raw_name\":\"Software::Feature feedback::Feature not working\",\"value\":\"topic__software__feature_feedback__not_working\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680541981,\"name\":\"Software::Feature missing::Unable to find feature\",\"raw_name\":\"Software::Feature missing::Unable to find feature\",\"value\":\"topic__software__feature_missing__cant_find\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680543133,\"name\":\"Software::Software information::Question about functionality\",\"raw_name\":\"Software::Software information::Question about functionality\",\"value\":\"topic__software__info__does_software_do\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680543261,\"name\":\"Software::Software information::Software usage instructions\",\"raw_name\":\"Software::Software information::Software usage instructions\",\"value\":\"topic__software__info__how_to_use\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680542109,\"name\":\"Software::Generic error::Software error\",\"raw_name\":\"Software::Generic error::Software error\",\"value\":\"topic__software__issue_generic__error\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680542621,\"name\":\"Software::Login issues::Unable to login\",\"raw_name\":\"Software::Login issues::Unable to login\",\"value\":\"topic__software__login_issues__cant_login\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680542365,\"name\":\"Software::Login issues::ID or email address not recognized\",\"raw_name\":\"Software::Login issues::ID or email address not recognized\",\"value\":\"topic__software__login_issues__id_not_recognized\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680542749,\"name\":\"Software::Login issues::Unable to reset password\",\"raw_name\":\"Software::Login issues::Unable to reset password\",\"value\":\"topic__software__login_issues__password_cant_reset\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680542237,\"name\":\"Software::Login issues::Forgot password\",\"raw_name\":\"Software::Login issues::Forgot password\",\"value\":\"topic__software__login_issues__password_forgot\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680542493,\"name\":\"Software::Login issues::Reset password\",\"raw_name\":\"Software::Login issues::Reset password\",\"value\":\"topic__software__login_issues__password_request_reset\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680542877,\"name\":\"Software::Notifications::Login from new device\",\"raw_name\":\"Software::Notifications::Login from new device\",\"value\":\"topic__software__notifications__login_from_new_device\"}],\"description\":\"Topic of the ticket conversation between the agent and the end user.\",\"editable_in_portal\":false,\"id\":39771680543389,\"key\":\"standard::intelligent_triage_intent\",\"position\":9999,\"raw_agent_description\":null,\"raw_description\":\"{{zd.intelligent_triage_intent_field_description}}\",\"raw_title\":\"{{zd.intelligent_triage_intent_field}}\",\"raw_title_in_portal\":\"{{zd.intelligent_triage_intent_field}}\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Topic\",\"title_in_portal\":\"Topic\",\"type\":\"tagger\",\"updated_at\":\"2026-10-08T21:13:33Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771680543389.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":true,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:32Z\",\"custom_field_options\":[{\"allow_solving\":true,\"default\":false,\"id\":39771680544925,\"name\":\"Low\",\"raw_name\":\"Low\",\"value\":\"topic_confidence__low\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680545053,\"name\":\"Medium\",\"raw_name\":\"Medium\",\"value\":\"topic_confidence__medium\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680545181,\"name\":\"High\",\"raw_name\":\"High\",\"value\":\"topic_confidence__high\"}],\"description\":\"Topic confidence of the ticket conversation between the agent and the end user.\",\"editable_in_portal\":false,\"id\":39771680545309,\"key\":\"standard::intelligent_triage_intent_confidence\",\"position\":9999,\"raw_agent_description\":null,\"raw_description\":\"{{zd.intelligent_triage_intent_confidence_field_description}}\",\"raw_title\":\"{{zd.intelligent_triage_intent_confidence_field}}\",\"raw_title_in_portal\":\"{{zd.intelligent_triage_intent_confidence_field}}\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Topic confidence\",\"title_in_portal\":\"Topic confidence\",\"type\":\"tagger\",\"updated_at\":\"2026-10-08T21:13:32Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771680545309.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":true,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:32Z\",\"custom_field_options\":[{\"allow_solving\":true,\"default\":false,\"id\":39771680547869,\"name\":\"Very positive\",\"raw_name\":\"Very positive\",\"value\":\"sentiment__very_positive\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680547997,\"name\":\"Positive\",\"raw_name\":\"Positive\",\"value\":\"sentiment__positive\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680548125,\"name\":\"Neutral\",\"raw_name\":\"Neutral\",\"value\":\"sentiment__neutral\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680548253,\"name\":\"Negative\",\"raw_name\":\"Negative\",\"value\":\"sentiment__negative\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680548381,\"name\":\"Very negative\",\"raw_name\":\"Very negative\",\"value\":\"sentiment__very_negative\"}],\"description\":\"Sentiment of the ticket conversation between the agent and the end user.\",\"editable_in_portal\":false,\"id\":39771680548637,\"key\":\"standard::intelligent_triage_sentiment\",\"position\":9999,\"raw_agent_description\":null,\"raw_description\":\"{{zd.intelligent_triage_sentiment_field_description}}\",\"raw_title\":\"{{zd.intelligent_triage_sentiment_field}}\",\"raw_title_in_portal\":\"{{zd.intelligent_triage_sentiment_field}}\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Sentiment\",\"title_in_portal\":\"Sentiment\",\"type\":\"tagger\",\"updated_at\":\"2026-10-08T21:13:32Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771680548637.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":true,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:33Z\",\"custom_field_options\":[{\"allow_solving\":true,\"default\":false,\"id\":39771680548893,\"name\":\"Low\",\"raw_name\":\"Low\",\"value\":\"sentiment_confidence__low\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680549021,\"name\":\"Medium\",\"raw_name\":\"Medium\",\"value\":\"sentiment_confidence__medium\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680549149,\"name\":\"High\",\"raw_name\":\"High\",\"value\":\"sentiment_confidence__high\"}],\"description\":\"Sentiment confidence of the ticket conversation between the agent and the end user.\",\"editable_in_portal\":false,\"id\":39771680549277,\"key\":\"standard::intelligent_triage_sentiment_confidence\",\"position\":9999,\"raw_agent_description\":null,\"raw_description\":\"{{zd.intelligent_triage_sentiment_confidence_field_description}}\",\"raw_title\":\"{{zd.intelligent_triage_sentiment_confidence_field}}\",\"raw_title_in_portal\":\"{{zd.intelligent_triage_sentiment_confidence_field}}\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Sentiment confidence\",\"title_in_portal\":\"Sentiment confidence\",\"type\":\"tagger\",\"updated_at\":\"2026-10-08T21:13:33Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771680549277.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":true,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:33Z\",\"custom_field_options\":[{\"allow_solving\":true,\"default\":false,\"id\":39771704934173,\"name\":\"Afrikaans\",\"raw_name\":\"Afrikaans\",\"value\":\"language__af\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704934301,\"name\":\"Albanian\",\"raw_name\":\"Albanian\",\"value\":\"language__sq\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704934429,\"name\":\"Amharic\",\"raw_name\":\"Amharic\",\"value\":\"language__am\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704934557,\"name\":\"Arabic\",\"raw_name\":\"Arabic\",\"value\":\"language__ar\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704934685,\"name\":\"Aragonese\",\"raw_name\":\"Aragonese\",\"value\":\"language__an\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704934813,\"name\":\"Armenian\",\"raw_name\":\"Armenian\",\"value\":\"language__hy\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704934941,\"name\":\"Assamese\",\"raw_name\":\"Assamese\",\"value\":\"language__as\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704935069,\"name\":\"Asturian\",\"raw_name\":\"Asturian\",\"value\":\"language__ast\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704935197,\"name\":\"Avaric\",\"raw_name\":\"Avaric\",\"value\":\"language__av\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704935325,\"name\":\"Azerbaijani\",\"raw_name\":\"Azerbaijani\",\"value\":\"language__az\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704935453,\"name\":\"Bangla\",\"raw_name\":\"Bangla\",\"value\":\"language__bn\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704935581,\"name\":\"Bashkir\",\"raw_name\":\"Bashkir\",\"value\":\"language__ba\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704935709,\"name\":\"Basque\",\"raw_name\":\"Basque\",\"value\":\"language__eu\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704935837,\"name\":\"Bavarian\",\"raw_name\":\"Bavarian\",\"value\":\"language__bar\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704935965,\"name\":\"Belarusian\",\"raw_name\":\"Belarusian\",\"value\":\"language__be\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704936093,\"name\":\"Bhojpuri\",\"raw_name\":\"Bhojpuri\",\"value\":\"language__bh\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704936221,\"name\":\"Bikol\",\"raw_name\":\"Bikol\",\"value\":\"language__bcl\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704936349,\"name\":\"Bishnupriya\",\"raw_name\":\"Bishnupriya\",\"value\":\"language__bpy\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704936477,\"name\":\"Bosnian\",\"raw_name\":\"Bosnian\",\"value\":\"language__bs\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704936605,\"name\":\"Breton\",\"raw_name\":\"Breton\",\"value\":\"language__br\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704936733,\"name\":\"Bulgarian\",\"raw_name\":\"Bulgarian\",\"value\":\"language__bg\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704936861,\"name\":\"Buriat\",\"raw_name\":\"Buriat\",\"value\":\"language__bxr\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704936989,\"name\":\"Burmese\",\"raw_name\":\"Burmese\",\"value\":\"language__my\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704937117,\"name\":\"Cantonese\",\"raw_name\":\"Cantonese\",\"value\":\"language__yue\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704937245,\"name\":\"Catalan\",\"raw_name\":\"Catalan\",\"value\":\"language__ca\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704937373,\"name\":\"Cebuano\",\"raw_name\":\"Cebuano\",\"value\":\"language__ceb\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704937501,\"name\":\"Central kurdish\",\"raw_name\":\"Central kurdish\",\"value\":\"language__ckb\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704937629,\"name\":\"Chechen\",\"raw_name\":\"Chechen\",\"value\":\"language__ce\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704937757,\"name\":\"Chinese\",\"raw_name\":\"Chinese\",\"value\":\"language__zh\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704937885,\"name\":\"Chuvash\",\"raw_name\":\"Chuvash\",\"value\":\"language__cv\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704938013,\"name\":\"Cornish\",\"raw_name\":\"Cornish\",\"value\":\"language__kw\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704938141,\"name\":\"Corsican\",\"raw_name\":\"Corsican\",\"value\":\"language__co\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704938269,\"name\":\"Croatian\",\"raw_name\":\"Croatian\",\"value\":\"language__hr\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704938397,\"name\":\"Czech\",\"raw_name\":\"Czech\",\"value\":\"language__cs\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704938525,\"name\":\"Danish\",\"raw_name\":\"Danish\",\"value\":\"language__da\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704938653,\"name\":\"Divehi\",\"raw_name\":\"Divehi\",\"value\":\"language__dv\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704938781,\"name\":\"Dutch\",\"raw_name\":\"Dutch\",\"value\":\"language__nl\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704938909,\"name\":\"Egyptian arabic\",\"raw_name\":\"Egyptian arabic\",\"value\":\"language__arz\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704939037,\"name\":\"English\",\"raw_name\":\"English\",\"value\":\"language__en\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704939165,\"name\":\"Erzya\",\"raw_name\":\"Erzya\",\"value\":\"language__myv\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704939293,\"name\":\"Esperanto\",\"raw_name\":\"Esperanto\",\"value\":\"language__eo\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704939421,\"name\":\"Estonian\",\"raw_name\":\"Estonian\",\"value\":\"language__et\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704939549,\"name\":\"Fiji hindi\",\"raw_name\":\"Fiji hindi\",\"value\":\"language__hif\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704939677,\"name\":\"Finnish\",\"raw_name\":\"Finnish\",\"value\":\"language__fi\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704939805,\"name\":\"French\",\"raw_name\":\"French\",\"value\":\"language__fr\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704939933,\"name\":\"Galician\",\"raw_name\":\"Galician\",\"value\":\"language__gl\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704940061,\"name\":\"Georgian\",\"raw_name\":\"Georgian\",\"value\":\"language__ka\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704940189,\"name\":\"German\",\"raw_name\":\"German\",\"value\":\"language__de\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704940317,\"name\":\"Goan konkani\",\"raw_name\":\"Goan konkani\",\"value\":\"language__gom\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704940445,\"name\":\"Greek\",\"raw_name\":\"Greek\",\"value\":\"language__el\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704940573,\"name\":\"Guarani\",\"raw_name\":\"Guarani\",\"value\":\"language__gn\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704940701,\"name\":\"Gujarati\",\"raw_name\":\"Gujarati\",\"value\":\"language__gu\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704940829,\"name\":\"Haitian creole\",\"raw_name\":\"Haitian creole\",\"value\":\"language__ht\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704940957,\"name\":\"Hebrew\",\"raw_name\":\"Hebrew\",\"value\":\"language__he\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704941085,\"name\":\"Hindi\",\"raw_name\":\"Hindi\",\"value\":\"language__hi\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704941213,\"name\":\"Hungarian\",\"raw_name\":\"Hungarian\",\"value\":\"language__hu\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704941341,\"name\":\"Icelandic\",\"raw_name\":\"Icelandic\",\"value\":\"language__is\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704941469,\"name\":\"Ido\",\"raw_name\":\"Ido\",\"value\":\"language__io\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704941597,\"name\":\"Iloko\",\"raw_name\":\"Iloko\",\"value\":\"language__ilo\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704941725,\"name\":\"Indonesian\",\"raw_name\":\"Indonesian\",\"value\":\"language__id\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704941853,\"name\":\"Interlingua\",\"raw_name\":\"Interlingua\",\"value\":\"language__ia\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704941981,\"name\":\"Interlingue\",\"raw_name\":\"Interlingue\",\"value\":\"language__ie\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704942109,\"name\":\"Irish\",\"raw_name\":\"Irish\",\"value\":\"language__ga\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704942237,\"name\":\"Italian\",\"raw_name\":\"Italian\",\"value\":\"language__it\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704942365,\"name\":\"Japanese\",\"raw_name\":\"Japanese\",\"value\":\"language__ja\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704942493,\"name\":\"Javanese\",\"raw_name\":\"Javanese\",\"value\":\"language__jv\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704942621,\"name\":\"Kalmyk\",\"raw_name\":\"Kalmyk\",\"value\":\"language__xal\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704942749,\"name\":\"Kannada\",\"raw_name\":\"Kannada\",\"value\":\"language__kn\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704942877,\"name\":\"Karachay-balkar\",\"raw_name\":\"Karachay-balkar\",\"value\":\"language__krc\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704943005,\"name\":\"Kazakh\",\"raw_name\":\"Kazakh\",\"value\":\"language__kk\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704943133,\"name\":\"Khmer\",\"raw_name\":\"Khmer\",\"value\":\"language__km\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704943261,\"name\":\"Komi\",\"raw_name\":\"Komi\",\"value\":\"language__kv\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704943389,\"name\":\"Korean\",\"raw_name\":\"Korean\",\"value\":\"language__ko\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704943517,\"name\":\"Kurdish\",\"raw_name\":\"Kurdish\",\"value\":\"language__ku\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704943645,\"name\":\"Kyrgyz\",\"raw_name\":\"Kyrgyz\",\"value\":\"language__ky\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704943773,\"name\":\"Lao\",\"raw_name\":\"Lao\",\"value\":\"language__lo\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704943901,\"name\":\"Latin\",\"raw_name\":\"Latin\",\"value\":\"language__la\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704944029,\"name\":\"Latvian\",\"raw_name\":\"Latvian\",\"value\":\"language__lv\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704944157,\"name\":\"Lezghian\",\"raw_name\":\"Lezghian\",\"value\":\"language__lez\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704944285,\"name\":\"Limburgish\",\"raw_name\":\"Limburgish\",\"value\":\"language__li\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704944413,\"name\":\"Lithuanian\",\"raw_name\":\"Lithuanian\",\"value\":\"language__lt\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704944541,\"name\":\"Lojban\",\"raw_name\":\"Lojban\",\"value\":\"language__jbo\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704944669,\"name\":\"Lombard\",\"raw_name\":\"Lombard\",\"value\":\"language__lmo\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704944797,\"name\":\"Low german\",\"raw_name\":\"Low german\",\"value\":\"language__nds\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704944925,\"name\":\"Lower sorbian\",\"raw_name\":\"Lower sorbian\",\"value\":\"language__dsb\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704945053,\"name\":\"Luxembourgish\",\"raw_name\":\"Luxembourgish\",\"value\":\"language__lb\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704945181,\"name\":\"Macedonian\",\"raw_name\":\"Macedonian\",\"value\":\"language__mk\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704945309,\"name\":\"Maithili\",\"raw_name\":\"Maithili\",\"value\":\"language__mai\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704945437,\"name\":\"Malagasy\",\"raw_name\":\"Malagasy\",\"value\":\"language__mg\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704945565,\"name\":\"Malay\",\"raw_name\":\"Malay\",\"value\":\"language__ms\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704945693,\"name\":\"Malayalam\",\"raw_name\":\"Malayalam\",\"value\":\"language__ml\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704945821,\"name\":\"Maltese\",\"raw_name\":\"Maltese\",\"value\":\"language__mt\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704945949,\"name\":\"Manx\",\"raw_name\":\"Manx\",\"value\":\"language__gv\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704946077,\"name\":\"Marathi\",\"raw_name\":\"Marathi\",\"value\":\"language__mr\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704946205,\"name\":\"Mari\",\"raw_name\":\"Mari\",\"value\":\"language__mhr\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704946333,\"name\":\"Mazanderani\",\"raw_name\":\"Mazanderani\",\"value\":\"language__mzn\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704946461,\"name\":\"Minangkabau\",\"raw_name\":\"Minangkabau\",\"value\":\"language__min\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704946589,\"name\":\"Mingrelian\",\"raw_name\":\"Mingrelian\",\"value\":\"language__xmf\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704946717,\"name\":\"Mirandese\",\"raw_name\":\"Mirandese\",\"value\":\"language__mwl\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704946845,\"name\":\"Mongolian\",\"raw_name\":\"Mongolian\",\"value\":\"language__mn\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704946973,\"name\":\"Neapolitan\",\"raw_name\":\"Neapolitan\",\"value\":\"language__nap\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704947101,\"name\":\"Nepali\",\"raw_name\":\"Nepali\",\"value\":\"language__ne\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704947229,\"name\":\"Newari\",\"raw_name\":\"Newari\",\"value\":\"language__new\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704947357,\"name\":\"Northern frisian\",\"raw_name\":\"Northern frisian\",\"value\":\"language__frr\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704947485,\"name\":\"Northern luri\",\"raw_name\":\"Northern luri\",\"value\":\"language__lrc\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704947613,\"name\":\"Norwegian\",\"raw_name\":\"Norwegian\",\"value\":\"language__no\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704947741,\"name\":\"Norwegian nynorsk\",\"raw_name\":\"Norwegian nynorsk\",\"value\":\"language__nn\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704947869,\"name\":\"Occitan\",\"raw_name\":\"Occitan\",\"value\":\"language__oc\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704947997,\"name\":\"Odia\",\"raw_name\":\"Odia\",\"value\":\"language__or\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704948125,\"name\":\"Ossetic\",\"raw_name\":\"Ossetic\",\"value\":\"language__os\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704948253,\"name\":\"Palatine german\",\"raw_name\":\"Palatine german\",\"value\":\"language__pfl\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704948381,\"name\":\"Pampanga\",\"raw_name\":\"Pampanga\",\"value\":\"language__pam\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704948509,\"name\":\"Pashto\",\"raw_name\":\"Pashto\",\"value\":\"language__ps\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704948637,\"name\":\"Persian\",\"raw_name\":\"Persian\",\"value\":\"language__fa\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704948765,\"name\":\"Piedmontese\",\"raw_name\":\"Piedmontese\",\"value\":\"language__pms\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704948893,\"name\":\"Polish\",\"raw_name\":\"Polish\",\"value\":\"language__pl\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704949021,\"name\":\"Portuguese\",\"raw_name\":\"Portuguese\",\"value\":\"language__pt\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704949149,\"name\":\"Punjabi\",\"raw_name\":\"Punjabi\",\"value\":\"language__pa\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704949277,\"name\":\"Quechua\",\"raw_name\":\"Quechua\",\"value\":\"language__qu\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704949405,\"name\":\"Romanian\",\"raw_name\":\"Romanian\",\"value\":\"language__ro\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704949533,\"name\":\"Romansh\",\"raw_name\":\"Romansh\",\"value\":\"language__rm\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704949661,\"name\":\"Russian\",\"raw_name\":\"Russian\",\"value\":\"language__ru\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704949789,\"name\":\"Rusyn\",\"raw_name\":\"Rusyn\",\"value\":\"language__rue\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704949917,\"name\":\"Sanskrit\",\"raw_name\":\"Sanskrit\",\"value\":\"language__sa\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704950045,\"name\":\"Sardinian\",\"raw_name\":\"Sardinian\",\"value\":\"language__sc\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704950173,\"name\":\"Scots\",\"raw_name\":\"Scots\",\"value\":\"language__sco\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704950301,\"name\":\"Scottish gaelic\",\"raw_name\":\"Scottish gaelic\",\"value\":\"language__gd\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704950429,\"name\":\"Serbian\",\"raw_name\":\"Serbian\",\"value\":\"language__sr\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704950557,\"name\":\"Serbo-croatian\",\"raw_name\":\"Serbo-croatian\",\"value\":\"language__sh\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704950685,\"name\":\"Sicilian\",\"raw_name\":\"Sicilian\",\"value\":\"language__scn\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704950813,\"name\":\"Sindhi\",\"raw_name\":\"Sindhi\",\"value\":\"language__sd\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704950941,\"name\":\"Sinhala\",\"raw_name\":\"Sinhala\",\"value\":\"language__si\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704951069,\"name\":\"Slovak\",\"raw_name\":\"Slovak\",\"value\":\"language__sk\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704951197,\"name\":\"Slovenian\",\"raw_name\":\"Slovenian\",\"value\":\"language__sl\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704951325,\"name\":\"Somali\",\"raw_name\":\"Somali\",\"value\":\"language__so\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704951453,\"name\":\"Spanish\",\"raw_name\":\"Spanish\",\"value\":\"language__es\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704951581,\"name\":\"Sundanese\",\"raw_name\":\"Sundanese\",\"value\":\"language__su\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704951709,\"name\":\"Swahili\",\"raw_name\":\"Swahili\",\"value\":\"language__sw\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704951837,\"name\":\"Swedish\",\"raw_name\":\"Swedish\",\"value\":\"language__sv\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704951965,\"name\":\"Tagalog\",\"raw_name\":\"Tagalog\",\"value\":\"language__tl\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704952093,\"name\":\"Tajik\",\"raw_name\":\"Tajik\",\"value\":\"language__tg\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704952221,\"name\":\"Tamil\",\"raw_name\":\"Tamil\",\"value\":\"language__ta\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704952349,\"name\":\"Tatar\",\"raw_name\":\"Tatar\",\"value\":\"language__tt\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704952477,\"name\":\"Telugu\",\"raw_name\":\"Telugu\",\"value\":\"language__te\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704952605,\"name\":\"Thai\",\"raw_name\":\"Thai\",\"value\":\"language__th\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704952733,\"name\":\"Tibetan\",\"raw_name\":\"Tibetan\",\"value\":\"language__bo\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704952861,\"name\":\"Tosk albanian\",\"raw_name\":\"Tosk albanian\",\"value\":\"language__als\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704952989,\"name\":\"Turkish\",\"raw_name\":\"Turkish\",\"value\":\"language__tr\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704953117,\"name\":\"Turkmen\",\"raw_name\":\"Turkmen\",\"value\":\"language__tk\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704953245,\"name\":\"Tuvinian\",\"raw_name\":\"Tuvinian\",\"value\":\"language__tyv\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704953373,\"name\":\"Ukrainian\",\"raw_name\":\"Ukrainian\",\"value\":\"language__uk\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704953501,\"name\":\"Upper sorbian\",\"raw_name\":\"Upper sorbian\",\"value\":\"language__hsb\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704953629,\"name\":\"Urdu\",\"raw_name\":\"Urdu\",\"value\":\"language__ur\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704953757,\"name\":\"Uyghur\",\"raw_name\":\"Uyghur\",\"value\":\"language__ug\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704953885,\"name\":\"Uzbek\",\"raw_name\":\"Uzbek\",\"value\":\"language__uz\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704954013,\"name\":\"Venetian\",\"raw_name\":\"Venetian\",\"value\":\"language__vec\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704954141,\"name\":\"Veps\",\"raw_name\":\"Veps\",\"value\":\"language__vep\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704954269,\"name\":\"Vietnamese\",\"raw_name\":\"Vietnamese\",\"value\":\"language__vi\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704954397,\"name\":\"Volapük\",\"raw_name\":\"Volapük\",\"value\":\"language__vo\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704954525,\"name\":\"Walloon\",\"raw_name\":\"Walloon\",\"value\":\"language__wa\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704954653,\"name\":\"Waray\",\"raw_name\":\"Waray\",\"value\":\"language__war\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704954781,\"name\":\"Welsh\",\"raw_name\":\"Welsh\",\"value\":\"language__cy\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704954909,\"name\":\"West flemish\",\"raw_name\":\"West flemish\",\"value\":\"language__vls\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704955037,\"name\":\"Western frisian\",\"raw_name\":\"Western frisian\",\"value\":\"language__fy\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704955165,\"name\":\"Western mari\",\"raw_name\":\"Western mari\",\"value\":\"language__mrj\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704955293,\"name\":\"Western panjabi\",\"raw_name\":\"Western panjabi\",\"value\":\"language__pnb\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704955421,\"name\":\"Wu chinese\",\"raw_name\":\"Wu chinese\",\"value\":\"language__wuu\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704955549,\"name\":\"Yakut\",\"raw_name\":\"Yakut\",\"value\":\"language__sah\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704955677,\"name\":\"Yiddish\",\"raw_name\":\"Yiddish\",\"value\":\"language__yi\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704955805,\"name\":\"Yoruba\",\"raw_name\":\"Yoruba\",\"value\":\"language__yo\"},{\"allow_solving\":true,\"default\":false,\"id\":39771704955933,\"name\":\"Zaza\",\"raw_name\":\"Zaza\",\"value\":\"language__diq\"}],\"description\":\"Language of the ticket conversation between the agent and the end user.\",\"editable_in_portal\":false,\"id\":39771680551453,\"key\":\"standard::intelligent_triage_language\",\"position\":9999,\"raw_agent_description\":null,\"raw_description\":\"{{zd.intelligent_triage_language_field_description}}\",\"raw_title\":\"{{zd.intelligent_triage_language_field}}\",\"raw_title_in_portal\":\"{{zd.intelligent_triage_language_field}}\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Language\",\"title_in_portal\":\"Language\",\"type\":\"tagger\",\"updated_at\":\"2026-10-08T21:13:33Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771680551453.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":true,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:33Z\",\"custom_field_options\":[{\"allow_solving\":true,\"default\":false,\"id\":39771680552605,\"name\":\"Low\",\"raw_name\":\"Low\",\"value\":\"language_confidence__low\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680552733,\"name\":\"Medium\",\"raw_name\":\"Medium\",\"value\":\"language_confidence__medium\"},{\"allow_solving\":true,\"default\":false,\"id\":39771680552861,\"name\":\"High\",\"raw_name\":\"High\",\"value\":\"language_confidence__high\"}],\"description\":\"Language confidence of the ticket conversation between the agent and the end user.\",\"editable_in_portal\":false,\"id\":39771680552989,\"key\":\"standard::intelligent_triage_language_confidence\",\"position\":9999,\"raw_agent_description\":null,\"raw_description\":\"{{zd.intelligent_triage_language_confidence_field_description}}\",\"raw_title\":\"{{zd.intelligent_triage_language_confidence_field}}\",\"raw_title_in_portal\":\"{{zd.intelligent_triage_language_confidence_field}}\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Language confidence\",\"title_in_portal\":\"Language confidence\",\"type\":\"tagger\",\"updated_at\":\"2026-10-08T21:13:33Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771680552989.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":false,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:19Z\",\"description\":\"Summary of the ticket conversation between the agent and the end user.\",\"editable_in_portal\":false,\"id\":39771695292829,\"key\":\"standard::ticket_summary\",\"position\":9999,\"raw_agent_description\":null,\"raw_description\":\"{{zd.ticket_summary_field_description}}\",\"raw_title\":\"{{zd.ticket_summary_field}}\",\"raw_title_in_portal\":\"{{zd.ticket_summary_field}}\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Summary\",\"title_in_portal\":\"Summary\",\"type\":\"text\",\"updated_at\":\"2026-10-08T21:13:19Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771695292829.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":true,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:23Z\",\"description\":\"\",\"editable_in_portal\":true,\"id\":39771695392797,\"key\":null,\"position\":1,\"raw_agent_description\":null,\"raw_description\":\"\",\"raw_title\":\"Subject\",\"raw_title_in_portal\":\"Subject\",\"regexp_for_validation\":null,\"removable\":false,\"required\":false,\"required_in_portal\":true,\"tag\":null,\"title\":\"Subject\",\"title_in_portal\":\"Subject\",\"type\":\"subject\",\"updated_at\":\"2026-10-08T21:13:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771695392797.json\",\"visible_in_portal\":true},{\"active\":true,\"agent_can_edit\":true,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:23Z\",\"description\":\"Please enter the details of your request. A member of our support staff will respond as soon as possible.\",\"editable_in_portal\":true,\"id\":39771695393437,\"key\":null,\"position\":2,\"raw_agent_description\":null,\"raw_description\":\"Please enter the details of your request. A member of our support staff will respond as soon as possible.\",\"raw_title\":\"Description\",\"raw_title_in_portal\":\"Description\",\"regexp_for_validation\":null,\"removable\":false,\"required\":false,\"required_in_portal\":true,\"tag\":null,\"title\":\"Description\",\"title_in_portal\":\"Description\",\"type\":\"description\",\"updated_at\":\"2026-10-08T21:13:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771695393437.json\",\"visible_in_portal\":true},{\"active\":true,\"agent_can_edit\":true,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:23Z\",\"description\":\"Request type\",\"editable_in_portal\":false,\"id\":39771695393565,\"key\":null,\"position\":4,\"raw_agent_description\":null,\"raw_description\":\"Request type\",\"raw_title\":\"Type\",\"raw_title_in_portal\":\"Type\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"system_field_options\":[{\"name\":\"Question\",\"value\":\"question\"},{\"name\":\"Incident\",\"value\":\"incident\"},{\"name\":\"Problem\",\"value\":\"problem\"},{\"name\":\"Task\",\"value\":\"task\"}],\"tag\":null,\"title\":\"Type\",\"title_in_portal\":\"Type\",\"type\":\"tickettype\",\"updated_at\":\"2026-10-08T21:13:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771695393565.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":true,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:23Z\",\"description\":\"Request group\",\"editable_in_portal\":false,\"id\":39771695393821,\"key\":null,\"position\":6,\"raw_agent_description\":null,\"raw_description\":\"Request group\",\"raw_title\":\"Group\",\"raw_title_in_portal\":\"Group\",\"regexp_for_validation\":null,\"removable\":false,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Group\",\"title_in_portal\":\"Group\",\"type\":\"group\",\"updated_at\":\"2026-10-08T21:13:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771695393821.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":true,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:23Z\",\"description\":\"Agent assigned to your request\",\"editable_in_portal\":false,\"id\":39771695393949,\"key\":null,\"position\":7,\"raw_agent_description\":null,\"raw_description\":\"Agent assigned to your request\",\"raw_title\":\"Assignee\",\"raw_title_in_portal\":\"Assignee\",\"regexp_for_validation\":null,\"removable\":false,\"required\":true,\"required_in_portal\":false,\"tag\":null,\"title\":\"Assignee\",\"title_in_portal\":\"Assignee\",\"type\":\"assignee\",\"updated_at\":\"2026-10-08T21:13:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771695393949.json\",\"visible_in_portal\":true},{\"active\":true,\"agent_can_edit\":false,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:28Z\",\"custom_field_options\":[{\"allow_solving\":true,\"default\":false,\"id\":39771695525789,\"name\":\"Digital\",\"raw_name\":\"{{zd.channel_group_digital}}\",\"value\":\"zd_channel_group_digital\"},{\"allow_solving\":true,\"default\":false,\"id\":39771695525917,\"name\":\"Voice\",\"raw_name\":\"{{zd.channel_group_voice}}\",\"value\":\"zd_channel_group_voice\"}],\"description\":\"Identifies in which channel group the ticket resolution happened.\",\"editable_in_portal\":false,\"id\":39771695526045,\"key\":\"standard::resolution_channel_group\",\"position\":9999,\"raw_agent_description\":null,\"raw_description\":\"{{zd.channel_group_ticket_field_description}}\",\"raw_title\":\"{{zd.channel_group_ticket_field}}\",\"raw_title_in_portal\":\"{{zd.channel_group_ticket_field}}\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Channel group\",\"title_in_portal\":\"Channel group\",\"type\":\"tagger\",\"updated_at\":\"2026-10-08T21:13:28Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771695526045.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":false,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:28Z\",\"custom_field_options\":[{\"allow_solving\":true,\"default\":false,\"id\":39771663340189,\"name\":\"Non-automated\",\"raw_name\":\"{{zd.resolution_tier_non_automated}}\",\"value\":\"zd_resolution_tier_non_automated\"},{\"allow_solving\":true,\"default\":false,\"id\":39771663340317,\"name\":\"Assisted escalation\",\"raw_name\":\"{{zd.resolution_tier_assisted_escalation}}\",\"value\":\"zd_resolution_tier_assisted_escalation\"},{\"allow_solving\":true,\"default\":false,\"id\":39771663340445,\"name\":\"Contained resolution\",\"raw_name\":\"{{zd.resolution_tier_contained_resolution}}\",\"value\":\"zd_resolution_tier_contained_resolution\"},{\"allow_solving\":true,\"default\":false,\"id\":39771663340573,\"name\":\"Verified resolution\",\"raw_name\":\"{{zd.resolution_tier_core_resolution}}\",\"value\":\"zd_resolution_tier_core_resolution\"}],\"description\":\"The tier that a resolution was grouped into\",\"editable_in_portal\":false,\"id\":39771695526685,\"key\":\"standard::resolution_tier\",\"position\":9999,\"raw_agent_description\":null,\"raw_description\":\"{{zd.resolution_tier_ticket_field_description}}\",\"raw_title\":\"{{zd.resolution_tier_ticket_field}}\",\"raw_title_in_portal\":\"{{zd.resolution_tier_ticket_field}}\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Resolution tier\",\"title_in_portal\":\"Resolution tier\",\"type\":\"tagger\",\"updated_at\":\"2026-10-08T21:13:28Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771695526685.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":false,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:28Z\",\"description\":\"The unique ID for multi-recipient emails\",\"editable_in_portal\":false,\"id\":39771695534109,\"key\":\"standard::multi_recipient_email_tickets\",\"position\":9999,\"raw_agent_description\":null,\"raw_description\":\"{{zd.multi_recipient_email_tickets_msar_id_ticket_field_description}}\",\"raw_title\":\"{{zd.multi_recipient_email_tickets_msar_id_ticket_field}}\",\"raw_title_in_portal\":\"{{zd.multi_recipient_email_tickets_msar_id_ticket_field}}\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Multi-recipient email ID\",\"title_in_portal\":\"Multi-recipient email ID\",\"type\":\"text\",\"updated_at\":\"2026-10-08T21:13:28Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771695534109.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":true,\"agent_description\":\"When selected and saved, customers won't receive inactivity reminders.\",\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:42Z\",\"description\":\"Pause messaging reminders\",\"editable_in_portal\":false,\"id\":39771695973277,\"key\":\"standard::pause_messaging_inactivity_reminders\",\"position\":9999,\"raw_agent_description\":\"{{zd.pause_messaging_inactivity_reminders_description}}\",\"raw_description\":\"{{zd.pause_messaging_inactivity_reminders_field}}\",\"raw_title\":\"{{zd.pause_messaging_inactivity_reminders_field}}\",\"raw_title_in_portal\":\"{{zd.pause_messaging_inactivity_reminders_field}}\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Pause messaging reminders\",\"title_in_portal\":\"Pause messaging reminders\",\"type\":\"checkbox\",\"updated_at\":\"2026-10-08T21:13:42Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771695973277.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":false,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:31Z\",\"custom_field_options\":[{\"allow_solving\":true,\"default\":true,\"id\":39771718655261,\"name\":\"Not required\",\"raw_name\":\"{{zd.required_tasks_not_required}}\",\"value\":\"zd_es_required_tasks_not_required\"},{\"allow_solving\":true,\"default\":false,\"id\":39771718655389,\"name\":\"Complete\",\"raw_name\":\"{{zd.required_tasks_complete}}\",\"value\":\"zd_es_required_tasks_complete\"},{\"allow_solving\":false,\"default\":false,\"id\":39771718655517,\"name\":\"Incomplete\",\"raw_name\":\"{{zd.required_tasks_incomplete}}\",\"value\":\"zd_es_required_tasks_incomplete\"}],\"description\":\"Shows whether required task lists are complete. The ticket cannot be solved until all required tasks are done or when no tasks are required.\",\"editable_in_portal\":false,\"id\":39771718655901,\"key\":\"standard::required_tasks\",\"position\":9999,\"raw_agent_description\":null,\"raw_description\":\"{{zd.required_tasks_ticket_field_description}}\",\"raw_title\":\"{{zd.required_tasks_ticket_field}}\",\"raw_title_in_portal\":\"{{zd.required_tasks_ticket_field}}\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Required tasks\",\"title_in_portal\":\"Required tasks\",\"type\":\"tagger\",\"updated_at\":\"2026-10-08T21:13:31Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771718655901.json\",\"visible_in_portal\":false},{\"active\":true,\"agent_can_edit\":false,\"agent_description\":null,\"collapsed_for_agents\":false,\"created_at\":\"2026-10-08T21:13:47Z\",\"custom_field_options\":[{\"allow_solving\":false,\"default\":false,\"id\":39771719117981,\"name\":\"Pending\",\"raw_name\":\"{{zd.approval_workflow_status_pending}}\",\"value\":\"zd_es_approval_pending\"},{\"allow_solving\":true,\"default\":false,\"id\":39771719118109,\"name\":\"Approved\",\"raw_name\":\"{{zd.approval_workflow_status_approved}}\",\"value\":\"zd_es_approval_approved\"},{\"allow_solving\":true,\"default\":false,\"id\":39771719118237,\"name\":\"Rejected\",\"raw_name\":\"{{zd.approval_workflow_status_rejected}}\",\"value\":\"zd_es_approval_rejected\"},{\"allow_solving\":true,\"default\":false,\"id\":39771719118365,\"name\":\"Withdrawn\",\"raw_name\":\"{{zd.approval_workflow_status_withdrawn}}\",\"value\":\"zd_es_approval_withdrawn\"}],\"description\":\"Approval status\",\"editable_in_portal\":false,\"id\":39771719118621,\"key\":\"standard::approval_workflow_status\",\"position\":9999,\"raw_agent_description\":null,\"raw_description\":\"{{zd.approval_workflow_status_ticket_field_description}}\",\"raw_title\":\"{{zd.approval_workflow_status_ticket_field}}\",\"raw_title_in_portal\":\"{{zd.approval_workflow_status_ticket_field}}\",\"regexp_for_validation\":null,\"removable\":true,\"required\":false,\"required_in_portal\":false,\"tag\":null,\"title\":\"Approval status\",\"title_in_portal\":\"Approval status\",\"type\":\"tagger\",\"updated_at\":\"2026-10-08T21:13:47Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_fields/39771719118621.json\",\"visible_in_portal\":false}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=5, private", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f0381a2148fe-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:26 GMT", + "etag": "W/\"43113db9f59f357a97cd47a01c62314c\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "393", + "ratelimit-reset": "35", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=K6TtZfHBv4V0AspgZRpajw6gOGGrgc6Z%2BO5G%2Bt1vcGnlBDiFrUGn3MNyqteyorRv6ohUnwgs8%2BAuRe%2B5GgTRdEnfxhsF2B5rgj9jrFdLX3hFif7cCjUq2hIlGl9m9MMByYfmYcOUNAfQoNY%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/ticket_fields", + "x-envoy-upstream-service-time": "363", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/ticket_fields", + "x-rate-limit": "400", + "x-rate-limit-remaining": "393", + "x-request-id": "a495f0381a2148fe-BOM", + "x-request-validation": "matched", + "x-runtime": "0.358926", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-xtn9m", + "x-zendesk-zorg": "yes", + "zendesk-ratelimit-ticket-fields-index": "total=20; remaining=19; resets=35", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_forms?page%5Bsize%5D=100\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/ticket_forms?page%5Bsize%5D=100", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"links\":{\"next\":\"https://stealth-37618.zendesk.com/api/v2/ticket_forms.json?page%5Bafter%5D=eyJvIjoicG9zaXRpb24saWQiLCJ2IjoiYVFBQUFBQUFBQUFBYVIySjJ3OHNKQUFBIn0%3D&page%5Bsize%5D=100\",\"prev\":\"https://stealth-37618.zendesk.com/api/v2/ticket_forms.json?page%5Bbefore%5D=eyJvIjoicG9zaXRpb24saWQiLCJ2IjoiYVFBQUFBQUFBQUFBYVIySjJ3OHNKQUFBIn0%3D&page%5Bsize%5D=100\"},\"meta\":{\"after_cursor\":\"eyJvIjoicG9zaXRpb24saWQiLCJ2IjoiYVFBQUFBQUFBQUFBYVIySjJ3OHNKQUFBIn0=\",\"before_cursor\":\"eyJvIjoicG9zaXRpb24saWQiLCJ2IjoiYVFBQUFBQUFBQUFBYVIySjJ3OHNKQUFBIn0=\",\"has_more\":false},\"ticket_forms\":[{\"active\":true,\"agent_conditions\":[],\"created_at\":\"2026-10-08T21:13:23Z\",\"default\":true,\"deleted_at\":null,\"display_name\":\"Default Ticket Form\",\"end_user_conditions\":[],\"end_user_visible\":true,\"form_type\":\"standard\",\"id\":39771663206685,\"in_all_brands\":true,\"name\":\"Default Ticket Form\",\"position\":0,\"raw_display_name\":\"Default Ticket Form\",\"raw_name\":\"Default Ticket Form\",\"restricted_brand_ids\":[],\"ticket_field_ids\":[39771695392797,39771695393437,39771663202205,39771695393565,39771663202717,39771695393821,39771695393949,39771663202461,39771663108893,39771663109021,39771663109277,39771695292829,39771680543389,39771680545309,39771680548637,39771680549277,39771680551453,39771680552989],\"updated_at\":\"2026-10-08T21:39:50Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_forms/39771663206685.json\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=60, private", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f03bdde248fe-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:26 GMT", + "etag": "W/\"b5e20b7362c6cf53264d61b90d858e0c\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "392", + "ratelimit-reset": "34", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=%2BYmMsJ9hh50%2BKQvZ6yxozTc4F9Zj7554J89m8omwjIgcpZ%2FW34KVVjD825Au3LXF6AmxC0lPzTa8eAMRirreVr8P4TN0t6iH7gfovP0%2BJ91xpgT2uHGKHOHQ%2Faf5VI0SjBmnqZThqxY0eLc%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/ticket_forms", + "x-envoy-upstream-service-time": "72", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/ticket_forms", + "x-rate-limit": "400", + "x-rate-limit-remaining": "392", + "x-request-id": "a495f03bdde248fe-BOM", + "x-request-validation": "matched", + "x-runtime": "0.068778", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-zzp4r", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/custom_statuses\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/custom_statuses", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"count\":6,\"custom_statuses\":[{\"active\":true,\"agent_label\":\"New\",\"created_at\":\"2026-10-08T21:13:24Z\",\"default\":true,\"description\":\"Ticket is awaiting assignment to an agent\",\"end_user_description\":\"We are working on a response for you\",\"end_user_label\":\"Open\",\"id\":39771663247389,\"raw_agent_label\":\"{{zd.status_new}}\",\"raw_description\":\"{{zd.status_new_description}}\",\"raw_end_user_description\":\"{{zd.status_end_user_new_description}}\",\"raw_end_user_label\":\"{{zd.status_end_user_new}}\",\"status_category\":\"new\",\"updated_at\":\"2026-10-08T21:13:24Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/custom_statuses/39771663247389.json\"},{\"active\":true,\"agent_label\":\"Open\",\"created_at\":\"2026-10-08T21:13:24Z\",\"default\":true,\"description\":\"Staff is working on the ticket\",\"end_user_description\":\"We are working on a response for you\",\"end_user_label\":\"Open\",\"id\":39771695441053,\"raw_agent_label\":\"{{zd.status_open}}\",\"raw_description\":\"{{zd.status_open_description}}\",\"raw_end_user_description\":\"{{zd.status_end_user_open_description}}\",\"raw_end_user_label\":\"{{zd.status_end_user_open}}\",\"status_category\":\"open\",\"updated_at\":\"2026-10-08T21:13:24Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/custom_statuses/39771695441053.json\"},{\"active\":true,\"agent_label\":\"In Progress\",\"created_at\":\"2026-10-08T21:13:25Z\",\"default\":false,\"description\":\"Ticket is being worked on\",\"end_user_description\":\"Ticket is being worked on\",\"end_user_label\":\"In Progress\",\"id\":39771695448605,\"raw_agent_label\":\"{{zd.status_in_progress}}\",\"raw_description\":\"{{zd.status_in_progress_description}}\",\"raw_end_user_description\":\"{{zd.status_end_user_in_progress_description}}\",\"raw_end_user_label\":\"{{zd.status_end_user_in_progress}}\",\"status_category\":\"open\",\"updated_at\":\"2026-10-08T21:13:25Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/custom_statuses/39771695448605.json\"},{\"active\":true,\"agent_label\":\"Pending\",\"created_at\":\"2026-10-08T21:13:25Z\",\"default\":true,\"description\":\"Staff is waiting for the requester to reply\",\"end_user_description\":\"We are waiting for you to respond\",\"end_user_label\":\"Awaiting your reply\",\"id\":39771695444253,\"raw_agent_label\":\"{{zd.status_pending}}\",\"raw_description\":\"{{zd.status_pending_description}}\",\"raw_end_user_description\":\"{{zd.status_end_user_pending_description}}\",\"raw_end_user_label\":\"{{zd.status_end_user_pending}}\",\"status_category\":\"pending\",\"updated_at\":\"2026-10-08T21:13:25Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/custom_statuses/39771695444253.json\"},{\"active\":false,\"agent_label\":\"On-hold\",\"created_at\":\"2026-10-08T21:13:25Z\",\"default\":true,\"description\":\"Staff is waiting for a third party\",\"end_user_description\":\"We are working on a response for you\",\"end_user_label\":\"Open\",\"id\":39771695445533,\"raw_agent_label\":\"{{zd.status_hold}}\",\"raw_description\":\"{{zd.status_hold_description}}\",\"raw_end_user_description\":\"{{zd.status_end_user_hold_description}}\",\"raw_end_user_label\":\"{{zd.status_end_user_hold}}\",\"status_category\":\"hold\",\"updated_at\":\"2026-10-08T21:13:25Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/custom_statuses/39771695445533.json\"},{\"active\":true,\"agent_label\":\"Solved\",\"created_at\":\"2026-10-08T21:13:25Z\",\"default\":true,\"description\":\"The ticket has been solved\",\"end_user_description\":\"This request has been solved\",\"end_user_label\":\"Solved\",\"id\":39771663254173,\"raw_agent_label\":\"{{zd.status_solved}}\",\"raw_description\":\"{{zd.status_solved_description}}\",\"raw_end_user_description\":\"{{zd.status_end_user_solved_description}}\",\"raw_end_user_label\":\"{{zd.status_end_user_solved}}\",\"status_category\":\"solved\",\"updated_at\":\"2026-10-08T21:13:25Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/custom_statuses/39771663254173.json\"}],\"next_page\":null,\"previous_page\":null}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f03daf5948fe-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:26 GMT", + "etag": "W/\"2df9355bbf3bf0b5d5433f6372e15b8e\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "391", + "ratelimit-reset": "34", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=D4R63MGgEN2EtSnXbtMkNdsFTJ0XVziCfhUo0NKJGO736yCkK1bz0IhRfw2CiQcbdeRYAQXdwzmnZvrbyoTOwUb8lkcEzyKjVdTog5Jft1DJHzYjZApKf5gpidNS2j3yKO35Mzg4QPZK9fA%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2", + "x-envoy-upstream-service-time": "137", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/custom_statuses", + "x-rate-limit": "400", + "x-rate-limit-remaining": "391", + "x-request-id": "a495f03daf5948fe-BOM", + "x-request-validation": "matched", + "x-runtime": "0.132814", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-kbtlz", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/guide/survey_responses?page%5Bsize%5D=1\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/guide/survey_responses?page%5Bsize%5D=1", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"meta\":{\"after_cursor\":\"01M4FN6P3TCFJAF93WYDFZ4KKX\",\"before_cursor\":\"01M4FN6P3TCFJAF93WYDFZ4KKX\",\"has_more\":true},\"survey_responses\":[{\"answers\":[{\"created_at\":\"2026-10-09T06:22:28.650Z\",\"question\":{\"id\":\"01M4FMXA2ZKKW0SW4G3MA6FBV9\",\"sub_type\":\"customer_satisfaction\",\"type\":\"rating_scale_numeric\"},\"rating\":1,\"rating_category\":\"bad\",\"type\":\"rating_scale\",\"updated_at\":\"2026-10-09T06:22:28.650Z\"},{\"created_at\":\"2026-10-09T06:22:28.650Z\",\"question\":{\"id\":\"01M4FMXA2ZBXBT4CSMM2QAAEV7\",\"type\":\"closed_ended\"},\"selections\":[{\"option_id\":\"01M4FMXA30Z079V8E8P0BM67D9\",\"type\":\"predefined\"}],\"type\":\"closed_ended\",\"updated_at\":\"2026-10-09T06:22:28.650Z\"},{\"created_at\":\"2026-10-09T06:22:28.650Z\",\"question\":{\"id\":\"01M4FMXA30EKPSYPJRYHK3NJPQ\",\"type\":\"open_ended\"},\"type\":\"skipped\",\"updated_at\":\"2026-10-09T06:22:28.650Z\"}],\"expires_at\":\"2026-11-06T06:21:58.266Z\",\"id\":\"01M4FN6P3TCFJAF93WYDFZ4KKX\",\"responder_id\":\"39771850790941\",\"subject_zrns\":[\"zen:ticket:3\"],\"subjects\":[{\"id\":\"3\",\"type\":\"ticket\",\"zrn\":\"zen:ticket:3\"}],\"survey\":{\"id\":\"01M4FMXHBW5WHJ6D7BEMA0RZC5\",\"state\":\"enabled\",\"version\":1}}]}", + "headers": { + "access-control-allow-origin": "*", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f03fe95a48fe-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:26 GMT", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=WJxg5UpWOAU8irFDUy8%2Basas8DWAiZTA%2BRUH9475EgrbtbyhXRXLsV4x5DVHQDDrtXNaBs5jK0tnpxhcPeGIe0bYT3zZP%2BNDG%2BsrB%2FoCLgui3f8j2hf8ZN9HhoY9WtYC7tZ8%2BXSVc11r1sM%3D\"}]}", + "server": "cloudflare", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-envoy-decorator-operation": "/api/v2/guide", + "x-envoy-upstream-service-time": "81", + "x-openapi-route-path": "/api/v2/guide/survey_responses", + "x-rate-limit": "400", + "x-rate-limit-remaining": "399", + "x-request-id": "a495f03fe95a48fe-BOM", + "x-request-validation": "matched", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v617", + "x-zendesk-zorg": "yes", + "zendesk-route": "/api/v2/guide/survey_responses", + "zendesk-service": "guide-rest" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/guide/en-us/surveys?page%5Bsize%5D=50\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/guide/en-us/surveys?page%5Bsize%5D=50", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"meta\":{\"after_cursor\":\"01M4FMXHBW5WHJ6D7BEMA0RZC5\",\"before_cursor\":\"01M4FMXHBW5WHJ6D7BEMA0RZC5\",\"has_more\":false},\"surveys\":[{\"created_at\":\"2026-10-09T06:16:58.492Z\",\"id\":\"01M4FMXHBW5WHJ6D7BEMA0RZC5\",\"questions\":[{\"headline\":{\"type\":\"static\",\"value\":\"How would you rate the support you received?\"},\"id\":\"01M4FMXA2ZKKW0SW4G3MA6FBV9\",\"options\":[{\"follow_up\":{\"question_id\":\"01M4FMXA2ZBXBT4CSMM2QAAEV7\"},\"label\":{\"type\":\"static\",\"value\":\"Very unsatisfied\"},\"rating\":1},{\"follow_up\":{\"question_id\":\"01M4FMXA2ZBXBT4CSMM2QAAEV7\"},\"label\":{\"type\":\"static\",\"value\":\"\"},\"rating\":2},{\"follow_up\":{\"question_id\":\"01M4FMXA2ZBXBT4CSMM2QAAEV7\"},\"label\":{\"type\":\"static\",\"value\":\"\"},\"rating\":3},{\"follow_up\":{\"question_id\":\"01M4FMXA30EKPSYPJRYHK3NJPQ\"},\"label\":{\"type\":\"static\",\"value\":\"\"},\"rating\":4},{\"follow_up\":{\"question_id\":\"01M4FMXA30EKPSYPJRYHK3NJPQ\"},\"label\":{\"type\":\"static\",\"value\":\"Very satisfied\"},\"rating\":5}],\"sub_type\":\"customer_satisfaction\",\"type\":\"rating_scale_numeric\"},{\"headline\":{\"type\":\"static\",\"value\":\"Select a reason regarding your experience\"},\"id\":\"01M4FMXA2ZBXBT4CSMM2QAAEV7\",\"options\":[{\"follow_up\":{\"question_id\":\"01M4FMXA30EKPSYPJRYHK3NJPQ\"},\"id\":\"01M4FMXA2ZAEY15QFCNHV717EC\",\"label\":{\"type\":\"static\",\"value\":\"The issue took too long to resolve\"}},{\"follow_up\":{\"question_id\":\"01M4FMXA30EKPSYPJRYHK3NJPQ\"},\"id\":\"01M4FMXA30Z079V8E8P0BM67D9\",\"label\":{\"type\":\"static\",\"value\":\"The issue was not resolved\"}},{\"follow_up\":{\"question_id\":\"01M4FMXA30EKPSYPJRYHK3NJPQ\"},\"id\":\"01M4FMXA30WJEYWRKXGMQVHAH3\",\"label\":{\"type\":\"static\",\"value\":\"The information provided was not clear or helpful\"}}],\"type\":\"closed_ended\"},{\"follow_up\":null,\"headline\":{\"type\":\"static\",\"value\":\"Share your thoughts on the support you received\"},\"id\":\"01M4FMXA30EKPSYPJRYHK3NJPQ\",\"type\":\"open_ended\"}],\"state\":\"enabled\",\"updated_at\":\"2026-10-09T06:16:58.492Z\",\"version\":1}]}", + "headers": { + "access-control-allow-origin": "*", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f041cb0e48fe-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:27 GMT", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=wOihZN4o3RpPHedS3yD7GfkxFmNPYSvaDgsdnjSbh4YtiGP7tZ%2FXX4IWfcqK7%2Fi53y1wO4sIsjo%2BVbNfHcTtqx6g1iI4tGn1llAUVj34Wac0nM%2Fnm11vCdShAWzL5LJWCGMXoICnyIxenO0%3D\"}]}", + "server": "cloudflare", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-envoy-decorator-operation": "/api/v2/guide", + "x-envoy-upstream-service-time": "45", + "x-openapi-route-path": "/api/v2/guide/{locale}/surveys", + "x-rate-limit": "400", + "x-rate-limit-remaining": "399", + "x-request-id": "a495f041cb0e48fe-BOM", + "x-request-validation": "matched", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v617", + "x-zendesk-zorg": "yes", + "zendesk-route": "/api/v2/guide/:locale/surveys", + "zendesk-service": "guide-rest" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events?start_time=0&per_page=1\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events?start_time=0&per_page=1", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"count\":2,\"end_of_stream\":false,\"end_time\":1791494058,\"next_page\":\"https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events.json?per_page=1&start_time=1791494058\",\"ticket_events\":[{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39771664580381,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664580509,\"priority\":\"normal\",\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664580637,\"subject\":\"SAMPLE: Unable to log in after password reset\",\"via\":\"Mail\",\"via_reference_id\":null},{\"added_tags\":[\"zendesk_accelerated_setup\"],\"event_type\":\"Create\",\"id\":39771664580765,\"removed_tags\":[],\"tags\":[\"zendesk_accelerated_setup\"],\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664580893,\"type\":null,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664581021,\"status\":\"open\",\"via\":\"Mail\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771664581149,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771664581277,\"via\":\"Mail\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771664581405,\"via\":\"Mail\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771664581533,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664581661,\"ticket_form_id\":\"39771663206685\",\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664581789,\"requester_id\":39771664570525,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664589853,\"sla_policy\":\"Set first reply time\",\"via\":\"Mail\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:14:17Z\",\"event_type\":\"Audit\",\"id\":39771664580253,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":1,\"timestamp\":1791494057,\"updater_id\":39771664570525,\"via\":\"Mail\"},{\"child_events\":[],\"created_at\":\"2026-10-08T21:14:17Z\",\"event_type\":\"Audit\",\"id\":39771681970845,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":1,\"timestamp\":1791494057,\"updater_id\":-1,\"via\":\"SLA\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f0559ba148fe-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:30 GMT", + "etag": "W/\"849a98c5fe98e9a9b5fdb2af74ca127e\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "390", + "ratelimit-reset": "30", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=MVCc%2Ft0U79%2FqDhSvps4YrHcRX4L%2FLR9kcA2UBonqRjFxzU3zmhn%2Fi0X%2F%2Bg1y8JxO7Hgwr7uXSPlV%2BwjcPU0A8RXe%2FuJZP%2FgSfzCc85Eml0R%2FQ14K3yTTh6UU9z1eBlXSsBGFuHe5LHTPCII%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "57", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/ticket_events", + "x-rate-limit": "400", + "x-rate-limit-remaining": "390", + "x-request-id": "a495f0559ba148fe-BOM", + "x-request-validation": "matched", + "x-runtime": "0.053047", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-n8gfc", + "x-zendesk-zorg": "yes", + "zendesk-ratelimit-incremental-exports": "total=10; remaining=6; resets=30", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/ticket_metric_events?start_time=0&per_page=1\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/ticket_metric_events?start_time=0&per_page=1", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"count\":144,\"end_of_stream\":true,\"end_time\":1791526917,\"next_page\":null,\"ticket_metric_events\":[{\"deleted\":false,\"id\":39771706276509,\"instance_id\":0,\"metric\":\"agent_work_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771706276765,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771681968413,\"instance_id\":0,\"metric\":\"pausable_update_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771681979037,\"instance_id\":0,\"metric\":\"periodic_update_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771706277277,\"instance_id\":0,\"metric\":\"reply_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771706277533,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771706279709,\"instance_id\":1,\"metric\":\"reply_time\",\"sla\":{\"business_hours\":false,\"policy\":{\"description\":null,\"id\":39771709039517,\"title\":\"Set first reply time\"},\"target\":60,\"target_in_seconds\":3600},\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"apply_sla\"},{\"deleted\":false,\"id\":39771681968669,\"instance_id\":0,\"metric\":\"requester_wait_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771681968925,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771681977373,\"instance_id\":0,\"metric\":\"resolution_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771706281757,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771837262237,\"instance_id\":0,\"metric\":\"agent_work_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771837262493,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771837262749,\"instance_id\":0,\"metric\":\"pausable_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771816578461,\"instance_id\":0,\"metric\":\"periodic_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771837266333,\"instance_id\":0,\"metric\":\"reply_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771837266461,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771837263005,\"instance_id\":0,\"metric\":\"requester_wait_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771816578205,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771837266589,\"instance_id\":0,\"metric\":\"resolution_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771837266717,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868927773,\"instance_id\":0,\"metric\":\"agent_work_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868927901,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884496541,\"instance_id\":0,\"metric\":\"pausable_update_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868931101,\"instance_id\":0,\"metric\":\"periodic_update_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868929949,\"instance_id\":0,\"metric\":\"reply_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868930077,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868928285,\"instance_id\":0,\"metric\":\"requester_wait_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868929437,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884497693,\"instance_id\":0,\"metric\":\"resolution_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868930589,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868941085,\"instance_id\":0,\"metric\":\"agent_work_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868941213,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884510109,\"instance_id\":0,\"metric\":\"pausable_update_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868942365,\"instance_id\":0,\"metric\":\"periodic_update_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868941469,\"instance_id\":0,\"metric\":\"reply_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771884510365,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868941981,\"instance_id\":1,\"metric\":\"reply_time\",\"sla\":{\"business_hours\":false,\"policy\":{\"description\":null,\"id\":39771709039517,\"title\":\"Set first reply time\"},\"target\":60,\"target_in_seconds\":3600},\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"apply_sla\"},{\"deleted\":false,\"id\":39771868941341,\"instance_id\":0,\"metric\":\"requester_wait_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771884510237,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868942237,\"instance_id\":0,\"metric\":\"resolution_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771884513565,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868961949,\"instance_id\":0,\"metric\":\"agent_work_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771884529309,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884529565,\"instance_id\":0,\"metric\":\"pausable_update_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868967453,\"instance_id\":0,\"metric\":\"periodic_update_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868963101,\"instance_id\":0,\"metric\":\"reply_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868963357,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884531229,\"instance_id\":1,\"metric\":\"reply_time\",\"sla\":{\"business_hours\":false,\"policy\":{\"description\":null,\"id\":39771709039517,\"title\":\"Set first reply time\"},\"target\":60,\"target_in_seconds\":3600},\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"apply_sla\"},{\"deleted\":false,\"id\":39771884529949,\"instance_id\":0,\"metric\":\"requester_wait_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868962589,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868967197,\"instance_id\":0,\"metric\":\"resolution_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771884532253,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771837362845,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:26Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771837363741,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:26Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771900534813,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:26Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771900534941,\"instance_id\":1,\"metric\":\"reply_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:26Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771837386781,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771900560925,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771900561821,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771900562077,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771900564253,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771837391133,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771900562589,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771900562845,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771837390109,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771900563997,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771869100061,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:28Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884642973,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:28Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884641181,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:28Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771884641565,\"instance_id\":1,\"metric\":\"reply_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":3,\"time\":\"2026-10-08T21:25:28Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771808040477,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771808040605,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771808041501,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771808041757,\"instance_id\":1,\"metric\":\"reply_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771851156509,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771851156637,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771851157661,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771851158813,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771808074909,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771851180829,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771851182237,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771808076701,\"instance_id\":1,\"metric\":\"reply_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771808077341,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771808077725,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771851184797,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771851185053,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771884868125,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:36Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884868253,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:36Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884868381,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:36Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771706281373,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":1,\"time\":\"2026-10-08T22:14:17Z\",\"type\":\"breach\"},{\"deleted\":false,\"id\":39776744022301,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":2,\"time\":\"2026-10-09T05:52:55Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776697766557,\"instance_id\":2,\"metric\":\"pausable_update_time\",\"ticket_id\":2,\"time\":\"2026-10-09T05:52:55Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776697770653,\"instance_id\":2,\"metric\":\"periodic_update_time\",\"ticket_id\":2,\"time\":\"2026-10-09T05:52:55Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776697767453,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":2,\"time\":\"2026-10-09T05:52:55Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744024861,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":2,\"time\":\"2026-10-09T05:52:55Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776697830557,\"instance_id\":0,\"metric\":\"agent_work_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744091165,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744091421,\"instance_id\":0,\"metric\":\"pausable_update_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744097181,\"instance_id\":0,\"metric\":\"periodic_update_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744092189,\"instance_id\":0,\"metric\":\"reply_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744092701,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776697835549,\"instance_id\":1,\"metric\":\"reply_time\",\"sla\":{\"business_hours\":false,\"policy\":{\"description\":null,\"id\":39771709039517,\"title\":\"Set first reply time\"},\"target\":60,\"target_in_seconds\":3600},\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"apply_sla\"},{\"deleted\":false,\"id\":39776744091677,\"instance_id\":0,\"metric\":\"requester_wait_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744091933,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744095005,\"instance_id\":0,\"metric\":\"resolution_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744095261,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744104861,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39776744105501,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":507,\"calendar\":507},\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39776744106397,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39776744106525,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":507,\"calendar\":507},\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39776697850141,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39776744108189,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":507,\"calendar\":507},\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39776744143901,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":5,\"time\":\"2026-10-09T05:52:58Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744144541,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":5,\"time\":\"2026-10-09T05:52:58Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744145437,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":5,\"time\":\"2026-10-09T05:52:58Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39777182439069,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777182439453,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":25,\"calendar\":25},\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777170257053,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777170257437,\"instance_id\":1,\"metric\":\"reply_time\",\"status\":{\"business\":25,\"calendar\":25},\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777170255901,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777170256029,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":25,\"calendar\":25},\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777182442909,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777182443293,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":25,\"calendar\":25},\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777202538141,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777173680925,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":26,\"calendar\":26},\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777173681949,\"instance_id\":2,\"metric\":\"pausable_update_time\",\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777202539293,\"instance_id\":2,\"metric\":\"pausable_update_time\",\"status\":{\"business\":26,\"calendar\":26},\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777173686301,\"instance_id\":2,\"metric\":\"periodic_update_time\",\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777173686557,\"instance_id\":2,\"metric\":\"periodic_update_time\",\"status\":{\"business\":26,\"calendar\":26},\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777173683101,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777202544029,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":26,\"calendar\":26},\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777202545821,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777173683741,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":26,\"calendar\":26},\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777223208477,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777223208733,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":536,\"calendar\":536},\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777238386205,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777238386461,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"status\":{\"business\":536,\"calendar\":536},\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777223213213,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777223213597,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"status\":{\"business\":536,\"calendar\":536},\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777238386973,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777238387101,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":536,\"calendar\":536},\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777238388509,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777223212189,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":536,\"calendar\":536},\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"update_status\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f07b7b87c87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:36 GMT", + "etag": "W/\"9db2cad8d6f82e31f02846950525a4c9\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "389", + "ratelimit-reset": "24", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=eWcpKAACx%2FAsiceSWPRD2DGuVN637ocf8H1SCgj5VH0WBAMccQMX9Dp6gNel5bPLZoX71QsYsAH3qXmzGQaCwrUARYdnGwSjN0PtTgPIASj4rgXAbe%2FsEsmKnAl8bLierOUP2U9b0yIGgCs%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "79", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/ticket_metric_events", + "x-rate-limit": "400", + "x-rate-limit-remaining": "389", + "x-request-id": "a495f07b7b87c87d-DUB", + "x-request-validation": "matched", + "x-runtime": "0.074986", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-n8gfc", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings?page%5Bsize%5D=1\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings?page%5Bsize%5D=1", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"links\":{\"next\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings.json?page%5Bafter%5D=eyJvIjoiLWNyZWF0ZWRfYXQsLWlkIiwidiI6IlpDU0l5R29BQUFBQWFSMW8vMXN0SkFBQSJ9&page%5Bsize%5D=1\",\"prev\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings.json?page%5Bbefore%5D=eyJvIjoiLWNyZWF0ZWRfYXQsLWlkIiwidiI6IlpDU0l5R29BQUFBQWFSMW8vMXN0SkFBQSJ9&page%5Bsize%5D=1\"},\"meta\":{\"after_cursor\":\"eyJvIjoiLWNyZWF0ZWRfYXQsLWlkIiwidiI6IlpDU0l5R29BQUFBQWFSMW8vMXN0SkFBQSJ9\",\"before_cursor\":\"eyJvIjoiLWNyZWF0ZWRfYXQsLWlkIiwidiI6IlpDU0l5R29BQUFBQWFSMW8vMXN0SkFBQSJ9\",\"has_more\":true},\"satisfaction_ratings\":[{\"assignee_id\":39771704393373,\"comment\":null,\"created_at\":\"2026-10-09T06:22:28Z\",\"group_id\":39771663256989,\"id\":39777235593245,\"requester_id\":39771850790941,\"score\":\"bad\",\"ticket_id\":3,\"updated_at\":\"2026-10-09T06:22:28Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings/39777235593245.json\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f07d78dbc87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:36 GMT", + "etag": "W/\"01df7508607eea2210d3370e179c46e0\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "388", + "ratelimit-reset": "24", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=rsmudL0Vpl%2BmYrslLPKLQwzfU2rt0NJXWjgTVKb64T%2BU%2B0k%2B3zc5tEyoTdt8oTmT5bhHVIVrCPSEreIisHdZGRRDbS%2BaP5FmWzvemjku6wZy803CBllpuLwx7Kp6zersjXWGxSNNAELvDTM%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/satisfaction_ratings", + "x-envoy-upstream-service-time": "56", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/satisfaction_ratings", + "x-rate-limit": "400", + "x-rate-limit-remaining": "388", + "x-request-id": "a495f07d78dbc87d-DUB", + "x-request-validation": "matched", + "x-runtime": "0.051368", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-xbd9f", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/group_memberships?page%5Bsize%5D=100\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/group_memberships?page%5Bsize%5D=100", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"group_memberships\":[{\"created_at\":\"2026-10-08T21:13:25Z\",\"default\":true,\"group_id\":39771663256989,\"id\":39771663261213,\"updated_at\":\"2026-10-08T21:13:25Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/group_memberships/39771663261213.json\",\"user_id\":39771704393373},{\"created_at\":\"2026-10-12T11:34:51Z\",\"default\":false,\"group_id\":39845169086621,\"id\":39845182118045,\"updated_at\":\"2026-10-12T11:34:51Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/group_memberships/39845182118045.json\",\"user_id\":39771704393373}],\"links\":{\"next\":\"https://stealth-37618.zendesk.com/api/v2/group_memberships.json?page%5Bafter%5D=eyJvIjoiaWQiLCJ2IjoiYVowWTdTMDlKQUFBIn0%3D&page%5Bsize%5D=100\",\"prev\":\"https://stealth-37618.zendesk.com/api/v2/group_memberships.json?page%5Bbefore%5D=eyJvIjoiaWQiLCJ2IjoiYVIxZTNBOHNKQUFBIn0%3D&page%5Bsize%5D=100\"},\"meta\":{\"after_cursor\":\"eyJvIjoiaWQiLCJ2IjoiYVowWTdTMDlKQUFBIn0=\",\"before_cursor\":\"eyJvIjoiaWQiLCJ2IjoiYVIxZTNBOHNKQUFBIn0=\",\"has_more\":false}}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f07f2d08c87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:37 GMT", + "etag": "W/\"9d202eee57502b4b82ab6f05a74e395d\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "387", + "ratelimit-reset": "24", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=7FzkfvlHlO2DpY0IE2HpbTlBhRGnrYW8uBL6M4sDNNLDD1x9wjY1ynlX9aY9QcUkSrCh3x2hb%2F5H1bzxopmWmBwaIIf1h%2BmJ6%2Fcg8uY5Yn2mhnr1jtI%2FGEFVzGAjCiCJKlTlOIN7qCpayb0%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2", + "x-envoy-upstream-service-time": "59", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/group_memberships", + "x-rate-limit": "400", + "x-rate-limit-remaining": "387", + "x-request-id": "a495f07f2d08c87d-DUB", + "x-request-validation": "matched", + "x-runtime": "0.055244", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-s2m89", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/organization_memberships?page%5Bsize%5D=100\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/organization_memberships?page%5Bsize%5D=100", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"links\":{\"next\":\"https://stealth-37618.zendesk.com/api/v2/organization_memberships.json?page%5Bafter%5D=eyJvIjoiaWQiLCJ2IjoiYVoyRUhSd3NKQUFBIn0%3D&page%5Bsize%5D=100\",\"prev\":\"https://stealth-37618.zendesk.com/api/v2/organization_memberships.json?page%5Bbefore%5D=eyJvIjoiaWQiLCJ2IjoiYVoxZTNBOHNKQUFBIn0%3D&page%5Bsize%5D=100\"},\"meta\":{\"after_cursor\":\"eyJvIjoiaWQiLCJ2IjoiYVoyRUhSd3NKQUFBIn0=\",\"before_cursor\":\"eyJvIjoiaWQiLCJ2IjoiYVoxZTNBOHNKQUFBIn0=\",\"has_more\":false},\"organization_memberships\":[{\"created_at\":\"2026-10-08T21:13:25Z\",\"default\":true,\"id\":39771663261341,\"organization_id\":39771695451037,\"organization_name\":\"Stealth\",\"updated_at\":\"2026-10-08T21:13:25Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/organization_memberships/39771663261341.json\",\"user_id\":39771704393373,\"view_tickets\":true},{\"created_at\":\"2026-10-08T21:25:19Z\",\"default\":true,\"id\":39771868857501,\"organization_id\":39771868840349,\"organization_name\":\"Acme Test Co\",\"updated_at\":\"2026-10-08T21:25:19Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/organization_memberships/39771868857501.json\",\"user_id\":39771868857245,\"view_tickets\":false}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=60, private", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f080d9e2c87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:37 GMT", + "etag": "W/\"4b33b2a9c30e02489b3dfd1c238ca7f9\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "386", + "ratelimit-reset": "23", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=WrDbEDO6f2uWEOguZLKo%2F7cYn9kHIfnUiLswvcK9n0KySuq22Pavt4aQDsQ72%2BNsJWgkzpKlraU9XzwSIlGheQZOsaQkK3vfgMS%2BvOg9p4BlqGjbRw7IK3%2BEell2s8GKCR1AYBWKdt6xwBc%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/organization", + "x-envoy-upstream-service-time": "62", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/organization_memberships", + "x-rate-limit": "400", + "x-rate-limit-remaining": "386", + "x-request-id": "a495f080d9e2c87d-DUB", + "x-request-validation": "matched", + "x-runtime": "0.058866", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-d4vq7", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/user_fields?page%5Bsize%5D=100\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/user_fields?page%5Bsize%5D=100", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"links\":{\"next\":\"https://stealth-37618.zendesk.com/api/v2/user_fields.json?page%5Bafter%5D=eyJvIjoiLWlzX2FjdGl2ZSxwb3NpdGlvbixpZCIsInYiOiJkR2tBQUFBQUFBQUFBR2tkNFFvdlBTUUFBQT09In0%3D&page%5Bsize%5D=100\",\"prev\":\"https://stealth-37618.zendesk.com/api/v2/user_fields.json?page%5Bbefore%5D=eyJvIjoiLWlzX2FjdGl2ZSxwb3NpdGlvbixpZCIsInYiOiJkR2tBQUFBQUFBQUFBR2tkNFFvdlBTUUFBQT09In0%3D&page%5Bsize%5D=100\"},\"max_user_field_limit\":100,\"meta\":{\"after_cursor\":\"eyJvIjoiLWlzX2FjdGl2ZSxwb3NpdGlvbixpZCIsInYiOiJkR2tBQUFBQUFBQUFBR2tkNFFvdlBTUUFBQT09In0=\",\"before_cursor\":\"eyJvIjoiLWlzX2FjdGl2ZSxwb3NpdGlvbixpZCIsInYiOiJkR2tBQUFBQUFBQUFBR2tkNFFvdlBTUUFBQT09In0=\",\"has_more\":false},\"user_fields\":[{\"active\":true,\"created_at\":\"2026-10-12T11:34:49Z\",\"custom_field_options\":[{\"id\":39845168940573,\"name\":\"Free\",\"raw_name\":\"Free\",\"value\":\"free\"},{\"id\":39845168940701,\"name\":\"Pro\",\"raw_name\":\"Pro\",\"value\":\"pro\"}],\"description\":\"Plan tier\",\"id\":39845200847133,\"key\":\"plan_tier\",\"position\":0,\"raw_description\":\"Plan tier\",\"raw_title\":\"Plan tier\",\"regexp_for_validation\":null,\"system\":false,\"title\":\"Plan tier\",\"type\":\"dropdown\",\"updated_at\":\"2026-10-12T11:34:49Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/user_fields/39845200847133.json\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f0828df2c87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:37 GMT", + "etag": "W/\"27e6e0f2968624492b5f2483d79b9a56\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "385", + "ratelimit-reset": "23", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Mc%2FPq7p2%2FqsROqvFy0fuo5VRyy2eSCJtSjgn9G3JvOfzsyvLT19qh2KDkQQq3%2Bcg7jsWFurzYbno7OAioF4X9PnZgh21xovGlbVfV%2BXl9%2FCLlA487sCjj%2BT5OR3GmvFR38%2BYsUmbCGpUyic%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/user_fields", + "x-envoy-upstream-service-time": "67", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/user_fields", + "x-rate-limit": "400", + "x-rate-limit-remaining": "385", + "x-request-id": "a495f0828df2c87d-DUB", + "x-request-validation": "matched", + "x-runtime": "0.061517", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-xtn9m", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/organization_fields?page%5Bsize%5D=100\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/organization_fields?page%5Bsize%5D=100", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"links\":{\"next\":\"https://stealth-37618.zendesk.com/api/v2/organization_fields.json?page%5Bafter%5D=eyJvIjoiLWlzX2FjdGl2ZSxwb3NpdGlvbixpZCIsInYiOiJkR2tBQUFBQUFBQUFBR2tkT29rdVBTUUFBQT09In0%3D&page%5Bsize%5D=100\",\"prev\":\"https://stealth-37618.zendesk.com/api/v2/organization_fields.json?page%5Bbefore%5D=eyJvIjoiLWlzX2FjdGl2ZSxwb3NpdGlvbixpZCIsInYiOiJkR2tBQUFBQUFBQUFBR2tkT29rdVBTUUFBQT09In0%3D&page%5Bsize%5D=100\"},\"meta\":{\"after_cursor\":\"eyJvIjoiLWlzX2FjdGl2ZSxwb3NpdGlvbixpZCIsInYiOiJkR2tBQUFBQUFBQUFBR2tkT29rdVBTUUFBQT09In0=\",\"before_cursor\":\"eyJvIjoiLWlzX2FjdGl2ZSxwb3NpdGlvbixpZCIsInYiOiJkR2tBQUFBQUFBQUFBR2tkT29rdVBTUUFBQT09In0=\",\"has_more\":false},\"organization_fields\":[{\"active\":true,\"created_at\":\"2026-10-12T11:34:50Z\",\"description\":\"Account manager\",\"id\":39845192350237,\"key\":\"account_manager\",\"position\":0,\"raw_description\":\"Account manager\",\"raw_title\":\"Account manager\",\"regexp_for_validation\":null,\"system\":false,\"title\":\"Account manager\",\"type\":\"text\",\"updated_at\":\"2026-10-12T11:34:50Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/organization_fields/39845192350237.json\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f0843aa7c87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:37 GMT", + "etag": "W/\"ac29255aae93dbb02e0535fa93ae9737\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "384", + "ratelimit-reset": "23", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=utYwslriVCSb6k0Z0aTGDkMGBE7aqONUI728MXC3cxcv9iYH%2B6MwTi9qjlC4DyN5WUg6MgXxg%2B9KQqUXgRtaWWRYEewdTB8gSijkMWK72tReWBNHNcO3WNqG1jACu6EJwslOGHk%2FfzwpGZs%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/organization", + "x-envoy-upstream-service-time": "53", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/organization_fields", + "x-rate-limit": "400", + "x-rate-limit-remaining": "384", + "x-request-id": "a495f0843aa7c87d-DUB", + "x-request-validation": "matched", + "x-runtime": "0.050143", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-7p4n9", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/custom_roles\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/custom_roles", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"count\":4,\"custom_roles\":[{\"configuration\":{\"assign_agent_statuses\":false,\"assign_tickets_to_any_brand\":false,\"assign_tickets_to_any_group\":false,\"capacity_rules_access\":\"none\",\"change_management_access\":\"view\",\"chat_access\":false,\"custom_objects\":{},\"delete_brands\":false,\"end_user_list_access\":\"full\",\"end_user_profile_access\":\"readonly\",\"execute_it_asset_management_actions\":false,\"explore_access\":\"readonly\",\"explore_reports\":{\"brands_ticket_access\":\"all\",\"groups_ticket_access\":\"all\",\"ticket_access\":\"all\",\"ticket_access_selected_brands\":[],\"ticket_access_selected_groups\":[]},\"export_views\":false,\"forum_access\":\"readonly\",\"forum_access_restricted_content\":false,\"group_access\":false,\"it_asset_management_access\":\"view\",\"light_agent\":true,\"macro_access\":\"readonly\",\"manage_api_credentials\":false,\"manage_approval_requests\":false,\"manage_automations\":false,\"manage_brands\":\"none\",\"manage_change_management_configuration\":false,\"manage_deletion_schedules\":\"none\",\"manage_dynamic_content\":false,\"manage_end_user_settings\":false,\"manage_extensions_and_channels\":false,\"manage_facebook\":false,\"manage_group_memberships\":false,\"manage_groups\":false,\"manage_ip_bans\":\"none\",\"manage_it_asset_configuration\":false,\"manage_macro_content_suggestions\":false,\"manage_malicious_attachments\":false,\"manage_organization_fields\":false,\"manage_organizations\":false,\"manage_roles\":\"none\",\"manage_skills\":false,\"manage_slas\":false,\"manage_support_apps\":false,\"manage_suspended_tickets\":false,\"manage_team_members\":\"readonly\",\"manage_ticket_fields\":false,\"manage_ticket_forms\":false,\"manage_ticket_settings\":false,\"manage_triggers\":false,\"manage_user_fields\":false,\"manage_user_own_contacts\":false,\"manage_user_own_forwarding_numbers\":false,\"manage_user_own_photo\":false,\"moderate_forums\":false,\"modify_ai_agent_tickets\":false,\"modify_closed_tickets\":false,\"organization_editing\":false,\"organization_notes_editing\":false,\"read_macro_content_suggestions\":false,\"report_access\":\"readonly\",\"side_conversation_create\":true,\"takeover_ai_agent_tickets\":false,\"ticket_access\":\"within-groups\",\"ticket_comment_access\":\"none\",\"ticket_deletion\":false,\"ticket_editing\":false,\"ticket_merge\":false,\"ticket_redaction\":false,\"ticket_tag_editing\":false,\"twitter_search_access\":false,\"update_user_own_alias\":false,\"update_user_own_name\":false,\"update_user_own_signature\":false,\"use_conversational_assistance\":false,\"user_view_access\":\"none\",\"view_access\":\"readonly\",\"view_deleted_tickets\":false,\"view_filter_tickets\":true,\"view_reduced_count\":false,\"voice_access\":false,\"voice_dashboard_access\":false},\"created_at\":\"2026-10-08T21:13:21Z\",\"description\":\"Can view and add private comments to tickets\",\"id\":39771680140445,\"name\":\"Light agent\",\"role_type\":1,\"team_member_count\":0,\"updated_at\":\"2026-10-08T21:13:22Z\"},{\"configuration\":{\"assign_agent_statuses\":false,\"assign_tickets_to_any_brand\":false,\"assign_tickets_to_any_group\":false,\"capacity_rules_access\":\"none\",\"change_management_access\":\"view\",\"chat_access\":false,\"custom_objects\":{},\"delete_brands\":false,\"end_user_list_access\":\"none\",\"end_user_profile_access\":\"readonly\",\"execute_it_asset_management_actions\":false,\"explore_access\":\"none\",\"explore_reports\":{\"brands_ticket_access\":\"all\",\"groups_ticket_access\":\"all\",\"ticket_access\":\"all\",\"ticket_access_selected_brands\":[],\"ticket_access_selected_groups\":[]},\"export_views\":false,\"forum_access\":\"readonly\",\"forum_access_restricted_content\":false,\"group_access\":false,\"it_asset_management_access\":\"view\",\"light_agent\":false,\"macro_access\":\"readonly\",\"manage_api_credentials\":false,\"manage_approval_requests\":false,\"manage_automations\":false,\"manage_brands\":\"none\",\"manage_change_management_configuration\":false,\"manage_deletion_schedules\":\"none\",\"manage_dynamic_content\":false,\"manage_end_user_settings\":false,\"manage_extensions_and_channels\":false,\"manage_facebook\":false,\"manage_group_memberships\":false,\"manage_groups\":false,\"manage_ip_bans\":\"none\",\"manage_it_asset_configuration\":false,\"manage_macro_content_suggestions\":false,\"manage_malicious_attachments\":false,\"manage_organization_fields\":false,\"manage_organizations\":false,\"manage_roles\":\"none\",\"manage_skills\":false,\"manage_slas\":false,\"manage_support_apps\":false,\"manage_suspended_tickets\":false,\"manage_team_members\":\"none\",\"manage_ticket_fields\":false,\"manage_ticket_forms\":false,\"manage_ticket_settings\":false,\"manage_triggers\":false,\"manage_user_fields\":false,\"manage_user_own_contacts\":false,\"manage_user_own_forwarding_numbers\":false,\"manage_user_own_photo\":false,\"moderate_forums\":false,\"modify_ai_agent_tickets\":false,\"modify_closed_tickets\":false,\"organization_editing\":false,\"organization_notes_editing\":false,\"read_macro_content_suggestions\":false,\"report_access\":\"none\",\"side_conversation_create\":true,\"takeover_ai_agent_tickets\":false,\"ticket_access\":\"within-groups\",\"ticket_comment_access\":\"none\",\"ticket_deletion\":false,\"ticket_editing\":false,\"ticket_merge\":false,\"ticket_redaction\":false,\"ticket_tag_editing\":false,\"twitter_search_access\":false,\"update_user_own_alias\":false,\"update_user_own_name\":false,\"update_user_own_signature\":false,\"use_conversational_assistance\":false,\"user_view_access\":\"none\",\"view_access\":\"readonly\",\"view_deleted_tickets\":false,\"view_filter_tickets\":true,\"view_reduced_count\":false,\"voice_access\":false,\"voice_dashboard_access\":false},\"created_at\":\"2026-10-08T21:13:21Z\",\"description\":\"Can provide limited support\",\"id\":39771704488733,\"name\":\"Contributor\",\"role_type\":3,\"team_member_count\":0,\"updated_at\":\"2026-10-08T21:13:21Z\"},{\"configuration\":{\"assign_agent_statuses\":true,\"assign_tickets_to_any_brand\":true,\"assign_tickets_to_any_group\":true,\"capacity_rules_access\":\"all\",\"change_management_access\":\"full\",\"chat_access\":true,\"custom_objects\":{},\"delete_brands\":true,\"end_user_list_access\":\"full\",\"end_user_profile_access\":\"full\",\"execute_it_asset_management_actions\":true,\"explore_access\":\"full\",\"explore_reports\":{\"brands_ticket_access\":\"all\",\"groups_ticket_access\":\"all\",\"ticket_access\":\"all\",\"ticket_access_selected_brands\":[],\"ticket_access_selected_groups\":[]},\"export_views\":true,\"forum_access\":\"full\",\"forum_access_restricted_content\":false,\"group_access\":true,\"it_asset_management_access\":\"full\",\"light_agent\":false,\"macro_access\":\"full\",\"manage_api_credentials\":true,\"manage_approval_requests\":true,\"manage_automations\":true,\"manage_brands\":\"all\",\"manage_change_management_configuration\":true,\"manage_deletion_schedules\":\"all\",\"manage_dynamic_content\":true,\"manage_end_user_settings\":true,\"manage_extensions_and_channels\":true,\"manage_facebook\":true,\"manage_group_memberships\":true,\"manage_groups\":true,\"manage_ip_bans\":\"all\",\"manage_it_asset_configuration\":true,\"manage_macro_content_suggestions\":true,\"manage_malicious_attachments\":true,\"manage_organization_fields\":true,\"manage_organizations\":true,\"manage_roles\":\"all\",\"manage_skills\":true,\"manage_slas\":true,\"manage_support_apps\":true,\"manage_suspended_tickets\":true,\"manage_team_members\":\"all\",\"manage_ticket_fields\":true,\"manage_ticket_forms\":true,\"manage_ticket_settings\":true,\"manage_triggers\":true,\"manage_user_fields\":true,\"manage_user_own_contacts\":true,\"manage_user_own_forwarding_numbers\":true,\"manage_user_own_photo\":true,\"moderate_forums\":false,\"modify_ai_agent_tickets\":true,\"modify_closed_tickets\":true,\"organization_editing\":true,\"organization_notes_editing\":true,\"read_macro_content_suggestions\":true,\"report_access\":\"full\",\"side_conversation_create\":true,\"takeover_ai_agent_tickets\":true,\"ticket_access\":\"all\",\"ticket_comment_access\":\"public\",\"ticket_deletion\":true,\"ticket_editing\":true,\"ticket_merge\":true,\"ticket_redaction\":true,\"ticket_tag_editing\":true,\"twitter_search_access\":false,\"update_user_own_alias\":true,\"update_user_own_name\":true,\"update_user_own_signature\":true,\"use_conversational_assistance\":true,\"user_view_access\":\"full\",\"view_access\":\"full\",\"view_deleted_tickets\":true,\"view_filter_tickets\":true,\"view_reduced_count\":false,\"voice_access\":true,\"voice_dashboard_access\":true},\"created_at\":\"2026-10-08T21:13:22Z\",\"description\":\"Can manage all settings, including billing.\",\"id\":39771680156061,\"name\":\"Billing admin\",\"role_type\":5,\"team_member_count\":0,\"updated_at\":\"2026-10-08T21:13:22Z\"},{\"configuration\":{\"assign_agent_statuses\":true,\"assign_tickets_to_any_brand\":true,\"assign_tickets_to_any_group\":true,\"capacity_rules_access\":\"all\",\"change_management_access\":\"full\",\"chat_access\":true,\"custom_objects\":{},\"delete_brands\":true,\"end_user_list_access\":\"full\",\"end_user_profile_access\":\"full\",\"execute_it_asset_management_actions\":true,\"explore_access\":\"full\",\"explore_reports\":{\"brands_ticket_access\":\"all\",\"groups_ticket_access\":\"all\",\"ticket_access\":\"all\",\"ticket_access_selected_brands\":[],\"ticket_access_selected_groups\":[]},\"export_views\":true,\"forum_access\":\"full\",\"forum_access_restricted_content\":false,\"group_access\":true,\"it_asset_management_access\":\"full\",\"light_agent\":false,\"macro_access\":\"full\",\"manage_api_credentials\":true,\"manage_approval_requests\":true,\"manage_automations\":true,\"manage_brands\":\"all\",\"manage_change_management_configuration\":true,\"manage_deletion_schedules\":\"all\",\"manage_dynamic_content\":true,\"manage_end_user_settings\":true,\"manage_extensions_and_channels\":true,\"manage_facebook\":true,\"manage_group_memberships\":true,\"manage_groups\":true,\"manage_ip_bans\":\"all\",\"manage_it_asset_configuration\":true,\"manage_macro_content_suggestions\":true,\"manage_malicious_attachments\":true,\"manage_organization_fields\":true,\"manage_organizations\":true,\"manage_roles\":\"all\",\"manage_skills\":true,\"manage_slas\":true,\"manage_support_apps\":true,\"manage_suspended_tickets\":true,\"manage_team_members\":\"all\",\"manage_ticket_fields\":true,\"manage_ticket_forms\":true,\"manage_ticket_settings\":true,\"manage_triggers\":true,\"manage_user_fields\":true,\"manage_user_own_contacts\":true,\"manage_user_own_forwarding_numbers\":true,\"manage_user_own_photo\":true,\"moderate_forums\":false,\"modify_ai_agent_tickets\":true,\"modify_closed_tickets\":true,\"organization_editing\":true,\"organization_notes_editing\":true,\"read_macro_content_suggestions\":true,\"report_access\":\"full\",\"side_conversation_create\":true,\"takeover_ai_agent_tickets\":true,\"ticket_access\":\"all\",\"ticket_comment_access\":\"public\",\"ticket_deletion\":true,\"ticket_editing\":true,\"ticket_merge\":true,\"ticket_redaction\":true,\"ticket_tag_editing\":true,\"twitter_search_access\":false,\"update_user_own_alias\":true,\"update_user_own_name\":true,\"update_user_own_signature\":true,\"use_conversational_assistance\":true,\"user_view_access\":\"full\",\"view_access\":\"full\",\"view_deleted_tickets\":true,\"view_filter_tickets\":true,\"view_reduced_count\":false,\"voice_access\":true,\"voice_dashboard_access\":true},\"created_at\":\"2026-10-08T21:13:20Z\",\"description\":\"Can manage all settings, except billing\",\"id\":39771663123229,\"name\":\"Admin\",\"role_type\":4,\"team_member_count\":1,\"updated_at\":\"2026-10-08T21:13:20Z\"}],\"next_page\":null,\"previous_page\":null}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f085ef51c87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:38 GMT", + "etag": "W/\"fbdbdbd4810fe3f26058b4384b3ba850\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "383", + "ratelimit-reset": "22", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=icTkWGf%2FNDv11QyiG%2FKNBaivG0PON7zorqvhmOwupNKAbs7qe1fgMgSuDSXGtfnKgqliW4RUqj3pooDdhLzvtsMQM3QouMNUMBqGVThQ5pouPIrSSkrh0Q95iJBkQ5hXeNW6g5ktsSY8970%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/custom_roles", + "x-envoy-upstream-service-time": "141", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/custom_roles", + "x-rate-limit": "400", + "x-rate-limit-remaining": "383", + "x-request-id": "a495f085ef51c87d-BOM", + "x-request-validation": "matched", + "x-runtime": "0.135623", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-dl487", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/slas/policies\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/slas/policies", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"count\":1,\"next_page\":null,\"previous_page\":null,\"sla_policies\":[{\"created_at\":\"2026-10-08T21:13:26Z\",\"description\":null,\"filter\":{\"all\":[],\"any\":[]},\"id\":39771709039517,\"metric_settings\":null,\"policy_metrics\":[{\"business_hours\":false,\"metric\":\"first_reply_time\",\"priority\":\"normal\",\"target\":60,\"target_in_seconds\":3600}],\"position\":1,\"title\":\"Set first reply time\",\"updated_at\":\"2026-10-08T21:13:27Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/slas/policies/39771709039517.json\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f087fcadc87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:38 GMT", + "etag": "W/\"da87eddffc67dcfc27ecb03b26714f6e\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "382", + "ratelimit-reset": "22", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=AEDFzOnOLu9hzsYzLT0OI9FEN9L%2B6Mpx3r6bj4HbkHrxBJ6%2FPN5idsVD0jRcz90vY2XAUtwa9NqwitRtmqNtqz17VAVgq02%2FZfQZI5LyElhEKNg3b1myaQ%2Bd9JPh%2FAcprmbyno%2FI1aqFzNU%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2", + "x-envoy-upstream-service-time": "70", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/slas/policies", + "x-rate-limit": "400", + "x-rate-limit-remaining": "382", + "x-request-id": "a495f087fcadc87d-DUB", + "x-request-validation": "matched", + "x-runtime": "0.065878", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-7smbf", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/business_hours/schedules\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/business_hours/schedules", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"schedules\":[{\"created_at\":\"2026-10-12T11:34:50Z\",\"id\":39845184819485,\"intervals\":[{\"end_time\":2460,\"start_time\":1980},{\"end_time\":3900,\"start_time\":3420},{\"end_time\":5340,\"start_time\":4860},{\"end_time\":6780,\"start_time\":6300},{\"end_time\":8220,\"start_time\":7740}],\"name\":\"Support hours\",\"time_zone\":\"Eastern Time (US & Canada)\",\"updated_at\":\"2026-10-12T11:34:50Z\"}],\"url\":\"https://stealth-37618.zendesk.com/api/v2/business_hours/schedules\"}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f089987ac87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:38 GMT", + "etag": "W/\"284ddcebb963569915bfa2d2a2799fc3\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "381", + "ratelimit-reset": "22", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=hWyFn1OWvXurava5r3PCZDsg7pG8xtu9lO0zf6unB50mBgDL6yHnuy1BDAcCR1EwMohr%2FBfOSKuggRoSU8hpHFrOj04qZmVQBYgNIi6R29TlkGsUosRPgXoMRs8%2FH8W7B9UnKdAVNurQMOg%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2", + "x-envoy-upstream-service-time": "50", + "x-frame-options": "SAMEORIGIN", + "x-rate-limit": "400", + "x-rate-limit-remaining": "381", + "x-request-id": "a495f089987ac87d-DUB", + "x-runtime": "0.047076", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-t4gkb", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/business_hours/schedules/39845184819485/holidays\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/business_hours/schedules/39845184819485/holidays", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"holidays\":[{\"end_date\":\"2027-01-01\",\"id\":39845184847389,\"name\":\"New Year\",\"start_date\":\"2027-01-01\"}],\"url\":\"https://stealth-37618.zendesk.com/api/v2/business_hours/schedules/39845184819485/holidays\"}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f08b3d0dc87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:39 GMT", + "etag": "W/\"637308bc62a2a3db7310fb6070dd1298\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "380", + "ratelimit-reset": "21", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=KZTxS5aeK%2BnLAU3GeuXPAO%2FViGqPnIYQwuwsx%2FHgdAVFROJ1M8vOBQKopwudeIZ%2Fh9XWjiMudnVPpmmWwwQHEyYrIcFAr0FmcmCPlqs9GKbNes8H5ZVwI64u3eLiiTWGDkzqnSwl9QyCxUE%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2", + "x-envoy-upstream-service-time": "158", + "x-frame-options": "SAMEORIGIN", + "x-rate-limit": "400", + "x-rate-limit-remaining": "380", + "x-request-id": "a495f08b3d0dc87d-DUB", + "x-runtime": "0.147439", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-pg5xv", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/macros?page%5Bsize%5D=100\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/macros?page%5Bsize%5D=100", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"links\":{\"next\":\"https://stealth-37618.zendesk.com/api/v2/macros?page%5Bafter%5D=eyJvIjoidGl0bGUsaWQiLCJ2IjoiY3hRQUFBQkViM2R1WjNKaFpHVWdZVzVrSUdsdVptOXliV2tkbXNjUkxDUUFBQT09In0%3D&page%5Bsize%5D=100\",\"prev\":\"https://stealth-37618.zendesk.com/api/v2/macros?page%5Bbefore%5D=eyJvIjoidGl0bGUsaWQiLCJ2IjoiY3hjQUFBQkRkWE4wYjIxbGNpQnViM1FnY21WemNHOXVaR2x1WjJtZG1zY1JMQ1FBQUE9PSJ9&page%5Bsize%5D=100\"},\"macros\":[{\"actions\":[{\"field\":\"status\",\"value\":\"pending\"},{\"field\":\"comment_value\",\"value\":\"Hello {{ticket.requester.name}}. Our agent {{current_user.name}} has tried to contact you about this request but we haven't heard back from you yet. Please let us know if we can be of further assistance. Thanks. \"}],\"active\":true,\"created_at\":\"2026-10-08T21:13:25Z\",\"default\":false,\"description\":null,\"id\":39771695454877,\"position\":9999,\"raw_title\":\"Customer not responding\",\"restriction\":null,\"title\":\"Customer not responding\",\"updated_at\":\"2026-10-08T21:13:25Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/macros/39771695454877.json\"},{\"actions\":[{\"field\":\"priority\",\"value\":\"low\"},{\"field\":\"comment_value\",\"value\":\"We're currently experiencing unusually high traffic. We'll get back to you as soon as possible.\"}],\"active\":true,\"created_at\":\"2026-10-08T21:13:25Z\",\"default\":false,\"description\":null,\"id\":39771695454749,\"position\":9999,\"raw_title\":\"Downgrade and inform\",\"restriction\":null,\"title\":\"Downgrade and inform\",\"updated_at\":\"2026-10-08T21:13:25Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/macros/39771695454749.json\"}],\"meta\":{\"after_cursor\":\"eyJvIjoidGl0bGUsaWQiLCJ2IjoiY3hRQUFBQkViM2R1WjNKaFpHVWdZVzVrSUdsdVptOXliV2tkbXNjUkxDUUFBQT09In0=\",\"before_cursor\":\"eyJvIjoidGl0bGUsaWQiLCJ2IjoiY3hjQUFBQkRkWE4wYjIxbGNpQnViM1FnY21WemNHOXVaR2x1WjJtZG1zY1JMQ1FBQUE9PSJ9\",\"has_more\":false}}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f08d7b02c87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:39 GMT", + "etag": "W/\"81da1940ddb1e0c2f514f0439e8204e0\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "379", + "ratelimit-reset": "21", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=EMrbZlHrpivFGw4gymWynMfXgLdTpBPcM6gHzWu%2BXkq3%2B%2BdM3nUPKQUCglPUm4CCrulnLsAwX58INheHsQXaxVNZVbZlLJ7w%2Fv0AXxqnHC6Ukujq8WKbujveEnUwnI78PV%2BXAjxDvQsqhBc%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept, Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/macros", + "x-envoy-upstream-service-time": "75", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/macros", + "x-rate-limit": "400", + "x-rate-limit-remaining": "379", + "x-request-id": "a495f08d7b02c87d-DUB", + "x-request-validation": "matched", + "x-runtime": "0.070807", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-4k5vz", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/incremental/articles?start_time=0&per_page=1\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/help_center/incremental/articles?start_time=0&per_page=1", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"articles\":[{\"author_id\":39771704393373,\"body\":\"We create furniture that mirrors the diversity and richness of the world. Our furniture represents a blend of cultures, techniques, and materials. Whether it’s the meticulous precision of Scandinavian design, the robust durability of American craftsmanship, or the elegant simplicity of Japanese aesthetics, each piece tells its own story. This is why we collaborate with skilled artisans and manufacturers, who each contribute their unique craftsmanship and expertise to our collections.

Our three best-selling collections are Minimalist Elegance, Urban Chic, and Zen Harmony.

Crafted in the heart of Denmark, a country renowned for its sleek, modern designs, Minimalist Elegance is the epitome for which Scandinavian design is known. Our team regularly visits to ensure functional simplicity that will work for homes around the world.

The Urban Chic line originates in the bustling factories of North Carolina in the U.S. The robust, practical designs are a testament to American craftsmanship. Regular visits to these factories allow our team to maintain a hands-on approach, so that every piece meets our high standards of quality and durability.

The Zen Harmony collection is crafted in Osaka, Japan. It reflects the simple, sophisticated grace that has brought fame to Japanese furniture. Our team’s regular visits to Osaka ensure this aesthetic in every item.

Although our production is a global endeavor, we remain committed to ensuring affordability. By offering direct-to-consumer payment plans, we make it easier for you to bring these world-class designs into your home.

\",\"comments_disabled\":false,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:22Z\",\"draft\":false,\"edited_at\":\"2026-10-08T21:14:22Z\",\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/articles/39771682143261-SAMPLE-ARTICLE-Made-with-care-around-the-world\",\"id\":39771682143261,\"label_names\":[],\"locale\":\"en-us\",\"name\":\"SAMPLE ARTICLE: Made with care around the world\",\"outdated\":false,\"outdated_locales\":[],\"permission_group_id\":39771696447005,\"position\":0,\"promoted\":true,\"section_id\":39771706390941,\"source_locale\":\"en-us\",\"title\":\"SAMPLE ARTICLE: Made with care around the world\",\"updated_at\":\"2026-10-08T21:14:22Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/articles/39771682143261.json\",\"user_segment_id\":null,\"vote_count\":0,\"vote_sum\":0}],\"count\":12,\"end_time\":1791494063,\"next_page\":\"https://stealth-37618.zendesk.com/hc/api/v2/incremental/articles.json?per_page=1&start_time=1791494063\"}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "BYPASS", + "cf-ray": "a495f08f2f2ac87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:39 GMT", + "etag": "W/\"5c86d7e05bc70a3e33866a2a020d9229\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "protocol": "HTTP/1.1 always", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Fp8pnjfn99h0OrBaLeaHC891%2F2Zx7NhdNV8wiDvyyTDIoMZ5OTiLuQddsTmozxmI%2B7DJxTL79IzT16AqmIm95vTy3ZVlHyH0KW%2FzmAqyZXWAwoHZ9I%2FiRl6jXvR%2BbwDmSM5jGzK5MyNHl54%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-envoy-decorator-operation": "/api/v2/help_center/incremental/articles", + "x-envoy-upstream-service-time": "82", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/help_center/incremental/articles", + "x-rate-limit": "400", + "x-rate-limit-remaining": "399", + "x-request-id": "a495f08f2f2ac87d-BOM", + "x-request-validation": "matched", + "x-runtime": "0.076488", + "x-ua-compatible": "IE=edge", + "x-zendesk-api-version": "v2", + "x-zendesk-origin-server": "app-server-847bdb54c6-4zbkk", + "x-zendesk-zorg": "yes", + "zendesk-service": "help-center" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/sections?page%5Bsize%5D=100\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/help_center/sections?page%5Bsize%5D=100", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"links\":{\"first\":\"https://stealth-37618.zendesk.com/api/v2/help_center/sections?page%5Bsize%5D=100\",\"last\":\"https://stealth-37618.zendesk.com/api/v2/help_center/sections?page%5Bbefore%5D=bGFzdF9wYWdl&page%5Bsize%5D=100\"},\"meta\":{\"after_cursor\":\"af//////////ZLcHyGoAAAAAaZ30chIsJAAA\",\"before_cursor\":\"afr/////////ZK0HyGoAAAAAaZ15bhIsJAAA\",\"has_more\":false},\"sections\":[{\"category_id\":39771696456093,\"created_at\":\"2026-10-08T21:14:21Z\",\"description\":null,\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/sections/39771706390941-About-our-products\",\"id\":39771706390941,\"locale\":\"en-us\",\"name\":\"About our products\",\"outdated\":false,\"parent_section_id\":null,\"position\":-6,\"sorting\":\"manual\",\"source_locale\":\"en-us\",\"theme_template\":\"section_page\",\"updated_at\":\"2026-10-08T21:14:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/sections/39771706390941.json\"},{\"category_id\":39771696456093,\"created_at\":\"2026-10-08T21:14:23Z\",\"description\":null,\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/sections/39771682204701-Order-status\",\"id\":39771682204701,\"locale\":\"en-us\",\"name\":\"Order status\",\"outdated\":false,\"parent_section_id\":null,\"position\":-5,\"sorting\":\"manual\",\"source_locale\":\"en-us\",\"theme_template\":\"section_page\",\"updated_at\":\"2026-10-08T21:14:25Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/sections/39771682204701.json\"},{\"category_id\":39771696456093,\"created_at\":\"2026-10-08T21:14:25Z\",\"description\":null,\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/sections/39771682270621-Delivery-and-shipping\",\"id\":39771682270621,\"locale\":\"en-us\",\"name\":\"Delivery and shipping\",\"outdated\":false,\"parent_section_id\":null,\"position\":-4,\"sorting\":\"manual\",\"source_locale\":\"en-us\",\"theme_template\":\"section_page\",\"updated_at\":\"2026-10-08T21:14:27Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/sections/39771682270621.json\"},{\"category_id\":39771696456093,\"created_at\":\"2026-10-08T21:14:27Z\",\"description\":null,\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/sections/39771720456349-Returns-and-exchanges\",\"id\":39771720456349,\"locale\":\"en-us\",\"name\":\"Returns and exchanges\",\"outdated\":false,\"parent_section_id\":null,\"position\":-3,\"sorting\":\"manual\",\"source_locale\":\"en-us\",\"theme_template\":\"section_page\",\"updated_at\":\"2026-10-08T21:14:28Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/sections/39771720456349.json\"},{\"category_id\":39771696456093,\"created_at\":\"2026-10-08T21:14:29Z\",\"description\":null,\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/sections/39771706638749-Payment-plans\",\"id\":39771706638749,\"locale\":\"en-us\",\"name\":\"Payment plans\",\"outdated\":false,\"parent_section_id\":null,\"position\":-2,\"sorting\":\"manual\",\"source_locale\":\"en-us\",\"theme_template\":\"section_page\",\"updated_at\":\"2026-10-08T21:14:30Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/sections/39771706638749.json\"},{\"category_id\":39771696456093,\"created_at\":\"2026-10-08T21:14:31Z\",\"description\":null,\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/sections/39771706684573-Gift-cards\",\"id\":39771706684573,\"locale\":\"en-us\",\"name\":\"Gift cards\",\"outdated\":false,\"parent_section_id\":null,\"position\":-1,\"sorting\":\"manual\",\"source_locale\":\"en-us\",\"theme_template\":\"section_page\",\"updated_at\":\"2026-10-08T21:14:32Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/sections/39771706684573.json\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "BYPASS", + "cf-ray": "a495f0912c3dc87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:39 GMT", + "etag": "W/\"e8b1b484c49dbff23a6721beab10ffde\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "protocol": "HTTP/1.1 always", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=50Uoy0fN58VEZCAZLl1kMXe%2FHCmWfsVO6tNDL4TlcQp1mrpDBPQ0nkqb4tnvL7iQ1RhY1ddyJizZDcFEqfCebzHUsRPzXZcA8%2BIH0llRImjwZBBAG%2FHi%2B55I6QhCFIPi3AVwttW%2FfJBEYJY%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-envoy-decorator-operation": "/api/v2/help_center/", + "x-envoy-upstream-service-time": "81", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/help_center/sections", + "x-rate-limit": "400", + "x-rate-limit-remaining": "398", + "x-request-id": "a495f0912c3dc87d-DUB", + "x-request-validation": "matched", + "x-runtime": "0.070260", + "x-ua-compatible": "IE=edge", + "x-zendesk-api-version": "v2", + "x-zendesk-origin-server": "app-server-847bdb54c6-gx8mv", + "x-zendesk-zorg": "yes", + "zendesk-service": "help-center" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/categories?page%5Bsize%5D=100\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/help_center/categories?page%5Bsize%5D=100", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"categories\":[{\"created_at\":\"2026-10-08T21:14:01Z\",\"description\":\"\",\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/categories/39771696456093-General\",\"id\":39771696456093,\"locale\":\"en-us\",\"name\":\"General\",\"outdated\":false,\"position\":0,\"source_locale\":\"en-us\",\"updated_at\":\"2026-10-08T21:14:32Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/categories/39771696456093.json\"}],\"links\":{\"first\":\"https://stealth-37618.zendesk.com/api/v2/help_center/categories?page%5Bsize%5D=100\",\"last\":\"https://stealth-37618.zendesk.com/api/v2/help_center/categories?page%5Bbefore%5D=bGFzdF9wYWdl&page%5Bsize%5D=100\"},\"meta\":{\"after_cursor\":\"aQAAAAAAAAAAZJkHyGoAAAAAaZ3h1hEsJAAA\",\"before_cursor\":\"aQAAAAAAAAAAZJkHyGoAAAAAaZ3h1hEsJAAA\",\"has_more\":false}}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "BYPASS", + "cf-ray": "a495f092f8a5c87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:40 GMT", + "etag": "W/\"a12d1e129a27da3bf4e8494eb1db8977\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "protocol": "HTTP/1.1 always", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=cXp2CvZSrdtIoXq0IMsF3dmTGSFVF0hzZKZEGYV9i2L822Fq9qWnml2bJJYFqKBp3JlszH3aglW64YvoYv8onOUYNNZV8664MG5zZDi0msFPDvvHdWJPYHZvqV%2BReAsGlcJrQrxbcKuD6MA%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-envoy-decorator-operation": "/api/v2/help_center/", + "x-envoy-upstream-service-time": "38", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/help_center/categories", + "x-rate-limit": "400", + "x-rate-limit-remaining": "397", + "x-request-id": "a495f092f8a5c87d-DUB", + "x-request-validation": "matched", + "x-runtime": "0.033946", + "x-ua-compatible": "IE=edge", + "x-zendesk-api-version": "v2", + "x-zendesk-origin-server": "app-server-847bdb54c6-8lzdv", + "x-zendesk-zorg": "yes", + "zendesk-service": "help-center" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/community/posts?page%5Bsize%5D=100\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/community/posts?page%5Bsize%5D=100", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"links\":{\"first\":\"https://stealth-37618.zendesk.com/api/v2/help_center/community/posts?page%5Bsize%5D=100\",\"last\":\"https://stealth-37618.zendesk.com/api/v2/help_center/community/posts?page%5Bbefore%5D=bGFzdF9wYWdl&page%5Bsize%5D=100\"},\"meta\":{\"after_cursor\":\"ZJgHyGoAAAAAaZ3J1hEsJAAA\",\"before_cursor\":\"ZJkHyGoAAAAAaR3T1hEsJAAA\",\"has_more\":false},\"posts\":[{\"author_id\":39771704393373,\"closed\":false,\"comment_count\":0,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:01Z\",\"details\":\"

You can add a topic like this one in your community. End users can add feature requests and describe their use cases. Other users can comment on the requests and vote for them. Product managers can review feature requests and provide feedback.

\",\"featured\":false,\"follower_count\":0,\"frozen\":false,\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/community/posts/39771696452381-I-d-like-a-way-for-users-to-submit-feature-requests\",\"id\":39771696452381,\"non_author_editor_id\":null,\"non_author_updated_at\":null,\"pinned\":false,\"status\":\"none\",\"title\":\"I'd like a way for users to submit feature requests\",\"topic_id\":39771664159005,\"updated_at\":\"2026-10-08T21:14:01Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/community/posts/39771696452381-I-d-like-a-way-for-users-to-submit-feature-requests.json\",\"vote_count\":0,\"vote_sum\":0},{\"author_id\":39771704393373,\"closed\":false,\"comment_count\":0,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:00Z\",\"details\":\"

That depends. If you support several products, you might add a topic for each product. If you have one big product, you might add a topic for each major feature area or task. If you have different types of users (for example, end users and API developers), you might add a topic or topics for each type of user.

A General Discussion topic is a place for users to discuss issues that don't quite fit in the other topics. You could monitor this topic for emerging issues that might need their own topics.

\\n\\n
\",\"featured\":false,\"follower_count\":0,\"frozen\":false,\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/community/posts/39771664152477-Which-topics-should-I-add-to-my-community\",\"id\":39771664152477,\"non_author_editor_id\":null,\"non_author_updated_at\":null,\"pinned\":false,\"status\":\"none\",\"title\":\"Which topics should I add to my community?\",\"topic_id\":39771696447517,\"updated_at\":\"2026-10-08T21:14:00Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/community/posts/39771664152477-Which-topics-should-I-add-to-my-community.json\",\"vote_count\":0,\"vote_sum\":0},{\"author_id\":39771704393373,\"closed\":false,\"comment_count\":0,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:00Z\",\"details\":\"

The Help Center community consists of posts and comments organized by topic. Posts might include tips, feature requests, or questions. Comments might include observations, clarifications, praise, or any other response that's part of a typical community discussion. Note: Don't confuse topics with articles. In the community, topics are top-level containers for posts.

You can use search or you can browse the topics and posts using views and filters. See Getting around the community.

We created a few common topics as placeholders to help you get started. You can delete the topics and add your own. To learn how, see Managing community topics.

Each user in your community has a Help Center profile (Guide Professional and Enterprise), so your community members can get to know one another better. Profiles contain relevant information about the community member, along with their activities and contributions.

\",\"featured\":false,\"follower_count\":0,\"frozen\":false,\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/community/posts/39771696447901-What-is-the-community\",\"id\":39771696447901,\"non_author_editor_id\":null,\"non_author_updated_at\":null,\"pinned\":false,\"status\":\"none\",\"title\":\"What is the community?\",\"topic_id\":39771696447517,\"updated_at\":\"2026-10-08T21:14:00Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/community/posts/39771696447901-What-is-the-community.json\",\"vote_count\":0,\"vote_sum\":0},{\"author_id\":39771704393373,\"closed\":false,\"comment_count\":0,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:00Z\",\"details\":\"

You can use search to find answers. You can also browse topics and posts using views and filters. See Getting around the community.

\",\"featured\":false,\"follower_count\":0,\"frozen\":false,\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/community/posts/39771696449437-How-do-I-get-around-the-community\",\"id\":39771696449437,\"non_author_editor_id\":null,\"non_author_updated_at\":null,\"pinned\":false,\"status\":\"none\",\"title\":\"How do I get around the community?\",\"topic_id\":39771696447517,\"updated_at\":\"2026-10-08T21:14:00Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/community/posts/39771696449437-How-do-I-get-around-the-community.json\",\"vote_count\":0,\"vote_sum\":0},{\"author_id\":39771704393373,\"closed\":false,\"comment_count\":0,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:00Z\",\"details\":\"Community Managers and moderators can get traction for certain posts by featuring them in a topic in your Help Center community. Learn more\",\"featured\":true,\"follower_count\":0,\"frozen\":false,\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/community/posts/39771696449949-Feature-a-post\",\"id\":39771696449949,\"non_author_editor_id\":null,\"non_author_updated_at\":null,\"pinned\":false,\"status\":\"none\",\"title\":\"Feature a post\",\"topic_id\":39771696447517,\"updated_at\":\"2026-10-08T21:14:00Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/community/posts/39771696449949-Feature-a-post.json\",\"vote_count\":0,\"vote_sum\":0}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f0946c3ec87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:40 GMT", + "etag": "W/\"5424257b5ffe59a96200fa4acd5c6517\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=pgA9M5X7Kxq%2B3ZqPH41xq67dlWqXkE0Kuw2ksxKgao3t1XVAIcrl718sZoDSGXels0oV1ZFsTw4rhaJ%2FNnUs%2BnYQDDNFPyVbvL3bzPURSap%2BYPg1adm7agiq7BwHVKNP9qG1tOURliYWMlA%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-envoy-decorator-operation": "/api/v2/community/", + "x-envoy-upstream-service-time": "64", + "x-frame-options": "SAMEORIGIN", + "x-rate-limit": "400", + "x-rate-limit-remaining": "396", + "x-request-id": "a495f0946c3ec87d-DUB", + "x-runtime": "0.059908", + "x-ua-compatible": "IE=edge", + "x-zendesk-api-version": "v2", + "x-zendesk-origin-server": "app-server-847bdb54c6-d42cm", + "x-zendesk-processed-host-header": "stealth-37618.zendesk.com", + "x-zendesk-zorg": "yes", + "zendesk-service": "help-center" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/community/topics?page%5Bsize%5D=100\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/community/topics?page%5Bsize%5D=100", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"links\":{\"first\":\"https://stealth-37618.zendesk.com/api/v2/help_center/community/topics?page%5Bsize%5D=100\",\"last\":\"https://stealth-37618.zendesk.com/api/v2/help_center/community/topics?page%5Bbefore%5D=bGFzdF9wYWdl&page%5Bsize%5D=100\"},\"meta\":{\"after_cursor\":\"ZJgHyGoAAAAAaR3A1hEsJAAA\",\"before_cursor\":\"ZJkHyGoAAAAAaR0R6g8sJAAA\",\"has_more\":false},\"topics\":[{\"community_id\":39771696447261,\"created_at\":\"2026-10-08T21:14:01Z\",\"description\":null,\"follower_count\":1,\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/community/topics/39771664159005-Feature-Requests\",\"id\":39771664159005,\"manageable_by\":\"managers\",\"name\":\"Feature Requests\",\"position\":0,\"updated_at\":\"2026-10-08T21:14:01Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/community/topics/39771664159005.json\",\"user_segment_id\":null},{\"community_id\":39771696447261,\"created_at\":\"2026-10-08T21:14:00Z\",\"description\":null,\"follower_count\":1,\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/community/topics/39771696447517-General-Discussion\",\"id\":39771696447517,\"manageable_by\":\"managers\",\"name\":\"General Discussion\",\"position\":0,\"updated_at\":\"2026-10-08T21:14:00Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/community/topics/39771696447517.json\",\"user_segment_id\":null}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f096184cc87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:40 GMT", + "etag": "W/\"8fa92ae410e0e936164ced07fbfda910\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=U6EL6arVx%2Fy5ImCktC%2Bp3his%2BvrmwCtc2guFzW%2Fc%2BCDE6IefDqZnVtNrv05%2B9AerNHgF4Tj%2FGS2q%2BwBKlyjaQmJl3FZLR61QdITEb2%2FmtKhQUPvmRJ%2FBbZVFNs%2B7B2pZPbiKyzX6UfmP7DA%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-envoy-decorator-operation": "/api/v2/community/", + "x-envoy-upstream-service-time": "87", + "x-frame-options": "SAMEORIGIN", + "x-rate-limit": "400", + "x-rate-limit-remaining": "395", + "x-request-id": "a495f096184cc87d-DUB", + "x-runtime": "0.083448", + "x-ua-compatible": "IE=edge", + "x-zendesk-api-version": "v2", + "x-zendesk-origin-server": "app-server-847bdb54c6-bnlr7", + "x-zendesk-processed-host-header": "stealth-37618.zendesk.com", + "x-zendesk-zorg": "yes", + "zendesk-service": "help-center" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/channels/voice/lines\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/channels/voice/lines", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"count\":2,\"lines\":[{\"ai_agent_enabled\":false,\"bot_id\":null,\"brand_id\":39771695429277,\"call_recording_consent\":\"always\",\"categorised_greetings_with_sub_settings\":{\"1\":{\"voicemail_off_inside_business_hours\":\"voicemail_en_voicemail_config\",\"voicemail_off_outside_business_hours\":\"voicemail_en_voicemail_config\",\"voicemail_on_inside_business_hours\":\"voicemail_en\",\"voicemail_on_outside_business_hours\":\"voicemail_en\"},\"2\":{\"voicemail_off\":\"available_en_digital_lines\",\"voicemail_on\":\"available_en_digital_lines\"},\"3\":\"wait_en\",\"4\":\"hold_en\",\"6\":\"callback_en\",\"7\":\"callback-confirmation_en\",\"8\":\"call-recording-opt-out_en\",\"9\":\"call-recording-opt-in_en\"},\"created_at\":\"2026-10-08T21:13:42Z\",\"default_greeting_ids\":[\"voicemail_en\",\"available_en_digital_lines\",\"wait_en\",\"hold_en\",\"callback_en\",\"callback-confirmation_en\",\"call-recording-opt-out_en\",\"call-recording-opt-in_en\"],\"default_group_id\":39771663256989,\"greeting_ids\":[],\"group_ids\":[39771663256989],\"id\":39771663720349,\"line_id\":\"f1cca1dbb9becb9b95eed6e117575ae3\",\"line_type\":\"digital\",\"nickname\":\"Stealth digital line\",\"outbound_number\":null,\"priority\":0,\"recorded\":true,\"schedule_id\":null,\"transcription\":false},{\"ai_agent_enabled\":false,\"bot_id\":null,\"call_recording_consent\":\"always\",\"capabilities\":{\"emergency_address\":true,\"mms\":true,\"sms\":true,\"voice\":true},\"categorised_greetings\":{\"1\":\"voicemail_en\",\"2\":\"available_en\",\"3\":\"wait_en\",\"4\":\"hold_en\",\"6\":\"callback_en\",\"7\":\"callback-confirmation_en\",\"8\":\"call-recording-opt-out_en\",\"9\":\"call-recording-opt-in_en\"},\"categorised_greetings_with_sub_settings\":{\"1\":{\"voicemail_off_inside_business_hours\":\"voicemail_en_voicemail_config\",\"voicemail_off_outside_business_hours\":\"voicemail_en_voicemail_config\",\"voicemail_on_inside_business_hours\":\"voicemail_en\",\"voicemail_on_outside_business_hours\":\"voicemail_en\"},\"2\":{\"voicemail_off\":\"available_en_voicemail_config\",\"voicemail_on\":\"available_en\"},\"3\":\"wait_en\",\"4\":\"hold_en\",\"6\":\"callback_en\",\"7\":\"callback-confirmation_en\",\"8\":\"call-recording-opt-out_en\",\"9\":\"call-recording-opt-in_en\"},\"country_code\":\"US\",\"created_at\":\"2026-10-08T21:13:37Z\",\"default_greeting_ids\":[\"voicemail_en\",\"available_en\",\"wait_en\",\"hold_en\",\"callback_en\",\"callback-confirmation_en\",\"call-recording-opt-out_en\",\"call-recording-opt-in_en\"],\"default_group_id\":39771663256989,\"display_number\":\"+1 (845) 280-5976\",\"external\":false,\"failover_number\":null,\"greeting_ids\":[],\"group_ids\":[39771663256989],\"id\":39771705058077,\"ivr_id\":null,\"line_type\":\"phone\",\"location\":null,\"name\":\"+1 (845) 280-5976\",\"nickname\":null,\"number\":\"+18452805976\",\"outbound_enabled\":true,\"priority\":0,\"recorded\":true,\"schedule_id\":null,\"sms_enabled\":false,\"sms_group_id\":null,\"toll_free\":false,\"transcription\":true,\"voice_enabled\":true}],\"next_page\":null,\"previous_page\":null}", + "headers": { + "access-control-allow-credentials": "true", + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=5, private", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f097dc92c87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-security-policy-report-only": "base-uri 'self'; script-src 'self' https: *.zende.sk *.zendesk.com 'unsafe-eval' 'report-sample' *.googletagmanager.com tagmanager.google.com *.zdassets.com static.zdassets.com 'nonce-QBA5BfWeyhGgyJhbKLHs0A=='; img-src 'self' https: *.zende.sk *.zendesk.com data: blob: *.zdusercontent.com *.apps.zdusercontent.com *.google-analytics.com *.googletagmanager.com ssl.gstatic.com *.gstatic.com *.zdassets.com *.g.doubleclick.net; font-src 'self' https: *.zende.sk *.zendesk.com data: fonts.gstatic.com *.typekit.net *.googleusercontent.com cdn.jsdelivr.net; media-src 'self' https: *.zende.sk *.zendesk.com blob: data:; worker-src 'self' https: *.zende.sk *.zendesk.com blob:; connect-src 'self' https: *.zende.sk *.zendesk.com ws: wss: api.segment.io; child-src 'self' https: *.zende.sk *.zendesk.com; object-src 'self' https: *.zende.sk *.zendesk.com; report-uri https://o1025743.ingest.sentry.io/api/6184823/security/?sentry_key=ae07f3d3a6234881983f622e1cfc2fa9&sentry_environment=production", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:41 GMT", + "etag": "W/\"040c3a584addcbb5deac04cf8f84ae0e\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "pragma": "no-cache", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=blrwDjMUGdQr4%2FDayrS2%2BPiFJea9iRHonZGG8or7Ktd8weolyd5HrfGCfOw%2F0DsTClKCSiKA0rCsPXxv5bB97qh7jHuVVJVKGtY%2FzlEEkgV9VT%2BFFTmOqUi1PBeGfiukJ9Zb7TdKS4KEhv4%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-envoy-decorator-operation": "/api/v2/channels/voice", + "x-envoy-upstream-service-time": "346", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/channels/voice/lines", + "x-rate-limit": "700", + "x-rate-limit-remaining": "699", + "x-request-id": "a495f097dc92c87d-DUB", + "x-request-validation": "matched", + "x-runtime": "0.342968", + "x-zendesk-api-version": "v2", + "x-zendesk-origin-server": "voice-app-server-65f747db8d-5mmhm", + "x-zendesk-zorg": "yes", + "zendesk-service": "voice" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/tickets/cursor?include=metric_sets&start_time=0\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/tickets/cursor?include=metric_sets&start_time=0", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"after_cursor\":\"MTc5MTUzMjY2MC4wfHwyfA==\",\"after_url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/tickets/cursor.json?cursor=MTc5MTUzMjY2MC4wfHwyfA%3D%3D&include=metric_sets\",\"before_cursor\":null,\"before_url\":null,\"end_of_stream\":true,\"metric_sets\":[{\"agent_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"assigned_at\":\"2026-10-08T21:14:17Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-08T21:14:17Z\",\"created_at\":\"2026-10-08T21:14:17Z\",\"custom_status_updated_at\":\"2026-10-08T21:14:17Z\",\"first_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"full_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"group_stations\":1,\"id\":39771696929565,\"initially_assigned_at\":\"2026-10-08T21:14:17Z\",\"latest_comment_added_at\":\"2026-10-08T21:14:17Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":0,\"reply_time_in_minutes\":{\"business\":null,\"calendar\":null},\"requester_updated_at\":\"2026-10-08T21:14:17Z\",\"requester_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"solved_at\":null,\"status_updated_at\":\"2026-10-08T21:14:17Z\",\"ticket_id\":1,\"updated_at\":\"2026-10-08T21:14:17Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771696929565.json\"},{\"agent_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"assigned_at\":\"2026-10-08T21:25:23Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T05:52:57Z\",\"created_at\":\"2026-10-08T21:25:23Z\",\"custom_status_updated_at\":\"2026-10-08T21:25:23Z\",\"first_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"full_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"group_stations\":1,\"id\":39771837289885,\"initially_assigned_at\":\"2026-10-08T21:25:23Z\",\"latest_comment_added_at\":\"2026-10-08T21:25:23Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":0,\"reply_time_in_minutes\":{\"business\":null,\"calendar\":null},\"requester_updated_at\":\"2026-10-08T21:25:23Z\",\"requester_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"solved_at\":null,\"status_updated_at\":\"2026-10-09T05:52:57Z\",\"ticket_id\":4,\"updated_at\":\"2026-10-08T21:25:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771837289885.json\"},{\"agent_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"assigned_at\":\"2026-10-08T21:25:23Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T05:52:58Z\",\"created_at\":\"2026-10-08T21:25:23Z\",\"custom_status_updated_at\":\"2026-10-08T21:25:23Z\",\"first_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"full_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"group_stations\":1,\"id\":39771807809053,\"initially_assigned_at\":\"2026-10-08T21:25:23Z\",\"latest_comment_added_at\":\"2026-10-08T21:25:23Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":0,\"reply_time_in_minutes\":{\"business\":null,\"calendar\":null},\"requester_updated_at\":\"2026-10-08T21:25:23Z\",\"requester_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"solved_at\":null,\"status_updated_at\":\"2026-10-09T05:52:58Z\",\"ticket_id\":5,\"updated_at\":\"2026-10-08T21:25:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771807809053.json\"},{\"agent_wait_time_in_minutes\":{\"business\":0,\"calendar\":0},\"assigned_at\":\"2026-10-09T05:52:56Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T06:18:01Z\",\"created_at\":\"2026-10-09T05:52:57Z\",\"custom_status_updated_at\":\"2026-10-09T06:18:01Z\",\"first_resolution_time_in_minutes\":{\"business\":25,\"calendar\":25},\"full_resolution_time_in_minutes\":{\"business\":25,\"calendar\":25},\"group_stations\":1,\"id\":39776711147677,\"initially_assigned_at\":\"2026-10-09T05:52:56Z\",\"latest_comment_added_at\":\"2026-10-09T06:18:01Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":1,\"reply_time_in_minutes\":{\"business\":25,\"calendar\":25},\"requester_updated_at\":\"2026-10-09T05:52:56Z\",\"requester_wait_time_in_minutes\":{\"business\":25,\"calendar\":25},\"solved_at\":\"2026-10-09T06:18:01Z\",\"status_updated_at\":\"2026-10-09T06:18:01Z\",\"ticket_id\":6,\"updated_at\":\"2026-10-09T06:18:02Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39776711147677.json\"},{\"agent_wait_time_in_minutes\":{\"business\":0,\"calendar\":0},\"assigned_at\":\"2026-10-08T21:25:22Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T06:21:57Z\",\"created_at\":\"2026-10-08T21:25:22Z\",\"custom_status_updated_at\":\"2026-10-09T06:21:57Z\",\"first_resolution_time_in_minutes\":{\"business\":537,\"calendar\":537},\"full_resolution_time_in_minutes\":{\"business\":537,\"calendar\":537},\"group_stations\":1,\"id\":39771850872861,\"initially_assigned_at\":\"2026-10-08T21:25:22Z\",\"latest_comment_added_at\":\"2026-10-08T21:25:28Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":1,\"reply_time_in_minutes\":{\"business\":0,\"calendar\":0},\"requester_updated_at\":\"2026-10-08T21:25:22Z\",\"requester_wait_time_in_minutes\":{\"business\":537,\"calendar\":537},\"solved_at\":\"2026-10-09T06:21:57Z\",\"status_updated_at\":\"2026-10-09T06:21:57Z\",\"ticket_id\":3,\"updated_at\":\"2026-10-09T06:21:57Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771850872861.json\"},{\"agent_wait_time_in_minutes\":{\"business\":0,\"calendar\":0},\"assigned_at\":\"2026-10-08T21:25:21Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T07:57:21Z\",\"created_at\":\"2026-10-08T21:25:21Z\",\"custom_status_updated_at\":\"2026-10-09T06:19:07Z\",\"first_resolution_time_in_minutes\":{\"business\":0,\"calendar\":0},\"full_resolution_time_in_minutes\":{\"business\":534,\"calendar\":534},\"group_stations\":1,\"id\":39771850851357,\"initially_assigned_at\":\"2026-10-08T21:25:21Z\",\"latest_comment_added_at\":\"2026-10-09T07:57:17Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":1,\"replies\":4,\"reply_time_in_minutes\":{\"business\":0,\"calendar\":0},\"requester_updated_at\":\"2026-10-08T21:25:21Z\",\"requester_wait_time_in_minutes\":{\"business\":26,\"calendar\":26},\"solved_at\":\"2026-10-09T06:19:07Z\",\"status_updated_at\":\"2026-10-09T06:19:07Z\",\"ticket_id\":2,\"updated_at\":\"2026-10-09T07:57:17Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771850851357.json\"}],\"tickets\":[{\"allow_attachments\":true,\"allow_channelback\":false,\"assignee_id\":39771704393373,\"brand_id\":39771695429277,\"collaborator_ids\":[],\"created_at\":\"2026-10-08T21:14:17Z\",\"custom_fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__software__login_issues__cant_login\"},{\"id\":39771680545309,\"value\":\"topic_confidence__high\"},{\"id\":39771680548637,\"value\":\"sentiment__negative\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"custom_status_id\":39771695441053,\"description\":\"Hi, I reset my password earlier today, but I’m still not able to log in. I keep getting an error message when I try, and I’ve already attempted it a couple of times. Could someone please take a look? I need to get into my account as soon as possible.\",\"due_at\":null,\"email_cc_ids\":[],\"encoded_id\":\"LMNP2J-W5D43\",\"external_id\":null,\"fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__software__login_issues__cant_login\"},{\"id\":39771680545309,\"value\":\"topic_confidence__high\"},{\"id\":39771680548637,\"value\":\"sentiment__negative\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"follower_ids\":[],\"followup_ids\":[],\"forum_topic_id\":null,\"from_messaging_channel\":false,\"generated_timestamp\":1791494060,\"group_id\":39771663256989,\"has_incidents\":false,\"id\":1,\"is_public\":true,\"metric_set\":{\"agent_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"assigned_at\":\"2026-10-08T21:14:17Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-08T21:14:17Z\",\"created_at\":\"2026-10-08T21:14:17Z\",\"custom_status_updated_at\":\"2026-10-08T21:14:17Z\",\"first_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"full_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"group_stations\":1,\"id\":39771696929565,\"initially_assigned_at\":\"2026-10-08T21:14:17Z\",\"latest_comment_added_at\":\"2026-10-08T21:14:17Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":0,\"reply_time_in_minutes\":{\"business\":null,\"calendar\":null},\"requester_updated_at\":\"2026-10-08T21:14:17Z\",\"requester_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"solved_at\":null,\"status_updated_at\":\"2026-10-08T21:14:17Z\",\"ticket_id\":1,\"updated_at\":\"2026-10-08T21:14:17Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771696929565.json\"},\"organization_id\":null,\"priority\":\"normal\",\"problem_id\":null,\"raw_subject\":\"SAMPLE: Unable to log in after password reset\",\"recipient\":null,\"requester_id\":39771664570525,\"satisfaction_rating\":{\"score\":\"unoffered\"},\"sharing_agreement_ids\":[],\"status\":\"open\",\"subject\":\"SAMPLE: Unable to log in after password reset\",\"submitter_id\":39771664570525,\"support_type\":\"agent\",\"tags\":[\"zendesk_accelerated_setup\"],\"ticket_form_id\":39771663206685,\"type\":null,\"updated_at\":\"2026-10-08T21:14:20Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/tickets/1.json\",\"via\":{\"channel\":\"email\",\"source\":{\"from\":{\"address\":\"example@zendesk.com\",\"name\":\"Customer\"},\"rel\":null,\"to\":{\"name\":\"Stealth\"}}}},{\"allow_attachments\":true,\"allow_channelback\":false,\"assignee_id\":39771704393373,\"brand_id\":39771695429277,\"collaborator_ids\":[],\"created_at\":\"2026-10-08T21:25:23Z\",\"custom_fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__account__data_restrictions__delete_data\"},{\"id\":39771680545309,\"value\":\"topic_confidence__low\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"custom_status_id\":39771695441053,\"description\":\"Delete then restore - first message\",\"due_at\":null,\"email_cc_ids\":[],\"encoded_id\":\"40JXYX-EDD34\",\"external_id\":null,\"fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__account__data_restrictions__delete_data\"},{\"id\":39771680545309,\"value\":\"topic_confidence__low\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"follower_ids\":[],\"followup_ids\":[],\"forum_topic_id\":null,\"from_messaging_channel\":false,\"generated_timestamp\":1791525177,\"group_id\":39771663256989,\"has_incidents\":false,\"id\":4,\"is_public\":true,\"metric_set\":{\"agent_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"assigned_at\":\"2026-10-08T21:25:23Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T05:52:57Z\",\"created_at\":\"2026-10-08T21:25:23Z\",\"custom_status_updated_at\":\"2026-10-08T21:25:23Z\",\"first_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"full_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"group_stations\":1,\"id\":39771837289885,\"initially_assigned_at\":\"2026-10-08T21:25:23Z\",\"latest_comment_added_at\":\"2026-10-08T21:25:23Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":0,\"reply_time_in_minutes\":{\"business\":null,\"calendar\":null},\"requester_updated_at\":\"2026-10-08T21:25:23Z\",\"requester_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"solved_at\":null,\"status_updated_at\":\"2026-10-09T05:52:57Z\",\"ticket_id\":4,\"updated_at\":\"2026-10-08T21:25:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771837289885.json\"},\"organization_id\":null,\"priority\":\"normal\",\"problem_id\":null,\"raw_subject\":\"Delete then restore\",\"recipient\":null,\"requester_id\":39771807715229,\"satisfaction_rating\":{\"score\":\"unoffered\"},\"sharing_agreement_ids\":[],\"status\":\"deleted\",\"subject\":\"Delete then restore\",\"submitter_id\":39771807715229,\"support_type\":\"agent\",\"tags\":[],\"ticket_form_id\":39771663206685,\"type\":null,\"updated_at\":\"2026-10-09T05:52:57Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/tickets/4.json\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}}},{\"allow_attachments\":true,\"allow_channelback\":false,\"assignee_id\":39771704393373,\"brand_id\":39771695429277,\"collaborator_ids\":[],\"created_at\":\"2026-10-08T21:25:23Z\",\"custom_fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__account__data_restrictions__delete_data\"},{\"id\":39771680545309,\"value\":\"topic_confidence__medium\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"custom_status_id\":39771695441053,\"description\":\"Delete for good - first message\",\"due_at\":null,\"email_cc_ids\":[],\"encoded_id\":\"GMXYL3-41EVZ\",\"external_id\":null,\"fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__account__data_restrictions__delete_data\"},{\"id\":39771680545309,\"value\":\"topic_confidence__medium\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"follower_ids\":[],\"followup_ids\":[],\"forum_topic_id\":null,\"from_messaging_channel\":false,\"generated_timestamp\":1791525179,\"group_id\":39771663256989,\"has_incidents\":false,\"id\":5,\"is_public\":true,\"metric_set\":{\"agent_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"assigned_at\":\"2026-10-08T21:25:23Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T05:52:58Z\",\"created_at\":\"2026-10-08T21:25:23Z\",\"custom_status_updated_at\":\"2026-10-08T21:25:23Z\",\"first_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"full_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"group_stations\":1,\"id\":39771807809053,\"initially_assigned_at\":\"2026-10-08T21:25:23Z\",\"latest_comment_added_at\":\"2026-10-08T21:25:23Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":0,\"reply_time_in_minutes\":{\"business\":null,\"calendar\":null},\"requester_updated_at\":\"2026-10-08T21:25:23Z\",\"requester_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"solved_at\":null,\"status_updated_at\":\"2026-10-09T05:52:58Z\",\"ticket_id\":5,\"updated_at\":\"2026-10-08T21:25:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771807809053.json\"},\"organization_id\":39771868840349,\"priority\":\"normal\",\"problem_id\":null,\"raw_subject\":\"Delete for good\",\"recipient\":null,\"requester_id\":39771868857245,\"satisfaction_rating\":{\"score\":\"unoffered\"},\"sharing_agreement_ids\":[],\"status\":\"open\",\"subject\":\"Delete for good\",\"submitter_id\":39771868857245,\"support_type\":\"agent\",\"tags\":[\"beta\",\"system_email_notification_failure\",\"vip\"],\"ticket_form_id\":39771663206685,\"type\":null,\"updated_at\":\"2026-10-09T05:52:58Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/tickets/5.json\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}}},{\"allow_attachments\":true,\"allow_channelback\":false,\"assignee_id\":39771704393373,\"brand_id\":39771695429277,\"collaborator_ids\":[],\"created_at\":\"2026-10-09T05:52:56Z\",\"custom_fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__order__new__place\"},{\"id\":39771680545309,\"value\":\"topic_confidence__low\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__nl\"},{\"id\":39771680552989,\"value\":\"language_confidence__low\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"custom_status_id\":39771663254173,\"description\":\"My phone is ▇▇▇▇▇▇▇▇\",\"due_at\":null,\"email_cc_ids\":[],\"encoded_id\":\"LMNDZ1-2W0NR\",\"external_id\":null,\"fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__order__new__place\"},{\"id\":39771680545309,\"value\":\"topic_confidence__low\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__nl\"},{\"id\":39771680552989,\"value\":\"language_confidence__low\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"follower_ids\":[],\"followup_ids\":[],\"forum_topic_id\":null,\"from_messaging_channel\":false,\"generated_timestamp\":1791526763,\"group_id\":39771663256989,\"has_incidents\":false,\"id\":6,\"is_public\":true,\"metric_set\":{\"agent_wait_time_in_minutes\":{\"business\":0,\"calendar\":0},\"assigned_at\":\"2026-10-09T05:52:56Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T06:18:01Z\",\"created_at\":\"2026-10-09T05:52:57Z\",\"custom_status_updated_at\":\"2026-10-09T06:18:01Z\",\"first_resolution_time_in_minutes\":{\"business\":25,\"calendar\":25},\"full_resolution_time_in_minutes\":{\"business\":25,\"calendar\":25},\"group_stations\":1,\"id\":39776711147677,\"initially_assigned_at\":\"2026-10-09T05:52:56Z\",\"latest_comment_added_at\":\"2026-10-09T06:18:01Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":1,\"reply_time_in_minutes\":{\"business\":25,\"calendar\":25},\"requester_updated_at\":\"2026-10-09T05:52:56Z\",\"requester_wait_time_in_minutes\":{\"business\":25,\"calendar\":25},\"solved_at\":\"2026-10-09T06:18:01Z\",\"status_updated_at\":\"2026-10-09T06:18:01Z\",\"ticket_id\":6,\"updated_at\":\"2026-10-09T06:18:02Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39776711147677.json\"},\"organization_id\":null,\"priority\":\"normal\",\"problem_id\":null,\"raw_subject\":\"E2E new ticket\",\"recipient\":null,\"requester_id\":39776679352733,\"satisfaction_rating\":{\"comment\":\"Took too long to get a reply.\",\"id\":39777203359517,\"reason\":null,\"reason_id\":null,\"score\":\"good\"},\"sharing_agreement_ids\":[],\"status\":\"solved\",\"subject\":\"E2E new ticket\",\"submitter_id\":39776679352733,\"support_type\":\"agent\",\"tags\":[\"e2e\",\"system_email_notification_failure\"],\"ticket_form_id\":39771663206685,\"type\":null,\"updated_at\":\"2026-10-09T06:19:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/tickets/6.json\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}}},{\"allow_attachments\":true,\"allow_channelback\":false,\"assignee_id\":39771704393373,\"brand_id\":39771695429277,\"collaborator_ids\":[],\"created_at\":\"2026-10-08T21:25:22Z\",\"custom_fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__order__not_delivered__late\"},{\"id\":39771680545309,\"value\":\"topic_confidence__medium\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"custom_status_id\":39771663254173,\"description\":\"Shipping delay - first message\",\"due_at\":null,\"email_cc_ids\":[],\"encoded_id\":\"40JXYK-LYV2Y\",\"external_id\":null,\"fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__order__not_delivered__late\"},{\"id\":39771680545309,\"value\":\"topic_confidence__medium\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"follower_ids\":[],\"followup_ids\":[],\"forum_topic_id\":null,\"from_messaging_channel\":false,\"generated_timestamp\":1791526948,\"group_id\":39771663256989,\"has_incidents\":false,\"id\":3,\"is_public\":true,\"metric_set\":{\"agent_wait_time_in_minutes\":{\"business\":0,\"calendar\":0},\"assigned_at\":\"2026-10-08T21:25:22Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T06:21:57Z\",\"created_at\":\"2026-10-08T21:25:22Z\",\"custom_status_updated_at\":\"2026-10-09T06:21:57Z\",\"first_resolution_time_in_minutes\":{\"business\":537,\"calendar\":537},\"full_resolution_time_in_minutes\":{\"business\":537,\"calendar\":537},\"group_stations\":1,\"id\":39771850872861,\"initially_assigned_at\":\"2026-10-08T21:25:22Z\",\"latest_comment_added_at\":\"2026-10-08T21:25:28Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":1,\"reply_time_in_minutes\":{\"business\":0,\"calendar\":0},\"requester_updated_at\":\"2026-10-08T21:25:22Z\",\"requester_wait_time_in_minutes\":{\"business\":537,\"calendar\":537},\"solved_at\":\"2026-10-09T06:21:57Z\",\"status_updated_at\":\"2026-10-09T06:21:57Z\",\"ticket_id\":3,\"updated_at\":\"2026-10-09T06:21:57Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771850872861.json\"},\"organization_id\":null,\"priority\":\"low\",\"problem_id\":null,\"raw_subject\":\"Shipping delay\",\"recipient\":null,\"requester_id\":39771850790941,\"satisfaction_rating\":{\"comment\":null,\"id\":39777235593245,\"reason\":\"The issue was not resolved\",\"reason_id\":39777235586589,\"score\":\"bad\"},\"sharing_agreement_ids\":[],\"status\":\"solved\",\"subject\":\"Shipping delay\",\"submitter_id\":39771850790941,\"support_type\":\"agent\",\"tags\":[\"system_email_notification_failure\"],\"ticket_form_id\":39771663206685,\"type\":null,\"updated_at\":\"2026-10-09T06:22:28Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/tickets/3.json\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}}},{\"allow_attachments\":true,\"allow_channelback\":false,\"assignee_id\":39771704393373,\"brand_id\":39771695429277,\"collaborator_ids\":[],\"created_at\":\"2026-10-08T21:25:21Z\",\"custom_fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__billing__invoice__request\"},{\"id\":39771680545309,\"value\":\"topic_confidence__medium\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"custom_status_id\":39771663254173,\"description\":\"Billing question - first message\",\"due_at\":null,\"email_cc_ids\":[],\"encoded_id\":\"GMXYL3-4331L\",\"external_id\":null,\"fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__billing__invoice__request\"},{\"id\":39771680545309,\"value\":\"topic_confidence__medium\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"follower_ids\":[],\"followup_ids\":[],\"forum_topic_id\":null,\"from_messaging_channel\":false,\"generated_timestamp\":1791532660,\"group_id\":39771663256989,\"has_incidents\":false,\"id\":2,\"is_public\":true,\"metric_set\":{\"agent_wait_time_in_minutes\":{\"business\":0,\"calendar\":0},\"assigned_at\":\"2026-10-08T21:25:21Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T07:57:21Z\",\"created_at\":\"2026-10-08T21:25:21Z\",\"custom_status_updated_at\":\"2026-10-09T06:19:07Z\",\"first_resolution_time_in_minutes\":{\"business\":0,\"calendar\":0},\"full_resolution_time_in_minutes\":{\"business\":534,\"calendar\":534},\"group_stations\":1,\"id\":39771850851357,\"initially_assigned_at\":\"2026-10-08T21:25:21Z\",\"latest_comment_added_at\":\"2026-10-09T07:57:17Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":1,\"replies\":4,\"reply_time_in_minutes\":{\"business\":0,\"calendar\":0},\"requester_updated_at\":\"2026-10-08T21:25:21Z\",\"requester_wait_time_in_minutes\":{\"business\":26,\"calendar\":26},\"solved_at\":\"2026-10-09T06:19:07Z\",\"status_updated_at\":\"2026-10-09T06:19:07Z\",\"ticket_id\":2,\"updated_at\":\"2026-10-09T07:57:17Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771850851357.json\"},\"organization_id\":39771868840349,\"priority\":\"urgent\",\"problem_id\":null,\"raw_subject\":\"Billing question\",\"recipient\":null,\"requester_id\":39771868857245,\"satisfaction_rating\":{\"score\":\"offered\"},\"sharing_agreement_ids\":[],\"status\":\"solved\",\"subject\":\"Billing question\",\"submitter_id\":39771868857245,\"support_type\":\"agent\",\"tags\":[\"beta\",\"billing\",\"system_email_notification_failure\",\"vip\"],\"ticket_form_id\":39771663206685,\"type\":\"question\",\"updated_at\":\"2026-10-09T07:57:21Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/tickets/2.json\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}}}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f0a09bb1c87d-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:42 GMT", + "etag": "W/\"61b94825ad1f9eb533f0371bc2d19295\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "378", + "ratelimit-reset": "18", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=uYy4dYVApsyQDJYgcfPJURRNdhyXTn1%2BXjmPXhdItVaV65Mj%2BETQuLcNb78zR8plVm4%2FRtFlGceW8ZBhyU0hfeLxIeJDxJIk4ApA1rdf0K9vIF721%2Ff%2FI67568jAYVupD6Z6ScPbo6x2wb0%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "189", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/tickets/cursor", + "x-rate-limit": "400", + "x-rate-limit-remaining": "378", + "x-request-id": "a495f0a09bb1c87d-DUB", + "x-request-validation": "matched", + "x-runtime": "0.185518", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-pktsb", + "x-zendesk-zorg": "yes", + "zendesk-ratelimit-incremental-exports": "total=10; remaining=5; resets=18", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/tickets/cursor?include=metric_sets&start_time=1791494340\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/tickets/cursor?include=metric_sets&start_time=1791494340", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"after_cursor\":\"MTc5MTUzMjY2MC4wfHwyfA==\",\"after_url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/tickets/cursor.json?cursor=MTc5MTUzMjY2MC4wfHwyfA%3D%3D&include=metric_sets\",\"before_cursor\":null,\"before_url\":null,\"end_of_stream\":true,\"metric_sets\":[{\"agent_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"assigned_at\":\"2026-10-08T21:25:23Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T05:52:57Z\",\"created_at\":\"2026-10-08T21:25:23Z\",\"custom_status_updated_at\":\"2026-10-08T21:25:23Z\",\"first_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"full_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"group_stations\":1,\"id\":39771837289885,\"initially_assigned_at\":\"2026-10-08T21:25:23Z\",\"latest_comment_added_at\":\"2026-10-08T21:25:23Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":0,\"reply_time_in_minutes\":{\"business\":null,\"calendar\":null},\"requester_updated_at\":\"2026-10-08T21:25:23Z\",\"requester_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"solved_at\":null,\"status_updated_at\":\"2026-10-09T05:52:57Z\",\"ticket_id\":4,\"updated_at\":\"2026-10-08T21:25:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771837289885.json\"},{\"agent_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"assigned_at\":\"2026-10-08T21:25:23Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T05:52:58Z\",\"created_at\":\"2026-10-08T21:25:23Z\",\"custom_status_updated_at\":\"2026-10-08T21:25:23Z\",\"first_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"full_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"group_stations\":1,\"id\":39771807809053,\"initially_assigned_at\":\"2026-10-08T21:25:23Z\",\"latest_comment_added_at\":\"2026-10-08T21:25:23Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":0,\"reply_time_in_minutes\":{\"business\":null,\"calendar\":null},\"requester_updated_at\":\"2026-10-08T21:25:23Z\",\"requester_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"solved_at\":null,\"status_updated_at\":\"2026-10-09T05:52:58Z\",\"ticket_id\":5,\"updated_at\":\"2026-10-08T21:25:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771807809053.json\"},{\"agent_wait_time_in_minutes\":{\"business\":0,\"calendar\":0},\"assigned_at\":\"2026-10-09T05:52:56Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T06:18:01Z\",\"created_at\":\"2026-10-09T05:52:57Z\",\"custom_status_updated_at\":\"2026-10-09T06:18:01Z\",\"first_resolution_time_in_minutes\":{\"business\":25,\"calendar\":25},\"full_resolution_time_in_minutes\":{\"business\":25,\"calendar\":25},\"group_stations\":1,\"id\":39776711147677,\"initially_assigned_at\":\"2026-10-09T05:52:56Z\",\"latest_comment_added_at\":\"2026-10-09T06:18:01Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":1,\"reply_time_in_minutes\":{\"business\":25,\"calendar\":25},\"requester_updated_at\":\"2026-10-09T05:52:56Z\",\"requester_wait_time_in_minutes\":{\"business\":25,\"calendar\":25},\"solved_at\":\"2026-10-09T06:18:01Z\",\"status_updated_at\":\"2026-10-09T06:18:01Z\",\"ticket_id\":6,\"updated_at\":\"2026-10-09T06:18:02Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39776711147677.json\"},{\"agent_wait_time_in_minutes\":{\"business\":0,\"calendar\":0},\"assigned_at\":\"2026-10-08T21:25:22Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T06:21:57Z\",\"created_at\":\"2026-10-08T21:25:22Z\",\"custom_status_updated_at\":\"2026-10-09T06:21:57Z\",\"first_resolution_time_in_minutes\":{\"business\":537,\"calendar\":537},\"full_resolution_time_in_minutes\":{\"business\":537,\"calendar\":537},\"group_stations\":1,\"id\":39771850872861,\"initially_assigned_at\":\"2026-10-08T21:25:22Z\",\"latest_comment_added_at\":\"2026-10-08T21:25:28Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":1,\"reply_time_in_minutes\":{\"business\":0,\"calendar\":0},\"requester_updated_at\":\"2026-10-08T21:25:22Z\",\"requester_wait_time_in_minutes\":{\"business\":537,\"calendar\":537},\"solved_at\":\"2026-10-09T06:21:57Z\",\"status_updated_at\":\"2026-10-09T06:21:57Z\",\"ticket_id\":3,\"updated_at\":\"2026-10-09T06:21:57Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771850872861.json\"},{\"agent_wait_time_in_minutes\":{\"business\":0,\"calendar\":0},\"assigned_at\":\"2026-10-08T21:25:21Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T07:57:21Z\",\"created_at\":\"2026-10-08T21:25:21Z\",\"custom_status_updated_at\":\"2026-10-09T06:19:07Z\",\"first_resolution_time_in_minutes\":{\"business\":0,\"calendar\":0},\"full_resolution_time_in_minutes\":{\"business\":534,\"calendar\":534},\"group_stations\":1,\"id\":39771850851357,\"initially_assigned_at\":\"2026-10-08T21:25:21Z\",\"latest_comment_added_at\":\"2026-10-09T07:57:17Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":1,\"replies\":4,\"reply_time_in_minutes\":{\"business\":0,\"calendar\":0},\"requester_updated_at\":\"2026-10-08T21:25:21Z\",\"requester_wait_time_in_minutes\":{\"business\":26,\"calendar\":26},\"solved_at\":\"2026-10-09T06:19:07Z\",\"status_updated_at\":\"2026-10-09T06:19:07Z\",\"ticket_id\":2,\"updated_at\":\"2026-10-09T07:57:17Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771850851357.json\"}],\"tickets\":[{\"allow_attachments\":true,\"allow_channelback\":false,\"assignee_id\":39771704393373,\"brand_id\":39771695429277,\"collaborator_ids\":[],\"created_at\":\"2026-10-08T21:25:23Z\",\"custom_fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__account__data_restrictions__delete_data\"},{\"id\":39771680545309,\"value\":\"topic_confidence__low\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"custom_status_id\":39771695441053,\"description\":\"Delete then restore - first message\",\"due_at\":null,\"email_cc_ids\":[],\"encoded_id\":\"40JXYX-EDD34\",\"external_id\":null,\"fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__account__data_restrictions__delete_data\"},{\"id\":39771680545309,\"value\":\"topic_confidence__low\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"follower_ids\":[],\"followup_ids\":[],\"forum_topic_id\":null,\"from_messaging_channel\":false,\"generated_timestamp\":1791525177,\"group_id\":39771663256989,\"has_incidents\":false,\"id\":4,\"is_public\":true,\"metric_set\":{\"agent_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"assigned_at\":\"2026-10-08T21:25:23Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T05:52:57Z\",\"created_at\":\"2026-10-08T21:25:23Z\",\"custom_status_updated_at\":\"2026-10-08T21:25:23Z\",\"first_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"full_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"group_stations\":1,\"id\":39771837289885,\"initially_assigned_at\":\"2026-10-08T21:25:23Z\",\"latest_comment_added_at\":\"2026-10-08T21:25:23Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":0,\"reply_time_in_minutes\":{\"business\":null,\"calendar\":null},\"requester_updated_at\":\"2026-10-08T21:25:23Z\",\"requester_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"solved_at\":null,\"status_updated_at\":\"2026-10-09T05:52:57Z\",\"ticket_id\":4,\"updated_at\":\"2026-10-08T21:25:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771837289885.json\"},\"organization_id\":null,\"priority\":\"normal\",\"problem_id\":null,\"raw_subject\":\"Delete then restore\",\"recipient\":null,\"requester_id\":39771807715229,\"satisfaction_rating\":{\"score\":\"unoffered\"},\"sharing_agreement_ids\":[],\"status\":\"deleted\",\"subject\":\"Delete then restore\",\"submitter_id\":39771807715229,\"support_type\":\"agent\",\"tags\":[],\"ticket_form_id\":39771663206685,\"type\":null,\"updated_at\":\"2026-10-09T05:52:57Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/tickets/4.json\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}}},{\"allow_attachments\":true,\"allow_channelback\":false,\"assignee_id\":39771704393373,\"brand_id\":39771695429277,\"collaborator_ids\":[],\"created_at\":\"2026-10-08T21:25:23Z\",\"custom_fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__account__data_restrictions__delete_data\"},{\"id\":39771680545309,\"value\":\"topic_confidence__medium\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"custom_status_id\":39771695441053,\"description\":\"Delete for good - first message\",\"due_at\":null,\"email_cc_ids\":[],\"encoded_id\":\"GMXYL3-41EVZ\",\"external_id\":null,\"fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__account__data_restrictions__delete_data\"},{\"id\":39771680545309,\"value\":\"topic_confidence__medium\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"follower_ids\":[],\"followup_ids\":[],\"forum_topic_id\":null,\"from_messaging_channel\":false,\"generated_timestamp\":1791525179,\"group_id\":39771663256989,\"has_incidents\":false,\"id\":5,\"is_public\":true,\"metric_set\":{\"agent_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"assigned_at\":\"2026-10-08T21:25:23Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T05:52:58Z\",\"created_at\":\"2026-10-08T21:25:23Z\",\"custom_status_updated_at\":\"2026-10-08T21:25:23Z\",\"first_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"full_resolution_time_in_minutes\":{\"business\":null,\"calendar\":null},\"group_stations\":1,\"id\":39771807809053,\"initially_assigned_at\":\"2026-10-08T21:25:23Z\",\"latest_comment_added_at\":\"2026-10-08T21:25:23Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":0,\"reply_time_in_minutes\":{\"business\":null,\"calendar\":null},\"requester_updated_at\":\"2026-10-08T21:25:23Z\",\"requester_wait_time_in_minutes\":{\"business\":null,\"calendar\":null},\"solved_at\":null,\"status_updated_at\":\"2026-10-09T05:52:58Z\",\"ticket_id\":5,\"updated_at\":\"2026-10-08T21:25:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771807809053.json\"},\"organization_id\":39771868840349,\"priority\":\"normal\",\"problem_id\":null,\"raw_subject\":\"Delete for good\",\"recipient\":null,\"requester_id\":39771868857245,\"satisfaction_rating\":{\"score\":\"unoffered\"},\"sharing_agreement_ids\":[],\"status\":\"open\",\"subject\":\"Delete for good\",\"submitter_id\":39771868857245,\"support_type\":\"agent\",\"tags\":[\"beta\",\"system_email_notification_failure\",\"vip\"],\"ticket_form_id\":39771663206685,\"type\":null,\"updated_at\":\"2026-10-09T05:52:58Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/tickets/5.json\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}}},{\"allow_attachments\":true,\"allow_channelback\":false,\"assignee_id\":39771704393373,\"brand_id\":39771695429277,\"collaborator_ids\":[],\"created_at\":\"2026-10-09T05:52:56Z\",\"custom_fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__order__new__place\"},{\"id\":39771680545309,\"value\":\"topic_confidence__low\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__nl\"},{\"id\":39771680552989,\"value\":\"language_confidence__low\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"custom_status_id\":39771663254173,\"description\":\"My phone is ▇▇▇▇▇▇▇▇\",\"due_at\":null,\"email_cc_ids\":[],\"encoded_id\":\"LMNDZ1-2W0NR\",\"external_id\":null,\"fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__order__new__place\"},{\"id\":39771680545309,\"value\":\"topic_confidence__low\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__nl\"},{\"id\":39771680552989,\"value\":\"language_confidence__low\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"follower_ids\":[],\"followup_ids\":[],\"forum_topic_id\":null,\"from_messaging_channel\":false,\"generated_timestamp\":1791526763,\"group_id\":39771663256989,\"has_incidents\":false,\"id\":6,\"is_public\":true,\"metric_set\":{\"agent_wait_time_in_minutes\":{\"business\":0,\"calendar\":0},\"assigned_at\":\"2026-10-09T05:52:56Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T06:18:01Z\",\"created_at\":\"2026-10-09T05:52:57Z\",\"custom_status_updated_at\":\"2026-10-09T06:18:01Z\",\"first_resolution_time_in_minutes\":{\"business\":25,\"calendar\":25},\"full_resolution_time_in_minutes\":{\"business\":25,\"calendar\":25},\"group_stations\":1,\"id\":39776711147677,\"initially_assigned_at\":\"2026-10-09T05:52:56Z\",\"latest_comment_added_at\":\"2026-10-09T06:18:01Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":1,\"reply_time_in_minutes\":{\"business\":25,\"calendar\":25},\"requester_updated_at\":\"2026-10-09T05:52:56Z\",\"requester_wait_time_in_minutes\":{\"business\":25,\"calendar\":25},\"solved_at\":\"2026-10-09T06:18:01Z\",\"status_updated_at\":\"2026-10-09T06:18:01Z\",\"ticket_id\":6,\"updated_at\":\"2026-10-09T06:18:02Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39776711147677.json\"},\"organization_id\":null,\"priority\":\"normal\",\"problem_id\":null,\"raw_subject\":\"E2E new ticket\",\"recipient\":null,\"requester_id\":39776679352733,\"satisfaction_rating\":{\"comment\":\"Took too long to get a reply.\",\"id\":39777203359517,\"reason\":null,\"reason_id\":null,\"score\":\"good\"},\"sharing_agreement_ids\":[],\"status\":\"solved\",\"subject\":\"E2E new ticket\",\"submitter_id\":39776679352733,\"support_type\":\"agent\",\"tags\":[\"e2e\",\"system_email_notification_failure\"],\"ticket_form_id\":39771663206685,\"type\":null,\"updated_at\":\"2026-10-09T06:19:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/tickets/6.json\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}}},{\"allow_attachments\":true,\"allow_channelback\":false,\"assignee_id\":39771704393373,\"brand_id\":39771695429277,\"collaborator_ids\":[],\"created_at\":\"2026-10-08T21:25:22Z\",\"custom_fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__order__not_delivered__late\"},{\"id\":39771680545309,\"value\":\"topic_confidence__medium\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"custom_status_id\":39771663254173,\"description\":\"Shipping delay - first message\",\"due_at\":null,\"email_cc_ids\":[],\"encoded_id\":\"40JXYK-LYV2Y\",\"external_id\":null,\"fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__order__not_delivered__late\"},{\"id\":39771680545309,\"value\":\"topic_confidence__medium\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"follower_ids\":[],\"followup_ids\":[],\"forum_topic_id\":null,\"from_messaging_channel\":false,\"generated_timestamp\":1791526948,\"group_id\":39771663256989,\"has_incidents\":false,\"id\":3,\"is_public\":true,\"metric_set\":{\"agent_wait_time_in_minutes\":{\"business\":0,\"calendar\":0},\"assigned_at\":\"2026-10-08T21:25:22Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T06:21:57Z\",\"created_at\":\"2026-10-08T21:25:22Z\",\"custom_status_updated_at\":\"2026-10-09T06:21:57Z\",\"first_resolution_time_in_minutes\":{\"business\":537,\"calendar\":537},\"full_resolution_time_in_minutes\":{\"business\":537,\"calendar\":537},\"group_stations\":1,\"id\":39771850872861,\"initially_assigned_at\":\"2026-10-08T21:25:22Z\",\"latest_comment_added_at\":\"2026-10-08T21:25:28Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":0,\"replies\":1,\"reply_time_in_minutes\":{\"business\":0,\"calendar\":0},\"requester_updated_at\":\"2026-10-08T21:25:22Z\",\"requester_wait_time_in_minutes\":{\"business\":537,\"calendar\":537},\"solved_at\":\"2026-10-09T06:21:57Z\",\"status_updated_at\":\"2026-10-09T06:21:57Z\",\"ticket_id\":3,\"updated_at\":\"2026-10-09T06:21:57Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771850872861.json\"},\"organization_id\":null,\"priority\":\"low\",\"problem_id\":null,\"raw_subject\":\"Shipping delay\",\"recipient\":null,\"requester_id\":39771850790941,\"satisfaction_rating\":{\"comment\":null,\"id\":39777235593245,\"reason\":\"The issue was not resolved\",\"reason_id\":39777235586589,\"score\":\"bad\"},\"sharing_agreement_ids\":[],\"status\":\"solved\",\"subject\":\"Shipping delay\",\"submitter_id\":39771850790941,\"support_type\":\"agent\",\"tags\":[\"system_email_notification_failure\"],\"ticket_form_id\":39771663206685,\"type\":null,\"updated_at\":\"2026-10-09T06:22:28Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/tickets/3.json\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}}},{\"allow_attachments\":true,\"allow_channelback\":false,\"assignee_id\":39771704393373,\"brand_id\":39771695429277,\"collaborator_ids\":[],\"created_at\":\"2026-10-08T21:25:21Z\",\"custom_fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__billing__invoice__request\"},{\"id\":39771680545309,\"value\":\"topic_confidence__medium\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"custom_status_id\":39771663254173,\"description\":\"Billing question - first message\",\"due_at\":null,\"email_cc_ids\":[],\"encoded_id\":\"GMXYL3-4331L\",\"external_id\":null,\"fields\":[{\"id\":39771663108893,\"value\":null},{\"id\":39771663109021,\"value\":null},{\"id\":39771663109277,\"value\":null},{\"id\":39771663336605,\"value\":null},{\"id\":39771680543389,\"value\":\"topic__billing__invoice__request\"},{\"id\":39771680545309,\"value\":\"topic_confidence__medium\"},{\"id\":39771680548637,\"value\":\"sentiment__neutral\"},{\"id\":39771680549277,\"value\":\"sentiment_confidence__high\"},{\"id\":39771680551453,\"value\":\"language__en\"},{\"id\":39771680552989,\"value\":\"language_confidence__high\"},{\"id\":39771695292829,\"value\":null},{\"id\":39771695526045,\"value\":null},{\"id\":39771695526685,\"value\":null},{\"id\":39771695534109,\"value\":null},{\"id\":39771695973277,\"value\":false},{\"id\":39771718655901,\"value\":null},{\"id\":39771719118621,\"value\":null}],\"follower_ids\":[],\"followup_ids\":[],\"forum_topic_id\":null,\"from_messaging_channel\":false,\"generated_timestamp\":1791532660,\"group_id\":39771663256989,\"has_incidents\":false,\"id\":2,\"is_public\":true,\"metric_set\":{\"agent_wait_time_in_minutes\":{\"business\":0,\"calendar\":0},\"assigned_at\":\"2026-10-08T21:25:21Z\",\"assignee_stations\":1,\"assignee_updated_at\":\"2026-10-09T07:57:21Z\",\"created_at\":\"2026-10-08T21:25:21Z\",\"custom_status_updated_at\":\"2026-10-09T06:19:07Z\",\"first_resolution_time_in_minutes\":{\"business\":0,\"calendar\":0},\"full_resolution_time_in_minutes\":{\"business\":534,\"calendar\":534},\"group_stations\":1,\"id\":39771850851357,\"initially_assigned_at\":\"2026-10-08T21:25:21Z\",\"latest_comment_added_at\":\"2026-10-09T07:57:17Z\",\"on_hold_time_in_minutes\":{\"business\":0,\"calendar\":0},\"reopens\":1,\"replies\":4,\"reply_time_in_minutes\":{\"business\":0,\"calendar\":0},\"requester_updated_at\":\"2026-10-08T21:25:21Z\",\"requester_wait_time_in_minutes\":{\"business\":26,\"calendar\":26},\"solved_at\":\"2026-10-09T06:19:07Z\",\"status_updated_at\":\"2026-10-09T06:19:07Z\",\"ticket_id\":2,\"updated_at\":\"2026-10-09T07:57:17Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/ticket_metrics/39771850851357.json\"},\"organization_id\":39771868840349,\"priority\":\"urgent\",\"problem_id\":null,\"raw_subject\":\"Billing question\",\"recipient\":null,\"requester_id\":39771868857245,\"satisfaction_rating\":{\"score\":\"offered\"},\"sharing_agreement_ids\":[],\"status\":\"solved\",\"subject\":\"Billing question\",\"submitter_id\":39771868857245,\"support_type\":\"agent\",\"tags\":[\"beta\",\"billing\",\"system_email_notification_failure\",\"vip\"],\"ticket_form_id\":39771663206685,\"type\":\"question\",\"updated_at\":\"2026-10-09T07:57:21Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/tickets/2.json\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}}}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f0c6888aff73-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:48 GMT", + "etag": "W/\"e097e842e9b07721a1596f55df1fad6e\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "377", + "ratelimit-reset": "12", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Q%2FrKtrR5eLLb970jCyR7URIL%2FvisxWcJkD6%2BoPiXPHSBNfqyC%2BUgyNSSjrmfBbm%2FngWUBmHbARJRDCPdD4oe2xqz2D5ufFK2SBwPnAwRn1NQgPWV2oLhxMXVxQ%2FwAETgblgnQX%2Bz44WW8w4%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "137", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/tickets/cursor", + "x-rate-limit": "400", + "x-rate-limit-remaining": "377", + "x-request-id": "a495f0c6888aff73-DUB", + "x-request-validation": "matched", + "x-runtime": "0.133258", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-n8gfc", + "x-zendesk-zorg": "yes", + "zendesk-ratelimit-incremental-exports": "total=10; remaining=4; resets=12", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events?include=comment_events&start_time=0\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events?include=comment_events&start_time=0", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"count\":45,\"end_of_stream\":true,\"end_time\":1791532641,\"next_page\":\"https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events.json?include=comment_events&start_time=1791532641\",\"ticket_events\":[{\"child_events\":[{\"attachments\":[],\"audit_id\":39771664580253,\"author_id\":39771664570525,\"body\":\"Hi, I reset my password earlier today, but I’m still not able to log in. I keep getting an error message when I try, and I’ve already attempted it a couple of times. Could someone please take a look? I need to get into my account as soon as possible.\",\"created_at\":\"2026-10-08T21:14:17Z\",\"event_type\":\"Comment\",\"html_body\":\"
Hi, I reset my password earlier today, but I’m still not able to log in. I keep getting an error message when I try, and I’ve already attempted it a couple of times. Could someone please take a look? I need to get into my account as soon as possible.
\",\"id\":39771664580381,\"plain_body\":\"Hi, I reset my password earlier today, but I’m still not able to log in. I keep getting an error message when I try, and I’ve already attempted it a couple of times. Could someone please take a look? I need to get into my account as soon as possible.\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"email\",\"source\":{\"from\":{\"address\":\"example@zendesk.com\",\"name\":\"Customer\",\"original_recipients\":[]},\"rel\":null,\"to\":{\"name\":\"Stealth\"}}},\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664580509,\"priority\":\"normal\",\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664580637,\"subject\":\"SAMPLE: Unable to log in after password reset\",\"via\":\"Mail\",\"via_reference_id\":null},{\"added_tags\":[\"zendesk_accelerated_setup\"],\"event_type\":\"Create\",\"id\":39771664580765,\"removed_tags\":[],\"tags\":[\"zendesk_accelerated_setup\"],\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664580893,\"type\":null,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664581021,\"status\":\"open\",\"via\":\"Mail\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771664581149,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771664581277,\"via\":\"Mail\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771664581405,\"via\":\"Mail\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771664581533,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664581661,\"ticket_form_id\":\"39771663206685\",\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664581789,\"requester_id\":39771664570525,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664589853,\"sla_policy\":\"Set first reply time\",\"via\":\"Mail\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:14:17Z\",\"event_type\":\"Audit\",\"id\":39771664580253,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4ENVV107JJBG1ENJXS7JETF\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":1,\"timestamp\":1791494057,\"updater_id\":39771664570525,\"via\":\"Mail\"},{\"child_events\":[],\"created_at\":\"2026-10-08T21:14:17Z\",\"event_type\":\"Audit\",\"id\":39771681970845,\"metadata\":{\"custom\":{},\"parent_audit_id\":\"39771664580253\",\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":1,\"timestamp\":1791494057,\"updater_id\":-1,\"via\":\"SLA\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__software__login_issues__cant_login\"},\"event_type\":\"Change\",\"id\":39771682107805,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__high\"},\"event_type\":\"Change\",\"id\":39771682107933,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771682108061,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771682108189,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__negative\"},\"event_type\":\"Change\",\"id\":39771682108317,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771682108445,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:14:20Z\",\"event_type\":\"Audit\",\"id\":39771682107677,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":1,\"timestamp\":1791494060,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39771850845725,\"author_id\":39771868857245,\"body\":\"Billing question - first message\",\"created_at\":\"2026-10-08T21:25:21Z\",\"event_type\":\"Comment\",\"html_body\":\"

Billing question - first message

\",\"id\":39771850845853,\"plain_body\":\"Billing question - first message\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"ada@acme.example\",\"name\":\"Ada Test\"}}},\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850845981,\"priority\":\"high\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850846109,\"requester_id\":39771868857245,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850846237,\"subject\":\"Billing question\",\"via\":\"Web service\",\"via_reference_id\":null},{\"added_tags\":[\"beta\",\"billing\",\"vip\"],\"event_type\":\"Create\",\"id\":39771850846365,\"removed_tags\":[],\"tags\":[\"beta\",\"billing\",\"vip\"],\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850846493,\"type\":\"question\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850846621,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771850846749,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771850846877,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850847005,\"organization_id\":\"39771868840349\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771850847133,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771850847261,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850847389,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850849693,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:21Z\",\"event_type\":\"Audit\",\"id\":39771850845725,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG3RGTPMH4MXZTMDZ7MX9\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494721,\"updater_id\":39771868857245,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39771807766685,\"author_id\":39771850790941,\"body\":\"Shipping delay - first message\",\"created_at\":\"2026-10-08T21:25:22Z\",\"event_type\":\"Comment\",\"html_body\":\"

Shipping delay - first message

\",\"id\":39771807766813,\"plain_body\":\"Shipping delay - first message\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"grace@globex.example\",\"name\":\"Grace Test\"}}},\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807766941,\"priority\":\"low\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767069,\"requester_id\":39771850790941,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767197,\"subject\":\"Shipping delay\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767325,\"type\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767453,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771807767581,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771807767709,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767837,\"organization_id\":\"39771816522653\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771807767965,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771807768093,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807768221,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850872221,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:22Z\",\"event_type\":\"Audit\",\"id\":39771807766685,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG4P4DYB6GCT4EEPE64X0\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494722,\"updater_id\":39771850790941,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39771837285661,\"author_id\":39771807715229,\"body\":\"Delete then restore - first message\",\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Comment\",\"html_body\":\"

Delete then restore - first message

\",\"id\":39771837285789,\"plain_body\":\"Delete then restore - first message\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}},\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837285917,\"requester_id\":39771807715229,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837286045,\"subject\":\"Delete then restore\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837286173,\"priority\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837286301,\"type\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837286429,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771837286557,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771837286685,\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771837286813,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771837286941,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837287069,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39771837287197,\"previous_value\":\"0\",\"priority\":\"normal\",\"rel\":\"trigger\",\"revision_id\":1,\"via\":\"Rule\",\"via_reference_id\":39771663297821},{\"event_type\":\"Create\",\"id\":39771837288733,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771837285661,\"metadata\":{\"custom\":{},\"notifications_suppressed_for\":[39771807715229],\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG5ADY636VHEYGQ8ZMMMA\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494723,\"updater_id\":39771807715229,\"via\":\"Web service\"},{\"child_events\":[],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771868941853,\"metadata\":{\"custom\":{},\"parent_audit_id\":\"39771837285661\",\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494723,\"updater_id\":-1,\"via\":\"SLA\"},{\"child_events\":[{\"added_tags\":[\"system_email_notification_failure\"],\"event_type\":\"Change\",\"id\":39771900485661,\"removed_tags\":[],\"tags\":[\"system_email_notification_failure\"],\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771900485533,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494723,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"added_tags\":[\"system_email_notification_failure\"],\"event_type\":\"Change\",\"id\":39771807798685,\"removed_tags\":[],\"tags\":[\"beta\",\"billing\",\"system_email_notification_failure\",\"vip\"],\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771807798557,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494723,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39771807804061,\"author_id\":39771868857245,\"body\":\"Delete for good - first message\",\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Comment\",\"html_body\":\"

Delete for good - first message

\",\"id\":39771807804189,\"plain_body\":\"Delete for good - first message\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"ada@acme.example\",\"name\":\"Ada Test\"}}},\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804317,\"requester_id\":39771868857245,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804445,\"subject\":\"Delete for good\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804573,\"priority\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804701,\"type\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804829,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771807804957,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771807805085,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807805213,\"organization_id\":\"39771868840349\",\"via\":\"Web service\",\"via_reference_id\":null},{\"added_tags\":[\"beta\",\"vip\"],\"event_type\":\"Create\",\"id\":39771807805341,\"removed_tags\":[],\"tags\":[\"beta\",\"vip\"],\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771807805469,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771807805597,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807805725,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39771807805981,\"previous_value\":\"0\",\"priority\":\"normal\",\"rel\":\"trigger\",\"revision_id\":1,\"via\":\"Rule\",\"via_reference_id\":39771663297821},{\"event_type\":\"Create\",\"id\":39771850913565,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771807804061,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG5Z31PMS4WFFDCPBFYTJ\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494723,\"updater_id\":39771868857245,\"via\":\"Web service\"},{\"child_events\":[],\"created_at\":\"2026-10-08T21:25:24Z\",\"event_type\":\"Audit\",\"id\":39771868964637,\"metadata\":{\"custom\":{},\"parent_audit_id\":\"39771807804061\",\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494724,\"updater_id\":-1,\"via\":\"SLA\"},{\"child_events\":[{\"added_tags\":[\"system_email_notification_failure\"],\"event_type\":\"Change\",\"id\":39771807848093,\"removed_tags\":[],\"tags\":[\"beta\",\"system_email_notification_failure\",\"vip\"],\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:26Z\",\"event_type\":\"Audit\",\"id\":39771807847965,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494726,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39771900527901,\"author_id\":39771704393373,\"body\":\"Thanks Ada, looking into it.\",\"created_at\":\"2026-10-08T21:25:26Z\",\"event_type\":\"Comment\",\"html_body\":\"

Thanks Ada, looking into it.

\",\"id\":39771900528029,\"plain_body\":\"Thanks Ada, looking into it.\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"ada@acme.example\",\"name\":\"Ada Test\"}}},\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:26Z\",\"event_type\":\"Audit\",\"id\":39771900527901,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG8MPAC5RE26TR5ETG55F\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494726,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39771900536477,\"author_id\":39771704393373,\"body\":\"Internal: refund approved.\",\"created_at\":\"2026-10-08T21:25:27Z\",\"event_type\":\"Comment\",\"html_body\":\"

Internal: refund approved.

\",\"id\":39771837368221,\"plain_body\":\"Internal: refund approved.\",\"public\":false,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}},\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:27Z\",\"event_type\":\"Audit\",\"id\":39771900536477,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG98GB9P2B0CC5EACECPH\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494727,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39771851002013,\"author_id\":39771704393373,\"body\":\"Refund sent.\",\"created_at\":\"2026-10-08T21:25:27Z\",\"event_type\":\"Comment\",\"html_body\":\"

Refund sent.

\",\"id\":39771851002141,\"plain_body\":\"Refund sent.\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"ada@acme.example\",\"name\":\"Ada Test\"}}},\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39771851002269,\"previous_value\":\"open\",\"status\":\"solved\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771663254173\",\"event_type\":\"Change\",\"id\":39771851002397,\"previous_value\":\"39771695441053\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:27Z\",\"event_type\":\"Audit\",\"id\":39771851002013,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG9SNAVH2HZSFC064P2S9\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494727,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__account__data_restrictions__delete_data\"},\"event_type\":\"Change\",\"id\":39771869047453,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__low\"},\"event_type\":\"Change\",\"id\":39771869047581,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771869047709,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771869047837,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39771869047965,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771869048093,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771869047325,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494728,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__order__not_delivered__late\"},\"event_type\":\"Change\",\"id\":39771869050141,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__medium\"},\"event_type\":\"Change\",\"id\":39771869050269,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771869050397,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771869050525,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39771869050653,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771869050781,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771869050013,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494728,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__account__data_restrictions__delete_data\"},\"event_type\":\"Change\",\"id\":39771837393053,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__medium\"},\"event_type\":\"Change\",\"id\":39771837393181,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771837393309,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771837393437,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39771837393565,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771837393693,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771837392925,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494728,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__billing__invoice__request\"},\"event_type\":\"Change\",\"id\":39771900566301,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__medium\"},\"event_type\":\"Change\",\"id\":39771900566429,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771900566557,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771900566685,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39771900566813,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771900566941,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771900566173,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494728,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39771884632221,\"author_id\":39771704393373,\"body\":\"Your card is ▇▇▇▇ ▇▇▇▇ ▇▇▇▇ ▇▇▇▇, right?\",\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Comment\",\"html_body\":\"

Your card is ▇▇▇▇ ▇▇▇▇ ▇▇▇▇ ▇▇▇▇, right?

\",\"id\":39771869091229,\"plain_body\":\"Your card is ▇▇▇▇ ▇▇▇▇ ▇▇▇▇ ▇▇▇▇, right?\",\"public\":false,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}},\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771884632221,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"email_id\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPGABTJ69RNQQDKKFBZ933\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494728,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[],\"created_at\":\"2026-10-08T21:25:31Z\",\"event_type\":\"Audit\",\"id\":39771837498141,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4EPGDYAMD794YH0BHPVGDG0\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494731,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39771851155741,\"previous_value\":\"open\",\"status\":\"deleted\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:32Z\",\"event_type\":\"Audit\",\"id\":39771851155485,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4EPGEY19B8M8JF44JWNGMB7\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494732,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39771808073757,\"previous_value\":\"open\",\"status\":\"deleted\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:33Z\",\"event_type\":\"Audit\",\"id\":39771808073629,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4EPGFK6TWAT5DSKFY1DG42J\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494733,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39771884866333,\"previous_value\":\"deleted\",\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:36Z\",\"event_type\":\"Audit\",\"id\":39771884866205,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4EPGJ5Q0YB1XGVFSK3V5B1S\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494736,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39771869427485,\"organization_id\":null,\"previous_value\":\"39771816522653\",\"via\":\"Web form\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:39Z\",\"event_type\":\"Audit\",\"id\":39771869427357,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494739,\"updater_id\":39771704393373,\"via\":\"Web form\"},{\"child_events\":[{\"comment_id\":\"39771869091229\",\"event_type\":\"CommentRedactionEvent\",\"id\":39771851684509,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:50Z\",\"event_type\":\"Audit\",\"id\":39771842098589,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4EPH06W19DTMNGWPDYC5A4R\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494750,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39776697750173,\"author_id\":39771704393373,\"body\":\"Reopening: refund bounced.\",\"created_at\":\"2026-10-09T05:52:55Z\",\"event_type\":\"Comment\",\"html_body\":\"

Reopening: refund bounced.

\",\"id\":39776697750301,\"plain_body\":\"Reopening: refund bounced.\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"ada@acme.example\",\"name\":\"Ada Test\"}}},\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39776697750429,\"previous_value\":\"high\",\"priority\":\"urgent\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39776697750557,\"previous_value\":\"solved\",\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Change\",\"id\":39776697750685,\"previous_value\":\"39771663254173\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:55Z\",\"event_type\":\"Audit\",\"id\":39776697750173,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4FKHFRQ2AGATXKJBF7X8X9P\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791525175,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39776679371933,\"author_id\":39776679352733,\"body\":\"My phone is ▇▇▇▇▇▇▇▇\",\"created_at\":\"2026-10-09T05:52:57Z\",\"event_type\":\"Comment\",\"html_body\":\"

My phone is ▇▇▇▇▇▇▇▇

\",\"id\":39776679372061,\"plain_body\":\"My phone is ▇▇▇▇▇▇▇▇\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"eve@e2e.example\",\"name\":\"Eve Test\"}}},\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679372189,\"subject\":\"E2E new ticket\",\"via\":\"Web service\",\"via_reference_id\":null},{\"added_tags\":[\"e2e\"],\"event_type\":\"Create\",\"id\":39776679372317,\"removed_tags\":[],\"tags\":[\"e2e\"],\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679372445,\"priority\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679372573,\"type\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679372701,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39776679372829,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39776679372957,\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39776679373085,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39776679373213,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679373341,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679373469,\"requester_id\":39776679352733,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39776679373725,\"previous_value\":\"0\",\"priority\":\"normal\",\"rel\":\"trigger\",\"revision_id\":1,\"via\":\"Rule\",\"via_reference_id\":39771663297821},{\"event_type\":\"Create\",\"id\":39776679382301,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:57Z\",\"event_type\":\"Audit\",\"id\":39776679371933,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"email_id\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4FKHGR3ZJT6PAC4ZG7ZFNQ8\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525177,\"updater_id\":39776679352733,\"via\":\"Web service\"},{\"child_events\":[],\"created_at\":\"2026-10-09T05:52:57Z\",\"event_type\":\"Audit\",\"id\":39776697834781,\"metadata\":{\"custom\":{},\"parent_audit_id\":\"39776679371933\",\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525177,\"updater_id\":-1,\"via\":\"SLA\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39776744103965,\"previous_value\":\"open\",\"status\":\"deleted\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:57Z\",\"event_type\":\"Audit\",\"id\":39776744103837,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4FKHJBQQH815YNNTG8F7M3N\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791525177,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"added_tags\":[\"system_email_notification_failure\"],\"event_type\":\"Change\",\"id\":39776697861277,\"removed_tags\":[],\"tags\":[\"e2e\",\"system_email_notification_failure\"],\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:58Z\",\"event_type\":\"Audit\",\"id\":39776697861149,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525178,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39776744136605,\"previous_value\":\"deleted\",\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:58Z\",\"event_type\":\"Audit\",\"id\":39776744136477,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4FKHK83WFM1VWRPK78MX7WE\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791525178,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__order__new__place\"},\"event_type\":\"Change\",\"id\":39776679476253,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__low\"},\"event_type\":\"Change\",\"id\":39776679476381,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__nl\"},\"event_type\":\"Change\",\"id\":39776679476509,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__low\"},\"event_type\":\"Change\",\"id\":39776679476637,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39776679476765,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39776679476893,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:53:00Z\",\"event_type\":\"Audit\",\"id\":39776679476125,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525180,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"comment_id\":\"39776679372061\",\"event_type\":\"CommentRedactionEvent\",\"id\":39776730477213,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:53:03Z\",\"event_type\":\"Audit\",\"id\":39776704082205,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4FKHQHHMTZN0P3A66Y834R1\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525183,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39777158770717,\"author_id\":39771704393373,\"body\":\"Done.\",\"created_at\":\"2026-10-09T06:18:01Z\",\"event_type\":\"Comment\",\"html_body\":\"

Done.

\",\"id\":39777158770845,\"plain_body\":\"Done.\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"eve@e2e.example\",\"name\":\"Eve Test\"}}},\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39777158770973,\"previous_value\":\"open\",\"status\":\"solved\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771663254173\",\"event_type\":\"Change\",\"id\":39777158771101,\"previous_value\":\"39771695441053\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:18:01Z\",\"event_type\":\"Audit\",\"id\":39777158770717,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4FMZF3T87BF2F78VA9MAEVX\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791526681,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777182482077,\"previous_value\":\"unoffered\",\"satisfaction_score\":\"offered\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:18:03Z\",\"event_type\":\"Audit\",\"id\":39777182481949,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791526683,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777171118365,\"previous_value\":\"offered\",\"satisfaction_score\":\"bad\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:18:21Z\",\"event_type\":\"Audit\",\"id\":39777171118109,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791526701,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777185887133,\"previous_value\":\"open\",\"status\":\"solved\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771663254173\",\"event_type\":\"Change\",\"id\":39777185887261,\"previous_value\":\"39771695441053\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:19:07Z\",\"event_type\":\"Audit\",\"id\":39777185887005,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4FN1FK1VXNHCCHV188MSBYE\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791526747,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777212542749,\"previous_value\":\"unoffered\",\"satisfaction_score\":\"offered\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:19:08Z\",\"event_type\":\"Audit\",\"id\":39777212542621,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791526748,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777174467101,\"previous_value\":\"bad\",\"satisfaction_score\":\"good\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:19:23Z\",\"event_type\":\"Audit\",\"id\":39777174466973,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791526763,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777255880861,\"previous_value\":\"open\",\"status\":\"solved\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771663254173\",\"event_type\":\"Change\",\"id\":39777255880989,\"previous_value\":\"39771695441053\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:21:57Z\",\"event_type\":\"Audit\",\"id\":39777255880733,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4FN6NEJMB6PN2DCXJVSN26F\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791526917,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777233847325,\"previous_value\":\"unoffered\",\"satisfaction_score\":\"offered\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:21:58Z\",\"event_type\":\"Audit\",\"id\":39777233847197,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791526918,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777264776989,\"previous_value\":\"offered\",\"satisfaction_score\":\"bad\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39777264777117,\"previous_value\":\"0\",\"satisfaction_reason_code\":\"1000\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:22:28Z\",\"event_type\":\"Audit\",\"id\":39777264776861,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791526948,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[{\"content_type\":\"text/plain\",\"content_url\":\"https://stealth-37618.zendesk.com/attachments/token/v1U8jrpsT0hzr9IelbR1amWJY/?name=redacted.txt\",\"deleted\":false,\"file_name\":\"redacted.txt\",\"height\":null,\"id\":39779688809373,\"inline\":false,\"malware_access_override\":false,\"malware_scan_result\":\"malware_not_found\",\"mapped_content_url\":\"https://stealth-37618.zendesk.com/attachments/token/v1U8jrpsT0hzr9IelbR1amWJY/?name=redacted.txt\",\"size\":1,\"thumbnails\":[],\"url\":\"https://stealth-37618.zendesk.com/api/v2/attachments/39779688809373.json\",\"width\":null}],\"audit_id\":39779688511389,\"author_id\":39771704393373,\"body\":\"Here is the file\",\"created_at\":\"2026-10-09T07:57:17Z\",\"event_type\":\"Comment\",\"html_body\":\"

Here is the file

\",\"id\":39779688512797,\"plain_body\":\"Here is the file\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"ada@acme.example\",\"name\":\"Ada Test\"}}},\"via_reference_id\":null}],\"created_at\":\"2026-10-09T07:57:17Z\",\"event_type\":\"Audit\",\"id\":39779688511389,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"email_id\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4FTN6Z6M0X37K1PK5SPP8J0\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791532637,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"attachment_id\":\"39779688809373\",\"event_type\":\"AttachmentRedactionEvent\",\"id\":39779668251037,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T07:57:21Z\",\"event_type\":\"Audit\",\"id\":39779668250909,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4FTNB5JYS5Z7T8DX30T14YW\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791532641,\"updater_id\":39771704393373,\"via\":\"Web service\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f0ec0d883ed9-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:54 GMT", + "etag": "W/\"4e220536bcba2f90a4585e53faad093e\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "376", + "ratelimit-reset": "6", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=cM11zQ3PB%2FH03Sy%2FnU7ocfuRrdfx8auA8%2Bgh7V5CvYeb4Q9Cb1kQg5RrYXC7jZWtE1PlPVjTqa0KucgT%2B7qJOIb6EfM%2BcW2Nq5P1oaIEL9r%2FRTNk8l0whKfmuo0ni%2BuGaZ8AlGhqlpdsGkQ%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "345", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/ticket_events", + "x-rate-limit": "400", + "x-rate-limit-remaining": "376", + "x-request-id": "a495f0ec0d883ed9-DUB", + "x-request-validation": "matched", + "x-runtime": "0.341651", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-qlq82", + "x-zendesk-zorg": "yes", + "zendesk-ratelimit-incremental-exports": "total=10; remaining=3; resets=6", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/tickets/3/comments?page%5Bsize%5D=100\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/tickets/3/comments?page%5Bsize%5D=100", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"comments\":[{\"attachments\":[],\"audit_id\":39771807766685,\"author_id\":39771850790941,\"body\":\"Shipping delay - first message\",\"created_at\":\"2026-10-08T21:25:22Z\",\"html_body\":\"

Shipping delay - first message

\",\"id\":39771807766813,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG4P4DYB6GCT4EEPE64X0\"}},\"plain_body\":\"Shipping delay - first message\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"grace@globex.example\",\"name\":\"Grace Test\"}}}},{\"attachments\":[],\"audit_id\":39771884632221,\"author_id\":39771704393373,\"body\":\"Your card is ▇▇▇▇ ▇▇▇▇ ▇▇▇▇ ▇▇▇▇, right?\",\"created_at\":\"2026-10-08T21:25:28Z\",\"html_body\":\"

Your card is ▇▇▇▇ ▇▇▇▇ ▇▇▇▇ ▇▇▇▇, right?

\",\"id\":39771869091229,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"email_id\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPGABTJ69RNQQDKKFBZ933\"}},\"plain_body\":\"Your card is ▇▇▇▇ ▇▇▇▇ ▇▇▇▇ ▇▇▇▇, right?\",\"public\":false,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}}}],\"links\":{\"next\":\"https://stealth-37618.zendesk.com/api/v2/tickets/3/comments.json?page%5Bafter%5D=eyJvIjoiY3JlYXRlZF9hdCxpZCIsInYiOiJaRWdLeUdvQUFBQUFhWjBWSVJ3c0pBQUEifQ%3D%3D&page%5Bsize%5D=100\",\"prev\":\"https://stealth-37618.zendesk.com/api/v2/tickets/3/comments.json?page%5Bbefore%5D=eyJvIjoiY3JlYXRlZF9hdCxpZCIsInYiOiJaRUlLeUdvQUFBQUFhUjFaZVJnc0pBQUEifQ%3D%3D&page%5Bsize%5D=100\"},\"meta\":{\"after_cursor\":\"eyJvIjoiY3JlYXRlZF9hdCxpZCIsInYiOiJaRWdLeUdvQUFBQUFhWjBWSVJ3c0pBQUEifQ==\",\"before_cursor\":\"eyJvIjoiY3JlYXRlZF9hdCxpZCIsInYiOiJaRUlLeUdvQUFBQUFhUjFaZVJnc0pBQUEifQ==\",\"has_more\":false}}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f0ef7ec53ed9-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:55 GMT", + "etag": "W/\"47f8ca58b498276d7e89d5e1255bb4f5\"", + "last-modified": "Fri, 09 Oct 2026 06:22:28 GMT", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "375", + "ratelimit-reset": "6", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=3SKYYaNkrR50uFE9qMv%2FOo8etIXOzMzCqErBueLUZ%2F%2FAhYgnXJWiyCyY6P86D4ApU21%2BcpwaoETBSSSrvtxwfHpuMv89R5EogubUQoSLeIsx7M6cUf9JRPlM4%2Fm85Nr9btfeKo17yGl7n0I%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/tickets", + "x-envoy-upstream-service-time": "88", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/tickets/{ticket_id}/comments", + "x-rate-limit": "400", + "x-rate-limit-remaining": "375", + "x-request-id": "a495f0ef7ec53ed9-DUB", + "x-request-validation": "matched", + "x-runtime": "0.079196", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-592hb", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/tickets/6/comments?page%5Bsize%5D=100\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/tickets/6/comments?page%5Bsize%5D=100", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"comments\":[{\"attachments\":[],\"audit_id\":39776679371933,\"author_id\":39776679352733,\"body\":\"My phone is ▇▇▇▇▇▇▇▇\",\"created_at\":\"2026-10-09T05:52:57Z\",\"html_body\":\"

My phone is ▇▇▇▇▇▇▇▇

\",\"id\":39776679372061,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"email_id\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4FKHGR3ZJT6PAC4ZG7ZFNQ8\"}},\"plain_body\":\"My phone is ▇▇▇▇▇▇▇▇\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"eve@e2e.example\",\"name\":\"Eve Test\"}}}},{\"attachments\":[],\"audit_id\":39777158770717,\"author_id\":39771704393373,\"body\":\"Done.\",\"created_at\":\"2026-10-09T06:18:01Z\",\"html_body\":\"

Done.

\",\"id\":39777158770845,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4FMZF3T87BF2F78VA9MAEVX\"}},\"plain_body\":\"Done.\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"eve@e2e.example\",\"name\":\"Eve Test\"}}}}],\"links\":{\"next\":\"https://stealth-37618.zendesk.com/api/v2/tickets/6/comments.json?page%5Bafter%5D=eyJvIjoiY3JlYXRlZF9hdCxpZCIsInYiOiJaQm1IeUdvQUFBQUFhWjB3YTFjdEpBQUEifQ%3D%3D&page%5Bsize%5D=100\",\"prev\":\"https://stealth-37618.zendesk.com/api/v2/tickets/6/comments.json?page%5Bbefore%5D=eyJvIjoiY3JlYXRlZF9hdCxpZCIsInYiOiJaRG1CeUdvQUFBQUFhUjBsMkRvdEpBQUEifQ%3D%3D&page%5Bsize%5D=100\"},\"meta\":{\"after_cursor\":\"eyJvIjoiY3JlYXRlZF9hdCxpZCIsInYiOiJaQm1IeUdvQUFBQUFhWjB3YTFjdEpBQUEifQ==\",\"before_cursor\":\"eyJvIjoiY3JlYXRlZF9hdCxpZCIsInYiOiJaRG1CeUdvQUFBQUFhUjBsMkRvdEpBQUEifQ==\",\"has_more\":false}}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f0f16b353ed9-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:55 GMT", + "etag": "W/\"1411313505b5ce567bb2e40ccc81695e\"", + "last-modified": "Fri, 09 Oct 2026 06:19:23 GMT", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "374", + "ratelimit-reset": "5", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=rjeEwKxGGlc1Ni7N66JY7c5bDSmaPRXWnBJSfZus2q%2Fyf96VRNxf%2B4aqUmCFicqMJc5OKbj9N1nyuccemm%2BNqBb%2Fp6KDUXyPZT2%2BS%2F8zxF3igq1ynZxeguBZSOMdmc5PFgGEaoFzoK%2FT30M%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/tickets", + "x-envoy-upstream-service-time": "84", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/tickets/{ticket_id}/comments", + "x-rate-limit": "400", + "x-rate-limit-remaining": "374", + "x-request-id": "a495f0f16b353ed9-DUB", + "x-request-validation": "matched", + "x-runtime": "0.080824", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-lm9pz", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/tickets/2/comments?page%5Bsize%5D=100\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/tickets/2/comments?page%5Bsize%5D=100", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"comments\":[{\"attachments\":[],\"audit_id\":39771850845725,\"author_id\":39771868857245,\"body\":\"Billing question - first message\",\"created_at\":\"2026-10-08T21:25:21Z\",\"html_body\":\"

Billing question - first message

\",\"id\":39771850845853,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG3RGTPMH4MXZTMDZ7MX9\"}},\"plain_body\":\"Billing question - first message\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"ada@acme.example\",\"name\":\"Ada Test\"}}}},{\"attachments\":[],\"audit_id\":39771900527901,\"author_id\":39771704393373,\"body\":\"Thanks Ada, looking into it.\",\"created_at\":\"2026-10-08T21:25:26Z\",\"html_body\":\"

Thanks Ada, looking into it.

\",\"id\":39771900528029,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG8MPAC5RE26TR5ETG55F\"}},\"plain_body\":\"Thanks Ada, looking into it.\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"ada@acme.example\",\"name\":\"Ada Test\"}}}},{\"attachments\":[],\"audit_id\":39771900536477,\"author_id\":39771704393373,\"body\":\"Internal: refund approved.\",\"created_at\":\"2026-10-08T21:25:27Z\",\"html_body\":\"

Internal: refund approved.

\",\"id\":39771837368221,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG98GB9P2B0CC5EACECPH\"}},\"plain_body\":\"Internal: refund approved.\",\"public\":false,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}}},{\"attachments\":[],\"audit_id\":39771851002013,\"author_id\":39771704393373,\"body\":\"Refund sent.\",\"created_at\":\"2026-10-08T21:25:27Z\",\"html_body\":\"

Refund sent.

\",\"id\":39771851002141,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG9SNAVH2HZSFC064P2S9\"}},\"plain_body\":\"Refund sent.\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"ada@acme.example\",\"name\":\"Ada Test\"}}}},{\"attachments\":[],\"audit_id\":39776697750173,\"author_id\":39771704393373,\"body\":\"Reopening: refund bounced.\",\"created_at\":\"2026-10-09T05:52:55Z\",\"html_body\":\"

Reopening: refund bounced.

\",\"id\":39776697750301,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4FKHFRQ2AGATXKJBF7X8X9P\"}},\"plain_body\":\"Reopening: refund bounced.\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"ada@acme.example\",\"name\":\"Ada Test\"}}}},{\"attachments\":[{\"content_type\":\"text/plain\",\"content_url\":\"https://stealth-37618.zendesk.com/attachments/token/v1U8jrpsT0hzr9IelbR1amWJY/?name=redacted.txt\",\"deleted\":false,\"file_name\":\"redacted.txt\",\"height\":null,\"id\":39779688809373,\"inline\":false,\"malware_access_override\":false,\"malware_scan_result\":\"malware_not_found\",\"mapped_content_url\":\"https://stealth-37618.zendesk.com/attachments/token/v1U8jrpsT0hzr9IelbR1amWJY/?name=redacted.txt\",\"size\":1,\"thumbnails\":[],\"url\":\"https://stealth-37618.zendesk.com/api/v2/attachments/39779688809373.json\",\"width\":null}],\"audit_id\":39779688511389,\"author_id\":39771704393373,\"body\":\"Here is the file\",\"created_at\":\"2026-10-09T07:57:17Z\",\"html_body\":\"

Here is the file

\",\"id\":39779688512797,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"email_id\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4FTN6Z6M0X37K1PK5SPP8J0\"}},\"plain_body\":\"Here is the file\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"ada@acme.example\",\"name\":\"Ada Test\"}}}}],\"links\":{\"next\":\"https://stealth-37618.zendesk.com/api/v2/tickets/2/comments.json?page%5Bafter%5D=eyJvIjoiY3JlYXRlZF9hdCxpZCIsInYiOiJaRjJleUdvQUFBQUFhUjM5TSs0dEpBQUEifQ%3D%3D&page%5Bsize%5D=100\",\"prev\":\"https://stealth-37618.zendesk.com/api/v2/tickets/2/comments.json?page%5Bbefore%5D=eyJvIjoiY3JlYXRlZF9hdCxpZCIsInYiOiJaRUVLeUdvQUFBQUFhWjJ1Q2hzc0pBQUEifQ%3D%3D&page%5Bsize%5D=100\"},\"meta\":{\"after_cursor\":\"eyJvIjoiY3JlYXRlZF9hdCxpZCIsInYiOiJaRjJleUdvQUFBQUFhUjM5TSs0dEpBQUEifQ==\",\"before_cursor\":\"eyJvIjoiY3JlYXRlZF9hdCxpZCIsInYiOiJaRUVLeUdvQUFBQUFhWjJ1Q2hzc0pBQUEifQ==\",\"has_more\":false}}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f0f388553ed9-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 11:59:55 GMT", + "etag": "W/\"b54390b1830476ed8800341f23428318\"", + "last-modified": "Fri, 09 Oct 2026 07:57:21 GMT", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "373", + "ratelimit-reset": "5", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=flCT%2BRMOJ3CSRvpu3XMIXbqDw%2F35KXj8YbNsY82KHtYRXsFrDf9SsDZYMJLgA2IHvVbkGNrAeYLLXV4ku07NbPX3lcXJRMhwT1A3X3tUwyMCfm7p%2B6DUQ157kvfRf7j3BLn4UL0WFxNnaSA%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/tickets", + "x-envoy-upstream-service-time": "102", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/tickets/{ticket_id}/comments", + "x-rate-limit": "400", + "x-rate-limit-remaining": "373", + "x-request-id": "a495f0f388553ed9-BOM", + "x-request-validation": "matched", + "x-runtime": "0.097534", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-zzp4r", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events?include=comment_events&start_time=1791494340\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events?include=comment_events&start_time=1791494340", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"count\":42,\"end_of_stream\":true,\"end_time\":1791532641,\"next_page\":\"https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events.json?include=comment_events&start_time=1791532641\",\"ticket_events\":[{\"child_events\":[{\"attachments\":[],\"audit_id\":39771850845725,\"author_id\":39771868857245,\"body\":\"Billing question - first message\",\"created_at\":\"2026-10-08T21:25:21Z\",\"event_type\":\"Comment\",\"html_body\":\"

Billing question - first message

\",\"id\":39771850845853,\"plain_body\":\"Billing question - first message\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"ada@acme.example\",\"name\":\"Ada Test\"}}},\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850845981,\"priority\":\"high\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850846109,\"requester_id\":39771868857245,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850846237,\"subject\":\"Billing question\",\"via\":\"Web service\",\"via_reference_id\":null},{\"added_tags\":[\"beta\",\"billing\",\"vip\"],\"event_type\":\"Create\",\"id\":39771850846365,\"removed_tags\":[],\"tags\":[\"beta\",\"billing\",\"vip\"],\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850846493,\"type\":\"question\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850846621,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771850846749,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771850846877,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850847005,\"organization_id\":\"39771868840349\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771850847133,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771850847261,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850847389,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850849693,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:21Z\",\"event_type\":\"Audit\",\"id\":39771850845725,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG3RGTPMH4MXZTMDZ7MX9\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494721,\"updater_id\":39771868857245,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39771807766685,\"author_id\":39771850790941,\"body\":\"Shipping delay - first message\",\"created_at\":\"2026-10-08T21:25:22Z\",\"event_type\":\"Comment\",\"html_body\":\"

Shipping delay - first message

\",\"id\":39771807766813,\"plain_body\":\"Shipping delay - first message\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"grace@globex.example\",\"name\":\"Grace Test\"}}},\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807766941,\"priority\":\"low\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767069,\"requester_id\":39771850790941,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767197,\"subject\":\"Shipping delay\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767325,\"type\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767453,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771807767581,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771807767709,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767837,\"organization_id\":\"39771816522653\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771807767965,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771807768093,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807768221,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850872221,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:22Z\",\"event_type\":\"Audit\",\"id\":39771807766685,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG4P4DYB6GCT4EEPE64X0\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494722,\"updater_id\":39771850790941,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39771837285661,\"author_id\":39771807715229,\"body\":\"Delete then restore - first message\",\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Comment\",\"html_body\":\"

Delete then restore - first message

\",\"id\":39771837285789,\"plain_body\":\"Delete then restore - first message\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}},\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837285917,\"requester_id\":39771807715229,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837286045,\"subject\":\"Delete then restore\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837286173,\"priority\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837286301,\"type\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837286429,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771837286557,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771837286685,\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771837286813,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771837286941,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837287069,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39771837287197,\"previous_value\":\"0\",\"priority\":\"normal\",\"rel\":\"trigger\",\"revision_id\":1,\"via\":\"Rule\",\"via_reference_id\":39771663297821},{\"event_type\":\"Create\",\"id\":39771837288733,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771837285661,\"metadata\":{\"custom\":{},\"notifications_suppressed_for\":[39771807715229],\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG5ADY636VHEYGQ8ZMMMA\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494723,\"updater_id\":39771807715229,\"via\":\"Web service\"},{\"child_events\":[],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771868941853,\"metadata\":{\"custom\":{},\"parent_audit_id\":\"39771837285661\",\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494723,\"updater_id\":-1,\"via\":\"SLA\"},{\"child_events\":[{\"added_tags\":[\"system_email_notification_failure\"],\"event_type\":\"Change\",\"id\":39771900485661,\"removed_tags\":[],\"tags\":[\"system_email_notification_failure\"],\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771900485533,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494723,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"added_tags\":[\"system_email_notification_failure\"],\"event_type\":\"Change\",\"id\":39771807798685,\"removed_tags\":[],\"tags\":[\"beta\",\"billing\",\"system_email_notification_failure\",\"vip\"],\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771807798557,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494723,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39771807804061,\"author_id\":39771868857245,\"body\":\"Delete for good - first message\",\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Comment\",\"html_body\":\"

Delete for good - first message

\",\"id\":39771807804189,\"plain_body\":\"Delete for good - first message\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"ada@acme.example\",\"name\":\"Ada Test\"}}},\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804317,\"requester_id\":39771868857245,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804445,\"subject\":\"Delete for good\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804573,\"priority\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804701,\"type\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804829,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771807804957,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771807805085,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807805213,\"organization_id\":\"39771868840349\",\"via\":\"Web service\",\"via_reference_id\":null},{\"added_tags\":[\"beta\",\"vip\"],\"event_type\":\"Create\",\"id\":39771807805341,\"removed_tags\":[],\"tags\":[\"beta\",\"vip\"],\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771807805469,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771807805597,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807805725,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39771807805981,\"previous_value\":\"0\",\"priority\":\"normal\",\"rel\":\"trigger\",\"revision_id\":1,\"via\":\"Rule\",\"via_reference_id\":39771663297821},{\"event_type\":\"Create\",\"id\":39771850913565,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771807804061,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG5Z31PMS4WFFDCPBFYTJ\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494723,\"updater_id\":39771868857245,\"via\":\"Web service\"},{\"child_events\":[],\"created_at\":\"2026-10-08T21:25:24Z\",\"event_type\":\"Audit\",\"id\":39771868964637,\"metadata\":{\"custom\":{},\"parent_audit_id\":\"39771807804061\",\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494724,\"updater_id\":-1,\"via\":\"SLA\"},{\"child_events\":[{\"added_tags\":[\"system_email_notification_failure\"],\"event_type\":\"Change\",\"id\":39771807848093,\"removed_tags\":[],\"tags\":[\"beta\",\"system_email_notification_failure\",\"vip\"],\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:26Z\",\"event_type\":\"Audit\",\"id\":39771807847965,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494726,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39771900527901,\"author_id\":39771704393373,\"body\":\"Thanks Ada, looking into it.\",\"created_at\":\"2026-10-08T21:25:26Z\",\"event_type\":\"Comment\",\"html_body\":\"

Thanks Ada, looking into it.

\",\"id\":39771900528029,\"plain_body\":\"Thanks Ada, looking into it.\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"ada@acme.example\",\"name\":\"Ada Test\"}}},\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:26Z\",\"event_type\":\"Audit\",\"id\":39771900527901,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG8MPAC5RE26TR5ETG55F\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494726,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39771900536477,\"author_id\":39771704393373,\"body\":\"Internal: refund approved.\",\"created_at\":\"2026-10-08T21:25:27Z\",\"event_type\":\"Comment\",\"html_body\":\"

Internal: refund approved.

\",\"id\":39771837368221,\"plain_body\":\"Internal: refund approved.\",\"public\":false,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}},\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:27Z\",\"event_type\":\"Audit\",\"id\":39771900536477,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG98GB9P2B0CC5EACECPH\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494727,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39771851002013,\"author_id\":39771704393373,\"body\":\"Refund sent.\",\"created_at\":\"2026-10-08T21:25:27Z\",\"event_type\":\"Comment\",\"html_body\":\"

Refund sent.

\",\"id\":39771851002141,\"plain_body\":\"Refund sent.\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"ada@acme.example\",\"name\":\"Ada Test\"}}},\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39771851002269,\"previous_value\":\"open\",\"status\":\"solved\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771663254173\",\"event_type\":\"Change\",\"id\":39771851002397,\"previous_value\":\"39771695441053\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:27Z\",\"event_type\":\"Audit\",\"id\":39771851002013,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPG9SNAVH2HZSFC064P2S9\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494727,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__account__data_restrictions__delete_data\"},\"event_type\":\"Change\",\"id\":39771869047453,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__low\"},\"event_type\":\"Change\",\"id\":39771869047581,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771869047709,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771869047837,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39771869047965,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771869048093,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771869047325,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494728,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__order__not_delivered__late\"},\"event_type\":\"Change\",\"id\":39771869050141,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__medium\"},\"event_type\":\"Change\",\"id\":39771869050269,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771869050397,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771869050525,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39771869050653,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771869050781,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771869050013,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494728,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__account__data_restrictions__delete_data\"},\"event_type\":\"Change\",\"id\":39771837393053,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__medium\"},\"event_type\":\"Change\",\"id\":39771837393181,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771837393309,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771837393437,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39771837393565,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771837393693,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771837392925,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494728,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__billing__invoice__request\"},\"event_type\":\"Change\",\"id\":39771900566301,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__medium\"},\"event_type\":\"Change\",\"id\":39771900566429,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771900566557,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771900566685,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39771900566813,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771900566941,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771900566173,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494728,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39771884632221,\"author_id\":39771704393373,\"body\":\"Your card is ▇▇▇▇ ▇▇▇▇ ▇▇▇▇ ▇▇▇▇, right?\",\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Comment\",\"html_body\":\"

Your card is ▇▇▇▇ ▇▇▇▇ ▇▇▇▇ ▇▇▇▇, right?

\",\"id\":39771869091229,\"plain_body\":\"Your card is ▇▇▇▇ ▇▇▇▇ ▇▇▇▇ ▇▇▇▇, right?\",\"public\":false,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{}}},\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771884632221,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"email_id\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4EPGABTJ69RNQQDKKFBZ933\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494728,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[],\"created_at\":\"2026-10-08T21:25:31Z\",\"event_type\":\"Audit\",\"id\":39771837498141,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4EPGDYAMD794YH0BHPVGDG0\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494731,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39771851155741,\"previous_value\":\"open\",\"status\":\"deleted\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:32Z\",\"event_type\":\"Audit\",\"id\":39771851155485,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4EPGEY19B8M8JF44JWNGMB7\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494732,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39771808073757,\"previous_value\":\"open\",\"status\":\"deleted\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:33Z\",\"event_type\":\"Audit\",\"id\":39771808073629,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4EPGFK6TWAT5DSKFY1DG42J\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494733,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39771884866333,\"previous_value\":\"deleted\",\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:36Z\",\"event_type\":\"Audit\",\"id\":39771884866205,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4EPGJ5Q0YB1XGVFSK3V5B1S\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494736,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39771869427485,\"organization_id\":null,\"previous_value\":\"39771816522653\",\"via\":\"Web form\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:39Z\",\"event_type\":\"Audit\",\"id\":39771869427357,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494739,\"updater_id\":39771704393373,\"via\":\"Web form\"},{\"child_events\":[{\"comment_id\":\"39771869091229\",\"event_type\":\"CommentRedactionEvent\",\"id\":39771851684509,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:50Z\",\"event_type\":\"Audit\",\"id\":39771842098589,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4EPH06W19DTMNGWPDYC5A4R\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494750,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39776697750173,\"author_id\":39771704393373,\"body\":\"Reopening: refund bounced.\",\"created_at\":\"2026-10-09T05:52:55Z\",\"event_type\":\"Comment\",\"html_body\":\"

Reopening: refund bounced.

\",\"id\":39776697750301,\"plain_body\":\"Reopening: refund bounced.\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"ada@acme.example\",\"name\":\"Ada Test\"}}},\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39776697750429,\"previous_value\":\"high\",\"priority\":\"urgent\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39776697750557,\"previous_value\":\"solved\",\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Change\",\"id\":39776697750685,\"previous_value\":\"39771663254173\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:55Z\",\"event_type\":\"Audit\",\"id\":39776697750173,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4FKHFRQ2AGATXKJBF7X8X9P\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791525175,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39776679371933,\"author_id\":39776679352733,\"body\":\"My phone is ▇▇▇▇▇▇▇▇\",\"created_at\":\"2026-10-09T05:52:57Z\",\"event_type\":\"Comment\",\"html_body\":\"

My phone is ▇▇▇▇▇▇▇▇

\",\"id\":39776679372061,\"plain_body\":\"My phone is ▇▇▇▇▇▇▇▇\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"eve@e2e.example\",\"name\":\"Eve Test\"}}},\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679372189,\"subject\":\"E2E new ticket\",\"via\":\"Web service\",\"via_reference_id\":null},{\"added_tags\":[\"e2e\"],\"event_type\":\"Create\",\"id\":39776679372317,\"removed_tags\":[],\"tags\":[\"e2e\"],\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679372445,\"priority\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679372573,\"type\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679372701,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39776679372829,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39776679372957,\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39776679373085,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39776679373213,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679373341,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679373469,\"requester_id\":39776679352733,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39776679373725,\"previous_value\":\"0\",\"priority\":\"normal\",\"rel\":\"trigger\",\"revision_id\":1,\"via\":\"Rule\",\"via_reference_id\":39771663297821},{\"event_type\":\"Create\",\"id\":39776679382301,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:57Z\",\"event_type\":\"Audit\",\"id\":39776679371933,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"email_id\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4FKHGR3ZJT6PAC4ZG7ZFNQ8\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525177,\"updater_id\":39776679352733,\"via\":\"Web service\"},{\"child_events\":[],\"created_at\":\"2026-10-09T05:52:57Z\",\"event_type\":\"Audit\",\"id\":39776697834781,\"metadata\":{\"custom\":{},\"parent_audit_id\":\"39776679371933\",\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525177,\"updater_id\":-1,\"via\":\"SLA\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39776744103965,\"previous_value\":\"open\",\"status\":\"deleted\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:57Z\",\"event_type\":\"Audit\",\"id\":39776744103837,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4FKHJBQQH815YNNTG8F7M3N\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791525177,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"added_tags\":[\"system_email_notification_failure\"],\"event_type\":\"Change\",\"id\":39776697861277,\"removed_tags\":[],\"tags\":[\"e2e\",\"system_email_notification_failure\"],\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:58Z\",\"event_type\":\"Audit\",\"id\":39776697861149,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525178,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39776744136605,\"previous_value\":\"deleted\",\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:58Z\",\"event_type\":\"Audit\",\"id\":39776744136477,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4FKHK83WFM1VWRPK78MX7WE\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791525178,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__order__new__place\"},\"event_type\":\"Change\",\"id\":39776679476253,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__low\"},\"event_type\":\"Change\",\"id\":39776679476381,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__nl\"},\"event_type\":\"Change\",\"id\":39776679476509,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__low\"},\"event_type\":\"Change\",\"id\":39776679476637,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39776679476765,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39776679476893,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:53:00Z\",\"event_type\":\"Audit\",\"id\":39776679476125,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525180,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"comment_id\":\"39776679372061\",\"event_type\":\"CommentRedactionEvent\",\"id\":39776730477213,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:53:03Z\",\"event_type\":\"Audit\",\"id\":39776704082205,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4FKHQHHMTZN0P3A66Y834R1\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525183,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[],\"audit_id\":39777158770717,\"author_id\":39771704393373,\"body\":\"Done.\",\"created_at\":\"2026-10-09T06:18:01Z\",\"event_type\":\"Comment\",\"html_body\":\"

Done.

\",\"id\":39777158770845,\"plain_body\":\"Done.\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"eve@e2e.example\",\"name\":\"Eve Test\"}}},\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39777158770973,\"previous_value\":\"open\",\"status\":\"solved\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771663254173\",\"event_type\":\"Change\",\"id\":39777158771101,\"previous_value\":\"39771695441053\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:18:01Z\",\"event_type\":\"Audit\",\"id\":39777158770717,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4FMZF3T87BF2F78VA9MAEVX\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791526681,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777182482077,\"previous_value\":\"unoffered\",\"satisfaction_score\":\"offered\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:18:03Z\",\"event_type\":\"Audit\",\"id\":39777182481949,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791526683,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777171118365,\"previous_value\":\"offered\",\"satisfaction_score\":\"bad\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:18:21Z\",\"event_type\":\"Audit\",\"id\":39777171118109,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791526701,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777185887133,\"previous_value\":\"open\",\"status\":\"solved\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771663254173\",\"event_type\":\"Change\",\"id\":39777185887261,\"previous_value\":\"39771695441053\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:19:07Z\",\"event_type\":\"Audit\",\"id\":39777185887005,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4FN1FK1VXNHCCHV188MSBYE\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791526747,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777212542749,\"previous_value\":\"unoffered\",\"satisfaction_score\":\"offered\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:19:08Z\",\"event_type\":\"Audit\",\"id\":39777212542621,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791526748,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777174467101,\"previous_value\":\"bad\",\"satisfaction_score\":\"good\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:19:23Z\",\"event_type\":\"Audit\",\"id\":39777174466973,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791526763,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777255880861,\"previous_value\":\"open\",\"status\":\"solved\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771663254173\",\"event_type\":\"Change\",\"id\":39777255880989,\"previous_value\":\"39771695441053\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:21:57Z\",\"event_type\":\"Audit\",\"id\":39777255880733,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4FN6NEJMB6PN2DCXJVSN26F\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791526917,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777233847325,\"previous_value\":\"unoffered\",\"satisfaction_score\":\"offered\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:21:58Z\",\"event_type\":\"Audit\",\"id\":39777233847197,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791526918,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777264776989,\"previous_value\":\"offered\",\"satisfaction_score\":\"bad\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39777264777117,\"previous_value\":\"0\",\"satisfaction_reason_code\":\"1000\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:22:28Z\",\"event_type\":\"Audit\",\"id\":39777264776861,\"metadata\":{\"custom\":{},\"system\":{}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791526948,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"attachments\":[{\"content_type\":\"text/plain\",\"content_url\":\"https://stealth-37618.zendesk.com/attachments/token/v1U8jrpsT0hzr9IelbR1amWJY/?name=redacted.txt\",\"deleted\":false,\"file_name\":\"redacted.txt\",\"height\":null,\"id\":39779688809373,\"inline\":false,\"malware_access_override\":false,\"malware_scan_result\":\"malware_not_found\",\"mapped_content_url\":\"https://stealth-37618.zendesk.com/attachments/token/v1U8jrpsT0hzr9IelbR1amWJY/?name=redacted.txt\",\"size\":1,\"thumbnails\":[],\"url\":\"https://stealth-37618.zendesk.com/api/v2/attachments/39779688809373.json\",\"width\":null}],\"audit_id\":39779688511389,\"author_id\":39771704393373,\"body\":\"Here is the file\",\"created_at\":\"2026-10-09T07:57:17Z\",\"event_type\":\"Comment\",\"html_body\":\"

Here is the file

\",\"id\":39779688512797,\"plain_body\":\"Here is the file\",\"public\":true,\"type\":\"Comment\",\"via\":{\"channel\":\"api\",\"source\":{\"from\":{},\"rel\":null,\"to\":{\"address\":\"ada@acme.example\",\"name\":\"Ada Test\"}}},\"via_reference_id\":null}],\"created_at\":\"2026-10-09T07:57:17Z\",\"event_type\":\"Audit\",\"id\":39779688511389,\"metadata\":{\"custom\":{},\"system\":{\"client\":null,\"email_id\":null,\"ip_address\":null,\"latitude\":null,\"location\":null,\"longitude\":null,\"transaction_id\":\"01M4FTN6Z6M0X37K1PK5SPP8J0\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791532637,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"attachment_id\":\"39779688809373\",\"event_type\":\"AttachmentRedactionEvent\",\"id\":39779668251037,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T07:57:21Z\",\"event_type\":\"Audit\",\"id\":39779668250909,\"metadata\":{\"custom\":{},\"system\":{\"transaction_id\":\"01M4FTNB5JYS5Z7T8DX30T14YW\"}},\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791532641,\"updater_id\":39771704393373,\"via\":\"Web service\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f1119fae7e88-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 12:00:00 GMT", + "etag": "W/\"0ab02881386426f24612c2943dd1eac0\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "399", + "ratelimit-reset": "60", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=UTYaGWGo2HbdcOzc6B6J%2B%2FPRWMv2HoI1rFDg2mrodUrSeF64T9P3zq4DlnbbK0ilvtb%2FFhOCSXNc0gFP5u%2FtUqCbeZFo8Z7FhsS70%2BVP1wRiZIS3h2LipZ7fwgGbHplu2k5x71qEXUGgJXM%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "255", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/ticket_events", + "x-rate-limit": "400", + "x-rate-limit-remaining": "399", + "x-request-id": "a495f1119fae7e88-BOM", + "x-request-validation": "matched", + "x-runtime": "0.247525", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-pktsb", + "x-zendesk-zorg": "yes", + "zendesk-ratelimit-incremental-exports": "total=10; remaining=9; resets=60", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/users/cursor?include=identities&start_time=0\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/users/cursor?include=identities&start_time=0", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"after_cursor\":\"MTc5MTgwNDkwMi4wfHwzOTc3MTg1MDc5MDk0MXw=\",\"after_url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/users/cursor?cursor=MTc5MTgwNDkwMi4wfHwzOTc3MTg1MDc5MDk0MXw%3D&include=identities\",\"before_cursor\":null,\"before_url\":null,\"end_of_stream\":true,\"identities\":[{\"created_at\":\"2026-10-08T21:14:17Z\",\"deliverable_state\":\"deliverable\",\"id\":39771696925853,\"primary\":true,\"type\":\"email\",\"undeliverable_count\":0,\"updated_at\":\"2026-10-08T21:14:17Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771664570525/identities/39771696925853.json\",\"user_id\":39771664570525,\"value\":\"example@zendesk.com\",\"verification_method\":\"none\",\"verified\":false,\"verified_at\":null},{\"created_at\":\"2026-10-08T21:25:19Z\",\"deliverable_state\":\"deliverable\",\"id\":39771884397469,\"primary\":true,\"type\":\"email\",\"undeliverable_count\":0,\"updated_at\":\"2026-10-08T21:25:19Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771868857245/identities/39771884397469.json\",\"user_id\":39771868857245,\"value\":\"ada@acme.example\",\"verification_method\":\"none\",\"verified\":false,\"verified_at\":null},{\"created_at\":\"2026-10-08T21:25:20Z\",\"deliverable_state\":\"reserved_example\",\"id\":39771807715741,\"primary\":true,\"type\":\"email\",\"undeliverable_count\":0,\"updated_at\":\"2026-10-08T21:25:20Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771807715229/identities/39771807715741.json\",\"user_id\":39771807715229,\"value\":\"linus@example.com\",\"verification_method\":\"none\",\"verified\":false,\"verified_at\":null},{\"created_at\":\"2026-10-09T05:52:56Z\",\"deliverable_state\":\"deliverable\",\"id\":39776711126685,\"primary\":true,\"type\":\"email\",\"undeliverable_count\":0,\"updated_at\":\"2026-10-09T05:52:56Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39776679352733/identities/39776711126685.json\",\"user_id\":39776679352733,\"value\":\"eve@e2e.example\",\"verification_method\":\"none\",\"verified\":false,\"verified_at\":null},{\"created_at\":\"2026-10-08T21:13:18Z\",\"deliverable_state\":\"deliverable\",\"id\":39771704393501,\"primary\":true,\"type\":\"email\",\"undeliverable_count\":0,\"updated_at\":\"2026-10-08T21:13:49Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771704393373/identities/39771704393501.json\",\"user_id\":39771704393373,\"value\":\"augment_temblor_3o@icloud.com\",\"verification_method\":\"full\",\"verified\":true,\"verified_at\":\"2026-10-08T21:13:49Z\"},{\"created_at\":\"2026-10-08T21:25:20Z\",\"deliverable_state\":\"deliverable\",\"id\":39771850791197,\"primary\":true,\"type\":\"email\",\"undeliverable_count\":0,\"updated_at\":\"2026-10-08T21:25:20Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771850790941/identities/39771850791197.json\",\"user_id\":39771850790941,\"value\":\"grace@globex.example\",\"verification_method\":\"none\",\"verified\":false,\"verified_at\":null},{\"created_at\":\"2026-10-12T11:35:02Z\",\"deliverable_state\":\"reserved_example\",\"id\":39845182942621,\"primary\":false,\"type\":\"email\",\"undeliverable_count\":0,\"updated_at\":\"2026-10-12T11:35:02Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771850790941/identities/39845182942621.json\",\"user_id\":39771850790941,\"value\":\"second.address@example.com\",\"verification_method\":\"none\",\"verified\":false,\"verified_at\":null}],\"users\":[{\"active\":true,\"alias\":null,\"created_at\":\"2026-10-08T21:14:17Z\",\"custom_role_id\":null,\"default_group_id\":null,\"details\":null,\"email\":\"user@example.com\",\"external_id\":null,\"iana_time_zone\":\"Asia/Kolkata\",\"id\":39771664570525,\"is_billing_admin\":null,\"last_login_at\":null,\"locale\":\"en-US\",\"locale_id\":1,\"moderator\":false,\"name\":\"Customer\",\"notes\":null,\"only_private_comments\":false,\"organization_id\":null,\"phone\":null,\"photo\":null,\"report_csv\":false,\"restricted_agent\":false,\"role\":\"end-user\",\"role_type\":null,\"shared\":false,\"shared_agent\":false,\"shared_phone_number\":null,\"signature\":null,\"suspended\":false,\"suspension_details\":null,\"tags\":[],\"ticket_restriction\":\"requested\",\"time_zone\":\"Asia/Kolkata\",\"two_factor_auth_enabled\":null,\"updated_at\":\"2026-10-08T21:14:17Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771664570525.json\",\"user_fields\":{\"plan_tier\":null},\"verified\":false},{\"active\":true,\"alias\":null,\"created_at\":\"2026-10-08T21:25:19Z\",\"custom_role_id\":null,\"default_group_id\":null,\"details\":null,\"email\":\"user@example.com\",\"external_id\":null,\"iana_time_zone\":\"Asia/Kolkata\",\"id\":39771868857245,\"is_billing_admin\":null,\"last_login_at\":null,\"locale\":\"en-US\",\"locale_id\":1,\"moderator\":false,\"name\":\"Ada Test\",\"notes\":null,\"only_private_comments\":false,\"organization_id\":39771868840349,\"phone\":null,\"photo\":null,\"report_csv\":false,\"restricted_agent\":false,\"role\":\"end-user\",\"role_type\":null,\"shared\":false,\"shared_agent\":false,\"shared_phone_number\":null,\"signature\":null,\"suspended\":false,\"suspension_details\":null,\"tags\":[\"beta\"],\"ticket_restriction\":\"requested\",\"time_zone\":\"Asia/Kolkata\",\"two_factor_auth_enabled\":null,\"updated_at\":\"2026-10-08T21:25:19Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771868857245.json\",\"user_fields\":{\"plan_tier\":null},\"verified\":false},{\"active\":true,\"alias\":null,\"created_at\":\"2026-10-08T21:25:20Z\",\"custom_role_id\":null,\"default_group_id\":null,\"details\":null,\"email\":\"user@example.com\",\"external_id\":null,\"iana_time_zone\":\"Asia/Kolkata\",\"id\":39771807715229,\"is_billing_admin\":null,\"last_login_at\":null,\"locale\":\"en-US\",\"locale_id\":1,\"moderator\":false,\"name\":\"Linus Test\",\"notes\":null,\"only_private_comments\":false,\"organization_id\":null,\"phone\":null,\"photo\":null,\"report_csv\":false,\"restricted_agent\":false,\"role\":\"end-user\",\"role_type\":null,\"shared\":false,\"shared_agent\":false,\"shared_phone_number\":null,\"signature\":null,\"suspended\":false,\"suspension_details\":null,\"tags\":[],\"ticket_restriction\":\"requested\",\"time_zone\":\"Asia/Kolkata\",\"two_factor_auth_enabled\":null,\"updated_at\":\"2026-10-08T21:25:20Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771807715229.json\",\"user_fields\":{\"plan_tier\":null},\"verified\":false},{\"active\":false,\"alias\":null,\"created_at\":\"2026-10-08T21:25:51Z\",\"custom_role_id\":null,\"default_group_id\":null,\"details\":null,\"email\":\"user@example.com\",\"external_id\":null,\"iana_time_zone\":\"Asia/Kolkata\",\"id\":39771901177501,\"is_billing_admin\":null,\"last_login_at\":null,\"locale\":\"en-US\",\"locale_id\":1,\"moderator\":false,\"name\":\"Temp Delete\",\"notes\":null,\"only_private_comments\":false,\"organization_id\":null,\"permanently_deleted\":false,\"phone\":null,\"photo\":null,\"report_csv\":false,\"restricted_agent\":false,\"role\":\"end-user\",\"role_type\":null,\"shared\":false,\"shared_agent\":false,\"shared_phone_number\":null,\"signature\":null,\"suspended\":false,\"suspension_details\":null,\"tags\":[],\"ticket_restriction\":\"requested\",\"time_zone\":\"Asia/Kolkata\",\"two_factor_auth_enabled\":null,\"updated_at\":\"2026-10-08T21:25:51Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771901177501.json\",\"user_fields\":{\"plan_tier\":null},\"verified\":false},{\"active\":true,\"alias\":null,\"created_at\":\"2026-10-09T05:52:56Z\",\"custom_role_id\":null,\"default_group_id\":null,\"details\":null,\"email\":\"user@example.com\",\"external_id\":null,\"iana_time_zone\":\"Asia/Kolkata\",\"id\":39776679352733,\"is_billing_admin\":null,\"last_login_at\":null,\"locale\":\"en-US\",\"locale_id\":1,\"moderator\":false,\"name\":\"Eve Test\",\"notes\":null,\"only_private_comments\":false,\"organization_id\":null,\"phone\":null,\"photo\":null,\"report_csv\":false,\"restricted_agent\":false,\"role\":\"end-user\",\"role_type\":null,\"shared\":false,\"shared_agent\":false,\"shared_phone_number\":null,\"signature\":null,\"suspended\":false,\"suspension_details\":null,\"tags\":[],\"ticket_restriction\":\"requested\",\"time_zone\":\"Asia/Kolkata\",\"two_factor_auth_enabled\":null,\"updated_at\":\"2026-10-09T05:52:57Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39776679352733.json\",\"user_fields\":{\"plan_tier\":null},\"verified\":false},{\"active\":true,\"alias\":null,\"created_at\":\"2026-10-08T21:13:18Z\",\"custom_role_id\":39771663123229,\"default_group_id\":39771663256989,\"details\":null,\"email\":\"user@example.com\",\"external_id\":null,\"iana_time_zone\":\"Asia/Kolkata\",\"id\":39771704393373,\"is_billing_admin\":true,\"last_login_at\":\"2026-10-11T20:49:48Z\",\"locale\":\"en-US\",\"locale_id\":1,\"moderator\":true,\"name\":\"John Doh\",\"notes\":null,\"only_private_comments\":false,\"organization_id\":39771695451037,\"phone\":null,\"photo\":null,\"report_csv\":true,\"restricted_agent\":false,\"role\":\"admin\",\"role_type\":4,\"shared\":false,\"shared_agent\":false,\"shared_phone_number\":null,\"signature\":null,\"suspended\":false,\"suspension_details\":null,\"tags\":[],\"ticket_restriction\":null,\"time_zone\":\"Asia/Kolkata\",\"two_factor_auth_enabled\":false,\"updated_at\":\"2026-10-12T11:34:51Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771704393373.json\",\"user_fields\":{\"plan_tier\":null},\"verified\":true},{\"active\":true,\"alias\":null,\"created_at\":\"2026-10-08T21:25:20Z\",\"custom_role_id\":null,\"default_group_id\":null,\"details\":null,\"email\":\"user@example.com\",\"external_id\":null,\"iana_time_zone\":\"Asia/Kolkata\",\"id\":39771850790941,\"is_billing_admin\":null,\"last_login_at\":null,\"locale\":\"en-US\",\"locale_id\":1,\"moderator\":false,\"name\":\"Grace Test\",\"notes\":null,\"only_private_comments\":false,\"organization_id\":null,\"phone\":null,\"photo\":null,\"report_csv\":false,\"restricted_agent\":false,\"role\":\"end-user\",\"role_type\":null,\"shared\":false,\"shared_agent\":false,\"shared_phone_number\":null,\"signature\":null,\"suspended\":false,\"suspension_details\":null,\"tags\":[\"pro\"],\"ticket_restriction\":\"requested\",\"time_zone\":\"Asia/Kolkata\",\"two_factor_auth_enabled\":null,\"updated_at\":\"2026-10-12T11:35:02Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771850790941.json\",\"user_fields\":{\"plan_tier\":\"pro\"},\"verified\":false}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f1167b707e88-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 12:00:01 GMT", + "etag": "W/\"14f5b7811349641b3d585caf6f1275b5\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "398", + "ratelimit-reset": "59", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=ZUNKNqLXOgYKjhgw0jeM%2FXs7LBOeW3e7P1u6ApN681Xw5Kt5VBA4ONWGW3MdL4kuUsGwGrw1R2Hlhz%2B0T3EaftBowl3bWmeKDALBdybiAM3VSsTbcxNmZ5DrMyUIujFod%2FJ09KZsuXcRWTo%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept, Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "187", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/users/cursor", + "x-rate-limit": "400", + "x-rate-limit-remaining": "398", + "x-request-id": "a495f1167b707e88-DUB", + "x-request-validation": "matched", + "x-runtime": "0.182969", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-pktsb", + "x-zendesk-zorg": "yes", + "zendesk-ratelimit-incremental-exports-cursor": "total=20; remaining=19; resets=59", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/users/cursor?include=identities&start_time=1791494340\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/users/cursor?include=identities&start_time=1791494340", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"after_cursor\":\"MTc5MTgwNDkwMi4wfHwzOTc3MTg1MDc5MDk0MXw=\",\"after_url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/users/cursor?cursor=MTc5MTgwNDkwMi4wfHwzOTc3MTg1MDc5MDk0MXw%3D&include=identities\",\"before_cursor\":null,\"before_url\":null,\"end_of_stream\":true,\"identities\":[{\"created_at\":\"2026-10-08T21:25:19Z\",\"deliverable_state\":\"deliverable\",\"id\":39771884397469,\"primary\":true,\"type\":\"email\",\"undeliverable_count\":0,\"updated_at\":\"2026-10-08T21:25:19Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771868857245/identities/39771884397469.json\",\"user_id\":39771868857245,\"value\":\"ada@acme.example\",\"verification_method\":\"none\",\"verified\":false,\"verified_at\":null},{\"created_at\":\"2026-10-08T21:25:20Z\",\"deliverable_state\":\"reserved_example\",\"id\":39771807715741,\"primary\":true,\"type\":\"email\",\"undeliverable_count\":0,\"updated_at\":\"2026-10-08T21:25:20Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771807715229/identities/39771807715741.json\",\"user_id\":39771807715229,\"value\":\"linus@example.com\",\"verification_method\":\"none\",\"verified\":false,\"verified_at\":null},{\"created_at\":\"2026-10-09T05:52:56Z\",\"deliverable_state\":\"deliverable\",\"id\":39776711126685,\"primary\":true,\"type\":\"email\",\"undeliverable_count\":0,\"updated_at\":\"2026-10-09T05:52:56Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39776679352733/identities/39776711126685.json\",\"user_id\":39776679352733,\"value\":\"eve@e2e.example\",\"verification_method\":\"none\",\"verified\":false,\"verified_at\":null},{\"created_at\":\"2026-10-08T21:13:18Z\",\"deliverable_state\":\"deliverable\",\"id\":39771704393501,\"primary\":true,\"type\":\"email\",\"undeliverable_count\":0,\"updated_at\":\"2026-10-08T21:13:49Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771704393373/identities/39771704393501.json\",\"user_id\":39771704393373,\"value\":\"augment_temblor_3o@icloud.com\",\"verification_method\":\"full\",\"verified\":true,\"verified_at\":\"2026-10-08T21:13:49Z\"},{\"created_at\":\"2026-10-08T21:25:20Z\",\"deliverable_state\":\"deliverable\",\"id\":39771850791197,\"primary\":true,\"type\":\"email\",\"undeliverable_count\":0,\"updated_at\":\"2026-10-08T21:25:20Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771850790941/identities/39771850791197.json\",\"user_id\":39771850790941,\"value\":\"grace@globex.example\",\"verification_method\":\"none\",\"verified\":false,\"verified_at\":null},{\"created_at\":\"2026-10-12T11:35:02Z\",\"deliverable_state\":\"reserved_example\",\"id\":39845182942621,\"primary\":false,\"type\":\"email\",\"undeliverable_count\":0,\"updated_at\":\"2026-10-12T11:35:02Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771850790941/identities/39845182942621.json\",\"user_id\":39771850790941,\"value\":\"second.address@example.com\",\"verification_method\":\"none\",\"verified\":false,\"verified_at\":null}],\"users\":[{\"active\":true,\"alias\":null,\"created_at\":\"2026-10-08T21:25:19Z\",\"custom_role_id\":null,\"default_group_id\":null,\"details\":null,\"email\":\"user@example.com\",\"external_id\":null,\"iana_time_zone\":\"Asia/Kolkata\",\"id\":39771868857245,\"is_billing_admin\":null,\"last_login_at\":null,\"locale\":\"en-US\",\"locale_id\":1,\"moderator\":false,\"name\":\"Ada Test\",\"notes\":null,\"only_private_comments\":false,\"organization_id\":39771868840349,\"phone\":null,\"photo\":null,\"report_csv\":false,\"restricted_agent\":false,\"role\":\"end-user\",\"role_type\":null,\"shared\":false,\"shared_agent\":false,\"shared_phone_number\":null,\"signature\":null,\"suspended\":false,\"suspension_details\":null,\"tags\":[\"beta\"],\"ticket_restriction\":\"requested\",\"time_zone\":\"Asia/Kolkata\",\"two_factor_auth_enabled\":null,\"updated_at\":\"2026-10-08T21:25:19Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771868857245.json\",\"user_fields\":{\"plan_tier\":null},\"verified\":false},{\"active\":true,\"alias\":null,\"created_at\":\"2026-10-08T21:25:20Z\",\"custom_role_id\":null,\"default_group_id\":null,\"details\":null,\"email\":\"user@example.com\",\"external_id\":null,\"iana_time_zone\":\"Asia/Kolkata\",\"id\":39771807715229,\"is_billing_admin\":null,\"last_login_at\":null,\"locale\":\"en-US\",\"locale_id\":1,\"moderator\":false,\"name\":\"Linus Test\",\"notes\":null,\"only_private_comments\":false,\"organization_id\":null,\"phone\":null,\"photo\":null,\"report_csv\":false,\"restricted_agent\":false,\"role\":\"end-user\",\"role_type\":null,\"shared\":false,\"shared_agent\":false,\"shared_phone_number\":null,\"signature\":null,\"suspended\":false,\"suspension_details\":null,\"tags\":[],\"ticket_restriction\":\"requested\",\"time_zone\":\"Asia/Kolkata\",\"two_factor_auth_enabled\":null,\"updated_at\":\"2026-10-08T21:25:20Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771807715229.json\",\"user_fields\":{\"plan_tier\":null},\"verified\":false},{\"active\":false,\"alias\":null,\"created_at\":\"2026-10-08T21:25:51Z\",\"custom_role_id\":null,\"default_group_id\":null,\"details\":null,\"email\":\"user@example.com\",\"external_id\":null,\"iana_time_zone\":\"Asia/Kolkata\",\"id\":39771901177501,\"is_billing_admin\":null,\"last_login_at\":null,\"locale\":\"en-US\",\"locale_id\":1,\"moderator\":false,\"name\":\"Temp Delete\",\"notes\":null,\"only_private_comments\":false,\"organization_id\":null,\"permanently_deleted\":false,\"phone\":null,\"photo\":null,\"report_csv\":false,\"restricted_agent\":false,\"role\":\"end-user\",\"role_type\":null,\"shared\":false,\"shared_agent\":false,\"shared_phone_number\":null,\"signature\":null,\"suspended\":false,\"suspension_details\":null,\"tags\":[],\"ticket_restriction\":\"requested\",\"time_zone\":\"Asia/Kolkata\",\"two_factor_auth_enabled\":null,\"updated_at\":\"2026-10-08T21:25:51Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771901177501.json\",\"user_fields\":{\"plan_tier\":null},\"verified\":false},{\"active\":true,\"alias\":null,\"created_at\":\"2026-10-09T05:52:56Z\",\"custom_role_id\":null,\"default_group_id\":null,\"details\":null,\"email\":\"user@example.com\",\"external_id\":null,\"iana_time_zone\":\"Asia/Kolkata\",\"id\":39776679352733,\"is_billing_admin\":null,\"last_login_at\":null,\"locale\":\"en-US\",\"locale_id\":1,\"moderator\":false,\"name\":\"Eve Test\",\"notes\":null,\"only_private_comments\":false,\"organization_id\":null,\"phone\":null,\"photo\":null,\"report_csv\":false,\"restricted_agent\":false,\"role\":\"end-user\",\"role_type\":null,\"shared\":false,\"shared_agent\":false,\"shared_phone_number\":null,\"signature\":null,\"suspended\":false,\"suspension_details\":null,\"tags\":[],\"ticket_restriction\":\"requested\",\"time_zone\":\"Asia/Kolkata\",\"two_factor_auth_enabled\":null,\"updated_at\":\"2026-10-09T05:52:57Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39776679352733.json\",\"user_fields\":{\"plan_tier\":null},\"verified\":false},{\"active\":true,\"alias\":null,\"created_at\":\"2026-10-08T21:13:18Z\",\"custom_role_id\":39771663123229,\"default_group_id\":39771663256989,\"details\":null,\"email\":\"user@example.com\",\"external_id\":null,\"iana_time_zone\":\"Asia/Kolkata\",\"id\":39771704393373,\"is_billing_admin\":true,\"last_login_at\":\"2026-10-11T20:49:48Z\",\"locale\":\"en-US\",\"locale_id\":1,\"moderator\":true,\"name\":\"John Doh\",\"notes\":null,\"only_private_comments\":false,\"organization_id\":39771695451037,\"phone\":null,\"photo\":null,\"report_csv\":true,\"restricted_agent\":false,\"role\":\"admin\",\"role_type\":4,\"shared\":false,\"shared_agent\":false,\"shared_phone_number\":null,\"signature\":null,\"suspended\":false,\"suspension_details\":null,\"tags\":[],\"ticket_restriction\":null,\"time_zone\":\"Asia/Kolkata\",\"two_factor_auth_enabled\":false,\"updated_at\":\"2026-10-12T11:34:51Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771704393373.json\",\"user_fields\":{\"plan_tier\":null},\"verified\":true},{\"active\":true,\"alias\":null,\"created_at\":\"2026-10-08T21:25:20Z\",\"custom_role_id\":null,\"default_group_id\":null,\"details\":null,\"email\":\"user@example.com\",\"external_id\":null,\"iana_time_zone\":\"Asia/Kolkata\",\"id\":39771850790941,\"is_billing_admin\":null,\"last_login_at\":null,\"locale\":\"en-US\",\"locale_id\":1,\"moderator\":false,\"name\":\"Grace Test\",\"notes\":null,\"only_private_comments\":false,\"organization_id\":null,\"phone\":null,\"photo\":null,\"report_csv\":false,\"restricted_agent\":false,\"role\":\"end-user\",\"role_type\":null,\"shared\":false,\"shared_agent\":false,\"shared_phone_number\":null,\"signature\":null,\"suspended\":false,\"suspension_details\":null,\"tags\":[\"pro\"],\"ticket_restriction\":\"requested\",\"time_zone\":\"Asia/Kolkata\",\"two_factor_auth_enabled\":null,\"updated_at\":\"2026-10-12T11:35:02Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/users/39771850790941.json\",\"user_fields\":{\"plan_tier\":\"pro\"},\"verified\":false}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f1294f827e88-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 12:00:04 GMT", + "etag": "W/\"50b13a38ad1e68df3625304b2c9074d5\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "397", + "ratelimit-reset": "56", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=IzYDOXhh0pskmamBAxpoX0ykcnVnPYo7VsIP6FsOZaesAGnIpwxcqeNVcj6VHiCMpxNMf3AXDnE6KIiQ553i3UC67w%2FXOsmQ1%2FC6CXjNPn9IYK8JQhOVtwmvxeXH%2BBGMYZTATgsUE0UmbJY%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept, Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "118", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/users/cursor", + "x-rate-limit": "400", + "x-rate-limit-remaining": "397", + "x-request-id": "a495f1294f827e88-DUB", + "x-request-validation": "matched", + "x-runtime": "0.114880", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-pktsb", + "x-zendesk-zorg": "yes", + "zendesk-ratelimit-incremental-exports-cursor": "total=20; remaining=18; resets=56", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/organizations?start_time=0\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/organizations?start_time=0", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"count\":3,\"end_of_stream\":true,\"end_time\":1791804902,\"next_page\":\"https://stealth-37618.zendesk.com/api/v2/incremental/organizations.json?start_time=1791804902\",\"organizations\":[{\"children_count\":0,\"created_at\":\"2026-10-08T21:13:25Z\",\"deleted_at\":null,\"details\":null,\"domain_names\":[],\"external_id\":null,\"group_id\":null,\"id\":39771695451037,\"name\":\"Stealth\",\"notes\":null,\"organization_fields\":{\"account_manager\":null},\"shared_comments\":false,\"shared_tickets\":false,\"tags\":[],\"ticket_restriction\":\"restricted\",\"updated_at\":\"2026-10-08T21:13:25Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/organizations/39771695451037.json\"},{\"children_count\":0,\"created_at\":\"2026-10-08T21:25:19Z\",\"deleted_at\":\"2026-10-08T21:25:36Z\",\"details\":null,\"domain_names\":[],\"external_id\":null,\"group_id\":null,\"id\":39771816522653,\"name\":\"39771816522653_deleted_Globex Test Co\",\"notes\":null,\"organization_fields\":{\"account_manager\":null},\"shared_comments\":false,\"shared_tickets\":false,\"tags\":[],\"ticket_restriction\":\"restricted\",\"updated_at\":\"2026-10-08T21:25:36Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/organizations/39771816522653.json\"},{\"children_count\":0,\"created_at\":\"2026-10-08T21:25:18Z\",\"deleted_at\":null,\"details\":null,\"domain_names\":[\"acme.example\"],\"external_id\":null,\"group_id\":null,\"id\":39771868840349,\"name\":\"Acme Test Co\",\"notes\":\"test\",\"organization_fields\":{\"account_manager\":\"Jo Owner\"},\"shared_comments\":false,\"shared_tickets\":false,\"tags\":[\"vip\",\"e2e\"],\"ticket_restriction\":\"restricted\",\"updated_at\":\"2026-10-12T11:35:02Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/organizations/39771868840349.json\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f1369a3f7e88-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 12:00:06 GMT", + "etag": "W/\"69141a330992ef6f965a7345dc8ec9f8\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "396", + "ratelimit-reset": "54", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=WmV65RrxLzpchRIWAU8l7hIfkGP6yFGLtC4HrhE2kfAP%2FHWi8IARy3h7DRMnSjAX3epUSJt%2BHkphI3U%2BAoTW5tNKFf%2F9w3nKyp3a4nYG5QinCnU%2FXU01G4au%2BFRsx2OyP2skCkeeibQ4x2c%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "274", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/organizations", + "x-rate-limit": "400", + "x-rate-limit-remaining": "396", + "x-request-id": "a495f1369a3f7e88-DUB", + "x-request-validation": "matched", + "x-runtime": "0.269047", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-n8gfc", + "x-zendesk-zorg": "yes", + "zendesk-ratelimit-incremental-exports": "total=10; remaining=8; resets=54", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/organizations?start_time=1791494340\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/organizations?start_time=1791494340", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"count\":2,\"end_of_stream\":true,\"end_time\":1791804902,\"next_page\":\"https://stealth-37618.zendesk.com/api/v2/incremental/organizations.json?start_time=1791804902\",\"organizations\":[{\"children_count\":0,\"created_at\":\"2026-10-08T21:25:19Z\",\"deleted_at\":\"2026-10-08T21:25:36Z\",\"details\":null,\"domain_names\":[],\"external_id\":null,\"group_id\":null,\"id\":39771816522653,\"name\":\"39771816522653_deleted_Globex Test Co\",\"notes\":null,\"organization_fields\":{\"account_manager\":null},\"shared_comments\":false,\"shared_tickets\":false,\"tags\":[],\"ticket_restriction\":\"restricted\",\"updated_at\":\"2026-10-08T21:25:36Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/organizations/39771816522653.json\"},{\"children_count\":0,\"created_at\":\"2026-10-08T21:25:18Z\",\"deleted_at\":null,\"details\":null,\"domain_names\":[\"acme.example\"],\"external_id\":null,\"group_id\":null,\"id\":39771868840349,\"name\":\"Acme Test Co\",\"notes\":\"test\",\"organization_fields\":{\"account_manager\":\"Jo Owner\"},\"shared_comments\":false,\"shared_tickets\":false,\"tags\":[\"vip\",\"e2e\"],\"ticket_restriction\":\"restricted\",\"updated_at\":\"2026-10-12T11:35:02Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/organizations/39771868840349.json\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f15c8f524808-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 12:00:12 GMT", + "etag": "W/\"9e4b82a164b2a113a4c0c9e252473a4a\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "395", + "ratelimit-reset": "48", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Za3C%2Fa2CbP3ORhqhNnE5rfO2aOOVio0R4Ct2EMqa1Kqp3TgonGWb4ZlGqIlcQ3mt%2F1gDeSbDSkNk%2FWFNbrwLQuDsiNjFsW9Mn7j5LrdUizgoW5YTqjFZo7NEvl5nyUahu%2FSH71og8p%2B5DDU%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "404", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/organizations", + "x-rate-limit": "400", + "x-rate-limit-remaining": "395", + "x-request-id": "a495f15c8f524808-BOM", + "x-request-validation": "matched", + "x-runtime": "0.399116", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-qlq82", + "x-zendesk-zorg": "yes", + "zendesk-ratelimit-incremental-exports": "total=10; remaining=7; resets=48", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/guide/survey_responses?page%5Bsize%5D=50&sort=id\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/guide/survey_responses?page%5Bsize%5D=50&sort=id", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"meta\":{\"after_cursor\":\"01M4FN6P3TCFJAF93WYDFZ4KKX\",\"before_cursor\":\"01M4FMZGKXZY6T2TJTER5PJWV7\",\"has_more\":false},\"survey_responses\":[{\"answers\":[{\"created_at\":\"2026-10-09T06:18:21.129Z\",\"question\":{\"id\":\"01M4FMXA2ZKKW0SW4G3MA6FBV9\",\"sub_type\":\"customer_satisfaction\",\"type\":\"rating_scale_numeric\"},\"rating\":5,\"rating_category\":\"good\",\"type\":\"rating_scale\",\"updated_at\":\"2026-10-09T06:19:22.892Z\"},{\"created_at\":\"2026-10-09T06:18:21.129Z\",\"question\":{\"id\":\"01M4FMXA30EKPSYPJRYHK3NJPQ\",\"type\":\"open_ended\"},\"type\":\"open_ended\",\"updated_at\":\"2026-10-09T06:18:21.129Z\",\"value\":\"Took too long to get a reply.\"}],\"expires_at\":\"2026-11-06T06:18:03.261Z\",\"id\":\"01M4FMZGKXZY6T2TJTER5PJWV7\",\"responder_id\":\"39776679352733\",\"subject_zrns\":[\"zen:ticket:6\"],\"subjects\":[{\"id\":\"6\",\"type\":\"ticket\",\"zrn\":\"zen:ticket:6\"}],\"survey\":{\"id\":\"01M4FMXHBW5WHJ6D7BEMA0RZC5\",\"state\":\"enabled\",\"version\":1}},{\"answers\":[],\"expires_at\":\"2026-11-06T06:19:08.372Z\",\"id\":\"01M4FN1G6MN73MBPWFKV1N9XF9\",\"responder_id\":\"39771868857245\",\"subject_zrns\":[\"zen:ticket:2\"],\"subjects\":[{\"id\":\"2\",\"type\":\"ticket\",\"zrn\":\"zen:ticket:2\"}],\"survey\":{\"id\":\"01M4FMXHBW5WHJ6D7BEMA0RZC5\",\"state\":\"enabled\",\"version\":1}},{\"answers\":[{\"created_at\":\"2026-10-09T06:22:28.650Z\",\"question\":{\"id\":\"01M4FMXA2ZKKW0SW4G3MA6FBV9\",\"sub_type\":\"customer_satisfaction\",\"type\":\"rating_scale_numeric\"},\"rating\":1,\"rating_category\":\"bad\",\"type\":\"rating_scale\",\"updated_at\":\"2026-10-09T06:22:28.650Z\"},{\"created_at\":\"2026-10-09T06:22:28.650Z\",\"question\":{\"id\":\"01M4FMXA2ZBXBT4CSMM2QAAEV7\",\"type\":\"closed_ended\"},\"selections\":[{\"option_id\":\"01M4FMXA30Z079V8E8P0BM67D9\",\"type\":\"predefined\"}],\"type\":\"closed_ended\",\"updated_at\":\"2026-10-09T06:22:28.650Z\"},{\"created_at\":\"2026-10-09T06:22:28.650Z\",\"question\":{\"id\":\"01M4FMXA30EKPSYPJRYHK3NJPQ\",\"type\":\"open_ended\"},\"type\":\"skipped\",\"updated_at\":\"2026-10-09T06:22:28.650Z\"}],\"expires_at\":\"2026-11-06T06:21:58.266Z\",\"id\":\"01M4FN6P3TCFJAF93WYDFZ4KKX\",\"responder_id\":\"39771850790941\",\"subject_zrns\":[\"zen:ticket:3\"],\"subjects\":[{\"id\":\"3\",\"type\":\"ticket\",\"zrn\":\"zen:ticket:3\"}],\"survey\":{\"id\":\"01M4FMXHBW5WHJ6D7BEMA0RZC5\",\"state\":\"enabled\",\"version\":1}}]}", + "headers": { + "access-control-allow-origin": "*", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f160aae64808-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 12:00:13 GMT", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=eZpFKv3KYkFTJCe4Bpzc9Qwkf8WQqzpVaokv%2BUzTF1Q7d0bhYQnAvUG1ejZGw7dp%2B6ucMc8fbVvAdSUPDNMwjjGihxZguT0nEtTbfcVbQerzNw2UFoWkDM2TG4WnBNDdQfKRTDWosVVmBf4%3D\"}]}", + "server": "cloudflare", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-envoy-decorator-operation": "/api/v2/guide", + "x-envoy-upstream-service-time": "238", + "x-openapi-route-path": "/api/v2/guide/survey_responses", + "x-rate-limit": "400", + "x-rate-limit-remaining": "399", + "x-request-id": "a495f160aae64808-BOM", + "x-request-validation": "matched", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v617", + "x-zendesk-zorg": "yes", + "zendesk-route": "/api/v2/guide/survey_responses", + "zendesk-service": "guide-rest" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events?start_time=0\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events?start_time=0", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"count\":45,\"end_of_stream\":true,\"end_time\":1791532641,\"next_page\":\"https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events.json?start_time=1791532641\",\"ticket_events\":[{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39771664580381,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664580509,\"priority\":\"normal\",\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664580637,\"subject\":\"SAMPLE: Unable to log in after password reset\",\"via\":\"Mail\",\"via_reference_id\":null},{\"added_tags\":[\"zendesk_accelerated_setup\"],\"event_type\":\"Create\",\"id\":39771664580765,\"removed_tags\":[],\"tags\":[\"zendesk_accelerated_setup\"],\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664580893,\"type\":null,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664581021,\"status\":\"open\",\"via\":\"Mail\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771664581149,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771664581277,\"via\":\"Mail\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771664581405,\"via\":\"Mail\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771664581533,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664581661,\"ticket_form_id\":\"39771663206685\",\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664581789,\"requester_id\":39771664570525,\"via\":\"Mail\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771664589853,\"sla_policy\":\"Set first reply time\",\"via\":\"Mail\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:14:17Z\",\"event_type\":\"Audit\",\"id\":39771664580253,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":1,\"timestamp\":1791494057,\"updater_id\":39771664570525,\"via\":\"Mail\"},{\"child_events\":[],\"created_at\":\"2026-10-08T21:14:17Z\",\"event_type\":\"Audit\",\"id\":39771681970845,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":1,\"timestamp\":1791494057,\"updater_id\":-1,\"via\":\"SLA\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__software__login_issues__cant_login\"},\"event_type\":\"Change\",\"id\":39771682107805,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__high\"},\"event_type\":\"Change\",\"id\":39771682107933,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771682108061,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771682108189,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__negative\"},\"event_type\":\"Change\",\"id\":39771682108317,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771682108445,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:14:20Z\",\"event_type\":\"Audit\",\"id\":39771682107677,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":1,\"timestamp\":1791494060,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39771850845853,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850845981,\"priority\":\"high\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850846109,\"requester_id\":39771868857245,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850846237,\"subject\":\"Billing question\",\"via\":\"Web service\",\"via_reference_id\":null},{\"added_tags\":[\"beta\",\"billing\",\"vip\"],\"event_type\":\"Create\",\"id\":39771850846365,\"removed_tags\":[],\"tags\":[\"beta\",\"billing\",\"vip\"],\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850846493,\"type\":\"question\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850846621,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771850846749,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771850846877,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850847005,\"organization_id\":\"39771868840349\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771850847133,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771850847261,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850847389,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850849693,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:21Z\",\"event_type\":\"Audit\",\"id\":39771850845725,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494721,\"updater_id\":39771868857245,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39771807766813,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807766941,\"priority\":\"low\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767069,\"requester_id\":39771850790941,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767197,\"subject\":\"Shipping delay\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767325,\"type\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767453,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771807767581,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771807767709,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767837,\"organization_id\":\"39771816522653\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771807767965,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771807768093,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807768221,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850872221,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:22Z\",\"event_type\":\"Audit\",\"id\":39771807766685,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494722,\"updater_id\":39771850790941,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39771837285789,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837285917,\"requester_id\":39771807715229,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837286045,\"subject\":\"Delete then restore\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837286173,\"priority\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837286301,\"type\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837286429,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771837286557,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771837286685,\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771837286813,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771837286941,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837287069,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39771837287197,\"previous_value\":\"0\",\"priority\":\"normal\",\"rel\":\"trigger\",\"revision_id\":1,\"via\":\"Rule\",\"via_reference_id\":39771663297821},{\"event_type\":\"Create\",\"id\":39771837288733,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771837285661,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494723,\"updater_id\":39771807715229,\"via\":\"Web service\"},{\"child_events\":[],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771868941853,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494723,\"updater_id\":-1,\"via\":\"SLA\"},{\"child_events\":[{\"added_tags\":[\"system_email_notification_failure\"],\"event_type\":\"Change\",\"id\":39771900485661,\"removed_tags\":[],\"tags\":[\"system_email_notification_failure\"],\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771900485533,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494723,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"added_tags\":[\"system_email_notification_failure\"],\"event_type\":\"Change\",\"id\":39771807798685,\"removed_tags\":[],\"tags\":[\"beta\",\"billing\",\"system_email_notification_failure\",\"vip\"],\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771807798557,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494723,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39771807804189,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804317,\"requester_id\":39771868857245,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804445,\"subject\":\"Delete for good\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804573,\"priority\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804701,\"type\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804829,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771807804957,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771807805085,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807805213,\"organization_id\":\"39771868840349\",\"via\":\"Web service\",\"via_reference_id\":null},{\"added_tags\":[\"beta\",\"vip\"],\"event_type\":\"Create\",\"id\":39771807805341,\"removed_tags\":[],\"tags\":[\"beta\",\"vip\"],\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771807805469,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771807805597,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807805725,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39771807805981,\"previous_value\":\"0\",\"priority\":\"normal\",\"rel\":\"trigger\",\"revision_id\":1,\"via\":\"Rule\",\"via_reference_id\":39771663297821},{\"event_type\":\"Create\",\"id\":39771850913565,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771807804061,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494723,\"updater_id\":39771868857245,\"via\":\"Web service\"},{\"child_events\":[],\"created_at\":\"2026-10-08T21:25:24Z\",\"event_type\":\"Audit\",\"id\":39771868964637,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494724,\"updater_id\":-1,\"via\":\"SLA\"},{\"child_events\":[{\"added_tags\":[\"system_email_notification_failure\"],\"event_type\":\"Change\",\"id\":39771807848093,\"removed_tags\":[],\"tags\":[\"beta\",\"system_email_notification_failure\",\"vip\"],\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:26Z\",\"event_type\":\"Audit\",\"id\":39771807847965,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494726,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39771900528029,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:26Z\",\"event_type\":\"Audit\",\"id\":39771900527901,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494726,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":false,\"event_type\":\"Comment\",\"id\":39771837368221,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:27Z\",\"event_type\":\"Audit\",\"id\":39771900536477,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494727,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39771851002141,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39771851002269,\"previous_value\":\"open\",\"status\":\"solved\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771663254173\",\"event_type\":\"Change\",\"id\":39771851002397,\"previous_value\":\"39771695441053\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:27Z\",\"event_type\":\"Audit\",\"id\":39771851002013,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494727,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__account__data_restrictions__delete_data\"},\"event_type\":\"Change\",\"id\":39771869047453,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__low\"},\"event_type\":\"Change\",\"id\":39771869047581,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771869047709,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771869047837,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39771869047965,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771869048093,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771869047325,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494728,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__order__not_delivered__late\"},\"event_type\":\"Change\",\"id\":39771869050141,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__medium\"},\"event_type\":\"Change\",\"id\":39771869050269,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771869050397,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771869050525,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39771869050653,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771869050781,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771869050013,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494728,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__account__data_restrictions__delete_data\"},\"event_type\":\"Change\",\"id\":39771837393053,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__medium\"},\"event_type\":\"Change\",\"id\":39771837393181,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771837393309,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771837393437,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39771837393565,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771837393693,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771837392925,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494728,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__billing__invoice__request\"},\"event_type\":\"Change\",\"id\":39771900566301,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__medium\"},\"event_type\":\"Change\",\"id\":39771900566429,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771900566557,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771900566685,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39771900566813,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771900566941,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771900566173,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494728,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":false,\"event_type\":\"Comment\",\"id\":39771869091229,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771884632221,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494728,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[],\"created_at\":\"2026-10-08T21:25:31Z\",\"event_type\":\"Audit\",\"id\":39771837498141,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494731,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39771851155741,\"previous_value\":\"open\",\"status\":\"deleted\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:32Z\",\"event_type\":\"Audit\",\"id\":39771851155485,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494732,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39771808073757,\"previous_value\":\"open\",\"status\":\"deleted\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:33Z\",\"event_type\":\"Audit\",\"id\":39771808073629,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494733,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39771884866333,\"previous_value\":\"deleted\",\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:36Z\",\"event_type\":\"Audit\",\"id\":39771884866205,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494736,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39771869427485,\"organization_id\":null,\"previous_value\":\"39771816522653\",\"via\":\"Web form\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:39Z\",\"event_type\":\"Audit\",\"id\":39771869427357,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494739,\"updater_id\":39771704393373,\"via\":\"Web form\"},{\"child_events\":[{\"comment_id\":\"39771869091229\",\"event_type\":\"CommentRedactionEvent\",\"id\":39771851684509,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:50Z\",\"event_type\":\"Audit\",\"id\":39771842098589,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494750,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39776697750301,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39776697750429,\"previous_value\":\"high\",\"priority\":\"urgent\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39776697750557,\"previous_value\":\"solved\",\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Change\",\"id\":39776697750685,\"previous_value\":\"39771663254173\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:55Z\",\"event_type\":\"Audit\",\"id\":39776697750173,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791525175,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39776679372061,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679372189,\"subject\":\"E2E new ticket\",\"via\":\"Web service\",\"via_reference_id\":null},{\"added_tags\":[\"e2e\"],\"event_type\":\"Create\",\"id\":39776679372317,\"removed_tags\":[],\"tags\":[\"e2e\"],\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679372445,\"priority\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679372573,\"type\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679372701,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39776679372829,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39776679372957,\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39776679373085,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39776679373213,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679373341,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679373469,\"requester_id\":39776679352733,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39776679373725,\"previous_value\":\"0\",\"priority\":\"normal\",\"rel\":\"trigger\",\"revision_id\":1,\"via\":\"Rule\",\"via_reference_id\":39771663297821},{\"event_type\":\"Create\",\"id\":39776679382301,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:57Z\",\"event_type\":\"Audit\",\"id\":39776679371933,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525177,\"updater_id\":39776679352733,\"via\":\"Web service\"},{\"child_events\":[],\"created_at\":\"2026-10-09T05:52:57Z\",\"event_type\":\"Audit\",\"id\":39776697834781,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525177,\"updater_id\":-1,\"via\":\"SLA\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39776744103965,\"previous_value\":\"open\",\"status\":\"deleted\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:57Z\",\"event_type\":\"Audit\",\"id\":39776744103837,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791525177,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"added_tags\":[\"system_email_notification_failure\"],\"event_type\":\"Change\",\"id\":39776697861277,\"removed_tags\":[],\"tags\":[\"e2e\",\"system_email_notification_failure\"],\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:58Z\",\"event_type\":\"Audit\",\"id\":39776697861149,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525178,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39776744136605,\"previous_value\":\"deleted\",\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:58Z\",\"event_type\":\"Audit\",\"id\":39776744136477,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791525178,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__order__new__place\"},\"event_type\":\"Change\",\"id\":39776679476253,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__low\"},\"event_type\":\"Change\",\"id\":39776679476381,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__nl\"},\"event_type\":\"Change\",\"id\":39776679476509,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__low\"},\"event_type\":\"Change\",\"id\":39776679476637,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39776679476765,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39776679476893,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:53:00Z\",\"event_type\":\"Audit\",\"id\":39776679476125,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525180,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"comment_id\":\"39776679372061\",\"event_type\":\"CommentRedactionEvent\",\"id\":39776730477213,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:53:03Z\",\"event_type\":\"Audit\",\"id\":39776704082205,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525183,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39777158770845,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39777158770973,\"previous_value\":\"open\",\"status\":\"solved\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771663254173\",\"event_type\":\"Change\",\"id\":39777158771101,\"previous_value\":\"39771695441053\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:18:01Z\",\"event_type\":\"Audit\",\"id\":39777158770717,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791526681,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777182482077,\"previous_value\":\"unoffered\",\"satisfaction_score\":\"offered\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:18:03Z\",\"event_type\":\"Audit\",\"id\":39777182481949,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791526683,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777171118365,\"previous_value\":\"offered\",\"satisfaction_score\":\"bad\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:18:21Z\",\"event_type\":\"Audit\",\"id\":39777171118109,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791526701,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777185887133,\"previous_value\":\"open\",\"status\":\"solved\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771663254173\",\"event_type\":\"Change\",\"id\":39777185887261,\"previous_value\":\"39771695441053\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:19:07Z\",\"event_type\":\"Audit\",\"id\":39777185887005,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791526747,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777212542749,\"previous_value\":\"unoffered\",\"satisfaction_score\":\"offered\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:19:08Z\",\"event_type\":\"Audit\",\"id\":39777212542621,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791526748,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777174467101,\"previous_value\":\"bad\",\"satisfaction_score\":\"good\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:19:23Z\",\"event_type\":\"Audit\",\"id\":39777174466973,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791526763,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777255880861,\"previous_value\":\"open\",\"status\":\"solved\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771663254173\",\"event_type\":\"Change\",\"id\":39777255880989,\"previous_value\":\"39771695441053\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:21:57Z\",\"event_type\":\"Audit\",\"id\":39777255880733,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791526917,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777233847325,\"previous_value\":\"unoffered\",\"satisfaction_score\":\"offered\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:21:58Z\",\"event_type\":\"Audit\",\"id\":39777233847197,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791526918,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777264776989,\"previous_value\":\"offered\",\"satisfaction_score\":\"bad\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39777264777117,\"previous_value\":\"0\",\"satisfaction_reason_code\":\"1000\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:22:28Z\",\"event_type\":\"Audit\",\"id\":39777264776861,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791526948,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39779688512797,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T07:57:17Z\",\"event_type\":\"Audit\",\"id\":39779688511389,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791532637,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"attachment_id\":\"39779688809373\",\"event_type\":\"AttachmentRedactionEvent\",\"id\":39779668251037,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T07:57:21Z\",\"event_type\":\"Audit\",\"id\":39779668250909,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791532641,\"updater_id\":39771704393373,\"via\":\"Web service\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f181fdeaf321-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 12:00:18 GMT", + "etag": "W/\"c7f4e24bcc01f3e24da871e389a7b230\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "394", + "ratelimit-reset": "42", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=qAd8DkAm9YCRvWfEZ36ct6k2B6sYYTV%2FkKeZSCUewRGSAXcFb1I%2BVwO%2FujlRAXYoqcbNeiRkfKRVfn6QrQ8Y8GSaFELNRXU5ptYcidGtOaF%2FJa8Rfq%2FKDtHtQRig3G5H8AzBvpa5LsPEWzQ%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "104", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/ticket_events", + "x-rate-limit": "400", + "x-rate-limit-remaining": "394", + "x-request-id": "a495f181fdeaf321-DUB", + "x-request-validation": "matched", + "x-runtime": "0.099522", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-qlq82", + "x-zendesk-zorg": "yes", + "zendesk-ratelimit-incremental-exports": "total=10; remaining=6; resets=42", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events?start_time=1791494340\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events?start_time=1791494340", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"count\":42,\"end_of_stream\":true,\"end_time\":1791532641,\"next_page\":\"https://stealth-37618.zendesk.com/api/v2/incremental/ticket_events.json?start_time=1791532641\",\"ticket_events\":[{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39771850845853,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850845981,\"priority\":\"high\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850846109,\"requester_id\":39771868857245,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850846237,\"subject\":\"Billing question\",\"via\":\"Web service\",\"via_reference_id\":null},{\"added_tags\":[\"beta\",\"billing\",\"vip\"],\"event_type\":\"Create\",\"id\":39771850846365,\"removed_tags\":[],\"tags\":[\"beta\",\"billing\",\"vip\"],\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850846493,\"type\":\"question\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850846621,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771850846749,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771850846877,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850847005,\"organization_id\":\"39771868840349\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771850847133,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771850847261,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850847389,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850849693,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:21Z\",\"event_type\":\"Audit\",\"id\":39771850845725,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494721,\"updater_id\":39771868857245,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39771807766813,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807766941,\"priority\":\"low\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767069,\"requester_id\":39771850790941,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767197,\"subject\":\"Shipping delay\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767325,\"type\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767453,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771807767581,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771807767709,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807767837,\"organization_id\":\"39771816522653\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771807767965,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771807768093,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807768221,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771850872221,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:22Z\",\"event_type\":\"Audit\",\"id\":39771807766685,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494722,\"updater_id\":39771850790941,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39771837285789,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837285917,\"requester_id\":39771807715229,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837286045,\"subject\":\"Delete then restore\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837286173,\"priority\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837286301,\"type\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837286429,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771837286557,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771837286685,\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771837286813,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771837286941,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771837287069,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39771837287197,\"previous_value\":\"0\",\"priority\":\"normal\",\"rel\":\"trigger\",\"revision_id\":1,\"via\":\"Rule\",\"via_reference_id\":39771663297821},{\"event_type\":\"Create\",\"id\":39771837288733,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771837285661,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494723,\"updater_id\":39771807715229,\"via\":\"Web service\"},{\"child_events\":[],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771868941853,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494723,\"updater_id\":-1,\"via\":\"SLA\"},{\"child_events\":[{\"added_tags\":[\"system_email_notification_failure\"],\"event_type\":\"Change\",\"id\":39771900485661,\"removed_tags\":[],\"tags\":[\"system_email_notification_failure\"],\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771900485533,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494723,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"added_tags\":[\"system_email_notification_failure\"],\"event_type\":\"Change\",\"id\":39771807798685,\"removed_tags\":[],\"tags\":[\"beta\",\"billing\",\"system_email_notification_failure\",\"vip\"],\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771807798557,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494723,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39771807804189,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804317,\"requester_id\":39771868857245,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804445,\"subject\":\"Delete for good\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804573,\"priority\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804701,\"type\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807804829,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39771807804957,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39771807805085,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807805213,\"organization_id\":\"39771868840349\",\"via\":\"Web service\",\"via_reference_id\":null},{\"added_tags\":[\"beta\",\"vip\"],\"event_type\":\"Create\",\"id\":39771807805341,\"removed_tags\":[],\"tags\":[\"beta\",\"vip\"],\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39771807805469,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39771807805597,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39771807805725,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39771807805981,\"previous_value\":\"0\",\"priority\":\"normal\",\"rel\":\"trigger\",\"revision_id\":1,\"via\":\"Rule\",\"via_reference_id\":39771663297821},{\"event_type\":\"Create\",\"id\":39771850913565,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:23Z\",\"event_type\":\"Audit\",\"id\":39771807804061,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494723,\"updater_id\":39771868857245,\"via\":\"Web service\"},{\"child_events\":[],\"created_at\":\"2026-10-08T21:25:24Z\",\"event_type\":\"Audit\",\"id\":39771868964637,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494724,\"updater_id\":-1,\"via\":\"SLA\"},{\"child_events\":[{\"added_tags\":[\"system_email_notification_failure\"],\"event_type\":\"Change\",\"id\":39771807848093,\"removed_tags\":[],\"tags\":[\"beta\",\"system_email_notification_failure\",\"vip\"],\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:26Z\",\"event_type\":\"Audit\",\"id\":39771807847965,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494726,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39771900528029,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:26Z\",\"event_type\":\"Audit\",\"id\":39771900527901,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494726,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":false,\"event_type\":\"Comment\",\"id\":39771837368221,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:27Z\",\"event_type\":\"Audit\",\"id\":39771900536477,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494727,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39771851002141,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39771851002269,\"previous_value\":\"open\",\"status\":\"solved\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771663254173\",\"event_type\":\"Change\",\"id\":39771851002397,\"previous_value\":\"39771695441053\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:27Z\",\"event_type\":\"Audit\",\"id\":39771851002013,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494727,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__account__data_restrictions__delete_data\"},\"event_type\":\"Change\",\"id\":39771869047453,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__low\"},\"event_type\":\"Change\",\"id\":39771869047581,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771869047709,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771869047837,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39771869047965,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771869048093,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771869047325,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494728,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__order__not_delivered__late\"},\"event_type\":\"Change\",\"id\":39771869050141,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__medium\"},\"event_type\":\"Change\",\"id\":39771869050269,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771869050397,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771869050525,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39771869050653,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771869050781,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771869050013,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494728,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__account__data_restrictions__delete_data\"},\"event_type\":\"Change\",\"id\":39771837393053,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__medium\"},\"event_type\":\"Change\",\"id\":39771837393181,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771837393309,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771837393437,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39771837393565,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771837393693,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771837392925,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494728,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__billing__invoice__request\"},\"event_type\":\"Change\",\"id\":39771900566301,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__medium\"},\"event_type\":\"Change\",\"id\":39771900566429,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__en\"},\"event_type\":\"Change\",\"id\":39771900566557,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__high\"},\"event_type\":\"Change\",\"id\":39771900566685,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39771900566813,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39771900566941,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771900566173,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791494728,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":false,\"event_type\":\"Comment\",\"id\":39771869091229,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:28Z\",\"event_type\":\"Audit\",\"id\":39771884632221,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494728,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[],\"created_at\":\"2026-10-08T21:25:31Z\",\"event_type\":\"Audit\",\"id\":39771837498141,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494731,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39771851155741,\"previous_value\":\"open\",\"status\":\"deleted\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:32Z\",\"event_type\":\"Audit\",\"id\":39771851155485,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494732,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39771808073757,\"previous_value\":\"open\",\"status\":\"deleted\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:33Z\",\"event_type\":\"Audit\",\"id\":39771808073629,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791494733,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39771884866333,\"previous_value\":\"deleted\",\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:36Z\",\"event_type\":\"Audit\",\"id\":39771884866205,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791494736,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39771869427485,\"organization_id\":null,\"previous_value\":\"39771816522653\",\"via\":\"Web form\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:39Z\",\"event_type\":\"Audit\",\"id\":39771869427357,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494739,\"updater_id\":39771704393373,\"via\":\"Web form\"},{\"child_events\":[{\"comment_id\":\"39771869091229\",\"event_type\":\"CommentRedactionEvent\",\"id\":39771851684509,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-08T21:25:50Z\",\"event_type\":\"Audit\",\"id\":39771842098589,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791494750,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39776697750301,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39776697750429,\"previous_value\":\"high\",\"priority\":\"urgent\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39776697750557,\"previous_value\":\"solved\",\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Change\",\"id\":39776697750685,\"previous_value\":\"39771663254173\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:55Z\",\"event_type\":\"Audit\",\"id\":39776697750173,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791525175,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39776679372061,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679372189,\"subject\":\"E2E new ticket\",\"via\":\"Web service\",\"via_reference_id\":null},{\"added_tags\":[\"e2e\"],\"event_type\":\"Create\",\"id\":39776679372317,\"removed_tags\":[],\"tags\":[\"e2e\"],\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679372445,\"priority\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679372573,\"type\":null,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679372701,\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null},{\"assignee_id\":39771704393373,\"event_type\":\"Create\",\"id\":39776679372829,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"group_id\":39771663256989,\"id\":39776679372957,\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771695441053\",\"event_type\":\"Create\",\"id\":39776679373085,\"via\":\"Web service\",\"via_reference_id\":null},{\"brand_id\":\"39771695429277\",\"event_type\":\"Create\",\"id\":39776679373213,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679373341,\"ticket_form_id\":\"39771663206685\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Create\",\"id\":39776679373469,\"requester_id\":39776679352733,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39776679373725,\"previous_value\":\"0\",\"priority\":\"normal\",\"rel\":\"trigger\",\"revision_id\":1,\"via\":\"Rule\",\"via_reference_id\":39771663297821},{\"event_type\":\"Create\",\"id\":39776679382301,\"sla_policy\":\"Set first reply time\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:57Z\",\"event_type\":\"Audit\",\"id\":39776679371933,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525177,\"updater_id\":39776679352733,\"via\":\"Web service\"},{\"child_events\":[],\"created_at\":\"2026-10-09T05:52:57Z\",\"event_type\":\"Audit\",\"id\":39776697834781,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525177,\"updater_id\":-1,\"via\":\"SLA\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39776744103965,\"previous_value\":\"open\",\"status\":\"deleted\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:57Z\",\"event_type\":\"Audit\",\"id\":39776744103837,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":4,\"timestamp\":1791525177,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"added_tags\":[\"system_email_notification_failure\"],\"event_type\":\"Change\",\"id\":39776697861277,\"removed_tags\":[],\"tags\":[\"e2e\",\"system_email_notification_failure\"],\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:58Z\",\"event_type\":\"Audit\",\"id\":39776697861149,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525178,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39776744136605,\"previous_value\":\"deleted\",\"status\":\"open\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:52:58Z\",\"event_type\":\"Audit\",\"id\":39776744136477,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":5,\"timestamp\":1791525178,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"custom_ticket_fields\":{\"39771680543389\":\"topic__order__new__place\"},\"event_type\":\"Change\",\"id\":39776679476253,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680545309\":\"topic_confidence__low\"},\"event_type\":\"Change\",\"id\":39776679476381,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680551453\":\"language__nl\"},\"event_type\":\"Change\",\"id\":39776679476509,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680552989\":\"language_confidence__low\"},\"event_type\":\"Change\",\"id\":39776679476637,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680548637\":\"sentiment__neutral\"},\"event_type\":\"Change\",\"id\":39776679476765,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null},{\"custom_ticket_fields\":{\"39771680549277\":\"sentiment_confidence__high\"},\"event_type\":\"Change\",\"id\":39776679476893,\"previous_value\":null,\"via\":\"Intelligent Triage\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:53:00Z\",\"event_type\":\"Audit\",\"id\":39776679476125,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525180,\"updater_id\":-1,\"via\":\"Intelligent Triage\"},{\"child_events\":[{\"comment_id\":\"39776679372061\",\"event_type\":\"CommentRedactionEvent\",\"id\":39776730477213,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T05:53:03Z\",\"event_type\":\"Audit\",\"id\":39776704082205,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791525183,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39777158770845,\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39777158770973,\"previous_value\":\"open\",\"status\":\"solved\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771663254173\",\"event_type\":\"Change\",\"id\":39777158771101,\"previous_value\":\"39771695441053\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:18:01Z\",\"event_type\":\"Audit\",\"id\":39777158770717,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791526681,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777182482077,\"previous_value\":\"unoffered\",\"satisfaction_score\":\"offered\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:18:03Z\",\"event_type\":\"Audit\",\"id\":39777182481949,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791526683,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777171118365,\"previous_value\":\"offered\",\"satisfaction_score\":\"bad\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:18:21Z\",\"event_type\":\"Audit\",\"id\":39777171118109,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791526701,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777185887133,\"previous_value\":\"open\",\"status\":\"solved\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771663254173\",\"event_type\":\"Change\",\"id\":39777185887261,\"previous_value\":\"39771695441053\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:19:07Z\",\"event_type\":\"Audit\",\"id\":39777185887005,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791526747,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777212542749,\"previous_value\":\"unoffered\",\"satisfaction_score\":\"offered\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:19:08Z\",\"event_type\":\"Audit\",\"id\":39777212542621,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791526748,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777174467101,\"previous_value\":\"bad\",\"satisfaction_score\":\"good\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:19:23Z\",\"event_type\":\"Audit\",\"id\":39777174466973,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":6,\"timestamp\":1791526763,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777255880861,\"previous_value\":\"open\",\"status\":\"solved\",\"via\":\"Web service\",\"via_reference_id\":null},{\"custom_status_id\":\"39771663254173\",\"event_type\":\"Change\",\"id\":39777255880989,\"previous_value\":\"39771695441053\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:21:57Z\",\"event_type\":\"Audit\",\"id\":39777255880733,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791526917,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777233847325,\"previous_value\":\"unoffered\",\"satisfaction_score\":\"offered\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:21:58Z\",\"event_type\":\"Audit\",\"id\":39777233847197,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791526918,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"event_type\":\"Change\",\"id\":39777264776989,\"previous_value\":\"offered\",\"satisfaction_score\":\"bad\",\"via\":\"Web service\",\"via_reference_id\":null},{\"event_type\":\"Change\",\"id\":39777264777117,\"previous_value\":\"0\",\"satisfaction_reason_code\":\"1000\",\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T06:22:28Z\",\"event_type\":\"Audit\",\"id\":39777264776861,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":3,\"timestamp\":1791526948,\"updater_id\":-1,\"via\":\"Web service\"},{\"child_events\":[{\"comment_present\":true,\"comment_public\":true,\"event_type\":\"Comment\",\"id\":39779688512797,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T07:57:17Z\",\"event_type\":\"Audit\",\"id\":39779688511389,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791532637,\"updater_id\":39771704393373,\"via\":\"Web service\"},{\"child_events\":[{\"attachment_id\":\"39779688809373\",\"event_type\":\"AttachmentRedactionEvent\",\"id\":39779668251037,\"via\":\"Web service\",\"via_reference_id\":null}],\"created_at\":\"2026-10-09T07:57:21Z\",\"event_type\":\"Audit\",\"id\":39779668250909,\"system\":{\"client\":null,\"latitude\":null,\"location\":null,\"longitude\":null},\"ticket_id\":2,\"timestamp\":1791532641,\"updater_id\":39771704393373,\"via\":\"Web service\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f1a79c042e52-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 12:00:24 GMT", + "etag": "W/\"2f4e69a11a0f77cf486a163e1931741e\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "393", + "ratelimit-reset": "36", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=62ssNib%2Fxlr5hl7O4gmccfF4pz12N9jRgwD%2B%2BH4%2FJ8nI7KO%2BbhGUETVhmsz0NGl%2BNwBwVnr24btE%2FKlDlge%2BiUXfV8FtlTCsm59gu3CftZba9jT%2BUEX3bmNHAAFftjXXYLPacb0ptpXVqsc%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "113", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/ticket_events", + "x-rate-limit": "400", + "x-rate-limit-remaining": "393", + "x-request-id": "a495f1a79c042e52-DUB", + "x-request-validation": "matched", + "x-runtime": "0.109479", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-n8gfc", + "x-zendesk-zorg": "yes", + "zendesk-ratelimit-incremental-exports": "total=10; remaining=5; resets=36", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/ticket_metric_events?start_time=0\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/ticket_metric_events?start_time=0", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"count\":144,\"end_of_stream\":true,\"end_time\":1791526917,\"next_page\":null,\"ticket_metric_events\":[{\"deleted\":false,\"id\":39771706276509,\"instance_id\":0,\"metric\":\"agent_work_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771706276765,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771681968413,\"instance_id\":0,\"metric\":\"pausable_update_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771681979037,\"instance_id\":0,\"metric\":\"periodic_update_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771706277277,\"instance_id\":0,\"metric\":\"reply_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771706277533,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771706279709,\"instance_id\":1,\"metric\":\"reply_time\",\"sla\":{\"business_hours\":false,\"policy\":{\"description\":null,\"id\":39771709039517,\"title\":\"Set first reply time\"},\"target\":60,\"target_in_seconds\":3600},\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"apply_sla\"},{\"deleted\":false,\"id\":39771681968669,\"instance_id\":0,\"metric\":\"requester_wait_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771681968925,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771681977373,\"instance_id\":0,\"metric\":\"resolution_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771706281757,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":1,\"time\":\"2026-10-08T21:14:17Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771837262237,\"instance_id\":0,\"metric\":\"agent_work_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771837262493,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771837262749,\"instance_id\":0,\"metric\":\"pausable_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771816578461,\"instance_id\":0,\"metric\":\"periodic_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771837266333,\"instance_id\":0,\"metric\":\"reply_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771837266461,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771837263005,\"instance_id\":0,\"metric\":\"requester_wait_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771816578205,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771837266589,\"instance_id\":0,\"metric\":\"resolution_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771837266717,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868927773,\"instance_id\":0,\"metric\":\"agent_work_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868927901,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884496541,\"instance_id\":0,\"metric\":\"pausable_update_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868931101,\"instance_id\":0,\"metric\":\"periodic_update_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868929949,\"instance_id\":0,\"metric\":\"reply_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868930077,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868928285,\"instance_id\":0,\"metric\":\"requester_wait_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868929437,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884497693,\"instance_id\":0,\"metric\":\"resolution_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868930589,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868941085,\"instance_id\":0,\"metric\":\"agent_work_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868941213,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884510109,\"instance_id\":0,\"metric\":\"pausable_update_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868942365,\"instance_id\":0,\"metric\":\"periodic_update_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868941469,\"instance_id\":0,\"metric\":\"reply_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771884510365,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868941981,\"instance_id\":1,\"metric\":\"reply_time\",\"sla\":{\"business_hours\":false,\"policy\":{\"description\":null,\"id\":39771709039517,\"title\":\"Set first reply time\"},\"target\":60,\"target_in_seconds\":3600},\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"apply_sla\"},{\"deleted\":false,\"id\":39771868941341,\"instance_id\":0,\"metric\":\"requester_wait_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771884510237,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868942237,\"instance_id\":0,\"metric\":\"resolution_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771884513565,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868961949,\"instance_id\":0,\"metric\":\"agent_work_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771884529309,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884529565,\"instance_id\":0,\"metric\":\"pausable_update_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868967453,\"instance_id\":0,\"metric\":\"periodic_update_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868963101,\"instance_id\":0,\"metric\":\"reply_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868963357,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884531229,\"instance_id\":1,\"metric\":\"reply_time\",\"sla\":{\"business_hours\":false,\"policy\":{\"description\":null,\"id\":39771709039517,\"title\":\"Set first reply time\"},\"target\":60,\"target_in_seconds\":3600},\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"apply_sla\"},{\"deleted\":false,\"id\":39771884529949,\"instance_id\":0,\"metric\":\"requester_wait_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868962589,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868967197,\"instance_id\":0,\"metric\":\"resolution_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771884532253,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771837362845,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:26Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771837363741,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:26Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771900534813,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:26Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771900534941,\"instance_id\":1,\"metric\":\"reply_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:26Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771837386781,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771900560925,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771900561821,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771900562077,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771900564253,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771837391133,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771900562589,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771900562845,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771837390109,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771900563997,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771869100061,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:28Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884642973,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:28Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884641181,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:28Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771884641565,\"instance_id\":1,\"metric\":\"reply_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":3,\"time\":\"2026-10-08T21:25:28Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771808040477,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771808040605,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771808041501,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771808041757,\"instance_id\":1,\"metric\":\"reply_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771851156509,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771851156637,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771851157661,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771851158813,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771808074909,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771851180829,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771851182237,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771808076701,\"instance_id\":1,\"metric\":\"reply_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771808077341,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771808077725,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771851184797,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771851185053,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771884868125,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:36Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884868253,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:36Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884868381,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:36Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771706281373,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":1,\"time\":\"2026-10-08T22:14:17Z\",\"type\":\"breach\"},{\"deleted\":false,\"id\":39776744022301,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":2,\"time\":\"2026-10-09T05:52:55Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776697766557,\"instance_id\":2,\"metric\":\"pausable_update_time\",\"ticket_id\":2,\"time\":\"2026-10-09T05:52:55Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776697770653,\"instance_id\":2,\"metric\":\"periodic_update_time\",\"ticket_id\":2,\"time\":\"2026-10-09T05:52:55Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776697767453,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":2,\"time\":\"2026-10-09T05:52:55Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744024861,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":2,\"time\":\"2026-10-09T05:52:55Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776697830557,\"instance_id\":0,\"metric\":\"agent_work_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744091165,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744091421,\"instance_id\":0,\"metric\":\"pausable_update_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744097181,\"instance_id\":0,\"metric\":\"periodic_update_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744092189,\"instance_id\":0,\"metric\":\"reply_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744092701,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776697835549,\"instance_id\":1,\"metric\":\"reply_time\",\"sla\":{\"business_hours\":false,\"policy\":{\"description\":null,\"id\":39771709039517,\"title\":\"Set first reply time\"},\"target\":60,\"target_in_seconds\":3600},\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"apply_sla\"},{\"deleted\":false,\"id\":39776744091677,\"instance_id\":0,\"metric\":\"requester_wait_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744091933,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744095005,\"instance_id\":0,\"metric\":\"resolution_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744095261,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744104861,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39776744105501,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":507,\"calendar\":507},\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39776744106397,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39776744106525,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":507,\"calendar\":507},\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39776697850141,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39776744108189,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":507,\"calendar\":507},\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39776744143901,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":5,\"time\":\"2026-10-09T05:52:58Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744144541,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":5,\"time\":\"2026-10-09T05:52:58Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744145437,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":5,\"time\":\"2026-10-09T05:52:58Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39777182439069,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777182439453,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":25,\"calendar\":25},\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777170257053,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777170257437,\"instance_id\":1,\"metric\":\"reply_time\",\"status\":{\"business\":25,\"calendar\":25},\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777170255901,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777170256029,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":25,\"calendar\":25},\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777182442909,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777182443293,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":25,\"calendar\":25},\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777202538141,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777173680925,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":26,\"calendar\":26},\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777173681949,\"instance_id\":2,\"metric\":\"pausable_update_time\",\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777202539293,\"instance_id\":2,\"metric\":\"pausable_update_time\",\"status\":{\"business\":26,\"calendar\":26},\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777173686301,\"instance_id\":2,\"metric\":\"periodic_update_time\",\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777173686557,\"instance_id\":2,\"metric\":\"periodic_update_time\",\"status\":{\"business\":26,\"calendar\":26},\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777173683101,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777202544029,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":26,\"calendar\":26},\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777202545821,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777173683741,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":26,\"calendar\":26},\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777223208477,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777223208733,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":536,\"calendar\":536},\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777238386205,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777238386461,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"status\":{\"business\":536,\"calendar\":536},\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777223213213,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777223213597,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"status\":{\"business\":536,\"calendar\":536},\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777238386973,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777238387101,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":536,\"calendar\":536},\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777238388509,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777223212189,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":536,\"calendar\":536},\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"update_status\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f1cd09cc3aec-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 12:00:30 GMT", + "etag": "W/\"9db2cad8d6f82e31f02846950525a4c9\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "392", + "ratelimit-reset": "30", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=TEBRgOc3Mfvu9Eg2%2Bj8tMxS1Dyo9htKoJttD2sRv6CN%2BNcydcbQdQ7WIzvl1qJK%2F0y9SS74e31%2B%2BRxL2pJEDhw8MhUmJmYTtxF9ACi1MMkj7TDZQUe9KFVoHzlOsFpP54Lj9rQjspXLEtfU%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "110", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/ticket_metric_events", + "x-rate-limit": "400", + "x-rate-limit-remaining": "392", + "x-request-id": "a495f1cd09cc3aec-DUB", + "x-request-validation": "matched", + "x-runtime": "0.106073", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-pktsb", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/incremental/ticket_metric_events?start_time=1791494340\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/incremental/ticket_metric_events?start_time=1791494340", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"count\":133,\"end_of_stream\":true,\"end_time\":1791526917,\"next_page\":null,\"ticket_metric_events\":[{\"deleted\":false,\"id\":39771837262237,\"instance_id\":0,\"metric\":\"agent_work_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771837262493,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771837262749,\"instance_id\":0,\"metric\":\"pausable_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771816578461,\"instance_id\":0,\"metric\":\"periodic_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771837266333,\"instance_id\":0,\"metric\":\"reply_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771837266461,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771837263005,\"instance_id\":0,\"metric\":\"requester_wait_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771816578205,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771837266589,\"instance_id\":0,\"metric\":\"resolution_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771837266717,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:21Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868927773,\"instance_id\":0,\"metric\":\"agent_work_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868927901,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884496541,\"instance_id\":0,\"metric\":\"pausable_update_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868931101,\"instance_id\":0,\"metric\":\"periodic_update_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868929949,\"instance_id\":0,\"metric\":\"reply_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868930077,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868928285,\"instance_id\":0,\"metric\":\"requester_wait_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868929437,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884497693,\"instance_id\":0,\"metric\":\"resolution_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868930589,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:22Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868941085,\"instance_id\":0,\"metric\":\"agent_work_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868941213,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884510109,\"instance_id\":0,\"metric\":\"pausable_update_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868942365,\"instance_id\":0,\"metric\":\"periodic_update_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868941469,\"instance_id\":0,\"metric\":\"reply_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771884510365,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868941981,\"instance_id\":1,\"metric\":\"reply_time\",\"sla\":{\"business_hours\":false,\"policy\":{\"description\":null,\"id\":39771709039517,\"title\":\"Set first reply time\"},\"target\":60,\"target_in_seconds\":3600},\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"apply_sla\"},{\"deleted\":false,\"id\":39771868941341,\"instance_id\":0,\"metric\":\"requester_wait_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771884510237,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868942237,\"instance_id\":0,\"metric\":\"resolution_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771884513565,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868961949,\"instance_id\":0,\"metric\":\"agent_work_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771884529309,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884529565,\"instance_id\":0,\"metric\":\"pausable_update_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868967453,\"instance_id\":0,\"metric\":\"periodic_update_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868963101,\"instance_id\":0,\"metric\":\"reply_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868963357,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884531229,\"instance_id\":1,\"metric\":\"reply_time\",\"sla\":{\"business_hours\":false,\"policy\":{\"description\":null,\"id\":39771709039517,\"title\":\"Set first reply time\"},\"target\":60,\"target_in_seconds\":3600},\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"apply_sla\"},{\"deleted\":false,\"id\":39771884529949,\"instance_id\":0,\"metric\":\"requester_wait_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771868962589,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771868967197,\"instance_id\":0,\"metric\":\"resolution_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39771884532253,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:23Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771837362845,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:26Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771837363741,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:26Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771900534813,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:26Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771900534941,\"instance_id\":1,\"metric\":\"reply_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:26Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771837386781,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771900560925,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771900561821,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771900562077,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771900564253,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771837391133,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771900562589,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771900562845,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771837390109,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771900563997,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":2,\"time\":\"2026-10-08T21:25:27Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771869100061,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:28Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884642973,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:28Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884641181,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":3,\"time\":\"2026-10-08T21:25:28Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771884641565,\"instance_id\":1,\"metric\":\"reply_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":3,\"time\":\"2026-10-08T21:25:28Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771808040477,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771808040605,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771808041501,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771808041757,\"instance_id\":1,\"metric\":\"reply_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771851156509,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771851156637,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771851157661,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771851158813,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":null,\"time\":\"2026-10-08T21:25:32Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771808074909,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771851180829,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771851182237,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771808076701,\"instance_id\":1,\"metric\":\"reply_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771808077341,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771808077725,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771851184797,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39771851185053,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":0,\"calendar\":0},\"ticket_id\":5,\"time\":\"2026-10-08T21:25:33Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39771884868125,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:36Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884868253,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:36Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771884868381,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":null,\"time\":\"2026-10-08T21:25:36Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39771706281373,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":1,\"time\":\"2026-10-08T22:14:17Z\",\"type\":\"breach\"},{\"deleted\":false,\"id\":39776744022301,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":2,\"time\":\"2026-10-09T05:52:55Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776697766557,\"instance_id\":2,\"metric\":\"pausable_update_time\",\"ticket_id\":2,\"time\":\"2026-10-09T05:52:55Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776697770653,\"instance_id\":2,\"metric\":\"periodic_update_time\",\"ticket_id\":2,\"time\":\"2026-10-09T05:52:55Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776697767453,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":2,\"time\":\"2026-10-09T05:52:55Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744024861,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":2,\"time\":\"2026-10-09T05:52:55Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776697830557,\"instance_id\":0,\"metric\":\"agent_work_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744091165,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744091421,\"instance_id\":0,\"metric\":\"pausable_update_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744097181,\"instance_id\":0,\"metric\":\"periodic_update_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744092189,\"instance_id\":0,\"metric\":\"reply_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744092701,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776697835549,\"instance_id\":1,\"metric\":\"reply_time\",\"sla\":{\"business_hours\":false,\"policy\":{\"description\":null,\"id\":39771709039517,\"title\":\"Set first reply time\"},\"target\":60,\"target_in_seconds\":3600},\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"apply_sla\"},{\"deleted\":false,\"id\":39776744091677,\"instance_id\":0,\"metric\":\"requester_wait_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744091933,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744095005,\"instance_id\":0,\"metric\":\"resolution_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"measure\"},{\"deleted\":false,\"id\":39776744095261,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":6,\"time\":\"2026-10-09T05:52:56Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744104861,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39776744105501,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":507,\"calendar\":507},\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39776744106397,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39776744106525,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":507,\"calendar\":507},\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39776697850141,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39776744108189,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":507,\"calendar\":507},\"ticket_id\":null,\"time\":\"2026-10-09T05:52:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39776744143901,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":5,\"time\":\"2026-10-09T05:52:58Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744144541,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":5,\"time\":\"2026-10-09T05:52:58Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39776744145437,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":5,\"time\":\"2026-10-09T05:52:58Z\",\"type\":\"activate\"},{\"deleted\":false,\"id\":39777182439069,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777182439453,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":25,\"calendar\":25},\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777170257053,\"instance_id\":1,\"metric\":\"reply_time\",\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777170257437,\"instance_id\":1,\"metric\":\"reply_time\",\"status\":{\"business\":25,\"calendar\":25},\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777170255901,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777170256029,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":25,\"calendar\":25},\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777182442909,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777182443293,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":25,\"calendar\":25},\"ticket_id\":6,\"time\":\"2026-10-09T06:18:01Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777202538141,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777173680925,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":26,\"calendar\":26},\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777173681949,\"instance_id\":2,\"metric\":\"pausable_update_time\",\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777202539293,\"instance_id\":2,\"metric\":\"pausable_update_time\",\"status\":{\"business\":26,\"calendar\":26},\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777173686301,\"instance_id\":2,\"metric\":\"periodic_update_time\",\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777173686557,\"instance_id\":2,\"metric\":\"periodic_update_time\",\"status\":{\"business\":26,\"calendar\":26},\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777173683101,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777202544029,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":26,\"calendar\":26},\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777202545821,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777173683741,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":26,\"calendar\":26},\"ticket_id\":2,\"time\":\"2026-10-09T06:19:07Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777223208477,\"instance_id\":1,\"metric\":\"agent_work_time\",\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777223208733,\"instance_id\":1,\"metric\":\"agent_work_time\",\"status\":{\"business\":536,\"calendar\":536},\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777238386205,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777238386461,\"instance_id\":1,\"metric\":\"pausable_update_time\",\"status\":{\"business\":536,\"calendar\":536},\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777223213213,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777223213597,\"instance_id\":1,\"metric\":\"periodic_update_time\",\"status\":{\"business\":536,\"calendar\":536},\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777238386973,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777238387101,\"instance_id\":1,\"metric\":\"requester_wait_time\",\"status\":{\"business\":536,\"calendar\":536},\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"update_status\"},{\"deleted\":false,\"id\":39777238388509,\"instance_id\":1,\"metric\":\"resolution_time\",\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"fulfill\"},{\"deleted\":false,\"id\":39777223212189,\"instance_id\":1,\"metric\":\"resolution_time\",\"status\":{\"business\":536,\"calendar\":536},\"ticket_id\":3,\"time\":\"2026-10-09T06:21:57Z\",\"type\":\"update_status\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f1f28a33ff60-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 12:00:36 GMT", + "etag": "W/\"6391381c3e681370a88ed764dc0e820c\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "391", + "ratelimit-reset": "24", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=OLDaWIccf0LEftCtPMk%2BtYxJsCJqxjQuLxpYON%2FeZBaSeY9JSJzb9qZykOVLw2qZuoTcVsNc173axmKCGOmD9NVgKn%2F7srye4MPD45hQujfjZSNNN2hlojwGn1M1Qdzuwi0QOxTe%2FixK%2BqQ%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/incremental", + "x-envoy-upstream-service-time": "75", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/incremental/ticket_metric_events", + "x-rate-limit": "400", + "x-rate-limit-remaining": "391", + "x-request-id": "a495f1f28a33ff60-DUB", + "x-request-validation": "matched", + "x-runtime": "0.071920", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-incremental-677c957c49-n8gfc", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings?page%5Bsize%5D=100\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings?page%5Bsize%5D=100", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"links\":{\"next\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings.json?page%5Bafter%5D=eyJvIjoiLWNyZWF0ZWRfYXQsLWlkIiwidiI6IlpCdUh5R29BQUFBQWFSMEIxVmd0SkFBQSJ9&page%5Bsize%5D=100\",\"prev\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings.json?page%5Bbefore%5D=eyJvIjoiLWNyZWF0ZWRfYXQsLWlkIiwidiI6IlpDU0l5R29BQUFBQWFSMW8vMXN0SkFBQSJ9&page%5Bsize%5D=100\"},\"meta\":{\"after_cursor\":\"eyJvIjoiLWNyZWF0ZWRfYXQsLWlkIiwidiI6IlpCdUh5R29BQUFBQWFSMEIxVmd0SkFBQSJ9\",\"before_cursor\":\"eyJvIjoiLWNyZWF0ZWRfYXQsLWlkIiwidiI6IlpDU0l5R29BQUFBQWFSMW8vMXN0SkFBQSJ9\",\"has_more\":false},\"satisfaction_ratings\":[{\"assignee_id\":39771704393373,\"comment\":null,\"created_at\":\"2026-10-09T06:22:28Z\",\"group_id\":39771663256989,\"id\":39777235593245,\"requester_id\":39771850790941,\"score\":\"bad\",\"ticket_id\":3,\"updated_at\":\"2026-10-09T06:22:28Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings/39777235593245.json\"},{\"assignee_id\":39771704393373,\"comment\":null,\"created_at\":\"2026-10-09T06:21:58Z\",\"group_id\":39771663256989,\"id\":39777233850141,\"requester_id\":39771850790941,\"score\":\"offered\",\"ticket_id\":3,\"updated_at\":\"2026-10-09T06:21:58Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings/39777233850141.json\"},{\"assignee_id\":39771704393373,\"comment\":\"Took too long to get a reply.\",\"created_at\":\"2026-10-09T06:19:23Z\",\"group_id\":39771663256989,\"id\":39777203359517,\"requester_id\":39776679352733,\"score\":\"good\",\"ticket_id\":6,\"updated_at\":\"2026-10-09T06:19:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings/39777203359517.json\"},{\"assignee_id\":39771704393373,\"comment\":null,\"created_at\":\"2026-10-09T06:19:08Z\",\"group_id\":39771663256989,\"id\":39777185910301,\"requester_id\":39771868857245,\"score\":\"offered\",\"ticket_id\":2,\"updated_at\":\"2026-10-09T06:19:08Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings/39777185910301.json\"},{\"assignee_id\":39771704393373,\"comment\":\"Took too long to get a reply.\",\"created_at\":\"2026-10-09T06:18:21Z\",\"group_id\":39771663256989,\"id\":39777171121437,\"requester_id\":39776679352733,\"score\":\"bad\",\"ticket_id\":6,\"updated_at\":\"2026-10-09T06:18:21Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings/39777171121437.json\"},{\"assignee_id\":39771704393373,\"comment\":null,\"created_at\":\"2026-10-09T06:18:03Z\",\"group_id\":39771663256989,\"id\":39777182482717,\"requester_id\":39776679352733,\"score\":\"offered\",\"ticket_id\":6,\"updated_at\":\"2026-10-09T06:18:03Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings/39777182482717.json\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f1f46e9fff60-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 12:00:36 GMT", + "etag": "W/\"cfde9e4957175d2d6b0ce0143704f8a7\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "390", + "ratelimit-reset": "24", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=wO8FsyUHjDo5pzjF%2BY79ck0zd8HVNXnoBbIqZnqSxDgHgaz%2BatF47xnWBVCVFYqZNzaniYoMtnxJeB4mCiLAgWwY5UVY3inLQ6s%2BfwfqwzosH9RNpAAd%2Bo%2FMjz%2BX6cyYVclo9h6xLiZcLx0%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/satisfaction_ratings", + "x-envoy-upstream-service-time": "100", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/satisfaction_ratings", + "x-rate-limit": "400", + "x-rate-limit-remaining": "390", + "x-request-id": "a495f1f46e9fff60-DUB", + "x-request-validation": "matched", + "x-runtime": "0.092902", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-zsz6c", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings?page%5Bsize%5D=100&start_time=1791493800\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings?page%5Bsize%5D=100&start_time=1791493800", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"links\":{\"next\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings.json?page%5Bafter%5D=eyJvIjoiLWNyZWF0ZWRfYXQsLWlkIiwidiI6IlpCdUh5R29BQUFBQWFSMEIxVmd0SkFBQSJ9&page%5Bsize%5D=100&start_time=1791493800\",\"prev\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings.json?page%5Bbefore%5D=eyJvIjoiLWNyZWF0ZWRfYXQsLWlkIiwidiI6IlpDU0l5R29BQUFBQWFSMW8vMXN0SkFBQSJ9&page%5Bsize%5D=100&start_time=1791493800\"},\"meta\":{\"after_cursor\":\"eyJvIjoiLWNyZWF0ZWRfYXQsLWlkIiwidiI6IlpCdUh5R29BQUFBQWFSMEIxVmd0SkFBQSJ9\",\"before_cursor\":\"eyJvIjoiLWNyZWF0ZWRfYXQsLWlkIiwidiI6IlpDU0l5R29BQUFBQWFSMW8vMXN0SkFBQSJ9\",\"has_more\":false},\"satisfaction_ratings\":[{\"assignee_id\":39771704393373,\"comment\":null,\"created_at\":\"2026-10-09T06:22:28Z\",\"group_id\":39771663256989,\"id\":39777235593245,\"requester_id\":39771850790941,\"score\":\"bad\",\"ticket_id\":3,\"updated_at\":\"2026-10-09T06:22:28Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings/39777235593245.json\"},{\"assignee_id\":39771704393373,\"comment\":null,\"created_at\":\"2026-10-09T06:21:58Z\",\"group_id\":39771663256989,\"id\":39777233850141,\"requester_id\":39771850790941,\"score\":\"offered\",\"ticket_id\":3,\"updated_at\":\"2026-10-09T06:21:58Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings/39777233850141.json\"},{\"assignee_id\":39771704393373,\"comment\":\"Took too long to get a reply.\",\"created_at\":\"2026-10-09T06:19:23Z\",\"group_id\":39771663256989,\"id\":39777203359517,\"requester_id\":39776679352733,\"score\":\"good\",\"ticket_id\":6,\"updated_at\":\"2026-10-09T06:19:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings/39777203359517.json\"},{\"assignee_id\":39771704393373,\"comment\":null,\"created_at\":\"2026-10-09T06:19:08Z\",\"group_id\":39771663256989,\"id\":39777185910301,\"requester_id\":39771868857245,\"score\":\"offered\",\"ticket_id\":2,\"updated_at\":\"2026-10-09T06:19:08Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings/39777185910301.json\"},{\"assignee_id\":39771704393373,\"comment\":\"Took too long to get a reply.\",\"created_at\":\"2026-10-09T06:18:21Z\",\"group_id\":39771663256989,\"id\":39777171121437,\"requester_id\":39776679352733,\"score\":\"bad\",\"ticket_id\":6,\"updated_at\":\"2026-10-09T06:18:21Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings/39777171121437.json\"},{\"assignee_id\":39771704393373,\"comment\":null,\"created_at\":\"2026-10-09T06:18:03Z\",\"group_id\":39771663256989,\"id\":39777182482717,\"requester_id\":39776679352733,\"score\":\"offered\",\"ticket_id\":6,\"updated_at\":\"2026-10-09T06:18:03Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/satisfaction_ratings/39777182482717.json\"}]}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn,X-Zendesk-User-Id,X-Zendesk-User-Session-Expires-At", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "DYNAMIC", + "cf-ray": "a495f1f67b95ff60-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 12:00:37 GMT", + "etag": "W/\"eb661485ec70e52142f7ae78fa020af6\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "ratelimit-limit": "400", + "ratelimit-remaining": "389", + "ratelimit-reset": "23", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=2loCPqloPjZvan4oA4NB3d9PMIvTMrLXYcd%2Bb8IZyosxVo%2FgkN%2FIvyKbmLnbjcDSpPX6UkrRvAqMQBUYhgdyqLqeCyAL8s9CWxi89FcjoqD5vnlDc1TUKxHMFnYLfhxCeS84sXjrJfCXejE%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-content-type-options": "nosniff", + "x-envoy-decorator-operation": "/api/v2/satisfaction_ratings", + "x-envoy-upstream-service-time": "62", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/satisfaction_ratings", + "x-rate-limit": "400", + "x-rate-limit-remaining": "389", + "x-request-id": "a495f1f67b95ff60-DUB", + "x-request-validation": "matched", + "x-runtime": "0.058720", + "x-zendesk-api-version": "v2", + "x-zendesk-application-version": "v26815", + "x-zendesk-origin-server": "classic-app-server-684948598d-lkdpc", + "x-zendesk-zorg": "yes", + "zendesk-service": "classic" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/incremental/articles?start_time=0\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/help_center/incremental/articles?start_time=0", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"articles\":[{\"author_id\":39771704393373,\"body\":\"We create furniture that mirrors the diversity and richness of the world. Our furniture represents a blend of cultures, techniques, and materials. Whether it’s the meticulous precision of Scandinavian design, the robust durability of American craftsmanship, or the elegant simplicity of Japanese aesthetics, each piece tells its own story. This is why we collaborate with skilled artisans and manufacturers, who each contribute their unique craftsmanship and expertise to our collections.

Our three best-selling collections are Minimalist Elegance, Urban Chic, and Zen Harmony.

Crafted in the heart of Denmark, a country renowned for its sleek, modern designs, Minimalist Elegance is the epitome for which Scandinavian design is known. Our team regularly visits to ensure functional simplicity that will work for homes around the world.

The Urban Chic line originates in the bustling factories of North Carolina in the U.S. The robust, practical designs are a testament to American craftsmanship. Regular visits to these factories allow our team to maintain a hands-on approach, so that every piece meets our high standards of quality and durability.

The Zen Harmony collection is crafted in Osaka, Japan. It reflects the simple, sophisticated grace that has brought fame to Japanese furniture. Our team’s regular visits to Osaka ensure this aesthetic in every item.

Although our production is a global endeavor, we remain committed to ensuring affordability. By offering direct-to-consumer payment plans, we make it easier for you to bring these world-class designs into your home.

\",\"comments_disabled\":false,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:22Z\",\"draft\":false,\"edited_at\":\"2026-10-08T21:14:22Z\",\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/articles/39771682143261-SAMPLE-ARTICLE-Made-with-care-around-the-world\",\"id\":39771682143261,\"label_names\":[],\"locale\":\"en-us\",\"name\":\"SAMPLE ARTICLE: Made with care around the world\",\"outdated\":false,\"outdated_locales\":[],\"permission_group_id\":39771696447005,\"position\":0,\"promoted\":true,\"section_id\":39771706390941,\"source_locale\":\"en-us\",\"title\":\"SAMPLE ARTICLE: Made with care around the world\",\"updated_at\":\"2026-10-08T21:14:22Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/articles/39771682143261.json\",\"user_segment_id\":null,\"vote_count\":0,\"vote_sum\":0},{\"author_id\":39771704393373,\"body\":\"We understand that putting together new furniture can sometimes present a challenge. We’ve taken steps to ensure that assembling our products is straightforward.

Each product comes with proprietary easy-to-follow assembly instructions. We’ve broken down the process into manageable steps, using clear language and helpful diagrams. With our system, assembly instructions are numbered, and these numbers match those discreetly labeled on each piece. This includes even the smallest components, like screws and washers. You won’t need a degree in engineering to put together our furniture.

In addition, we’ve designed our furniture with simplicity in mind. This means fewer parts to manage and less time spent deciphering complicated instructions.

If you’re ever puzzled by a step, our customer support team is always ready to help. They’re trained to guide you through the assembly process on all our furniture, whether you’re putting together a compact loveseat or a large outdoor swing set.

We’re committed to providing you with quality, affordable furniture, while making sure you can appreciate your new pieces with minimal fuss. After all, the sooner you’re done with assembly, the sooner you can start enjoying your new furniture.

\",\"comments_disabled\":false,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:23Z\",\"draft\":true,\"edited_at\":\"2026-10-08T21:14:23Z\",\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/articles/39771706460829-SAMPLE-ARTICLE-Easy-assembly-instructions\",\"id\":39771706460829,\"label_names\":[],\"locale\":\"en-us\",\"name\":\"SAMPLE ARTICLE: Easy assembly instructions\",\"outdated\":false,\"outdated_locales\":[],\"permission_group_id\":39771696447005,\"position\":0,\"promoted\":false,\"section_id\":39771706390941,\"source_locale\":\"en-us\",\"title\":\"SAMPLE ARTICLE: Easy assembly instructions\",\"updated_at\":\"2026-10-08T21:14:23Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/articles/39771706460829.json\",\"user_segment_id\":null,\"vote_count\":0,\"vote_sum\":0},{\"author_id\":39771704393373,\"body\":\"Once you’ve chosen the perfect piece and the order is placed, you’ll receive a confirmation email with a unique order number. Keep this number handy, as it’s your key to know when it will arrive.

At any time, you can check in and track your order on the Homebuy website, just click the Track Your Order link located at the top of the page. Enter your unique order number and email address to see detailed information about your order’s status. This includes:

    \\n
  • Date the order was placed
  • \\n
  • Current location of the item(s)
  • \\n
  • Delivery date
  • \\n

We’re committed to keeping you informed every step of the way, yet if you ever need further help, our customer support team is always on hand.

\",\"comments_disabled\":false,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:24Z\",\"draft\":true,\"edited_at\":\"2026-10-08T21:14:24Z\",\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/articles/39771664797853-SAMPLE-ARTICLE-Track-your-order\",\"id\":39771664797853,\"label_names\":[],\"locale\":\"en-us\",\"name\":\"SAMPLE ARTICLE: Track your order\",\"outdated\":false,\"outdated_locales\":[],\"permission_group_id\":39771696447005,\"position\":0,\"promoted\":false,\"section_id\":39771682204701,\"source_locale\":\"en-us\",\"title\":\"SAMPLE ARTICLE: Track your order\",\"updated_at\":\"2026-10-08T21:14:24Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/articles/39771664797853.json\",\"user_segment_id\":null,\"vote_count\":0,\"vote_sum\":0},{\"author_id\":39771704393373,\"body\":\"We understand that plans change and you might need to update the delivery address for your order. Don’t worry, we’ve made this process easy.

To change your delivery address, log into your Homebuy account and navigate to My Orders.

Here, you’ll see a list of your current orders. Find the order for which you want to change the address, and click on Edit Delivery Address.

You’ll be able to enter a new address and save it. Please note that changes can only be made before the order has left the warehouse. Once the order is in transit, we’re unable to change the delivery address.

If you run into any issues or if your order is already in transit, please reach out to our customer support team immediately. We’re here to help ensure your furniture reaches the right destination.

\",\"comments_disabled\":false,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:25Z\",\"draft\":true,\"edited_at\":\"2026-10-08T21:14:25Z\",\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/articles/39771720366109-SAMPLE-ARTICLE-Change-your-delivery-address\",\"id\":39771720366109,\"label_names\":[],\"locale\":\"en-us\",\"name\":\"SAMPLE ARTICLE: Change your delivery address\",\"outdated\":false,\"outdated_locales\":[],\"permission_group_id\":39771696447005,\"position\":0,\"promoted\":false,\"section_id\":39771682204701,\"source_locale\":\"en-us\",\"title\":\"SAMPLE ARTICLE: Change your delivery address\",\"updated_at\":\"2026-10-08T21:14:25Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/articles/39771720366109.json\",\"user_segment_id\":null,\"vote_count\":0,\"vote_sum\":0},{\"author_id\":39771704393373,\"body\":\"Making sense of shipping costs can often seem formidable. We strive to ensure transparency concerning all the charges you may encounter during your furniture shopping journey.

Many factors collectively determine the final shipping cost:

    \\n
  • Number of items
  • \\n
  • Number of boxes per item
  • \\n
  • Dimensions of the item’s packaging
  • \\n
  • Weight of the item
  • \\n
  • Domestic or international shipping
  • \\n
  • Delivery location within the destination country
  • \\n

You’ll find a breakdown of shipping fees in the Order Summary section of the Checkout Page. The shipping charge includes the efforts of our dedicated delivery partners who transport your furniture from our warehouses to your delivery location. For an additional fee, our delivery partners offer white glove service and will completely assemble your new furniture.

We believe in transparency and want you to understand each expense linked with your order. We are here to support you in beautifying your homes with style and sophistication. Together, let’s create spaces that speak volumes about elegance, comfort, and charm.

\",\"comments_disabled\":false,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:26Z\",\"draft\":true,\"edited_at\":\"2026-10-08T21:14:26Z\",\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/articles/39771706549661-SAMPLE-ARTICLE-Understanding-shipping-costs\",\"id\":39771706549661,\"label_names\":[],\"locale\":\"en-us\",\"name\":\"SAMPLE ARTICLE: Understanding shipping costs\",\"outdated\":false,\"outdated_locales\":[],\"permission_group_id\":39771696447005,\"position\":0,\"promoted\":false,\"section_id\":39771682270621,\"source_locale\":\"en-us\",\"title\":\"SAMPLE ARTICLE: Understanding shipping costs\",\"updated_at\":\"2026-10-08T21:14:26Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/articles/39771706549661.json\",\"user_segment_id\":null,\"vote_count\":0,\"vote_sum\":0},{\"author_id\":39771704393373,\"body\":\"Homebuy, in line with our commitment to practicality and efficiency, offers Flat Pack Delivery. It’s quick, efficient, and streamlined so your delivery can be made simple and fuss-free.

Our Flat Pack Delivery means we ship your furniture disassembled in packages. This helps lower shipping costs since items are smaller, easier to manage, and can be loaded more efficiently during transit.

Upon arrival, it’s easy to put together as our proprietary assembly instructions are clearly written and easy-to-follow. All it requires is a little bit of time.

\",\"comments_disabled\":false,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:27Z\",\"draft\":true,\"edited_at\":\"2026-10-08T21:14:27Z\",\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/articles/39771697197597-SAMPLE-ARTICLE-Flat-pack-for-faster-shipping\",\"id\":39771697197597,\"label_names\":[],\"locale\":\"en-us\",\"name\":\"SAMPLE ARTICLE: Flat pack for faster shipping\",\"outdated\":false,\"outdated_locales\":[],\"permission_group_id\":39771696447005,\"position\":0,\"promoted\":false,\"section_id\":39771682270621,\"source_locale\":\"en-us\",\"title\":\"SAMPLE ARTICLE: Flat pack for faster shipping\",\"updated_at\":\"2026-10-08T21:14:27Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/articles/39771697197597.json\",\"user_segment_id\":null,\"vote_count\":0,\"vote_sum\":0},{\"author_id\":39771704393373,\"body\":\"Ensuring your satisfaction is important as we want to make your furniture shopping experience as seamless as possible.

If a purchase does not meet your expectations, it can be returned or exchanged within 30 days of your receiving the shipment.

    \\n
  • \\nExchanges are credited for the full value of the original product and no additional shipping fees are incurred
  • \\n
  • \\nReturns of furnishings in “never assembled” condition receive a 75% refund minus shipping cost to return the item
  • \\n
  • \\nReturns of furnishings in “previously assembled” condition receive a 65% refund minus shipping cost to return the item
  • \\n

Please make sure the furniture has not been modified or damaged in any way. Once we receive the item at our warehouse and confirm that it is in good condition, your refund will be processed.

To initiate a return, have your order number and follow the steps in the Returns & Exchanges section of the website.

If you need further help, our customer support team is here to help.

\",\"comments_disabled\":false,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:28Z\",\"draft\":true,\"edited_at\":\"2026-10-08T21:14:28Z\",\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/articles/39771706611997-SAMPLE-ARTICLE-Return-policy\",\"id\":39771706611997,\"label_names\":[],\"locale\":\"en-us\",\"name\":\"SAMPLE ARTICLE: Return policy\",\"outdated\":false,\"outdated_locales\":[],\"permission_group_id\":39771696447005,\"position\":0,\"promoted\":false,\"section_id\":39771720456349,\"source_locale\":\"en-us\",\"title\":\"SAMPLE ARTICLE: Return policy\",\"updated_at\":\"2026-10-08T21:14:28Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/articles/39771706611997.json\",\"user_segment_id\":null,\"vote_count\":0,\"vote_sum\":0},{\"author_id\":39771704393373,\"body\":\"Should your furniture piece not match your home or your exact needs, we allow exchanges for store credit within 30 days of receiving the shipment.

Exchanges are credited for the full value of the original product and no additional shipping fees are incurred.

To receive the full credit, it’s essential that you return the item in as-new condition, in the original packaging, with the return label.

Please make sure the furniture has not been modified or damaged in any way. Once we receive the item at our warehouse and confirm that it is in good condition, you will receive a credit to use with Homebuy Furniture.

To initiate a return, have your order number and follow the steps in the Returns & Exchanges section of the website.

\",\"comments_disabled\":false,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:28Z\",\"draft\":true,\"edited_at\":\"2026-10-08T21:14:28Z\",\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/articles/39771711141789-SAMPLE-ARTICLE-Exchange-for-credit\",\"id\":39771711141789,\"label_names\":[],\"locale\":\"en-us\",\"name\":\"SAMPLE ARTICLE: Exchange for credit\",\"outdated\":false,\"outdated_locales\":[],\"permission_group_id\":39771696447005,\"position\":0,\"promoted\":false,\"section_id\":39771720456349,\"source_locale\":\"en-us\",\"title\":\"SAMPLE ARTICLE: Exchange for credit\",\"updated_at\":\"2026-10-08T21:14:28Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/articles/39771711141789.json\",\"user_segment_id\":null,\"vote_count\":0,\"vote_sum\":0},{\"author_id\":39771704393373,\"body\":\"We seek to provide high-quality, modern furniture as well as providing convenient ways to pay.

We offer a few special financing options to seamlessly spread out the cost of your purchases.

    \\n
  1. \\nHomebuy Layaway
    Make a small down payment, and the rest can be paid incrementally over 120 days with no additional interest. Items will be shipped upon receipt of final payment.
  2. \\n
  3. \\nHomebuy Installment Plan
    For purchases over $2,000 USD, you can pay in 24 monthly installments with only a 3% APR. Items will be shipped immediately.
  4. \\n

Both plans are part of checkout; however, the installment plan will only appear for product purchases over the threshold. Shipping and white glove delivery are not included as part of these financing options and must be paid to finalize your order.

Our financing options help you enjoy the beauty of your home without financial stress. If you need further help, our customer support team is here to help.

\",\"comments_disabled\":false,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:29Z\",\"draft\":true,\"edited_at\":\"2026-10-08T21:14:29Z\",\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/articles/39771749517085-SAMPLE-ARTICLE-Financing-options\",\"id\":39771749517085,\"label_names\":[],\"locale\":\"en-us\",\"name\":\"SAMPLE ARTICLE: Financing options\",\"outdated\":false,\"outdated_locales\":[],\"permission_group_id\":39771696447005,\"position\":0,\"promoted\":false,\"section_id\":39771706638749,\"source_locale\":\"en-us\",\"title\":\"SAMPLE ARTICLE: Financing options\",\"updated_at\":\"2026-10-08T21:14:29Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/articles/39771749517085.json\",\"user_segment_id\":null,\"vote_count\":0,\"vote_sum\":0},{\"author_id\":39771704393373,\"body\":\"As a mid-range furniture brand, we offer exclusive Direct-to-Consumer Payment Plans to make your purchase experience even smoother. This helps in ensuring transparency in prices.

Our financing options are crafted to provide you added peace of mind and flexibility. Most importantly, we want to make high-value purchases more manageable.

Homebuy Layaway enables you to lock in today’s prices, which can be helpful with sales items, so you don’t miss out.

Homebuy Installment Plan gives you the gratification of instant ownership of your chosen furniture with the convenience of paying over time. This 3% APR plan allows you to distribute the cost evenly over 24 months.

Our goal is to provide affordable luxury and high-quality furnishings without straining your budget.

\",\"comments_disabled\":false,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:30Z\",\"draft\":true,\"edited_at\":\"2026-10-08T21:14:30Z\",\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/articles/39771711183389-SAMPLE-ARTICLE-Benefits-of-a-payment-plan\",\"id\":39771711183389,\"label_names\":[],\"locale\":\"en-us\",\"name\":\"SAMPLE ARTICLE: Benefits of a payment plan\",\"outdated\":false,\"outdated_locales\":[],\"permission_group_id\":39771696447005,\"position\":0,\"promoted\":false,\"section_id\":39771706638749,\"source_locale\":\"en-us\",\"title\":\"SAMPLE ARTICLE: Benefits of a payment plan\",\"updated_at\":\"2026-10-08T21:14:30Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/articles/39771711183389.json\",\"user_segment_id\":null,\"vote_count\":0,\"vote_sum\":0},{\"author_id\":39771704393373,\"body\":\"Give a gift that has no borders, the Homebuy International Gift Card. Shipping internationally, gift cards can be purchased in increments equivalent to $100 USD, yet the amount will be converted into the recipient’s local currency.

After choosing the amount, provide your loved one’s email address and add a personal touch by including a message. Then select a delivery date and complete the purchase.

\",\"comments_disabled\":false,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:31Z\",\"draft\":true,\"edited_at\":\"2026-10-08T21:14:31Z\",\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/articles/39771711204509-SAMPLE-ARTICLE-International-gift-cards\",\"id\":39771711204509,\"label_names\":[],\"locale\":\"en-us\",\"name\":\"SAMPLE ARTICLE: International gift cards\",\"outdated\":false,\"outdated_locales\":[],\"permission_group_id\":39771696447005,\"position\":0,\"promoted\":false,\"section_id\":39771706684573,\"source_locale\":\"en-us\",\"title\":\"SAMPLE ARTICLE: International gift cards\",\"updated_at\":\"2026-10-08T21:14:31Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/articles/39771711204509.json\",\"user_segment_id\":null,\"vote_count\":0,\"vote_sum\":0},{\"author_id\":39771704393373,\"body\":\"Homebuy International Gift Cards have helped decorate many homes across the world. Gift cards are good for 2 years from the date they were sent to the recipient via the Homebuy website or, if you directly emailed the gift card to the recipient, then from its initial date of purchase.

This generous time frame provides enough to browse through collections, imagine new furnishings in a space, take measurements, and find the perfect items.

We understand that, occasionally, timing can be a challenge. If you have a gift card close to its expiration and anticipate a furnishing need just beyond the horizon, don’t fret. Connect with us and we can explore options to extend your gift card.

Our priority is your satisfaction as you craft your dream space with Homebuy Furniture.

\",\"comments_disabled\":false,\"content_tag_ids\":[],\"created_at\":\"2026-10-08T21:14:32Z\",\"draft\":true,\"edited_at\":\"2026-10-08T21:14:32Z\",\"html_url\":\"https://stealth-37618.zendesk.com/hc/en-us/articles/39771697329949-SAMPLE-ARTICLE-Gift-card-expiration-date\",\"id\":39771697329949,\"label_names\":[],\"locale\":\"en-us\",\"name\":\"SAMPLE ARTICLE: Gift card expiration date\",\"outdated\":false,\"outdated_locales\":[],\"permission_group_id\":39771696447005,\"position\":0,\"promoted\":false,\"section_id\":39771706684573,\"source_locale\":\"en-us\",\"title\":\"SAMPLE ARTICLE: Gift card expiration date\",\"updated_at\":\"2026-10-08T21:14:32Z\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/en-us/articles/39771697329949.json\",\"user_segment_id\":null,\"vote_count\":0,\"vote_sum\":0}],\"count\":12,\"end_time\":1791494072,\"next_page\":null}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "BYPASS", + "cf-ray": "a495f1f87850ff60-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 12:00:37 GMT", + "etag": "W/\"0f17beb669c6d964cefb3502f77b6ba5\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "protocol": "HTTP/1.1 always", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=rHkzpnbRP5GXK6qeU2CCDANT15vqinFI%2BSkraXOStj6Xza3B8TuFYi3xBJGAHXk9BfpS2CKgk5oKf0BZGgwUa9rFKZWK1BHsJsd3HFunHJnHCkVH%2BESlODMIF8D%2FmWo8tohaeFd2zHBkEjE%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-envoy-decorator-operation": "/api/v2/help_center/incremental/articles", + "x-envoy-upstream-service-time": "76", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/help_center/incremental/articles", + "x-rate-limit": "400", + "x-rate-limit-remaining": "399", + "x-request-id": "a495f1f87850ff60-DUB", + "x-request-validation": "matched", + "x-runtime": "0.072118", + "x-ua-compatible": "IE=edge", + "x-zendesk-api-version": "v2", + "x-zendesk-origin-server": "app-server-847bdb54c6-d42cm", + "x-zendesk-zorg": "yes", + "zendesk-service": "help-center" + } + } + }, + "{\"body\":\"\",\"headers\":{\"accept\":\"application/json\"},\"method\":\"GET\",\"url\":\"https://stealth-37618.zendesk.com/api/v2/help_center/incremental/articles?start_time=1791494340\"}": { + "request": { + "method": "GET", + "url": "https://stealth-37618.zendesk.com/api/v2/help_center/incremental/articles?start_time=1791494340", + "headers": { + "accept": "application/json" + } + }, + "response": { + "status": 200, + "body": "{\"articles\":[],\"count\":0,\"end_time\":1,\"next_page\":null}", + "headers": { + "access-control-allow-origin": "*", + "access-control-expose-headers": "X-Zendesk-API-Warn", + "cache-control": "max-age=0, private, must-revalidate", + "cf-cache-status": "BYPASS", + "cf-ray": "a495f1fa6ceeff60-BOM", + "connection": "keep-alive", + "content-encoding": "br", + "content-type": "application/json; charset=utf-8", + "date": "Mon, 12 Oct 2026 12:00:37 GMT", + "etag": "W/\"cfd7b9830c16cd68b6ccdbf6d038d1b6\"", + "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}", + "protocol": "HTTP/1.1 always", + "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=hXawl6uPPIA8pMK6XRIpwPT7ObWCcUHnnF3V799XuwFtlzPo4dtlHKaULdE8WgGJXwg82qFvtsh2q2HpXM57V02Nbt2Hr3Vta3pjfzjPdTYr%2FRXOps%2BB1cXYfTKI%2FqBlR%2FPpBbQGOCqssbA%3D\"}]}", + "server": "cloudflare", + "strict-transport-security": "max-age=31536000; includeSubDomains", + "transfer-encoding": "chunked", + "vary": "Accept-Encoding", + "via": "zorg", + "x-envoy-decorator-operation": "/api/v2/help_center/incremental/articles", + "x-envoy-upstream-service-time": "35", + "x-frame-options": "SAMEORIGIN", + "x-openapi-route-path": "/api/v2/help_center/incremental/articles", + "x-rate-limit": "400", + "x-rate-limit-remaining": "398", + "x-request-id": "a495f1fa6ceeff60-DUB", + "x-request-validation": "matched", + "x-runtime": "0.031288", + "x-ua-compatible": "IE=edge", + "x-zendesk-api-version": "v2", + "x-zendesk-origin-server": "app-server-847bdb54c6-bnlr7", + "x-zendesk-zorg": "yes", + "zendesk-service": "help-center" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/connectors/producer-zendesk/test/api.vcr.test.ts b/connectors/producer-zendesk/test/api.vcr.test.ts new file mode 100644 index 00000000..bf7843e6 --- /dev/null +++ b/connectors/producer-zendesk/test/api.vcr.test.ts @@ -0,0 +1,332 @@ +import { NodeServices } from "@effect/platform-node"; +import { describe, expect, it } from "@effect/vitest"; +import { ConnectorApp } from "@useairfoil/connector-kit"; +import { FileSystemCassetteStore, VcrHttpClient } from "@useairfoil/effect-vcr"; +import { ConfigProvider, Effect, Layer, Option } from "effect"; +import { FetchHttpClient } from "effect/http"; +import { existsSync } from "node:fs"; + +import { ZendeskConnector, manifest } from "../src/index"; + +const canRun = + existsSync(new URL("./__cassettes__/api.vcr.test.cassette", import.meta.url)) || + process.env.ZENDESK_CLIENT_SECRET !== undefined; + +const configLayer = ConfigProvider.layer( + ConfigProvider.fromEnv().pipe( + ConfigProvider.orElse( + ConfigProvider.fromUnknown({ + ZENDESK_SUBDOMAIN: "stealth-37618", + ZENDESK_CLIENT_ID: "zendesk-client-id-placeholder", + ZENDESK_CLIENT_SECRET: "zendesk-client-secret-placeholder", + }), + ), + ), +); + +const connectorLayer = ZendeskConnector.layerConfig(ZendeskConnector.ZendeskConfigDef.config).pipe( + Layer.provide( + VcrHttpClient.layer({ + vcrName: "producer-zendesk", + redact: { + requestBodyReplacements: { + client_id: "zendesk-client-id-placeholder", + client_secret: "zendesk-client-secret-placeholder", + }, + // Polling windows change between recordings. + requestQueryParams: ["filter[created_at_start]"], + responseHeaders: ["set-cookie"], + responseBodyReplacements: { + access_token: "zendesk-access-token-placeholder", + email: "user@example.com", + ip_address: null, + location: null, + latitude: null, + longitude: null, + client: null, + }, + }, + }).pipe( + Layer.provide(FileSystemCassetteStore.layer()), + Layer.provide(Layer.merge(NodeServices.layer, FetchHttpClient.layer)), + ), + ), + Layer.provide(configLayer), +); + +// Before the test data was made, so changes read all of it. +const cutoff = "2026-10-08T21:20:00.000Z"; + +describe.skipIf(!canRun)("Zendesk API (vcr)", () => { + // Export calls are spaced out, so this takes over a minute, even in replay. + it.live( + "checks, backfills, and reads changes for every resource", + () => + Effect.gen(function* () { + // Share one token; a second acquisition would replay the redacted token. + const built = Layer.succeedContext(yield* Layer.build(connectorLayer)); + const check = yield* ConnectorApp.check(ZendeskConnector.ZendeskConnector, built, { + resources: manifest.resources.map((resource) => resource.name), + }); + const connector = yield* ZendeskConnector.ZendeskConnector.pipe(Effect.provide(built)); + + const results: Record = {}; + for (const resource of connector.resources) { + // Memberships have no backfill. + const backfill = resource.backfill; + const changes = yield* Effect.fromOption(Option.fromNullishOr(resource.changes)); + + let rows = 0; + let pageCursor: string | undefined; + while (backfill) { + const page = yield* backfill.fetch({ cutoff, ...(pageCursor ? { pageCursor } : {}) }); + rows += page.rows.length; + if (!page.hasMore) break; + pageCursor = String(page.nextPageCursor); + } + const changed = yield* changes.fetch({ cursor: cutoff }); + const deletes = changed.rows.filter((row) => row._deleted === true).length; + + results[resource.name] = { + backfillRows: rows, + changedRows: changed.rows.length - deletes, + deletes, + }; + } + + expect({ check, results }).toMatchInlineSnapshot(` + { + "check": { + "articles": { + "_tag": "ok", + }, + "brands": { + "_tag": "ok", + }, + "categories": { + "_tag": "ok", + }, + "community_posts": { + "_tag": "ok", + }, + "community_topics": { + "_tag": "ok", + }, + "csat_surveys": { + "_tag": "ok", + }, + "custom_roles": { + "_tag": "ok", + }, + "custom_statuses": { + "_tag": "ok", + }, + "group_memberships": { + "_tag": "ok", + }, + "groups": { + "_tag": "ok", + }, + "macros": { + "_tag": "ok", + }, + "organization_fields": { + "_tag": "ok", + }, + "organization_memberships": { + "_tag": "ok", + }, + "organizations": { + "_tag": "ok", + }, + "satisfaction_ratings": { + "_tag": "ok", + }, + "schedules": { + "_tag": "ok", + }, + "sections": { + "_tag": "ok", + }, + "sla_policies": { + "_tag": "ok", + }, + "survey_responses": { + "_tag": "ok", + }, + "talk_lines": { + "_tag": "ok", + }, + "ticket_comments": { + "_tag": "ok", + }, + "ticket_field_history": { + "_tag": "ok", + }, + "ticket_fields": { + "_tag": "ok", + }, + "ticket_forms": { + "_tag": "ok", + }, + "ticket_metric_events": { + "_tag": "ok", + }, + "tickets": { + "_tag": "ok", + }, + "user_fields": { + "_tag": "ok", + }, + "users": { + "_tag": "ok", + }, + }, + "results": { + "articles": { + "backfillRows": 12, + "changedRows": 0, + "deletes": 0, + }, + "brands": { + "backfillRows": 1, + "changedRows": 1, + "deletes": 0, + }, + "categories": { + "backfillRows": 1, + "changedRows": 1, + "deletes": 0, + }, + "community_posts": { + "backfillRows": 5, + "changedRows": 5, + "deletes": 0, + }, + "community_topics": { + "backfillRows": 2, + "changedRows": 2, + "deletes": 0, + }, + "csat_surveys": { + "backfillRows": 1, + "changedRows": 1, + "deletes": 0, + }, + "custom_roles": { + "backfillRows": 4, + "changedRows": 4, + "deletes": 0, + }, + "custom_statuses": { + "backfillRows": 6, + "changedRows": 6, + "deletes": 0, + }, + "group_memberships": { + "backfillRows": 0, + "changedRows": 2, + "deletes": 0, + }, + "groups": { + "backfillRows": 2, + "changedRows": 2, + "deletes": 0, + }, + "macros": { + "backfillRows": 2, + "changedRows": 2, + "deletes": 0, + }, + "organization_fields": { + "backfillRows": 1, + "changedRows": 1, + "deletes": 0, + }, + "organization_memberships": { + "backfillRows": 0, + "changedRows": 2, + "deletes": 0, + }, + "organizations": { + "backfillRows": 3, + "changedRows": 1, + "deletes": 1, + }, + "satisfaction_ratings": { + "backfillRows": 6, + "changedRows": 6, + "deletes": 0, + }, + "schedules": { + "backfillRows": 1, + "changedRows": 1, + "deletes": 0, + }, + "sections": { + "backfillRows": 6, + "changedRows": 6, + "deletes": 0, + }, + "sla_policies": { + "backfillRows": 1, + "changedRows": 1, + "deletes": 0, + }, + "survey_responses": { + "backfillRows": 2, + "changedRows": 2, + "deletes": 0, + }, + "talk_lines": { + "backfillRows": 2, + "changedRows": 2, + "deletes": 0, + }, + "ticket_comments": { + "backfillRows": 23, + "changedRows": 22, + "deletes": 0, + }, + "ticket_field_history": { + "backfillRows": 140, + "changedRows": 122, + "deletes": 0, + }, + "ticket_fields": { + "backfillRows": 25, + "changedRows": 25, + "deletes": 0, + }, + "ticket_forms": { + "backfillRows": 1, + "changedRows": 1, + "deletes": 0, + }, + "ticket_metric_events": { + "backfillRows": 144, + "changedRows": 133, + "deletes": 0, + }, + "tickets": { + "backfillRows": 6, + "changedRows": 4, + "deletes": 1, + }, + "user_fields": { + "backfillRows": 1, + "changedRows": 1, + "deletes": 0, + }, + "users": { + "backfillRows": 7, + "changedRows": 5, + "deletes": 1, + }, + }, + } + `); + }).pipe(Effect.scoped), + 5 * 60_000, + ); +}); diff --git a/connectors/producer-zendesk/test/client.test.ts b/connectors/producer-zendesk/test/client.test.ts new file mode 100644 index 00000000..96041774 --- /dev/null +++ b/connectors/producer-zendesk/test/client.test.ts @@ -0,0 +1,199 @@ +import { describe, expect, it } from "@effect/vitest"; +import { Metrics, Telemetry } from "@useairfoil/connector-kit"; +import { Array as Arr, Effect, Fiber, Layer, Metric, Redacted, Ref, Schema } from "effect"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; +import { TestClock } from "effect/testing"; + +import type { ZendeskConfig } from "../src/manifest"; + +import { ZendeskClient } from "../src/index"; + +const config: ZendeskConfig = { + subdomain: "acme", + clientId: "airfoil-test", + clientSecret: Redacted.make("secret"), +}; + +const retryCount = (reason: Metrics.ApiRetryReason) => + Metric.value( + Metric.withAttributes(Metrics.apiRetries, { + [Telemetry.Attr.connectorName]: "producer-zendesk", + [Telemetry.Attr.apiRetryReason]: reason, + }), + ).pipe(Effect.map((state) => state.count)); + +type FakeResponse = { + readonly status: number; + readonly body: unknown; + readonly headers?: Readonly>; +}; + +const token = { access_token: "token", token_type: "bearer", expires_in: 1800 }; + +const getWith = (responses: Arr.NonEmptyReadonlyArray) => + Effect.gen(function* () { + const calls = yield* Ref.make>([]); + const http = HttpClient.make((request) => + Ref.getAndUpdate(calls, (items) => [...items, request.url]).pipe( + Effect.map((items) => { + const apiCalls = items.filter((url) => !url.endsWith("/oauth/tokens")).length; + const { status, body, headers } = request.url.endsWith("/oauth/tokens") + ? { status: 200, body: token, headers: {} } + : (responses[apiCalls] ?? Arr.lastNonEmpty(responses)); + return HttpClientResponse.fromWeb( + request, + new Response(JSON.stringify(body), { + status, + headers: { "content-type": "application/json", ...headers }, + }), + ); + }), + ), + ); + + const result = yield* Effect.gen(function* () { + const client = yield* ZendeskClient.ZendeskClient; + const schema = Schema.Struct({ groups: Schema.Array(Schema.Unknown) }); + yield* client.get(schema, "/groups").pipe(Effect.ignore); + return yield* client.get(schema, "/groups"); + }).pipe( + Effect.match({ + onFailure: (error) => error.message, + onSuccess: (body) => `${body.groups.length} groups`, + }), + Effect.provide( + ZendeskClient.layer(config).pipe(Layer.provide(Layer.succeed(HttpClient.HttpClient)(http))), + ), + ); + + return { + result, + calls: (yield* Ref.get(calls)).map((url) => new URL(url).pathname), + rateLimitRetries: yield* retryCount("rate_limit"), + serverErrorRetries: yield* retryCount("server_error"), + }; + }).pipe(Effect.provideService(Metric.MetricRegistry, new Map())); + +describe("client", () => { + it.live("reuses the token, retries what is temporary, and keeps Zendesk's message", () => + Effect.gen(function* () { + const ok = { status: 200, body: { groups: [] } }; + expect({ + ok: yield* getWith([ok]), + retried: yield* getWith([ + { status: 503, body: {} }, + { status: 429, body: {}, headers: { "retry-after": "0" } }, + ok, + ]), + revoked: yield* getWith([{ status: 401, body: {} }, ok]), + missingScope: yield* getWith([ + { + status: 403, + body: { + error: "Forbidden", + description: "You are missing the following required scopes: groups:read", + }, + }, + ]), + }).toMatchInlineSnapshot(` + { + "missingScope": { + "calls": [ + "/oauth/tokens", + "/api/v2/groups", + "/api/v2/groups", + ], + "rateLimitRetries": 0, + "result": "Zendesk API returned 403 for /groups: You are missing the following required scopes: groups:read", + "serverErrorRetries": 0, + }, + "ok": { + "calls": [ + "/oauth/tokens", + "/api/v2/groups", + "/api/v2/groups", + ], + "rateLimitRetries": 0, + "result": "0 groups", + "serverErrorRetries": 0, + }, + "retried": { + "calls": [ + "/oauth/tokens", + "/api/v2/groups", + "/api/v2/groups", + "/api/v2/groups", + "/api/v2/groups", + ], + "rateLimitRetries": 1, + "result": "0 groups", + "serverErrorRetries": 1, + }, + "revoked": { + "calls": [ + "/oauth/tokens", + "/api/v2/groups", + "/oauth/tokens", + "/api/v2/groups", + "/api/v2/groups", + ], + "rateLimitRetries": 0, + "result": "0 groups", + "serverErrorRetries": 0, + }, + } + `); + }), + ); + + it.effect("retries an attempt that hangs", () => + Effect.gen(function* () { + const calls = yield* Ref.make(0); + const respond = (request: HttpClientRequest.HttpClientRequest, body: unknown) => + HttpClientResponse.fromWeb( + request, + new Response(JSON.stringify(body), { headers: { "content-type": "application/json" } }), + ); + const http = HttpClient.make((request) => + request.url.endsWith("/oauth/tokens") + ? Effect.succeed(respond(request, token)) + : Ref.getAndUpdate(calls, (n) => n + 1).pipe( + Effect.flatMap((n) => + n === 0 ? Effect.never : Effect.succeed(respond(request, { groups: [] })), + ), + ), + ); + + const fiber = yield* Effect.gen(function* () { + const client = yield* ZendeskClient.ZendeskClient; + return yield* client.get( + Schema.Struct({ groups: Schema.Array(Schema.Unknown) }), + "/groups", + ); + }).pipe( + Effect.provide( + ZendeskClient.layer(config).pipe( + Layer.provide(Layer.succeed(HttpClient.HttpClient)(http)), + ), + ), + Effect.forkChild, + ); + yield* TestClock.adjust("2 minutes"); + yield* TestClock.adjust("10 seconds"); + + expect({ + result: yield* Fiber.join(fiber), + calls: yield* Ref.get(calls), + timeoutRetries: yield* retryCount("timeout"), + }).toMatchInlineSnapshot(` + { + "calls": 2, + "result": { + "groups": [], + }, + "timeoutRetries": 1, + } + `); + }).pipe(Effect.provideService(Metric.MetricRegistry, new Map())), + ); +}); diff --git a/connectors/producer-zendesk/test/fixtures/objects.ts b/connectors/producer-zendesk/test/fixtures/objects.ts new file mode 100644 index 00000000..2223a895 --- /dev/null +++ b/connectors/producer-zendesk/test/fixtures/objects.ts @@ -0,0 +1,319 @@ +// Shapes from a Zendesk trial account, trimmed, with test data. + +export const ticket = (id: number, fields: Readonly> = {}) => ({ + url: `https://acme.zendesk.com/api/v2/tickets/${id}.json`, + id, + external_id: null, + via: { channel: "api", source: { from: {}, to: {}, rel: null } }, + created_at: "2026-10-08T21:25:21Z", + updated_at: "2026-10-08T21:25:28Z", + generated_timestamp: 1791494764, + type: "question", + subject: "Billing question", + raw_subject: "Billing question", + description: "Billing question - first message", + priority: "high", + status: "solved", + requester_id: 39771868857245, + submitter_id: 39771868857245, + assignee_id: 39771704393373, + organization_id: 39771868840349, + group_id: 39771663256989, + collaborator_ids: [], + problem_id: null, + is_public: true, + due_at: null, + tags: ["billing", "vip"], + custom_fields: [ + { id: 39771663108893, value: null }, + { id: 39771680543389, value: "topic__billing__invoice__request" }, + { id: 39771695973277, value: false }, + { id: 39771695973278, value: ["red", "blue"] }, + ], + satisfaction_rating: { score: "unoffered" }, + custom_status_id: 39771663254173, + ticket_form_id: 39771663206685, + brand_id: 39771695429277, + ...fields, +}); + +const minutes = (calendar: number | null, business: number | null) => ({ calendar, business }); + +export const metricSet = (ticketId: number) => ({ + url: "https://acme.zendesk.com/api/v2/ticket_metrics/39771696929565.json", + id: 39771696929565, + ticket_id: ticketId, + created_at: "2026-10-08T21:25:21Z", + updated_at: "2026-10-08T21:25:28Z", + group_stations: 1, + assignee_stations: 1, + reopens: 0, + replies: 2, + status_updated_at: "2026-10-08T21:25:28Z", + initially_assigned_at: "2026-10-08T21:25:21Z", + assigned_at: "2026-10-08T21:25:21Z", + solved_at: "2026-10-08T21:25:28Z", + latest_comment_added_at: "2026-10-08T21:25:28Z", + reply_time_in_minutes: minutes(4, 4), + first_resolution_time_in_minutes: minutes(7, 7), + full_resolution_time_in_minutes: minutes(7, 7), + agent_wait_time_in_minutes: minutes(0, 0), + requester_wait_time_in_minutes: minutes(7, 7), + on_hold_time_in_minutes: minutes(0, 0), +}); + +export const user = (id: number, fields: Readonly> = {}) => ({ + id, + url: `https://acme.zendesk.com/api/v2/users/${id}.json`, + name: "Ada Test", + email: "ada@acme.example", + created_at: "2026-10-08T21:25:19Z", + updated_at: "2026-10-08T21:25:19Z", + time_zone: "Asia/Kolkata", + locale: "en-US", + organization_id: 39771868840349, + role: "end-user", + verified: false, + external_id: null, + tags: ["beta"], + active: true, + suspended: false, + custom_role_id: null, + default_group_id: null, + last_login_at: null, + user_fields: { plan: "pro", seats: 12, renewal: null }, + ...fields, +}); + +export const organization = (id: number, fields: Readonly> = {}) => ({ + url: `https://acme.zendesk.com/api/v2/organizations/${id}.json`, + id, + name: "Acme Test Co", + shared_tickets: false, + shared_comments: false, + external_id: null, + created_at: "2026-10-08T21:25:18Z", + updated_at: "2026-10-08T21:25:18Z", + domain_names: ["acme.example"], + details: "", + notes: "", + group_id: null, + tags: ["vip"], + organization_fields: {}, + deleted_at: null, + ...fields, +}); + +export const comment = (id: number, fields: Readonly> = {}) => ({ + id, + via: { channel: "api", source: { from: {}, to: {}, rel: null } }, + type: "Comment", + author_id: 39771704393373, + body: "Thanks Ada, looking into it.", + html_body: "

Thanks Ada, looking into it.

", + plain_body: "Thanks Ada, looking into it.", + public: true, + attachments: [], + audit_id: 39771900527901, + created_at: "2026-10-08T21:25:26Z", + ...fields, +}); + +export const ticketEvent = ( + ticketId: number, + createdAt: string, + childEvents: ReadonlyArray, +) => ({ + id: 39771900527901, + ticket_id: ticketId, + timestamp: Date.parse(createdAt) / 1000, + created_at: createdAt, + updater_id: 39771704393373, + via: "Web service", + system: {}, + metadata: {}, + event_type: "Audit", + child_events: childEvents, +}); + +export const group = { + url: "https://acme.zendesk.com/api/v2/groups/39771663256989.json", + id: 39771663256989, + is_public: true, + name: "Support", + description: "", + default: true, + deleted: false, + created_at: "2026-10-08T21:13:25Z", + updated_at: "2026-10-08T21:13:25Z", +}; + +export const customStatus = { + url: "https://acme.zendesk.com/api/v2/custom_statuses/39771663254173.json", + id: 39771663254173, + status_category: "solved", + agent_label: "Solved", + end_user_label: "Solved", + active: true, + default: true, + created_at: "2026-10-08T21:13:25Z", + updated_at: "2026-10-08T21:13:25Z", +}; + +const answer = (fields: Readonly>) => ({ + created_at: "2026-10-09T06:18:21.129Z", + updated_at: "2026-10-09T06:18:21.129Z", + ...fields, +}); + +export const surveyResponse = (id: string, answers: ReadonlyArray, ticketId = "3") => ({ + id, + expires_at: "2026-11-06T06:18:03.261Z", + responder_id: "39771850790941", + subject_zrns: [`zen:ticket:${ticketId}`], + subjects: [{ id: ticketId, type: "ticket", zrn: `zen:ticket:${ticketId}` }], + survey: { id: "01M4FMXHBW5WHJ6D7BEMA0RZC5", version: 1, state: "enabled" }, + answers, +}); + +export const ratingAnswer = (rating: number, category: string, updatedAt?: string) => + answer({ + type: "rating_scale", + rating, + rating_category: category, + question: { + type: "rating_scale_numeric", + sub_type: "customer_satisfaction", + id: "01M4FMXA2ZKKW0SW4G3MA6FBV9", + }, + ...(updatedAt === undefined ? {} : { updated_at: updatedAt }), + }); + +export const reasonAnswer = answer({ + type: "closed_ended", + selections: [{ type: "predefined", option_id: "01M4FMXA30Z079V8E8P0BM67D9" }], + question: { type: "closed_ended", id: "01M4FMXA2ZBXBT4CSMM2QAAEV7" }, +}); + +export const commentAnswer = answer({ + type: "open_ended", + value: "Took too long to get a reply.", + question: { type: "open_ended", id: "01M4FMXA30EKPSYPJRYHK3NJPQ" }, +}); + +const text = (value: string) => ({ type: "static", value }); + +export const csatSurvey = { + id: "01M4FMXHBW5WHJ6D7BEMA0RZC5", + state: "enabled", + version: 1, + created_at: "2026-10-09T06:16:58.492Z", + updated_at: "2026-10-09T06:16:58.492Z", + questions: [ + { + type: "rating_scale_numeric", + sub_type: "customer_satisfaction", + id: "01M4FMXA2ZKKW0SW4G3MA6FBV9", + headline: text("How would you rate the support you received?"), + options: [ + { rating: 1, label: text("Very unsatisfied"), follow_up: { question_id: "x" } }, + { rating: 5, label: text("Very satisfied"), follow_up: { question_id: "y" } }, + ], + }, + { + type: "closed_ended", + id: "01M4FMXA2ZBXBT4CSMM2QAAEV7", + headline: text("Select a reason regarding your experience"), + options: [{ id: "01M4FMXA30Z079V8E8P0BM67D9", label: text("The issue was not resolved") }], + }, + { + type: "open_ended", + id: "01M4FMXA30EKPSYPJRYHK3NJPQ", + headline: text("Share your thoughts on the support you received"), + }, + ], +}; + +export const identity = ( + id: number, + userId: number, + fields: Readonly> = {}, +) => ({ + url: `https://acme.zendesk.com/api/v2/users/${userId}/identities/${id}.json`, + id, + user_id: userId, + type: "email", + value: "ada@acme.example", + verified: false, + primary: true, + created_at: "2026-10-08T21:25:19Z", + updated_at: "2026-10-08T21:25:19Z", + verification_method: "none", + verified_at: null, + undeliverable_count: 0, + deliverable_state: "deliverable", + ...fields, +}); + +export const metricEvent = (id: number, fields: Readonly> = {}) => ({ + id, + ticket_id: 1, + metric: "reply_time", + instance_id: 1, + type: "activate", + time: "2026-10-08T21:14:17Z", + deleted: false, + ...fields, +}); + +export const groupMembership = (id: number, groupId: number) => ({ + url: `https://acme.zendesk.com/api/v2/group_memberships/${id}.json`, + id, + user_id: 39771704393373, + group_id: groupId, + default: false, + created_at: "2026-10-08T21:13:25Z", + updated_at: "2026-10-08T21:13:25Z", +}); + +export const rating = (id: number, fields: Readonly> = {}) => ({ + url: `https://acme.zendesk.com/api/v2/satisfaction_ratings/${id}.json`, + id, + assignee_id: 39771704393373, + group_id: 39771663256989, + requester_id: 39771850790941, + ticket_id: 6, + score: "bad", + created_at: "2026-10-08T21:30:21Z", + updated_at: "2026-10-08T21:30:21Z", + comment: "Took too long to get a reply.", + ...fields, +}); + +export const article = (id: number) => ({ + id, + url: `https://acme.zendesk.com/api/v2/help_center/en-us/articles/${id}.json`, + html_url: `https://acme.zendesk.com/hc/en-us/articles/${id}-Returns`, + author_id: 39771704393373, + comments_disabled: false, + draft: false, + promoted: false, + position: 0, + vote_sum: 0, + vote_count: 0, + section_id: 39771706390941, + created_at: "2026-10-08T21:14:22Z", + updated_at: "2026-10-08T21:14:22Z", + name: "Returns", + title: "Returns", + source_locale: "en-us", + locale: "en-us", + outdated: false, + outdated_locales: [], + edited_at: "2026-10-08T21:14:22Z", + user_segment_id: null, + permission_group_id: 39771696447005, + content_tag_ids: [], + label_names: [], + body: "

Send it back within 30 days.

", +}); diff --git a/connectors/producer-zendesk/test/helpers.ts b/connectors/producer-zendesk/test/helpers.ts new file mode 100644 index 00000000..ad33f3d8 --- /dev/null +++ b/connectors/producer-zendesk/test/helpers.ts @@ -0,0 +1,80 @@ +import { ConnectorError } from "@useairfoil/connector-kit"; +import { Effect, Layer, Option, Ref, Schema } from "effect"; + +import type { ZendeskClientService } from "../src/client/client"; + +import { ZendeskClient, ZendeskConnector } from "../src/index"; + +export type FakeRequest = { + readonly path: string; + readonly params: Readonly>; +}; + +/** Answers a request with a response body, or undefined for a 404. */ +export type FakeZendesk = (request: FakeRequest) => unknown; + +const decode = (schema: Schema.Decoder, value: unknown, path: string) => + Schema.decodeUnknownEffect(schema)(value).pipe( + Effect.mapError( + (cause) => new ConnectorError({ message: `Fixture for ${path} does not decode`, cause }), + ), + ); + +export const makeFakeClient = (fake: FakeZendesk) => + Effect.gen(function* () { + const requests = yield* Ref.make>([]); + const find = ( + schema: Schema.Decoder, + path: string, + params: Readonly> = {}, + ) => + Effect.gen(function* () { + const request = { path, params }; + yield* Ref.update(requests, (current) => [...current, request]); + return yield* Effect.transposeOption( + Option.fromNullishOr(fake(request)).pipe( + Option.map((body) => decode(schema, body, path)), + ), + ); + }); + const client: ZendeskClientService = { + find, + get: (schema, path, params) => + find(schema, path, params).pipe( + Effect.flatMap( + Option.match({ + onNone: () => + Effect.fail( + new ConnectorError({ message: `Zendesk API returned 404 for ${path}` }), + ), + onSome: Effect.succeed, + }), + ), + ), + }; + return { client, requests }; + }); + +export const connectorLayer = (client: ZendeskClientService) => + Layer.effect(ZendeskConnector.ZendeskConnector)(ZendeskConnector.make()).pipe( + Layer.provide(Layer.succeed(ZendeskClient.ZendeskClient)(client)), + ); + +export const describeRequest = (request: FakeRequest) => + [request.path, new URLSearchParams(request.params).toString()] + .filter((part) => part !== "") + .join(" "); + +export const plain = (value: unknown): unknown => + JSON.parse( + JSON.stringify(value, (_key, item) => + typeof item === "bigint" ? `${item}n` : item instanceof Map ? Object.fromEntries(item) : item, + ), + ); + +export const pick = (rows: ReadonlyArray, keys: ReadonlyArray) => + plain( + rows.map((row) => + Object.fromEntries(Object.entries(row).filter(([key]) => keys.includes(key))), + ), + ); diff --git a/connectors/producer-zendesk/test/iceberg-schema.test.ts b/connectors/producer-zendesk/test/iceberg-schema.test.ts new file mode 100644 index 00000000..ccfb24ca --- /dev/null +++ b/connectors/producer-zendesk/test/iceberg-schema.test.ts @@ -0,0 +1,480 @@ +import { describe, expect, it } from "@effect/vitest"; +import { Iceberg } from "@useairfoil/connector-kit"; +import { Effect } from "effect"; + +import { tableSchemas } from "../src/tables"; + +type CommitRequest = Effect.Success>; +type AddSchema = Extract; +type TableSchema = AddSchema["schema"]; +type IcebergType = TableSchema["fields"][number]["type"]; + +const tableSchema = (request: CommitRequest): TableSchema => { + const update = request.updates.find((item) => item.action === "add-schema"); + if (update?.action !== "add-schema") throw new Error("Missing add-schema update"); + return update.schema; +}; + +const undocumented = (type: IcebergType): ReadonlyArray => { + if (typeof type === "string") return []; + switch (type.type) { + case "struct": + return type.fields.flatMap((field) => [ + ...(field.doc ? [] : [field.name]), + ...undocumented(field.type), + ]); + case "list": + return undocumented(type.element); + case "map": + return [...undocumented(type.key), ...undocumented(type.value)]; + } +}; + +const describeType = (type: IcebergType): string => { + if (typeof type === "string") return type; + switch (type.type) { + case "struct": + return `struct<${type.fields.map((field) => `${field.id} ${field.name}${field.required ? "" : "?"}: ${describeType(field.type)}`).join(", ")}>`; + case "list": + return `list<${type["element-id"]}: ${describeType(type.element)}>`; + case "map": + return `map<${type["key-id"]}: ${describeType(type.key)}, ${type["value-id"]}: ${describeType(type.value)}>`; + } +}; + +describe("Iceberg schemas", () => { + it.effect("compiles every table with documented, stable field IDs", () => + Effect.gen(function* () { + const comments: Record = {}; + const missingDocs: Array = []; + const tables: Record> = {}; + for (const [name, schema] of Object.entries(tableSchemas)) { + const request = yield* Iceberg.makeCreateTableCommitRequest(schema, { + location: `s3://warehouse/zendesk-${name}`, + }); + const properties = request.updates.find((update) => update.action === "set-properties"); + comments[name] = + properties?.action === "set-properties" ? properties.updates.comment : undefined; + + const fields = tableSchema(request); + missingDocs.push(...undocumented(fields).map((field) => `${name}.${field}`)); + tables[name] = fields.fields.map( + (field) => + `${field.id} ${field.name}${field.required ? "" : "?"}: ${describeType(field.type)}`, + ); + } + + expect({ comments, missingDocs }).toMatchInlineSnapshot(` + { + "comments": { + "articles": "Zendesk Help Center articles.", + "brands": "Zendesk brands.", + "categories": "Zendesk Help Center categories.", + "community_posts": "Posts in the Zendesk community.", + "community_topics": "Topics in the Zendesk community.", + "csat_surveys": "Zendesk CSAT surveys. Names the IDs in \`survey_responses\`.", + "custom_roles": "Zendesk agent roles. Names \`users.custom_role_id\`.", + "custom_statuses": "Zendesk ticket statuses. Names \`tickets.custom_status_id\`.", + "group_memberships": "Which agents are in which Zendesk groups.", + "groups": "Zendesk agent groups.", + "macros": "Zendesk macros: saved replies and ticket changes.", + "organization_fields": "Zendesk organization fields. Names the keys in \`organizations.organization_fields\`.", + "organization_memberships": "Which users are in which Zendesk organizations. A user can be in several.", + "organizations": "Zendesk organizations, usually customer companies.", + "satisfaction_ratings": "Zendesk satisfaction ratings, from the legacy CSAT. A new score is a new row; the latest per ticket counts.", + "schedules": "Zendesk business hours schedules, with their holidays.", + "sections": "Zendesk Help Center sections.", + "sla_policies": "Zendesk SLA policies. Names the policies in \`ticket_metric_events\`.", + "survey_responses": "Answers to Zendesk CSAT surveys. Unanswered surveys are left out.", + "talk_lines": "Zendesk Talk lines: phone numbers and digital lines.", + "ticket_comments": "Comments and internal notes on Zendesk tickets.", + "ticket_field_history": "Every change to a Zendesk ticket field, one row per field.", + "ticket_fields": "Zendesk ticket fields. Names the IDs in \`tickets.custom_fields\`.", + "ticket_forms": "Zendesk ticket forms.", + "ticket_metric_events": "Zendesk ticket metric events: SLA targets and breaches, and each step of reply and resolution times.", + "tickets": "Zendesk tickets, with their metrics.", + "user_fields": "Zendesk user fields. Names the keys in \`users.user_fields\`.", + "users": "Zendesk users: end users, agents, and admins.", + }, + "missingDocs": [], + } + `); + expect(tables).toMatchInlineSnapshot(` + { + "articles": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 updated_at: timestamptz", + "5 html_url: string", + "6 title: string", + "7 body?: string", + "8 locale: string", + "9 source_locale: string", + "10 section_id: long", + "11 author_id: long", + "12 draft: boolean", + "13 promoted: boolean", + "14 position: long", + "15 vote_sum: long", + "16 vote_count: long", + "17 label_names: list<101: string>", + "18 edited_at: timestamptz", + ], + "brands": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 updated_at: timestamptz", + "5 name: string", + "6 subdomain: string", + "7 brand_url: string", + "8 active: boolean", + "9 default: boolean", + ], + "categories": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 updated_at: timestamptz", + "5 html_url: string", + "6 name: string", + "7 description?: string", + "8 locale: string", + "9 position: long", + ], + "community_posts": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 updated_at: timestamptz", + "5 html_url: string", + "6 title: string", + "7 details?: string", + "8 author_id: long", + "9 topic_id: long", + "10 status: string", + "11 featured: boolean", + "12 pinned: boolean", + "13 closed: boolean", + "14 vote_sum: long", + "15 vote_count: long", + "16 comment_count: long", + "17 follower_count: long", + ], + "community_topics": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 updated_at: timestamptz", + "5 html_url: string", + "6 name: string", + "7 description?: string", + "8 position: long", + "9 follower_count: long", + ], + "csat_surveys": [ + "1 id: string", + "2 version: timestamptz", + "3 survey_version: long", + "4 state: string", + "5 created_at: timestamptz", + "6 updated_at: timestamptz", + "7 questions: list<101: struct<102 id: string, 103 type: string, 104 sub_type?: string, 105 headline: string, 110 options: list<106: struct<107 id?: string, 108 rating?: long, 109 label: string>>>>", + ], + "custom_roles": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 updated_at: timestamptz", + "5 name: string", + "6 description?: string", + "7 role_type: long", + "8 team_member_count: long", + "9 configuration: map<101: string, 102: string>", + ], + "custom_statuses": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 updated_at: timestamptz", + "5 status_category: string", + "6 agent_label: string", + "7 end_user_label: string", + "8 active: boolean", + "9 default: boolean", + ], + "group_memberships": [ + "1 id: long", + "2 version: timestamptz", + "3 _deleted?: boolean", + "4 created_at: timestamptz", + "5 updated_at: timestamptz", + "6 user_id: long", + "7 group_id: long", + "8 default: boolean", + ], + "groups": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 updated_at: timestamptz", + "5 name: string", + "6 description: string", + "7 default: boolean", + "8 is_public: boolean", + ], + "macros": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 updated_at: timestamptz", + "5 title: string", + "6 description?: string", + "7 active: boolean", + "8 position: long", + "9 actions: list<101: struct<102 field: string, 103 value?: string>>", + "10 restriction?: string", + ], + "organization_fields": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 updated_at: timestamptz", + "5 key: string", + "6 type: string", + "7 title: string", + "8 active: boolean", + "9 position: long", + "10 custom_field_options: list<101: struct<102 id: long, 103 name: string, 104 value: string>>", + ], + "organization_memberships": [ + "1 id: long", + "2 version: timestamptz", + "3 _deleted?: boolean", + "4 created_at: timestamptz", + "5 updated_at: timestamptz", + "6 user_id: long", + "7 organization_id: long", + "8 default?: boolean", + "9 view_tickets: boolean", + ], + "organizations": [ + "1 id: long", + "2 version: timestamptz", + "3 _deleted?: boolean", + "4 created_at: timestamptz", + "5 updated_at: timestamptz", + "6 name: string", + "7 external_id?: string", + "8 group_id?: long", + "9 domain_names: list<101: string>", + "10 tags: list<102: string>", + "11 organization_fields: map<103: string, 104: string>", + ], + "satisfaction_ratings": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 updated_at: timestamptz", + "5 ticket_id?: long", + "6 requester_id: long", + "7 assignee_id?: long", + "8 group_id?: long", + "9 score: string", + "10 comment?: string", + "11 reason?: string", + "12 reason_id?: long", + ], + "schedules": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 updated_at: timestamptz", + "5 name: string", + "6 time_zone: string", + "7 intervals: list<101: struct<102 start_time: long, 103 end_time: long>>", + "8 holidays: list<104: struct<105 id: long, 106 name: string, 107 start_date: string, 108 end_date: string>>", + ], + "sections": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 updated_at: timestamptz", + "5 html_url: string", + "6 name: string", + "7 description?: string", + "8 locale: string", + "9 category_id: long", + "10 parent_section_id?: long", + "11 position: long", + ], + "sla_policies": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 updated_at: timestamptz", + "5 title: string", + "6 description?: string", + "7 position: long", + "8 filter: string", + "9 policy_metrics: list<101: struct<102 priority: string, 103 metric: string, 104 target_in_seconds: long, 105 business_hours: boolean>>", + ], + "survey_responses": [ + "1 id: string", + "2 version: timestamptz", + "3 ticket_id?: long", + "4 responder_id: long", + "5 survey_id: string", + "6 survey_version: long", + "7 rating?: long", + "8 rating_category?: string", + "9 answers: list<101: struct<102 question_id: string, 103 question_type: string, 104 type: string, 105 rating?: long, 106 rating_category?: string, 107 value?: string, 109 option_ids: list<108: string>, 110 updated_at: timestamptz>>", + "10 expires_at: timestamptz", + ], + "talk_lines": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 line_type: string", + "5 nickname?: string", + "6 number?: string", + "7 display_number?: string", + "8 country_code?: string", + "9 toll_free?: boolean", + "10 brand_id?: long", + "11 default_group_id?: long", + "12 group_ids: list<101: long>", + "13 priority: long", + "14 recorded: boolean", + "15 transcription: boolean", + ], + "ticket_comments": [ + "1 id: long", + "2 version: timestamptz", + "3 ticket_id: long", + "4 type: string", + "5 author_id: long", + "6 public: boolean", + "7 created_at: timestamptz", + "8 via: struct<101 channel: string>", + "9 body: string", + "10 attachments: list<102: struct<103 id: long, 104 file_name: string, 105 content_type: string, 106 size: long>>", + ], + "ticket_field_history": [ + "1 id: long", + "2 version: timestamptz", + "3 ticket_id: long", + "4 updater_id: long", + "5 event_type: string", + "6 field_name: string", + "7 value?: string", + "8 previous_value?: string", + "9 via: string", + ], + "ticket_fields": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 updated_at: timestamptz", + "5 type: string", + "6 title: string", + "7 raw_title: string", + "8 active: boolean", + "9 required: boolean", + "10 custom_field_options: list<101: struct<102 id: long, 103 name: string, 104 value: string>>", + ], + "ticket_forms": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 updated_at: timestamptz", + "5 name: string", + "6 display_name: string", + "7 active: boolean", + "8 default: boolean", + "9 ticket_field_ids: list<101: long>", + ], + "ticket_metric_events": [ + "1 id: long", + "2 version: timestamptz", + "3 _deleted?: boolean", + "4 ticket_id?: long", + "5 metric: string", + "6 instance_id: long", + "7 type: string", + "8 time: timestamptz", + "9 sla_policy_id?: long", + "10 sla_target_in_seconds?: long", + "11 sla_business_hours?: boolean", + "12 status_calendar?: long", + "13 status_business?: long", + ], + "tickets": [ + "1 id: long", + "2 version: timestamptz", + "3 _deleted?: boolean", + "4 created_at: timestamptz", + "5 updated_at: timestamptz", + "6 subject?: string", + "7 description?: string", + "8 status: string", + "9 custom_status_id?: long", + "10 priority?: string", + "11 type?: string", + "12 via: struct<101 channel: string>", + "13 requester_id?: long", + "14 submitter_id?: long", + "15 assignee_id?: long", + "16 organization_id?: long", + "17 group_id?: long", + "18 brand_id?: long", + "19 ticket_form_id?: long", + "20 problem_id?: long", + "21 due_at?: timestamptz", + "22 external_id?: string", + "23 is_public: boolean", + "24 satisfaction_rating?: struct<102 score: string, 103 comment?: string>", + "25 tags: list<104: string>", + "26 custom_fields: map<105: string, 106: string>", + "27 metrics?: struct<110 replies: long, 111 reopens: long, 112 assignee_stations: long, 113 group_stations: long, 116 reply_time_in_minutes: struct<114 calendar?: long, 115 business?: long>, 119 first_resolution_time_in_minutes: struct<117 calendar?: long, 118 business?: long>, 122 full_resolution_time_in_minutes: struct<120 calendar?: long, 121 business?: long>, 125 agent_wait_time_in_minutes: struct<123 calendar?: long, 124 business?: long>, 128 requester_wait_time_in_minutes: struct<126 calendar?: long, 127 business?: long>, 131 on_hold_time_in_minutes: struct<129 calendar?: long, 130 business?: long>, 132 assigned_at?: timestamptz, 133 initially_assigned_at?: timestamptz, 134 solved_at?: timestamptz, 135 latest_comment_added_at?: timestamptz, 136 status_updated_at?: timestamptz>", + ], + "user_fields": [ + "1 id: long", + "2 version: timestamptz", + "3 created_at: timestamptz", + "4 updated_at: timestamptz", + "5 key: string", + "6 type: string", + "7 title: string", + "8 active: boolean", + "9 position: long", + "10 custom_field_options: list<101: struct<102 id: long, 103 name: string, 104 value: string>>", + ], + "users": [ + "1 id: long", + "2 version: timestamptz", + "3 _deleted?: boolean", + "4 created_at: timestamptz", + "5 updated_at: timestamptz", + "6 name: string", + "7 email?: string", + "8 role: string", + "9 custom_role_id?: long", + "10 organization_id?: long", + "11 default_group_id?: long", + "12 suspended: boolean", + "13 verified: boolean", + "14 locale?: string", + "15 time_zone?: string", + "16 external_id?: string", + "17 last_login_at?: timestamptz", + "18 tags: list<101: string>", + "19 user_fields: map<102: string, 103: string>", + "20 identities: list<104: struct<105 id: long, 106 type: string, 107 value: string, 108 verified: boolean, 109 primary: boolean>>", + ], + } + `); + }), + ); +}); diff --git a/connectors/producer-zendesk/test/resources.test.ts b/connectors/producer-zendesk/test/resources.test.ts new file mode 100644 index 00000000..d78d99b1 --- /dev/null +++ b/connectors/producer-zendesk/test/resources.test.ts @@ -0,0 +1,1046 @@ +import { describe, expect, it } from "@effect/vitest"; +import { ConnectorApp } from "@useairfoil/connector-kit"; +import { Effect, Option, Ref } from "effect"; +import { TestClock } from "effect/testing"; + +import { ZendeskConnector, manifest } from "../src/index"; +import { tableSchemas } from "../src/tables"; +import { + article, + comment, + commentAnswer, + csatSurvey, + customStatus, + group, + groupMembership, + identity, + metricEvent, + metricSet, + organization, + rating, + ratingAnswer, + reasonAnswer, + surveyResponse, + ticket, + ticketEvent, + user, +} from "./fixtures/objects"; +import { + type FakeRequest, + type FakeZendesk, + connectorLayer, + describeRequest, + makeFakeClient, + pick, + plain, +} from "./helpers"; + +const now = Date.parse("2026-10-08T22:00:00.000Z"); +const cutoff = "2026-10-08T21:50:00.000Z"; + +type ResourceName = (typeof manifest.resources)[number]["name"]; + +const getChanges = (name: ResourceName, fake: FakeZendesk) => + Effect.gen(function* () { + yield* TestClock.setTime(now); + const { client, requests } = yield* makeFakeClient(fake); + const connector = yield* ZendeskConnector.ZendeskConnector.pipe( + Effect.provide(connectorLayer(client)), + ); + const resource = yield* Effect.fromOption( + Option.fromNullishOr(connector.resources.find((item) => item.name === name)), + ); + const changes = yield* Effect.fromOption(Option.fromNullishOr(resource.changes)); + return { + resource, + changes, + requests: Ref.get(requests).pipe(Effect.map((items) => items.map(describeRequest))), + }; + }); + +const getResource = (name: ResourceName, fake: FakeZendesk) => + Effect.gen(function* () { + const { resource, ...rest } = yield* getChanges(name, fake); + const backfill = yield* Effect.fromOption(Option.fromNullishOr(resource.backfill)); + return { backfill, ...rest }; + }); + +const cursorPages = + (key: string, pages: ReadonlyArray>, extra = {}) => + (request: FakeRequest) => { + const index = request.params.cursor === undefined ? 0 : Number(request.params.cursor); + const last = index === pages.length - 1; + return { + [key]: pages[index], + ...extra, + after_cursor: last ? null : String(index + 1), + end_of_stream: last, + }; + }; + +describe("resources", () => { + it.effect("matches the manifest and the table schemas", () => + Effect.gen(function* () { + const { client } = yield* makeFakeClient(() => undefined); + const connector = yield* ZendeskConnector.ZendeskConnector.pipe( + Effect.provide(connectorLayer(client)), + ); + + expect(connector.resources.map((item) => item.name)).toEqual( + manifest.resources.map((item) => item.name), + ); + for (const resource of connector.resources) { + expect(tableSchemas[resource.name]).toBe(resource.rowSchema); + } + }), + ); + + it.effect("checks every resource with read-only calls", () => + Effect.gen(function* () { + yield* TestClock.setTime(now); + const { client, requests } = yield* makeFakeClient(() => ({ + ...Object.fromEntries(manifest.resources.map((resource) => [resource.name, []] as const)), + ticket_events: [], + surveys: [], + identities: [], + holidays: [], + posts: [], + topics: [], + lines: [], + next_page: null, + after_cursor: null, + end_time: null, + end_of_stream: true, + })); + + const result = yield* ConnectorApp.check( + ZendeskConnector.ZendeskConnector, + connectorLayer(client), + { resources: manifest.resources.map((resource) => resource.name) }, + ); + + expect({ + failed: Object.entries(result).filter(([, item]) => item._tag !== "ok"), + requests: (yield* Ref.get(requests)).map(describeRequest), + }).toMatchInlineSnapshot(` + { + "failed": [], + "requests": [ + "/incremental/tickets/cursor include=metric_sets&start_time=0&per_page=1", + "/incremental/ticket_events include=comment_events&start_time=0&per_page=1", + "/incremental/users/cursor include=identities&start_time=0&per_page=1", + "/incremental/organizations start_time=0&per_page=1", + "/groups page%5Bsize%5D=100", + "/brands page%5Bsize%5D=100", + "/ticket_fields page%5Bsize%5D=100", + "/ticket_forms page%5Bsize%5D=100", + "/custom_statuses", + "/guide/survey_responses page%5Bsize%5D=1", + "/guide/en-us/surveys page%5Bsize%5D=50", + "/incremental/ticket_events start_time=0&per_page=1", + "/incremental/ticket_metric_events start_time=0&per_page=1", + "/satisfaction_ratings page%5Bsize%5D=1", + "/group_memberships page%5Bsize%5D=100", + "/organization_memberships page%5Bsize%5D=100", + "/user_fields page%5Bsize%5D=100", + "/organization_fields page%5Bsize%5D=100", + "/custom_roles", + "/slas/policies", + "/business_hours/schedules", + "/macros page%5Bsize%5D=100", + "/help_center/incremental/articles start_time=0&per_page=1", + "/help_center/sections page%5Bsize%5D=100", + "/help_center/categories page%5Bsize%5D=100", + "/community/posts page%5Bsize%5D=100", + "/community/topics page%5Bsize%5D=100", + "/channels/voice/lines", + ], + } + `); + }), + ); + + it.effect("backfills tickets with metrics, and stops past the cutoff", () => + Effect.gen(function* () { + const { backfill, requests } = yield* getResource( + "tickets", + cursorPages( + "tickets", + [ + [ticket(1, { generated_timestamp: 1791490000 })], + [ + ticket(2, { generated_timestamp: 1791496100 }), + // Past the cutoff. It still comes, and changes repeat it. + ticket(3, { status: "deleted", generated_timestamp: 1791496300 }), + ], + [ticket(4)], + ], + { metric_sets: [metricSet(2)] }, + ), + ); + + const first = yield* backfill.fetch({ cutoff }); + const second = yield* backfill.fetch({ cutoff, pageCursor: String(first.nextPageCursor) }); + + expect({ + first: { hasMore: first.hasMore, next: first.nextPageCursor }, + second: { hasMore: second.hasMore, next: second.nextPageCursor }, + row: plain(second.rows[0]), + deleted: pick(second.rows, ["id", "_deleted"]), + requests: yield* requests, + }).toMatchInlineSnapshot(` + { + "deleted": [ + { + "_deleted": false, + "id": "2n", + }, + { + "_deleted": true, + "id": "3n", + }, + ], + "first": { + "hasMore": true, + "next": "1", + }, + "requests": [ + "/incremental/tickets/cursor include=metric_sets&start_time=0", + "/incremental/tickets/cursor include=metric_sets&cursor=1", + ], + "row": { + "_deleted": false, + "assignee_id": "39771704393373n", + "brand_id": "39771695429277n", + "created_at": "2026-10-08T21:25:21.000Z", + "custom_fields": { + "39771680543389": "topic__billing__invoice__request", + "39771695973277": "false", + "39771695973278": "["red","blue"]", + }, + "custom_status_id": "39771663254173n", + "description": "Billing question - first message", + "due_at": null, + "external_id": null, + "group_id": "39771663256989n", + "id": "2n", + "is_public": true, + "metrics": { + "agent_wait_time_in_minutes": { + "business": "0n", + "calendar": "0n", + }, + "assigned_at": "2026-10-08T21:25:21.000Z", + "assignee_stations": "1n", + "first_resolution_time_in_minutes": { + "business": "7n", + "calendar": "7n", + }, + "full_resolution_time_in_minutes": { + "business": "7n", + "calendar": "7n", + }, + "group_stations": "1n", + "initially_assigned_at": "2026-10-08T21:25:21.000Z", + "latest_comment_added_at": "2026-10-08T21:25:28.000Z", + "on_hold_time_in_minutes": { + "business": "0n", + "calendar": "0n", + }, + "reopens": "0n", + "replies": "2n", + "reply_time_in_minutes": { + "business": "4n", + "calendar": "4n", + }, + "requester_wait_time_in_minutes": { + "business": "7n", + "calendar": "7n", + }, + "solved_at": "2026-10-08T21:25:28.000Z", + "status_updated_at": "2026-10-08T21:25:28.000Z", + }, + "organization_id": "39771868840349n", + "priority": "high", + "problem_id": null, + "requester_id": "39771868857245n", + "satisfaction_rating": { + "score": "unoffered", + }, + "status": "solved", + "subject": "Billing question", + "submitter_id": "39771868857245n", + "tags": [ + "billing", + "vip", + ], + "ticket_form_id": "39771663206685n", + "type": "question", + "updated_at": "2026-10-08T21:25:28.000Z", + "version": "2026-10-08T21:48:20.000Z", + "via": { + "channel": "api", + }, + }, + "second": { + "hasMore": false, + "next": undefined, + }, + } + `); + }), + ); + + it.effect("reads ticket changes from a minute before the cutoff, then by cursor", () => + Effect.gen(function* () { + const { changes, requests } = yield* getResource( + "tickets", + cursorPages("tickets", [[ticket(1)], [ticket(2)]]), + ); + + const first = yield* changes.fetch({ cursor: cutoff }); + const second = yield* changes.fetch({ cursor: first.cursor }); + + expect({ + first: { rows: first.rows.length, cursor: first.cursor, hasMore: first.hasMore }, + second: { rows: second.rows.length, cursor: second.cursor, hasMore: second.hasMore }, + requests: yield* requests, + }).toMatchInlineSnapshot(` + { + "first": { + "cursor": "1", + "hasMore": true, + "rows": 1, + }, + "requests": [ + "/incremental/tickets/cursor include=metric_sets&start_time=1791496140", + "/incremental/tickets/cursor include=metric_sets&cursor=1", + ], + "second": { + "cursor": "1", + "hasMore": false, + "rows": 1, + }, + } + `); + }), + ); + + it.effect("deletes users that are no longer active, and adds their identities", () => + Effect.gen(function* () { + const { changes } = yield* getResource( + "users", + cursorPages("users", [[user(1), user(2, { active: false, email: null })]], { + identities: [ + identity(11, 1), + identity(12, 1, { type: "phone_number", value: "+15555550100", primary: false }), + ], + }), + ); + + const { rows } = yield* changes.fetch({ cursor: cutoff }); + + expect(plain(rows)).toMatchInlineSnapshot(` + [ + { + "created_at": "2026-10-08T21:25:19.000Z", + "custom_role_id": null, + "default_group_id": null, + "email": "ada@acme.example", + "external_id": null, + "id": "1n", + "identities": [ + { + "id": "11n", + "primary": true, + "type": "email", + "value": "ada@acme.example", + "verified": false, + }, + { + "id": "12n", + "primary": false, + "type": "phone_number", + "value": "+15555550100", + "verified": false, + }, + ], + "last_login_at": null, + "locale": "en-US", + "name": "Ada Test", + "organization_id": "39771868840349n", + "role": "end-user", + "suspended": false, + "tags": [ + "beta", + ], + "time_zone": "Asia/Kolkata", + "updated_at": "2026-10-08T21:25:19.000Z", + "user_fields": { + "plan": "pro", + "seats": "12", + }, + "verified": false, + "version": "2026-10-08T21:25:19.000Z", + }, + { + "_deleted": true, + "created_at": "2026-10-08T21:25:19.000Z", + "custom_role_id": null, + "default_group_id": null, + "email": null, + "external_id": null, + "id": "2n", + "identities": [], + "last_login_at": null, + "locale": "en-US", + "name": "Ada Test", + "organization_id": "39771868840349n", + "role": "end-user", + "suspended": false, + "tags": [ + "beta", + ], + "time_zone": "Asia/Kolkata", + "updated_at": "2026-10-08T21:25:19.000Z", + "user_fields": { + "plan": "pro", + "seats": "12", + }, + "verified": false, + "version": "2026-10-08T21:25:19.000Z", + }, + ] + `); + }), + ); + + it.effect("pages organizations by end time, and deletes deleted ones", () => + Effect.gen(function* () { + const { backfill, changes, requests } = yield* getResource("organizations", (request) => + request.params.start_time === "0" + ? { organizations: [organization(1)], end_time: 1791490000, end_of_stream: false } + : { + organizations: [ + organization(2, { + name: "2_deleted_Globex Test Co", + deleted_at: "2026-10-08T21:51:00Z", + updated_at: "2026-10-08T21:51:00Z", + }), + ], + end_time: 1791496260, + end_of_stream: false, + }, + ); + + const first = yield* backfill.fetch({ cutoff }); + const second = yield* backfill.fetch({ cutoff, pageCursor: String(first.nextPageCursor) }); + const changed = yield* changes.fetch({ cursor: "1791496200" }); + + expect({ + backfill: [first, second].map((page) => ({ + hasMore: page.hasMore, + next: page.nextPageCursor, + })), + changes: { + cursor: changed.cursor, + rows: pick(changed.rows, ["id", "name", "_deleted"]), + }, + requests: yield* requests, + }).toMatchInlineSnapshot(` + { + "backfill": [ + { + "hasMore": true, + "next": "1791490000", + }, + { + "hasMore": false, + "next": undefined, + }, + ], + "changes": { + "cursor": "1791496260", + "rows": [ + { + "_deleted": true, + "id": "2n", + "name": "2_deleted_Globex Test Co", + }, + ], + }, + "requests": [ + "/incremental/organizations start_time=0", + "/incremental/organizations start_time=1791490000", + "/incremental/organizations start_time=1791496200", + ], + } + `); + }), + ); + + it.effect("reads comments from ticket events, and reads a redacted ticket again", () => + Effect.gen(function* () { + const { changes, requests } = yield* getResource("ticket_comments", (request) => { + if (request.path === "/incremental/ticket_events") { + return { + ticket_events: [ + ticketEvent(3, "2026-10-08T21:25:22Z", [ + { ...comment(31, { body: "Card 4111 1111 1111 1111?" }), event_type: "Comment" }, + { id: 1, via: "Web service", status: "open", event_type: "Create" }, + ]), + // An SLA update has no child events. + ticketEvent(3, "2026-10-08T21:25:23Z", []), + ticketEvent(3, "2026-10-08T21:25:40Z", [ + { id: 2, comment_id: "30", event_type: "CommentRedactionEvent" }, + ]), + // Two redactions on one ticket need only one reread. + ticketEvent(3, "2026-10-08T21:25:50Z", [ + { id: 2, attachment_id: "311", event_type: "AttachmentRedactionEvent" }, + ]), + // Ticket 5 was deleted after the redaction, so its comments 404. + ticketEvent(5, "2026-10-08T21:26:10Z", [ + { id: 3, comment_id: "51", event_type: "CommentRedactionEvent" }, + ]), + ], + end_time: 1791494750, + end_of_stream: true, + }; + } + if (request.path === "/tickets/5/comments") return undefined; + return request.params["page[after]"] === undefined + ? { + comments: [comment(30)], + meta: { has_more: true, after_cursor: "next" }, + } + : { + comments: [comment(31, { body: "Card ▇▇▇▇ ▇▇▇▇ ▇▇▇▇ ▇▇▇▇?" })], + meta: { has_more: false, after_cursor: null }, + }; + }); + + const { rows, cursor } = yield* changes.fetch({ cursor: "1791494700" }); + + expect({ + cursor, + rows: pick(rows, ["id", "ticket_id", "version", "body"]), + requests: yield* requests, + }).toMatchInlineSnapshot(` + { + "cursor": "1791494750", + "requests": [ + "/incremental/ticket_events include=comment_events&start_time=1791494700", + "/tickets/3/comments page%5Bsize%5D=100", + "/tickets/3/comments page%5Bsize%5D=100&page%5Bafter%5D=next", + "/tickets/5/comments page%5Bsize%5D=100", + ], + "rows": [ + { + "body": "Card 4111 1111 1111 1111?", + "id": "31n", + "ticket_id": "3n", + "version": "2026-10-08T21:25:22.000Z", + }, + { + "body": "Thanks Ada, looking into it.", + "id": "30n", + "ticket_id": "3n", + "version": "2026-10-08T21:25:50.000Z", + }, + { + "body": "Card ▇▇▇▇ ▇▇▇▇ ▇▇▇▇ ▇▇▇▇?", + "id": "31n", + "ticket_id": "3n", + "version": "2026-10-08T21:25:50.000Z", + }, + ], + } + `); + }), + ); + + it.effect("records each ticket field change, with custom fields by ID", () => + Effect.gen(function* () { + const { changes, requests } = yield* getResource("ticket_field_history", () => ({ + ticket_events: [ + ticketEvent(3, "2026-10-08T21:25:22Z", [ + { + id: 11, + via: "Web form", + via_reference_id: null, + status: "open", + event_type: "Create", + }, + { + id: 12, + via: "Web form", + via_reference_id: null, + tags: ["billing"], + added_tags: ["billing"], + removed_tags: [], + event_type: "Create", + }, + { ...comment(31), event_type: "Comment" }, + ]), + ticketEvent(3, "2026-10-08T21:25:40Z", [ + { + id: 13, + via: "Rule", + via_reference_id: 39771663297821, + priority: "urgent", + rel: "trigger", + revision_id: 1, + event_type: "Change", + previous_value: "high", + }, + { + id: 14, + via: "Intelligent Triage", + via_reference_id: null, + custom_ticket_fields: { "39771680543389": "topic__billing__invoice__request" }, + event_type: "Change", + previous_value: null, + }, + ]), + ], + end_time: 1791494750, + end_of_stream: true, + })); + + const { rows } = yield* changes.fetch({ cursor: "1791494700" }); + + expect({ + rows: pick(rows, ["id", "field_name", "value", "previous_value", "via"]), + requests: yield* requests, + }).toMatchInlineSnapshot(` + { + "requests": [ + "/incremental/ticket_events start_time=1791494700", + ], + "rows": [ + { + "field_name": "status", + "id": "11n", + "previous_value": null, + "value": "open", + "via": "Web form", + }, + { + "field_name": "tags", + "id": "12n", + "previous_value": null, + "value": "["billing"]", + "via": "Web form", + }, + { + "field_name": "priority", + "id": "13n", + "previous_value": "high", + "value": "urgent", + "via": "Rule", + }, + { + "field_name": "39771680543389", + "id": "14n", + "previous_value": null, + "value": "topic__billing__invoice__request", + "via": "Intelligent Triage", + }, + ], + } + `); + }), + ); + + it.effect("reads metric events with their SLA and status", () => + Effect.gen(function* () { + const { changes } = yield* getResource("ticket_metric_events", () => ({ + ticket_metric_events: [ + metricEvent(1, { + type: "apply_sla", + sla: { + target: 60, + business_hours: false, + policy: { id: 39771709039517, title: "Set first reply time", description: null }, + target_in_seconds: 3600, + }, + }), + metricEvent(2, { type: "update_status", status: { business: 0, calendar: 4 } }), + metricEvent(3, { type: "breach", ticket_id: null, deleted: true }), + ], + next_page: null, + count: 3, + end_time: 1791494750, + end_of_stream: true, + })); + + const { rows } = yield* changes.fetch({ cursor: "1791494700" }); + + expect( + pick(rows, ["id", "_deleted", "type", "ticket_id", "sla_policy_id", "status_calendar"]), + ).toMatchInlineSnapshot(` + [ + { + "_deleted": false, + "id": "1n", + "sla_policy_id": "39771709039517n", + "status_calendar": null, + "ticket_id": "1n", + "type": "apply_sla", + }, + { + "_deleted": false, + "id": "2n", + "sla_policy_id": null, + "status_calendar": "4n", + "ticket_id": "1n", + "type": "update_status", + }, + { + "_deleted": true, + "id": "3n", + "sla_policy_id": null, + "status_calendar": null, + "ticket_id": null, + "type": "breach", + }, + ] + `); + }), + ); + + it.effect("deletes a membership that is gone on the next read", () => + Effect.gen(function* () { + let memberships = [groupMembership(1, 10), groupMembership(2, 20)]; + const { changes } = yield* getChanges("group_memberships", () => ({ + group_memberships: memberships, + meta: { has_more: false, after_cursor: null }, + })); + + const first = yield* changes.fetch({ cursor: cutoff }); + memberships = [groupMembership(1, 10)]; + const second = yield* changes.fetch({ cursor: first.cursor }); + + expect({ + first: pick(first.rows, ["id", "_deleted"]), + cursor: first.cursor, + second: pick(second.rows, ["id", "version", "_deleted"]), + }).toMatchInlineSnapshot(` + { + "cursor": "{"ids":["1","2"]}", + "first": [ + { + "id": "1n", + }, + { + "id": "2n", + }, + ], + "second": [ + { + "id": "1n", + "version": "2026-10-08T21:13:25.000Z", + }, + { + "_deleted": true, + "id": "2n", + "version": "2026-10-08T22:00:00.000Z", + }, + ], + } + `); + }), + ); + + it.effect("reads ratings given since the last run", () => + Effect.gen(function* () { + const { changes, requests } = yield* getResource("satisfaction_ratings", () => ({ + satisfaction_ratings: [rating(1), rating(2, { score: "good", comment: null })], + meta: { has_more: false, after_cursor: null }, + })); + + const { rows, cursor } = yield* changes.fetch({ cursor: "2026-10-08T21:00:00.000Z" }); + + expect({ + cursor, + rows: pick(rows, ["id", "score", "reason", "version"]), + requests: yield* requests, + }).toMatchInlineSnapshot(` + { + "cursor": "2026-10-08T22:00:00.000Z", + "requests": [ + "/satisfaction_ratings page%5Bsize%5D=100&start_time=1791492600", + ], + "rows": [ + { + "id": "1n", + "reason": null, + "score": "bad", + "version": "2026-10-08T21:30:21.000Z", + }, + { + "id": "2n", + "reason": null, + "score": "good", + "version": "2026-10-08T21:30:21.000Z", + }, + ], + } + `); + }), + ); + + it.effect("reads articles until a page has no next page, and keeps the cursor when empty", () => + Effect.gen(function* () { + const { changes } = yield* getResource("articles", (request) => + request.params.start_time === "1791494700" + ? { articles: [article(1)], count: 1, next_page: "next", end_time: 1791494720 } + : request.params.start_time === "1791494720" + ? { articles: [article(2)], count: 1, next_page: null, end_time: 1791494750 } + : { articles: [], count: 0, next_page: null, end_time: 1 }, + ); + + const first = yield* changes.fetch({ cursor: "1791494700" }); + const second = yield* changes.fetch({ cursor: first.cursor }); + const third = yield* changes.fetch({ cursor: second.cursor }); + + expect({ + first: { ids: pick(first.rows, ["id"]), cursor: first.cursor, hasMore: first.hasMore }, + second: { ids: pick(second.rows, ["id"]), cursor: second.cursor, hasMore: second.hasMore }, + third: { ids: pick(third.rows, ["id"]), cursor: third.cursor, hasMore: third.hasMore }, + }).toMatchInlineSnapshot(` + { + "first": { + "cursor": "1791494720", + "hasMore": true, + "ids": [ + { + "id": "1n", + }, + ], + }, + "second": { + "cursor": "1791494750", + "hasMore": false, + "ids": [ + { + "id": "2n", + }, + ], + }, + "third": { + "cursor": "1791494750", + "hasMore": false, + "ids": [], + }, + } + `); + }), + ); + + it.effect("lists the small tables in full", () => + Effect.gen(function* () { + const groups = yield* getResource("groups", (request) => + request.params["page[after]"] === undefined + ? { groups: [group], meta: { has_more: true, after_cursor: "next" } } + : { + groups: [{ ...group, id: 2, name: "Billing" }], + meta: { has_more: false, after_cursor: null }, + }, + ); + const statuses = yield* getResource("custom_statuses", () => ({ + custom_statuses: [customStatus], + next_page: null, + previous_page: null, + count: 1, + })); + + const groupPage = yield* groups.backfill.fetch({ cutoff }); + const statusPage = yield* statuses.backfill.fetch({ cutoff }); + + expect({ + groups: pick(groupPage.rows, ["id", "name"]), + statuses: plain(statusPage.rows), + requests: [...(yield* groups.requests), ...(yield* statuses.requests)], + }).toMatchInlineSnapshot(` + { + "groups": [ + { + "id": "39771663256989n", + "name": "Support", + }, + { + "id": "2n", + "name": "Billing", + }, + ], + "requests": [ + "/groups page%5Bsize%5D=100", + "/groups page%5Bsize%5D=100&page%5Bafter%5D=next", + "/custom_statuses", + ], + "statuses": [ + { + "active": true, + "agent_label": "Solved", + "created_at": "2026-10-08T21:13:25.000Z", + "default": true, + "end_user_label": "Solved", + "id": "39771663254173n", + "status_category": "solved", + "updated_at": "2026-10-08T21:13:25.000Z", + "version": "2026-10-08T21:13:25.000Z", + }, + ], + } + `); + }), + ); + + it.effect("reads answered surveys, re-reads the editable window, and names the questions", () => + Effect.gen(function* () { + const responses = yield* getResource("survey_responses", () => ({ + survey_responses: [ + surveyResponse("A", [ratingAnswer(1, "bad"), reasonAnswer, commentAnswer]), + // The customer changed the rating later. + surveyResponse("B", [ratingAnswer(5, "good", "2026-10-09T06:19:22.892Z")], "6"), + // Sent, but not answered. + surveyResponse("C", [], "2"), + // Not changed since the last run. + surveyResponse("D", [ratingAnswer(4, "good", "2026-10-08T20:00:00.000Z")], "4"), + ], + meta: { has_more: false, after_cursor: null }, + })); + const surveys = yield* getResource("csat_surveys", () => ({ + surveys: [csatSurvey], + meta: { has_more: false, after_cursor: null }, + })); + + const changed = yield* responses.changes.fetch({ cursor: cutoff }); + const survey = yield* surveys.backfill.fetch({ cutoff }); + + expect({ + responses: pick(changed.rows, ["id", "version", "ticket_id", "rating", "answers"]), + survey: plain(survey.rows), + requests: [...(yield* responses.requests), ...(yield* surveys.requests)], + }).toMatchInlineSnapshot(` + { + "requests": [ + "/guide/survey_responses page%5Bsize%5D=50&sort=id&filter%5Bcreated_at_start%5D=1788990600000", + "/guide/en-us/surveys page%5Bsize%5D=50", + ], + "responses": [ + { + "answers": [ + { + "option_ids": [], + "question_id": "01M4FMXA2ZKKW0SW4G3MA6FBV9", + "question_type": "rating_scale_numeric", + "rating": "1n", + "rating_category": "bad", + "type": "rating_scale", + "updated_at": "2026-10-09T06:18:21.129Z", + "value": null, + }, + { + "option_ids": [ + "01M4FMXA30Z079V8E8P0BM67D9", + ], + "question_id": "01M4FMXA2ZBXBT4CSMM2QAAEV7", + "question_type": "closed_ended", + "rating": null, + "rating_category": null, + "type": "closed_ended", + "updated_at": "2026-10-09T06:18:21.129Z", + "value": null, + }, + { + "option_ids": [], + "question_id": "01M4FMXA30EKPSYPJRYHK3NJPQ", + "question_type": "open_ended", + "rating": null, + "rating_category": null, + "type": "open_ended", + "updated_at": "2026-10-09T06:18:21.129Z", + "value": "Took too long to get a reply.", + }, + ], + "id": "A", + "rating": "1n", + "ticket_id": "3n", + "version": "2026-10-09T06:18:21.129Z", + }, + { + "answers": [ + { + "option_ids": [], + "question_id": "01M4FMXA2ZKKW0SW4G3MA6FBV9", + "question_type": "rating_scale_numeric", + "rating": "5n", + "rating_category": "good", + "type": "rating_scale", + "updated_at": "2026-10-09T06:19:22.892Z", + "value": null, + }, + ], + "id": "B", + "rating": "5n", + "ticket_id": "6n", + "version": "2026-10-09T06:19:22.892Z", + }, + ], + "survey": [ + { + "created_at": "2026-10-09T06:16:58.492Z", + "id": "01M4FMXHBW5WHJ6D7BEMA0RZC5", + "questions": [ + { + "headline": "How would you rate the support you received?", + "id": "01M4FMXA2ZKKW0SW4G3MA6FBV9", + "options": [ + { + "id": null, + "label": "Very unsatisfied", + "rating": "1n", + }, + { + "id": null, + "label": "Very satisfied", + "rating": "5n", + }, + ], + "sub_type": "customer_satisfaction", + "type": "rating_scale_numeric", + }, + { + "headline": "Select a reason regarding your experience", + "id": "01M4FMXA2ZBXBT4CSMM2QAAEV7", + "options": [ + { + "id": "01M4FMXA30Z079V8E8P0BM67D9", + "label": "The issue was not resolved", + "rating": null, + }, + ], + "sub_type": null, + "type": "closed_ended", + }, + { + "headline": "Share your thoughts on the support you received", + "id": "01M4FMXA30EKPSYPJRYHK3NJPQ", + "options": [], + "sub_type": null, + "type": "open_ended", + }, + ], + "state": "enabled", + "survey_version": "1n", + "updated_at": "2026-10-09T06:16:58.492Z", + "version": "2026-10-09T06:16:58.492Z", + }, + ], + } + `); + }), + ); +}); diff --git a/connectors/producer-zendesk/tsconfig.json b/connectors/producer-zendesk/tsconfig.json new file mode 100644 index 00000000..df2aa9e0 --- /dev/null +++ b/connectors/producer-zendesk/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "declarationDir": "dist", + "rootDir": ".", + "types": ["node"], + "moduleResolution": "bundler", + "esModuleInterop": true, + "verbatimModuleSyntax": true, + "noEmit": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true + }, + "exclude": ["node_modules", "dist"] +} diff --git a/connectors/producer-zendesk/tsdown.config.ts b/connectors/producer-zendesk/tsdown.config.ts new file mode 100644 index 00000000..632013de --- /dev/null +++ b/connectors/producer-zendesk/tsdown.config.ts @@ -0,0 +1,9 @@ +import { defineConfig } from "tsdown"; + +export default defineConfig({ + entry: ["src/index.ts", "src/main.ts", "src/manifest.ts"], + format: ["esm"], + dts: true, + sourcemap: true, + clean: true, +}); diff --git a/connectors/producer-zendesk/vitest.config.ts b/connectors/producer-zendesk/vitest.config.ts new file mode 100644 index 00000000..50ca1af4 --- /dev/null +++ b/connectors/producer-zendesk/vitest.config.ts @@ -0,0 +1,9 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + fileParallelism: false, + testTimeout: 60_000, + hookTimeout: 60_000, + }, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c2258bb4..d538ae12 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -266,6 +266,43 @@ importers: specifier: 'catalog:' version: 5.0.3(@types/node@24.12.2)(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) + connectors/producer-zendesk: + dependencies: + '@effect/platform-node': + specifier: 'catalog:' + version: 4.0.1(effect@4.0.1)(redis@6.3.0) + '@effect/sql-pg': + specifier: 'catalog:' + version: 4.0.1(effect@4.0.1) + '@useairfoil/connector-kit': + specifier: workspace:* + version: link:../../packages/connector-kit + effect: + specifier: 'catalog:' + version: 4.0.1 + devDependencies: + '@dotenvx/dotenvx': + specifier: ^1.62.0 + version: 1.62.0 + '@effect/vitest': + specifier: 'catalog:' + version: 4.0.1(effect@4.0.1)(vitest@5.0.3(@types/node@24.12.2)(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))) + '@types/node': + specifier: 'catalog:' + version: 24.12.2 + '@useairfoil/effect-vcr': + specifier: workspace:* + version: link:../../packages/effect-vcr + tsdown: + specifier: 'catalog:' + version: 0.23.0(tsx@4.21.0)(typescript@5.9.3) + tsx: + specifier: ^4.21.0 + version: 4.21.0 + vitest: + specifier: 'catalog:' + version: 5.0.3(@types/node@24.12.2)(vite@7.3.2(@types/node@24.12.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) + packages/cli: dependencies: '@effect/platform-node':

To create your own topics, see Adding community discussion topics.