@team-plain/webhooks 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -84,7 +84,9 @@ function verifyWebhookSignature(payload, signature, secret) {
84
84
  };
85
85
  }
86
86
  const expectedSignature = crypto.createHmac("sha256", secret).update(payload, "utf8").digest("hex");
87
- if (signature !== expectedSignature) {
87
+ const given = Buffer.from(signature, "utf8");
88
+ const expected = Buffer.from(expectedSignature, "utf8");
89
+ if (given.length !== expected.length || !crypto.timingSafeEqual(given, expected)) {
88
90
  return {
89
91
  error: new import_errors.PlainWebhookSignatureVerificationError("The signature provided is invalid.")
90
92
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/verify.ts"],"sourcesContent":["import * as crypto from \"node:crypto\";\nimport {\n type PlainWebhookError,\n PlainWebhookPayloadError,\n PlainWebhookSignatureVerificationError,\n} from \"./errors.js\";\nimport { parsePlainWebhook } from \"./parse.js\";\nimport { isErr, type Result } from \"./result.js\";\nimport type { WebhooksSchemaDefinition } from \"./webhook-schema.js\";\n\n/**\n * Verifies and validates a Plain webhook payload.\n *\n * @param payload - The raw request body.\n * @param signature - The value of the 'Plain-Request-Signature' header.\n * @param secret - Your Plain webhook signing secret.\n * @param tolerance - (Optional) Maximum allowed difference in seconds between the timestamp and the current time. Defaults to 300 seconds. This is helpful to prevent replay attacks.\n * @returns A Result object containing the validated payload or an error.\n */\nexport function verifyPlainWebhook(\n payloadRaw: string,\n signature: string,\n secret: string,\n tolerance = 300, // 5 minutes\n): Result<WebhooksSchemaDefinition, PlainWebhookError> {\n const signatureVerificationResult = verifyWebhookSignature(payloadRaw, signature, secret);\n if (isErr(signatureVerificationResult)) {\n return signatureVerificationResult;\n }\n\n const payloadResult = parsePlainWebhook(payloadRaw);\n if (isErr(payloadResult)) {\n return payloadResult;\n }\n\n const payload = payloadResult.data;\n const timestamp = Date.parse(payload.webhookMetadata.webhookDeliveryAttemptTimestamp);\n\n if (Number.isNaN(timestamp)) {\n return {\n error: new PlainWebhookPayloadError(\n `Invalid timestamp provided in the webhook payload: ${timestamp}. This is likely a bug in the Plain API (eventId: ${payload.id}).`,\n ),\n };\n }\n\n const currentTime = Date.now();\n if (Math.abs(currentTime - timestamp) > tolerance * 1000) {\n return {\n error: new PlainWebhookSignatureVerificationError(\n `The timestamp provided in the webhook payload is too far in the past. The maximum allowed difference is ${tolerance} seconds.`,\n ),\n };\n }\n\n return { data: payload };\n}\n\nfunction verifyWebhookSignature(\n payload: string,\n signature: string,\n secret: string,\n): Result<true, PlainWebhookSignatureVerificationError> {\n if (payload.length === 0) {\n return {\n error: new PlainWebhookSignatureVerificationError(\"No webhook payload was provided.\"),\n };\n }\n\n if (signature.length === 0) {\n return {\n error: new PlainWebhookSignatureVerificationError(\n 'No signature header value was provided. Please pass the value of the \"Plain-Request-Signature\" header.',\n ),\n };\n }\n\n if (secret.length === 0) {\n return {\n error: new PlainWebhookSignatureVerificationError(\n \"No webhook secret was provided. You can find your webhook secret in your workspace settings.\",\n ),\n };\n }\n\n const expectedSignature = crypto\n .createHmac(\"sha256\", secret)\n .update(payload, \"utf8\")\n .digest(\"hex\");\n\n if (signature !== expectedSignature) {\n return {\n error: new PlainWebhookSignatureVerificationError(\"The signature provided is invalid.\"),\n };\n }\n\n return { data: true };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAwB;AACxB,oBAIO;AACP,mBAAkC;AAClC,oBAAmC;AAY5B,SAAS,mBACd,YACA,WACA,QACA,YAAY,KACyC;AACrD,QAAM,8BAA8B,uBAAuB,YAAY,WAAW,MAAM;AACxF,UAAI,qBAAM,2BAA2B,GAAG;AACtC,WAAO;AAAA,EACT;AAEA,QAAM,oBAAgB,gCAAkB,UAAU;AAClD,UAAI,qBAAM,aAAa,GAAG;AACxB,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,cAAc;AAC9B,QAAM,YAAY,KAAK,MAAM,QAAQ,gBAAgB,+BAA+B;AAEpF,MAAI,OAAO,MAAM,SAAS,GAAG;AAC3B,WAAO;AAAA,MACL,OAAO,IAAI;AAAA,QACT,sDAAsD,SAAS,qDAAqD,QAAQ,EAAE;AAAA,MAChI;AAAA,IACF;AAAA,EACF;AAEA,QAAM,cAAc,KAAK,IAAI;AAC7B,MAAI,KAAK,IAAI,cAAc,SAAS,IAAI,YAAY,KAAM;AACxD,WAAO;AAAA,MACL,OAAO,IAAI;AAAA,QACT,2GAA2G,SAAS;AAAA,MACtH;AAAA,IACF;AAAA,EACF;AAEA,SAAO,EAAE,MAAM,QAAQ;AACzB;AAEA,SAAS,uBACP,SACA,WACA,QACsD;AACtD,MAAI,QAAQ,WAAW,GAAG;AACxB,WAAO;AAAA,MACL,OAAO,IAAI,qDAAuC,kCAAkC;AAAA,IACtF;AAAA,EACF;AAEA,MAAI,UAAU,WAAW,GAAG;AAC1B,WAAO;AAAA,MACL,OAAO,IAAI;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO,WAAW,GAAG;AACvB,WAAO;AAAA,MACL,OAAO,IAAI;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,oBAAoB,OACvB,WAAW,UAAU,MAAM,EAC3B,OAAO,SAAS,MAAM,EACtB,OAAO,KAAK;AAEf,MAAI,cAAc,mBAAmB;AACnC,WAAO;AAAA,MACL,OAAO,IAAI,qDAAuC,oCAAoC;AAAA,IACxF;AAAA,EACF;AAEA,SAAO,EAAE,MAAM,KAAK;AACtB;","names":[]}
1
+ {"version":3,"sources":["../../src/verify.ts"],"sourcesContent":["import * as crypto from \"node:crypto\";\nimport {\n type PlainWebhookError,\n PlainWebhookPayloadError,\n PlainWebhookSignatureVerificationError,\n} from \"./errors.js\";\nimport { parsePlainWebhook } from \"./parse.js\";\nimport { isErr, type Result } from \"./result.js\";\nimport type { WebhooksSchemaDefinition } from \"./webhook-schema.js\";\n\n/**\n * Verifies and validates a Plain webhook payload.\n *\n * @param payload - The raw request body.\n * @param signature - The value of the 'Plain-Request-Signature' header.\n * @param secret - Your Plain webhook signing secret.\n * @param tolerance - (Optional) Maximum allowed difference in seconds between the timestamp and the current time. Defaults to 300 seconds. This is helpful to prevent replay attacks.\n * @returns A Result object containing the validated payload or an error.\n */\nexport function verifyPlainWebhook(\n payloadRaw: string,\n signature: string,\n secret: string,\n tolerance = 300, // 5 minutes\n): Result<WebhooksSchemaDefinition, PlainWebhookError> {\n const signatureVerificationResult = verifyWebhookSignature(payloadRaw, signature, secret);\n if (isErr(signatureVerificationResult)) {\n return signatureVerificationResult;\n }\n\n const payloadResult = parsePlainWebhook(payloadRaw);\n if (isErr(payloadResult)) {\n return payloadResult;\n }\n\n const payload = payloadResult.data;\n const timestamp = Date.parse(payload.webhookMetadata.webhookDeliveryAttemptTimestamp);\n\n if (Number.isNaN(timestamp)) {\n return {\n error: new PlainWebhookPayloadError(\n `Invalid timestamp provided in the webhook payload: ${timestamp}. This is likely a bug in the Plain API (eventId: ${payload.id}).`,\n ),\n };\n }\n\n const currentTime = Date.now();\n if (Math.abs(currentTime - timestamp) > tolerance * 1000) {\n return {\n error: new PlainWebhookSignatureVerificationError(\n `The timestamp provided in the webhook payload is too far in the past. The maximum allowed difference is ${tolerance} seconds.`,\n ),\n };\n }\n\n return { data: payload };\n}\n\nfunction verifyWebhookSignature(\n payload: string,\n signature: string,\n secret: string,\n): Result<true, PlainWebhookSignatureVerificationError> {\n if (payload.length === 0) {\n return {\n error: new PlainWebhookSignatureVerificationError(\"No webhook payload was provided.\"),\n };\n }\n\n if (signature.length === 0) {\n return {\n error: new PlainWebhookSignatureVerificationError(\n 'No signature header value was provided. Please pass the value of the \"Plain-Request-Signature\" header.',\n ),\n };\n }\n\n if (secret.length === 0) {\n return {\n error: new PlainWebhookSignatureVerificationError(\n \"No webhook secret was provided. You can find your webhook secret in your workspace settings.\",\n ),\n };\n }\n\n const expectedSignature = crypto\n .createHmac(\"sha256\", secret)\n .update(payload, \"utf8\")\n .digest(\"hex\");\n\n // timingSafeEqual requires both buffers to be the same length; a length mismatch definitively\n // means the signature is wrong and leaks no secret. Compare the encoded byte lengths, not the\n // string lengths: the signature is caller-supplied, and a multi-byte character makes those two\n // disagree, which would get past a string-length check and then make timingSafeEqual throw.\n const given = Buffer.from(signature, \"utf8\");\n const expected = Buffer.from(expectedSignature, \"utf8\");\n\n if (given.length !== expected.length || !crypto.timingSafeEqual(given, expected)) {\n return {\n error: new PlainWebhookSignatureVerificationError(\"The signature provided is invalid.\"),\n };\n }\n\n return { data: true };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAwB;AACxB,oBAIO;AACP,mBAAkC;AAClC,oBAAmC;AAY5B,SAAS,mBACd,YACA,WACA,QACA,YAAY,KACyC;AACrD,QAAM,8BAA8B,uBAAuB,YAAY,WAAW,MAAM;AACxF,UAAI,qBAAM,2BAA2B,GAAG;AACtC,WAAO;AAAA,EACT;AAEA,QAAM,oBAAgB,gCAAkB,UAAU;AAClD,UAAI,qBAAM,aAAa,GAAG;AACxB,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,cAAc;AAC9B,QAAM,YAAY,KAAK,MAAM,QAAQ,gBAAgB,+BAA+B;AAEpF,MAAI,OAAO,MAAM,SAAS,GAAG;AAC3B,WAAO;AAAA,MACL,OAAO,IAAI;AAAA,QACT,sDAAsD,SAAS,qDAAqD,QAAQ,EAAE;AAAA,MAChI;AAAA,IACF;AAAA,EACF;AAEA,QAAM,cAAc,KAAK,IAAI;AAC7B,MAAI,KAAK,IAAI,cAAc,SAAS,IAAI,YAAY,KAAM;AACxD,WAAO;AAAA,MACL,OAAO,IAAI;AAAA,QACT,2GAA2G,SAAS;AAAA,MACtH;AAAA,IACF;AAAA,EACF;AAEA,SAAO,EAAE,MAAM,QAAQ;AACzB;AAEA,SAAS,uBACP,SACA,WACA,QACsD;AACtD,MAAI,QAAQ,WAAW,GAAG;AACxB,WAAO;AAAA,MACL,OAAO,IAAI,qDAAuC,kCAAkC;AAAA,IACtF;AAAA,EACF;AAEA,MAAI,UAAU,WAAW,GAAG;AAC1B,WAAO;AAAA,MACL,OAAO,IAAI;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO,WAAW,GAAG;AACvB,WAAO;AAAA,MACL,OAAO,IAAI;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,oBAAoB,OACvB,WAAW,UAAU,MAAM,EAC3B,OAAO,SAAS,MAAM,EACtB,OAAO,KAAK;AAMf,QAAM,QAAQ,OAAO,KAAK,WAAW,MAAM;AAC3C,QAAM,WAAW,OAAO,KAAK,mBAAmB,MAAM;AAEtD,MAAI,MAAM,WAAW,SAAS,UAAU,CAAC,OAAO,gBAAgB,OAAO,QAAQ,GAAG;AAChF,WAAO;AAAA,MACL,OAAO,IAAI,qDAAuC,oCAAoC;AAAA,IACxF;AAAA,EACF;AAEA,SAAO,EAAE,MAAM,KAAK;AACtB;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/webhook-schema.ts"],"sourcesContent":["/* eslint-disable */\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\n\nexport type Datetime = string;\nexport type Id = string;\nexport type EmailAddress = string;\nexport type InternalActor =\n | {\n actorType: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | UserActor\n | MachineUserActor\n | SystemActor;\nexport type Actor =\n | {\n actorType: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | UserActor\n | MachineUserActor\n | SystemActor\n | CustomerActor;\nexport type NullableString = string | null;\nexport type EmailActor =\n | {\n actorType: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | UserActor\n | CustomerActor\n | {\n actorType: \"supportEmailAddress\";\n supportEmailAddress: string;\n [k: string]: unknown;\n }\n | {\n actorType: \"deletedCustomer\";\n customerId: Id;\n [k: string]: unknown;\n };\nexport type EmailAuthenticity = \"PASS\" | \"FAIL\" | \"UNKNOWN\" | \"UNKNOWN_EMAIL_AUTHENTICITY\";\nexport type Component =\n | {\n type: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | ComponentText\n | ComponentPlainText\n | ComponentSpacer\n | ComponentDivider\n | ComponentLinkButton\n | ComponentWorkflowButton\n | ComponentBadge\n | ComponentCopyButton\n | ComponentDateTime\n | ComponentUser\n | ComponentRow\n | ComponentContainer;\nexport type ComponentTextSize = \"S\" | \"M\" | \"L\" | \"UNKNOWN_COMPONENT_TEXT_SIZE\";\nexport type ComponentTextColor =\n | \"NORMAL\"\n | \"MUTED\"\n | \"SUCCESS\"\n | \"WARNING\"\n | \"ERROR\"\n | \"UNKNOWN_COMPONENT_TEXT_COLOR\";\nexport type ComponentPlainTextSize = \"S\" | \"M\" | \"L\" | \"UNKNOWN_COMPONENT_PLAIN_TEXT_SIZE\";\nexport type ComponentPlainTextColor =\n | \"NORMAL\"\n | \"MUTED\"\n | \"SUCCESS\"\n | \"WARNING\"\n | \"ERROR\"\n | \"UNKNOWN_COMPONENT_PLAIN_TEXT_COLOR\";\nexport type ComponentSpacerSize = \"XS\" | \"S\" | \"M\" | \"L\" | \"XL\" | \"UNKNOWN_COMPONENT_SPACER_SIZE\";\nexport type ComponentDividerSpacingSize =\n | \"XS\"\n | \"S\"\n | \"M\"\n | \"L\"\n | \"XL\"\n | \"UNKNOWN_COMPONENT_DIVIDER_SPACING_SIZE\";\nexport type ComponentBadgeColor =\n | \"GREY\"\n | \"GREEN\"\n | \"YELLOW\"\n | \"RED\"\n | \"BLUE\"\n | \"UNKNOWN_COMPONENT_BADGE_COLOR\";\nexport type NullableDatetime = Datetime | null;\nexport type NullableInternalActor = InternalActor | null;\nexport type ComponentRowContent =\n | {\n type: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | ComponentText\n | ComponentPlainText\n | ComponentSpacer\n | ComponentDivider\n | ComponentLinkButton\n | ComponentWorkflowButton\n | ComponentBadge\n | ComponentCopyButton\n | ComponentDateTime\n | ComponentUser;\nexport type ComponentContainerContent =\n | {\n type: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | ComponentText\n | ComponentPlainText\n | ComponentSpacer\n | ComponentDivider\n | ComponentLinkButton\n | ComponentWorkflowButton\n | ComponentBadge\n | ComponentCopyButton\n | ComponentDateTime\n | ComponentUser\n | ComponentRow;\nexport type CustomerGroupChangedPayload =\n | {\n changeType: \"ADDED\";\n eventType: \"customer.customer_group_changed\";\n customerGroup: CustomerGroup;\n [k: string]: unknown;\n }\n | {\n changeType: \"UPDATED\";\n eventType: \"customer.customer_group_changed\";\n customerGroup: CustomerGroup;\n previousCustomerGroup: CustomerGroup;\n [k: string]: unknown;\n }\n | {\n changeType: \"REMOVED\";\n eventType: \"customer.customer_group_changed\";\n previousCustomerGroup: CustomerGroup;\n [k: string]: unknown;\n };\nexport type ThreadPriority = number;\nexport type ThreadStatus = \"TODO\" | \"DONE\" | \"SNOOZED\" | \"UNKNOWN_THREAD_STATUS\";\nexport type ThreadStatusDetail =\n | {\n type: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | {\n type: \"CREATED\";\n createdAt: Datetime;\n [k: string]: unknown;\n }\n | {\n type: \"NEW_REPLY\";\n [k: string]: unknown;\n }\n | {\n type: \"IN_PROGRESS\";\n [k: string]: unknown;\n }\n | {\n type: \"WAITING_FOR_CUSTOMER\";\n [k: string]: unknown;\n }\n | {\n type: \"WAITING_INDEFINITELY\";\n [k: string]: unknown;\n }\n | {\n type: \"WAITING_FOR_DURATION\";\n waitingUntil: Datetime;\n durationSeconds: number;\n [k: string]: unknown;\n }\n | {\n type: \"THREAD_LINK_UPDATED\";\n linear?: {\n issueId: string;\n [k: string]: unknown;\n };\n [k: string]: unknown;\n }\n | {\n type: \"DONE_MANUALLY_SET\";\n [k: string]: unknown;\n }\n | {\n type: \"IGNORED\";\n [k: string]: unknown;\n }\n | {\n type: \"DONE_AUTOMATICALLY_SET\";\n afterSeconds?: number;\n [k: string]: unknown;\n }\n | {\n type: \"THREAD_DISCUSSION_RESOLVED\";\n threadDiscussionId?: Id;\n [k: string]: unknown;\n };\nexport type ThreadAssignee =\n | {\n type: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | User\n | MachineUser\n | {\n id: string;\n [k: string]: unknown;\n };\nexport type ServiceLevelAgreement =\n | {\n type: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | {\n id: Id;\n tier: Tier;\n useBusinessHoursOnly: boolean;\n threadPriorityFilter: ThreadPriorityFilter;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n type: \"FIRST_RESPONSE_TIME\";\n firstResponseTimeMinutes: number;\n [k: string]: unknown;\n }\n | {\n id: Id;\n tier: Tier;\n useBusinessHoursOnly: boolean;\n threadPriorityFilter: ThreadPriorityFilter;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n type: \"NEXT_RESPONSE_TIME\";\n nextResponseTimeMinutes: number;\n [k: string]: unknown;\n };\n/**\n * @minItems 1\n */\nexport type ThreadPriorityFilter = [ThreadPriority, ...ThreadPriority[]];\nexport type ServiceLevelAgreementStatusDetail =\n | {\n status: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | {\n breachTime: Datetime;\n status: \"PENDING\";\n [k: string]: unknown;\n }\n | {\n achievedAt: Datetime;\n status: \"ACHIEVED\";\n [k: string]: unknown;\n }\n | {\n breachTime: Datetime;\n status: \"IMMINENT_BREACH\";\n [k: string]: unknown;\n }\n | {\n breachedAt: Datetime;\n status: \"BREACHING\";\n [k: string]: unknown;\n }\n | {\n breachedAt: Datetime;\n completedAt: Datetime;\n status: \"BREACHED\";\n [k: string]: unknown;\n }\n | {\n cancelledAt: Datetime;\n status: \"CANCELLED\";\n [k: string]: unknown;\n };\n\n/**\n * Webhook request\n */\nexport interface WebhooksSchemaDefinition {\n timestamp: Datetime;\n workspaceId: Id;\n payload:\n | CustomerChangedPayload\n | CustomerGroupMembershipsChangedPayload\n | TimelineEntryChangedPayload\n | CustomerGroupChangedPayload\n | ThreadCreatedPublicEventPayload\n | ThreadStatusTransitionedPublicEventPayload\n | ThreadAssignmentTransitionedPublicEventPayload\n | ThreadEmailReceivedPublicEventPayload\n | ThreadEmailSentPublicEventPayload\n | ThreadSlackMessageReceivedEventPayload\n | ThreadSlackMessageSentEventPayload\n | ThreadMSTeamsMessageReceivedEventPayload\n | ThreadMSTeamsMessageSentEventPayload\n | ThreadLabelsChangedPublicEventPayload\n | ThreadPriorityChangedPublicEventPayload\n | ThreadFieldCreatedPublicEventPayload\n | ThreadFieldUpdatedPublicEventPayload\n | ThreadFieldDeletedPublicEventPayload\n | ThreadChatSentPublicEventPayload\n | ThreadServiceLevelAgreementStatusTransitionedPayload\n | CustomerCreatedPublicEventPayload\n | CustomerUpdatedPublicEventPayload\n | CustomerDeletedPublicEventPayload\n | ThreadNoteCreatedEventPayload\n | ThreadNoteMentionCreatedPublicEventPayload\n | DiscussionMessageCreatedPublicEventPayload\n | ThreadChatReceivedPublicEventPayload\n | ThreadSlackMessageUpdatedEventPayload\n | ThreadDiscordMessageReceivedEventPayload\n | ThreadDiscordMessageSentEventPayload\n | ThreadDiscordMessageUpdatedEventPayload\n | ThreadTenantUpdatedPublicEventPayload;\n id: Id;\n type:\n | \"thread.thread_created\"\n | \"thread.thread_status_transitioned\"\n | \"thread.thread_assignment_transitioned\"\n | \"thread.email_received\"\n | \"thread.email_sent\"\n | \"thread.slack_message_received\"\n | \"thread.slack_message_sent\"\n | \"thread.slack_message_updated\"\n | \"thread.discord_message_received\"\n | \"thread.discord_message_sent\"\n | \"thread.discord_message_updated\"\n | \"thread.ms_teams_message_sent\"\n | \"thread.ms_teams_message_received\"\n | \"thread.chat_sent\"\n | \"thread.chat_received\"\n | \"thread.note_created\"\n | \"thread.note_mention_created\"\n | \"discussion.message_created\"\n | \"thread.thread_labels_changed\"\n | \"thread.thread_priority_changed\"\n | \"thread.thread_field_created\"\n | \"thread.thread_field_updated\"\n | \"thread.thread_field_deleted\"\n | \"thread.service_level_agreement_status_transitioned\"\n | \"thread.thread_tenant_updated\"\n | \"customer.customer_created\"\n | \"customer.customer_updated\"\n | \"customer.customer_deleted\"\n | \"customer.customer_changed\"\n | \"customer.customer_group_changed\"\n | \"customer.customer_group_memberships_changed\"\n | \"timeline.timeline_entry_changed\";\n webhookMetadata: WebhookMetadata;\n [k: string]: unknown;\n}\n/**\n * A customer has been created or updated\n */\nexport interface CustomerChangedPayload {\n changeType: \"ADDED\" | \"UPDATED\";\n eventType: \"customer.customer_changed\";\n customer: Customer;\n previousCustomer: Customer | null;\n [k: string]: unknown;\n}\nexport interface Customer {\n id: Id;\n email: {\n email: EmailAddress;\n isVerified: boolean;\n verifiedAt: Datetime | null;\n [k: string]: unknown;\n };\n externalId: string | null;\n fullName: string;\n shortName: string | null;\n markedAsSpamAt?: Datetime | null;\n markedAsSpamBy?: InternalActor | null;\n customerGroupMemberships: CustomerGroupMembership[];\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface UserActor {\n actorType: \"user\";\n userId: Id;\n [k: string]: unknown;\n}\nexport interface MachineUserActor {\n actorType: \"machineUser\";\n machineUserId: Id;\n [k: string]: unknown;\n}\nexport interface SystemActor {\n actorType: \"system\";\n system: string;\n [k: string]: unknown;\n}\nexport interface CustomerGroupMembership {\n customerId: Id;\n customerGroupId: Id;\n workspaceId: Id;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n customerGroup: CustomerGroup;\n [k: string]: unknown;\n}\nexport interface CustomerGroup {\n id: Id;\n workspaceId: Id;\n name: string;\n key: string;\n color: string;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n [k: string]: unknown;\n}\nexport interface CustomerActor {\n actorType: \"customer\";\n customerId: Id;\n [k: string]: unknown;\n}\nexport interface CustomerGroupMembershipsChangedPayload {\n eventType: \"customer.customer_group_memberships_changed\";\n changeType: \"ADDED\" | \"REMOVED\";\n customer: Customer;\n previousCustomer: Customer;\n [k: string]: unknown;\n}\n/**\n * A timeline entry has been added, updated or removed\n */\nexport interface TimelineEntryChangedPayload {\n eventType: \"timeline.timeline_entry_changed\";\n /**\n * null if changeType=ADDED\n */\n previousTimelineEntry: TimelineEntry | null;\n /**\n * null if changeType=REMOVED\n */\n timelineEntry: TimelineEntry | null;\n changeType: \"ADDED\" | \"UPDATED\" | \"REMOVED\";\n [k: string]: unknown;\n}\nexport interface TimelineEntry {\n id: Id;\n customerId: Id;\n threadId?: Id | null;\n timestamp: Datetime;\n actor: Actor;\n entry:\n | {\n entryType: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | NoteEntry\n | ChatEntry\n | EmailEntry\n | CustomEntry;\n [k: string]: unknown;\n}\nexport interface NoteEntry {\n entryType: \"note\";\n noteId: Id;\n text: string;\n markdown: string | null;\n [k: string]: unknown;\n}\nexport interface ChatEntry {\n entryType: \"chat\";\n chatId: Id;\n text: string | null;\n attachments: ChatEntryAttachment[];\n customerReadAt: Datetime | null;\n [k: string]: unknown;\n}\nexport interface ChatEntryAttachment {\n id: Id;\n fileName: string;\n fileSizeBytes: number;\n fileMimeType: string;\n fileExtension: NullableString;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n type: \"CHAT\";\n [k: string]: unknown;\n}\nexport interface EmailEntry {\n entryType: \"email\";\n emailId: Id;\n to: EmailParticipant;\n from: EmailParticipant;\n additionalRecipients: EmailParticipant[];\n hiddenRecipients: EmailParticipant[];\n subject: string | null;\n textContent: string | null;\n hasMoreTextContent: boolean;\n markdownContent: string | null;\n hasMoreMarkdownContent: boolean;\n authenticity: EmailAuthenticity;\n sentAt: Datetime | null;\n receivedAt: Datetime | null;\n attachments: EmailEntryAttachment[];\n inReplyToEmailId: string | null;\n isStartOfThread: boolean;\n [k: string]: unknown;\n}\nexport interface EmailParticipant {\n email: string;\n name: string | null;\n emailActor: EmailActor | null;\n [k: string]: unknown;\n}\nexport interface EmailEntryAttachment {\n id: Id;\n fileName: string;\n fileSizeBytes: number;\n fileMimeType: string;\n fileExtension: NullableString;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n type: \"EMAIL\";\n emailContentId: string;\n [k: string]: unknown;\n}\nexport interface CustomEntry {\n entryType: \"custom\";\n externalId: string | null;\n title: string;\n type: string | null;\n components: Component[];\n attachments: CustomEntryAttachment[];\n [k: string]: unknown;\n}\nexport interface ComponentText {\n type: \"text\";\n textSize: ComponentTextSize | null;\n textColor: ComponentTextColor | null;\n text: string;\n [k: string]: unknown;\n}\nexport interface ComponentPlainText {\n plainTextSize: ComponentPlainTextSize | null;\n plainTextColor: ComponentPlainTextColor | null;\n plainText: string;\n type: \"plainText\";\n [k: string]: unknown;\n}\nexport interface ComponentSpacer {\n spacerSize: ComponentSpacerSize;\n type: \"spacer\";\n [k: string]: unknown;\n}\nexport interface ComponentDivider {\n dividerSpacingSize: ComponentDividerSpacingSize | null;\n type: \"divider\";\n [k: string]: unknown;\n}\nexport interface ComponentLinkButton {\n linkButtonUrl: string;\n linkButtonLabel: string;\n type: \"linkButton\";\n [k: string]: unknown;\n}\nexport interface ComponentWorkflowButton {\n workflowButtonWorkflowIdentifier: {\n workflowId?: string;\n workflowKey?: string;\n [k: string]: unknown;\n };\n workflowButtonLabel: string;\n type: \"workflowButton\";\n [k: string]: unknown;\n}\nexport interface ComponentBadge {\n badgeLabel: string;\n badgeColor: ComponentBadgeColor | null;\n type: \"badge\";\n [k: string]: unknown;\n}\nexport interface ComponentCopyButton {\n copyButtonValue: string;\n copyButtonTooltipLabel: string | null;\n type: \"copyButton\";\n [k: string]: unknown;\n}\nexport interface ComponentDateTime {\n type: \"dateTime\";\n dateTimeIso8601: Datetime;\n [k: string]: unknown;\n}\nexport interface ComponentUser {\n type: \"user\";\n user: (User | MachineUser) | null;\n [k: string]: unknown;\n}\nexport interface User {\n id: Id;\n email: EmailAddress;\n fullName: string;\n publicName: string;\n status: \"ONLINE\" | \"OFFLINE\" | \"BREAK\" | \"AWAY\" | \"UNKNOWN_USER_STATUS\";\n statusChangedAt: Datetime;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n deletedAt: NullableDatetime;\n deletedBy: NullableInternalActor;\n [k: string]: unknown;\n}\nexport interface MachineUser {\n id: Id;\n fullName: string;\n publicName: string;\n description: string | null;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n deletedAt: NullableDatetime;\n deletedBy: NullableInternalActor;\n [k: string]: unknown;\n}\nexport interface ComponentRow {\n type: \"row\";\n rowMainContent: ComponentRowContent[];\n rowAsideContent: ComponentRowContent[];\n [k: string]: unknown;\n}\nexport interface ComponentContainer {\n type: \"container\";\n containerContent: ComponentContainerContent[];\n [k: string]: unknown;\n}\nexport interface CustomEntryAttachment {\n id: Id;\n fileName: string;\n fileSizeBytes: number;\n fileMimeType: string;\n fileExtension: NullableString;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n type: \"CUSTOM_TIMELINE_ENTRY\";\n [k: string]: unknown;\n}\nexport interface ThreadCreatedPublicEventPayload {\n eventType: \"thread.thread_created\";\n thread: Thread;\n [k: string]: unknown;\n}\nexport interface Thread {\n id: Id;\n customer: Customer;\n title: string;\n previewText?: string | null;\n priority: ThreadPriority;\n externalId: string | null;\n status: ThreadStatus;\n statusChangedAt: Datetime;\n statusChangedBy?: Actor | null;\n statusDetail: ThreadStatusDetail | null;\n assignee: ThreadAssignee | null;\n assignedAt: Datetime | null;\n additionalAssignees?: ThreadAssignee[];\n labels: Label[];\n firstInboundMessageInfo: ThreadMessageInfo | null;\n firstOutboundMessageInfo: ThreadMessageInfo | null;\n lastInboundMessageInfo: ThreadMessageInfo | null;\n lastOutboundMessageInfo: ThreadMessageInfo | null;\n supportEmailAddresses: string[];\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface Label {\n id: Id;\n labelType: LabelType;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface LabelType {\n id: Id;\n name: string;\n icon?: string | null;\n isArchived?: boolean;\n archivedAt: Datetime | null;\n archivedBy: InternalActor | null;\n externalId?: string | null;\n isExcludedFromAi?: boolean;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n [k: string]: unknown;\n}\nexport interface ThreadMessageInfo {\n timestamp: Datetime;\n messageSource:\n | \"CHAT\"\n | \"EMAIL\"\n | \"API\"\n | \"SLACK\"\n | \"MS_TEAMS\"\n | \"UNKNOWN_THREAD_MESSAGE_INFO_MESSAGE_SOURCE\";\n actorId?: string | null;\n actorType?: (\"user\" | \"machineUser\" | \"customer\" | \"system\") | null;\n [k: string]: unknown;\n}\nexport interface ThreadStatusTransitionedPublicEventPayload {\n eventType: \"thread.thread_status_transitioned\";\n previousThread: Thread;\n thread: Thread;\n [k: string]: unknown;\n}\nexport interface ThreadAssignmentTransitionedPublicEventPayload {\n eventType: \"thread.thread_assignment_transitioned\";\n previousThread: Thread;\n thread: Thread;\n [k: string]: unknown;\n}\nexport interface ThreadEmailReceivedPublicEventPayload {\n eventType: \"thread.email_received\";\n thread: Thread;\n email: Email;\n [k: string]: unknown;\n}\nexport interface Email {\n timelineEntryId: Id;\n id: Id;\n to: EmailParticipant;\n from: EmailParticipant;\n replyTo: string | null;\n additionalRecipients: EmailParticipant[];\n hiddenRecipients: EmailParticipant[];\n subject: string | null;\n textContent: string | null;\n markdownContent: string | null;\n authenticity: EmailAuthenticity;\n sentAt: Datetime | null;\n receivedAt: Datetime | null;\n attachments: Attachment[];\n inReplyToEmailId: string | null;\n isStartOfThread: boolean;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface Attachment {\n id: Id;\n fileName: string;\n fileSizeBytes: number;\n fileMimeType: string;\n fileExtension: NullableString;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface ThreadEmailSentPublicEventPayload {\n eventType: \"thread.email_sent\";\n thread: Thread;\n email: Email;\n [k: string]: unknown;\n}\nexport interface ThreadSlackMessageReceivedEventPayload {\n eventType: \"thread.slack_message_received\";\n thread: Thread;\n slackMessage: SlackMessage;\n [k: string]: unknown;\n}\nexport interface SlackMessage {\n timelineEntryId: Id;\n id: Id;\n text: string;\n resolvedText?: string;\n attachments: Attachment[];\n slackChannelId: string;\n slackChannelName: string;\n slackMessageLink: string;\n slackReactions?: SlackReaction[];\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface SlackReaction {\n name: string;\n actors: {\n actorId: Id;\n actorType: \"user\" | \"machineUser\" | \"customer\" | \"system\";\n slackUserId: string;\n [k: string]: unknown;\n }[];\n imageUrl?: string | null;\n [k: string]: unknown;\n}\nexport interface ThreadSlackMessageSentEventPayload {\n eventType: \"thread.slack_message_sent\";\n thread: Thread;\n slackMessage: SlackMessage;\n [k: string]: unknown;\n}\nexport interface ThreadMSTeamsMessageReceivedEventPayload {\n eventType: \"thread.ms_teams_message_received\";\n thread: Thread;\n msTeamsMessage: MsTeamsMessage;\n [k: string]: unknown;\n}\nexport interface MsTeamsMessage {\n timelineEntryId: Id;\n threadId: Id;\n msTeamsMessageId: string;\n type: (\"INBOUND\" | \"OUTBOUND\" | \"UNKNOWN_MS_TEAMS_MESSAGE_TYPE\") | null;\n text: string;\n attachments: Attachment[];\n lastEditedOnMsTeamsAt: Datetime | null;\n deletedOnMsTeamsAt: Datetime | null;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface ThreadMSTeamsMessageSentEventPayload {\n eventType: \"thread.ms_teams_message_sent\";\n thread: Thread;\n msTeamsMessage: MsTeamsMessage;\n [k: string]: unknown;\n}\nexport interface ThreadLabelsChangedPublicEventPayload {\n eventType: \"thread.thread_labels_changed\";\n changeType: \"ADDED\" | \"REMOVED\";\n thread: Thread;\n previousThread: Thread;\n [k: string]: unknown;\n}\nexport interface ThreadPriorityChangedPublicEventPayload {\n eventType: \"thread.thread_priority_changed\";\n previousThread: Thread;\n thread: Thread;\n [k: string]: unknown;\n}\nexport interface ThreadFieldCreatedPublicEventPayload {\n eventType: \"thread.thread_field_created\";\n thread: Thread;\n threadField: ThreadField;\n [k: string]: unknown;\n}\nexport interface ThreadField {\n id: Id;\n threadId: Id;\n key: string;\n type:\n | \"STRING\"\n | \"BOOL\"\n | \"ENUM\"\n | \"NUMBER\"\n | \"CURRENCY\"\n | \"DATE\"\n | \"UNKNOWN_THREAD_FIELD_SCHEMA_TYPE\";\n stringValue: string | null;\n booleanValue: boolean | null;\n numberValue?: number | null;\n dateValue?: string | null;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface ThreadFieldUpdatedPublicEventPayload {\n eventType: \"thread.thread_field_updated\";\n thread: Thread;\n previousThreadField: ThreadField;\n threadField: ThreadField;\n [k: string]: unknown;\n}\nexport interface ThreadFieldDeletedPublicEventPayload {\n eventType: \"thread.thread_field_deleted\";\n thread: Thread;\n previousThreadField: ThreadField;\n [k: string]: unknown;\n}\nexport interface ThreadChatSentPublicEventPayload {\n eventType: \"thread.chat_sent\";\n chat: Chat;\n thread: Thread;\n [k: string]: unknown;\n}\nexport interface Chat {\n timelineEntryId: Id;\n id: Id;\n customerReadAt: Datetime | null;\n text?: string | null;\n attachments: Attachment[];\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface ThreadServiceLevelAgreementStatusTransitionedPayload {\n eventType: \"thread.service_level_agreement_status_transitioned\";\n thread: Thread;\n serviceLevelAgreement: ServiceLevelAgreement;\n previousServiceLevelAgreementStatusDetail: ServiceLevelAgreementStatusDetail;\n serviceLevelAgreementStatusDetail: ServiceLevelAgreementStatusDetail;\n [k: string]: unknown;\n}\nexport interface Tier {\n id: Id;\n name: string;\n externalId: string | null;\n color: string;\n defaultThreadPriority?: number;\n isDefault: boolean;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n [k: string]: unknown;\n}\n/**\n * A customer has been created\n */\nexport interface CustomerCreatedPublicEventPayload {\n eventType: \"customer.customer_created\";\n customer: Customer;\n [k: string]: unknown;\n}\n/**\n * A customer has been updated\n */\nexport interface CustomerUpdatedPublicEventPayload {\n eventType: \"customer.customer_updated\";\n customer: Customer;\n previousCustomer: Customer;\n [k: string]: unknown;\n}\n/**\n * A customer has been deleted\n */\nexport interface CustomerDeletedPublicEventPayload {\n eventType: \"customer.customer_deleted\";\n previousCustomer: Customer;\n [k: string]: unknown;\n}\nexport interface ThreadNoteCreatedEventPayload {\n eventType: \"thread.note_created\";\n thread: Thread;\n note: Note;\n [k: string]: unknown;\n}\nexport interface Note {\n timelineEntryId: Id;\n id: Id;\n text: string;\n markdown: string | null;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n deletedAt: NullableDatetime;\n deletedBy: NullableInternalActor;\n [k: string]: unknown;\n}\nexport interface ThreadNoteMentionCreatedPublicEventPayload {\n eventType: \"thread.note_mention_created\";\n thread: Thread;\n note: Note;\n mentions: MachineUser[];\n [k: string]: unknown;\n}\nexport interface DiscussionMessageCreatedPublicEventPayload {\n eventType: \"discussion.message_created\";\n discussion: {\n id: Id;\n type: \"SLACK\" | \"EMAIL\" | \"AGENT_SESSION\" | \"UNKNOWN_DISCUSSION_TYPE\";\n agent: MachineUser | null;\n status: \"OPEN\" | \"RESOLVED\" | \"UNKNOWN_DISCUSSION_STATUS\";\n threadId: Id | null;\n [k: string]: unknown;\n };\n message: {\n id: Id;\n type: \"INBOUND\" | \"OUTBOUND\" | \"UNKNOWN_DISCUSSION_MESSAGE_TYPE\";\n markdown: string;\n createdBy: Actor;\n createdAt: Datetime;\n [k: string]: unknown;\n };\n [k: string]: unknown;\n}\nexport interface ThreadChatReceivedPublicEventPayload {\n eventType: \"thread.chat_received\";\n chat: Chat;\n thread: Thread;\n [k: string]: unknown;\n}\nexport interface ThreadSlackMessageUpdatedEventPayload {\n eventType: \"thread.slack_message_updated\";\n changeType?:\n | \"MESSAGE_EDITED\"\n | \"MESSAGE_DELETED\"\n | \"REACTIONS_CHANGED\"\n | \"UNKNOWN_SLACK_MESSAGE_CHANGE_TYPE\";\n thread: Thread;\n slackMessage: SlackMessage;\n reactionChange?: SlackReactionChange | null;\n [k: string]: unknown;\n}\nexport interface SlackReactionChange {\n changeType: \"ADDED\" | \"REMOVED\" | \"UNKNOWN_SLACK_REACTION_CHANGE_TYPE\";\n reaction: SlackReaction;\n [k: string]: unknown;\n}\nexport interface ThreadDiscordMessageReceivedEventPayload {\n eventType: \"thread.discord_message_received\";\n thread: Thread;\n discordMessage: DiscordMessage;\n [k: string]: unknown;\n}\nexport interface DiscordMessage {\n timelineEntryId: Id;\n id: Id;\n discordGuildId: string;\n discordChannelId: string;\n discordThreadId: string;\n discordId: string;\n discordTimestamp: Datetime;\n textContent: string;\n attachments?: Attachment[];\n lastEditedOnDiscordAt?: Datetime | null;\n deletedOnDiscordAt?: Datetime | null;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface ThreadDiscordMessageSentEventPayload {\n eventType: \"thread.discord_message_sent\";\n thread: Thread;\n discordMessage: DiscordMessage;\n [k: string]: unknown;\n}\nexport interface ThreadDiscordMessageUpdatedEventPayload {\n eventType: \"thread.discord_message_updated\";\n thread: Thread;\n discordMessage: DiscordMessage;\n [k: string]: unknown;\n}\nexport interface ThreadTenantUpdatedPublicEventPayload {\n eventType: \"thread.thread_tenant_updated\";\n previousThread: Thread;\n thread: Thread;\n previousTenant: {\n id: Id;\n workspaceId: Id;\n name: string;\n externalId: string;\n url: string | null;\n source?: \"api\" | \"salesforce\" | \"hubspot\" | \"attio\" | \"email_domain\" | \"UNKNOWN_TENANT_SOURCE\";\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n } | null;\n tenant: {\n id: Id;\n workspaceId: Id;\n name: string;\n externalId: string;\n url: string | null;\n source?: \"api\" | \"salesforce\" | \"hubspot\" | \"attio\" | \"email_domain\" | \"UNKNOWN_TENANT_SOURCE\";\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n } | null;\n [k: string]: unknown;\n}\nexport interface WebhookMetadata {\n webhookTargetId: Id;\n webhookTargetVersion: \"2026-08-19\";\n webhookDeliveryAttemptId: Id;\n webhookDeliveryAttemptNumber: number;\n webhookDeliveryAttemptTimestamp: Datetime;\n [k: string]: unknown;\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../src/webhook-schema.ts"],"sourcesContent":["/* eslint-disable */\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\n\nexport type Datetime = string;\nexport type Id = string;\nexport type EmailAddress = string;\nexport type InternalActor =\n | {\n actorType: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | UserActor\n | MachineUserActor\n | SystemActor;\nexport type Actor =\n | {\n actorType: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | UserActor\n | MachineUserActor\n | SystemActor\n | CustomerActor;\nexport type NullableString = string | null;\nexport type EmailActor =\n | {\n actorType: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | UserActor\n | CustomerActor\n | {\n actorType: \"supportEmailAddress\";\n supportEmailAddress: string;\n [k: string]: unknown;\n }\n | {\n actorType: \"deletedCustomer\";\n customerId: Id;\n [k: string]: unknown;\n };\nexport type EmailAuthenticity = \"PASS\" | \"FAIL\" | \"UNKNOWN\" | \"UNKNOWN_EMAIL_AUTHENTICITY\";\nexport type Component =\n | {\n type: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | ComponentText\n | ComponentPlainText\n | ComponentSpacer\n | ComponentDivider\n | ComponentLinkButton\n | ComponentWorkflowButton\n | ComponentBadge\n | ComponentCopyButton\n | ComponentDateTime\n | ComponentUser\n | ComponentRow\n | ComponentContainer;\nexport type ComponentTextSize = \"S\" | \"M\" | \"L\" | \"UNKNOWN_COMPONENT_TEXT_SIZE\";\nexport type ComponentTextColor =\n | \"NORMAL\"\n | \"MUTED\"\n | \"SUCCESS\"\n | \"WARNING\"\n | \"ERROR\"\n | \"UNKNOWN_COMPONENT_TEXT_COLOR\";\nexport type ComponentPlainTextSize = \"S\" | \"M\" | \"L\" | \"UNKNOWN_COMPONENT_PLAIN_TEXT_SIZE\";\nexport type ComponentPlainTextColor =\n | \"NORMAL\"\n | \"MUTED\"\n | \"SUCCESS\"\n | \"WARNING\"\n | \"ERROR\"\n | \"UNKNOWN_COMPONENT_PLAIN_TEXT_COLOR\";\nexport type ComponentSpacerSize = \"XS\" | \"S\" | \"M\" | \"L\" | \"XL\" | \"UNKNOWN_COMPONENT_SPACER_SIZE\";\nexport type ComponentDividerSpacingSize =\n | \"XS\"\n | \"S\"\n | \"M\"\n | \"L\"\n | \"XL\"\n | \"UNKNOWN_COMPONENT_DIVIDER_SPACING_SIZE\";\nexport type ComponentBadgeColor =\n | \"GREY\"\n | \"GREEN\"\n | \"YELLOW\"\n | \"RED\"\n | \"BLUE\"\n | \"UNKNOWN_COMPONENT_BADGE_COLOR\";\nexport type NullableDatetime = Datetime | null;\nexport type NullableInternalActor = InternalActor | null;\nexport type ComponentRowContent =\n | {\n type: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | ComponentText\n | ComponentPlainText\n | ComponentSpacer\n | ComponentDivider\n | ComponentLinkButton\n | ComponentWorkflowButton\n | ComponentBadge\n | ComponentCopyButton\n | ComponentDateTime\n | ComponentUser;\nexport type ComponentContainerContent =\n | {\n type: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | ComponentText\n | ComponentPlainText\n | ComponentSpacer\n | ComponentDivider\n | ComponentLinkButton\n | ComponentWorkflowButton\n | ComponentBadge\n | ComponentCopyButton\n | ComponentDateTime\n | ComponentUser\n | ComponentRow;\nexport type CustomerGroupChangedPayload =\n | {\n changeType: \"ADDED\";\n eventType: \"customer.customer_group_changed\";\n customerGroup: CustomerGroup;\n [k: string]: unknown;\n }\n | {\n changeType: \"UPDATED\";\n eventType: \"customer.customer_group_changed\";\n customerGroup: CustomerGroup;\n previousCustomerGroup: CustomerGroup;\n [k: string]: unknown;\n }\n | {\n changeType: \"REMOVED\";\n eventType: \"customer.customer_group_changed\";\n previousCustomerGroup: CustomerGroup;\n [k: string]: unknown;\n };\nexport type ThreadPriority = number;\nexport type ThreadStatus = \"TODO\" | \"DONE\" | \"SNOOZED\" | \"UNKNOWN_THREAD_STATUS\";\nexport type ThreadStatusDetail =\n | {\n type: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | {\n type: \"CREATED\";\n createdAt: Datetime;\n [k: string]: unknown;\n }\n | {\n type: \"NEW_REPLY\";\n [k: string]: unknown;\n }\n | {\n type: \"IN_PROGRESS\";\n [k: string]: unknown;\n }\n | {\n type: \"WAITING_FOR_CUSTOMER\";\n [k: string]: unknown;\n }\n | {\n type: \"WAITING_INDEFINITELY\";\n [k: string]: unknown;\n }\n | {\n type: \"WAITING_FOR_DURATION\";\n waitingUntil: Datetime;\n durationSeconds: number;\n [k: string]: unknown;\n }\n | {\n type: \"THREAD_LINK_UPDATED\";\n linear?: {\n issueId: string;\n [k: string]: unknown;\n };\n [k: string]: unknown;\n }\n | {\n type: \"DONE_MANUALLY_SET\";\n [k: string]: unknown;\n }\n | {\n type: \"IGNORED\";\n [k: string]: unknown;\n }\n | {\n type: \"DONE_AUTOMATICALLY_SET\";\n afterSeconds?: number;\n [k: string]: unknown;\n }\n | {\n type: \"THREAD_DISCUSSION_RESOLVED\";\n threadDiscussionId?: Id;\n [k: string]: unknown;\n };\nexport type ThreadAssignee =\n | {\n type: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | User\n | MachineUser\n | {\n id: string;\n [k: string]: unknown;\n };\nexport type ServiceLevelAgreement =\n | {\n type: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | {\n id: Id;\n tier: Tier;\n useBusinessHoursOnly: boolean;\n threadPriorityFilter: ThreadPriorityFilter;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n type: \"FIRST_RESPONSE_TIME\";\n firstResponseTimeMinutes: number;\n [k: string]: unknown;\n }\n | {\n id: Id;\n tier: Tier;\n useBusinessHoursOnly: boolean;\n threadPriorityFilter: ThreadPriorityFilter;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n type: \"NEXT_RESPONSE_TIME\";\n nextResponseTimeMinutes: number;\n [k: string]: unknown;\n };\n/**\n * @minItems 1\n */\nexport type ThreadPriorityFilter = [ThreadPriority, ...ThreadPriority[]];\nexport type ServiceLevelAgreementStatusDetail =\n | {\n status: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | {\n breachTime: Datetime;\n status: \"PENDING\";\n [k: string]: unknown;\n }\n | {\n achievedAt: Datetime;\n status: \"ACHIEVED\";\n [k: string]: unknown;\n }\n | {\n breachTime: Datetime;\n status: \"IMMINENT_BREACH\";\n [k: string]: unknown;\n }\n | {\n breachedAt: Datetime;\n status: \"BREACHING\";\n [k: string]: unknown;\n }\n | {\n breachedAt: Datetime;\n completedAt: Datetime;\n status: \"BREACHED\";\n [k: string]: unknown;\n }\n | {\n cancelledAt: Datetime;\n status: \"CANCELLED\";\n [k: string]: unknown;\n };\n\n/**\n * Webhook request\n */\nexport interface WebhooksSchemaDefinition {\n timestamp: Datetime;\n workspaceId: Id;\n payload:\n | CustomerChangedPayload\n | CustomerGroupMembershipsChangedPayload\n | TimelineEntryChangedPayload\n | CustomerGroupChangedPayload\n | ThreadCreatedPublicEventPayload\n | ThreadStatusTransitionedPublicEventPayload\n | ThreadAssignmentTransitionedPublicEventPayload\n | ThreadEmailReceivedPublicEventPayload\n | ThreadEmailSentPublicEventPayload\n | ThreadSlackMessageReceivedEventPayload\n | ThreadSlackMessageSentEventPayload\n | ThreadMSTeamsMessageReceivedEventPayload\n | ThreadMSTeamsMessageSentEventPayload\n | ThreadLabelsChangedPublicEventPayload\n | ThreadPriorityChangedPublicEventPayload\n | ThreadFieldCreatedPublicEventPayload\n | ThreadFieldUpdatedPublicEventPayload\n | ThreadFieldDeletedPublicEventPayload\n | ThreadChatSentPublicEventPayload\n | ThreadServiceLevelAgreementStatusTransitionedPayload\n | CustomerCreatedPublicEventPayload\n | CustomerUpdatedPublicEventPayload\n | CustomerDeletedPublicEventPayload\n | ThreadNoteCreatedEventPayload\n | ThreadNoteMentionCreatedPublicEventPayload\n | DiscussionMessageCreatedPublicEventPayload\n | ThreadChatReceivedPublicEventPayload\n | ThreadSlackMessageUpdatedEventPayload\n | ThreadDiscordMessageReceivedEventPayload\n | ThreadDiscordMessageSentEventPayload\n | ThreadDiscordMessageUpdatedEventPayload\n | ThreadTenantUpdatedPublicEventPayload\n | ThreadLockedPublicEventPayload\n | DiscussionCreatedPublicEventPayload;\n id: Id;\n type:\n | \"thread.thread_created\"\n | \"thread.thread_status_transitioned\"\n | \"thread.thread_assignment_transitioned\"\n | \"thread.email_received\"\n | \"thread.email_sent\"\n | \"thread.slack_message_received\"\n | \"thread.slack_message_sent\"\n | \"thread.slack_message_updated\"\n | \"thread.discord_message_received\"\n | \"thread.discord_message_sent\"\n | \"thread.discord_message_updated\"\n | \"thread.ms_teams_message_sent\"\n | \"thread.ms_teams_message_received\"\n | \"thread.chat_sent\"\n | \"thread.chat_received\"\n | \"thread.note_created\"\n | \"thread.note_mention_created\"\n | \"discussion.discussion_created\"\n | \"discussion.message_created\"\n | \"thread.thread_labels_changed\"\n | \"thread.thread_priority_changed\"\n | \"thread.thread_field_created\"\n | \"thread.thread_field_updated\"\n | \"thread.thread_field_deleted\"\n | \"thread.service_level_agreement_status_transitioned\"\n | \"thread.thread_tenant_updated\"\n | \"thread.thread_locked\"\n | \"customer.customer_created\"\n | \"customer.customer_updated\"\n | \"customer.customer_deleted\"\n | \"customer.customer_changed\"\n | \"customer.customer_group_changed\"\n | \"customer.customer_group_memberships_changed\"\n | \"timeline.timeline_entry_changed\";\n webhookMetadata: WebhookMetadata;\n [k: string]: unknown;\n}\n/**\n * A customer has been created or updated\n */\nexport interface CustomerChangedPayload {\n changeType: \"ADDED\" | \"UPDATED\";\n eventType: \"customer.customer_changed\";\n customer: Customer;\n previousCustomer: Customer | null;\n [k: string]: unknown;\n}\nexport interface Customer {\n id: Id;\n email: {\n email: EmailAddress;\n isVerified: boolean;\n verifiedAt: Datetime | null;\n [k: string]: unknown;\n };\n externalId: string | null;\n fullName: string;\n shortName: string | null;\n markedAsSpamAt?: Datetime | null;\n markedAsSpamBy?: InternalActor | null;\n customerGroupMemberships: CustomerGroupMembership[];\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface UserActor {\n actorType: \"user\";\n userId: Id;\n [k: string]: unknown;\n}\nexport interface MachineUserActor {\n actorType: \"machineUser\";\n machineUserId: Id;\n [k: string]: unknown;\n}\nexport interface SystemActor {\n actorType: \"system\";\n system: string;\n [k: string]: unknown;\n}\nexport interface CustomerGroupMembership {\n customerId: Id;\n customerGroupId: Id;\n workspaceId: Id;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n customerGroup: CustomerGroup;\n [k: string]: unknown;\n}\nexport interface CustomerGroup {\n id: Id;\n workspaceId: Id;\n name: string;\n key: string;\n color: string;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n [k: string]: unknown;\n}\nexport interface CustomerActor {\n actorType: \"customer\";\n customerId: Id;\n [k: string]: unknown;\n}\nexport interface CustomerGroupMembershipsChangedPayload {\n eventType: \"customer.customer_group_memberships_changed\";\n changeType: \"ADDED\" | \"REMOVED\";\n customer: Customer;\n previousCustomer: Customer;\n [k: string]: unknown;\n}\n/**\n * A timeline entry has been added, updated or removed\n */\nexport interface TimelineEntryChangedPayload {\n eventType: \"timeline.timeline_entry_changed\";\n /**\n * null if changeType=ADDED\n */\n previousTimelineEntry: TimelineEntry | null;\n /**\n * null if changeType=REMOVED\n */\n timelineEntry: TimelineEntry | null;\n changeType: \"ADDED\" | \"UPDATED\" | \"REMOVED\";\n [k: string]: unknown;\n}\nexport interface TimelineEntry {\n id: Id;\n customerId: Id;\n threadId?: Id | null;\n timestamp: Datetime;\n actor: Actor;\n entry:\n | {\n entryType: \"UNKNOWN\";\n [k: string]: unknown;\n }\n | NoteEntry\n | ChatEntry\n | EmailEntry\n | CustomEntry;\n [k: string]: unknown;\n}\nexport interface NoteEntry {\n entryType: \"note\";\n noteId: Id;\n text: string;\n markdown: string | null;\n [k: string]: unknown;\n}\nexport interface ChatEntry {\n entryType: \"chat\";\n chatId: Id;\n text: string | null;\n attachments: ChatEntryAttachment[];\n customerReadAt: Datetime | null;\n [k: string]: unknown;\n}\nexport interface ChatEntryAttachment {\n id: Id;\n fileName: string;\n fileSizeBytes: number;\n fileMimeType: string;\n fileExtension: NullableString;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n type: \"CHAT\";\n [k: string]: unknown;\n}\nexport interface EmailEntry {\n entryType: \"email\";\n emailId: Id;\n to: EmailParticipant;\n from: EmailParticipant;\n additionalRecipients: EmailParticipant[];\n hiddenRecipients: EmailParticipant[];\n subject: string | null;\n textContent: string | null;\n hasMoreTextContent: boolean;\n markdownContent: string | null;\n hasMoreMarkdownContent: boolean;\n authenticity: EmailAuthenticity;\n sentAt: Datetime | null;\n receivedAt: Datetime | null;\n attachments: EmailEntryAttachment[];\n inReplyToEmailId: string | null;\n isStartOfThread: boolean;\n [k: string]: unknown;\n}\nexport interface EmailParticipant {\n email: string;\n name: string | null;\n emailActor: EmailActor | null;\n [k: string]: unknown;\n}\nexport interface EmailEntryAttachment {\n id: Id;\n fileName: string;\n fileSizeBytes: number;\n fileMimeType: string;\n fileExtension: NullableString;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n type: \"EMAIL\";\n emailContentId: string;\n [k: string]: unknown;\n}\nexport interface CustomEntry {\n entryType: \"custom\";\n externalId: string | null;\n title: string;\n type: string | null;\n components: Component[];\n attachments: CustomEntryAttachment[];\n [k: string]: unknown;\n}\nexport interface ComponentText {\n type: \"text\";\n textSize: ComponentTextSize | null;\n textColor: ComponentTextColor | null;\n text: string;\n [k: string]: unknown;\n}\nexport interface ComponentPlainText {\n plainTextSize: ComponentPlainTextSize | null;\n plainTextColor: ComponentPlainTextColor | null;\n plainText: string;\n type: \"plainText\";\n [k: string]: unknown;\n}\nexport interface ComponentSpacer {\n spacerSize: ComponentSpacerSize;\n type: \"spacer\";\n [k: string]: unknown;\n}\nexport interface ComponentDivider {\n dividerSpacingSize: ComponentDividerSpacingSize | null;\n type: \"divider\";\n [k: string]: unknown;\n}\nexport interface ComponentLinkButton {\n linkButtonUrl: string;\n linkButtonLabel: string;\n type: \"linkButton\";\n [k: string]: unknown;\n}\nexport interface ComponentWorkflowButton {\n workflowButtonWorkflowIdentifier: {\n workflowId?: string;\n workflowKey?: string;\n [k: string]: unknown;\n };\n workflowButtonLabel: string;\n type: \"workflowButton\";\n [k: string]: unknown;\n}\nexport interface ComponentBadge {\n badgeLabel: string;\n badgeColor: ComponentBadgeColor | null;\n type: \"badge\";\n [k: string]: unknown;\n}\nexport interface ComponentCopyButton {\n copyButtonValue: string;\n copyButtonTooltipLabel: string | null;\n type: \"copyButton\";\n [k: string]: unknown;\n}\nexport interface ComponentDateTime {\n type: \"dateTime\";\n dateTimeIso8601: Datetime;\n [k: string]: unknown;\n}\nexport interface ComponentUser {\n type: \"user\";\n user: (User | MachineUser) | null;\n [k: string]: unknown;\n}\nexport interface User {\n id: Id;\n email: EmailAddress;\n fullName: string;\n publicName: string;\n status: \"ONLINE\" | \"OFFLINE\" | \"BREAK\" | \"AWAY\" | \"UNKNOWN_USER_STATUS\";\n statusChangedAt: Datetime;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n deletedAt: NullableDatetime;\n deletedBy: NullableInternalActor;\n [k: string]: unknown;\n}\nexport interface MachineUser {\n id: Id;\n fullName: string;\n publicName: string;\n description: string | null;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n deletedAt: NullableDatetime;\n deletedBy: NullableInternalActor;\n [k: string]: unknown;\n}\nexport interface ComponentRow {\n type: \"row\";\n rowMainContent: ComponentRowContent[];\n rowAsideContent: ComponentRowContent[];\n [k: string]: unknown;\n}\nexport interface ComponentContainer {\n type: \"container\";\n containerContent: ComponentContainerContent[];\n [k: string]: unknown;\n}\nexport interface CustomEntryAttachment {\n id: Id;\n fileName: string;\n fileSizeBytes: number;\n fileMimeType: string;\n fileExtension: NullableString;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n type: \"CUSTOM_TIMELINE_ENTRY\";\n [k: string]: unknown;\n}\nexport interface ThreadCreatedPublicEventPayload {\n eventType: \"thread.thread_created\";\n thread: Thread;\n [k: string]: unknown;\n}\nexport interface Thread {\n id: Id;\n customer: Customer;\n title: string;\n previewText?: string | null;\n priority: ThreadPriority;\n externalId: string | null;\n status: ThreadStatus;\n statusChangedAt: Datetime;\n statusChangedBy?: Actor | null;\n statusDetail: ThreadStatusDetail | null;\n assignee: ThreadAssignee | null;\n assignedAt: Datetime | null;\n additionalAssignees?: ThreadAssignee[];\n labels: Label[];\n firstInboundMessageInfo: ThreadMessageInfo | null;\n firstOutboundMessageInfo: ThreadMessageInfo | null;\n lastInboundMessageInfo: ThreadMessageInfo | null;\n lastOutboundMessageInfo: ThreadMessageInfo | null;\n supportEmailAddresses: string[];\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface Label {\n id: Id;\n labelType: LabelType;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface LabelType {\n id: Id;\n name: string;\n icon?: string | null;\n isArchived?: boolean;\n archivedAt: Datetime | null;\n archivedBy: InternalActor | null;\n externalId?: string | null;\n isExcludedFromAi?: boolean;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n [k: string]: unknown;\n}\nexport interface ThreadMessageInfo {\n timestamp: Datetime;\n messageSource:\n | \"CHAT\"\n | \"EMAIL\"\n | \"API\"\n | \"SLACK\"\n | \"MS_TEAMS\"\n | \"UNKNOWN_THREAD_MESSAGE_INFO_MESSAGE_SOURCE\";\n actorId?: string | null;\n actorType?: (\"user\" | \"machineUser\" | \"customer\" | \"system\") | null;\n [k: string]: unknown;\n}\nexport interface ThreadStatusTransitionedPublicEventPayload {\n eventType: \"thread.thread_status_transitioned\";\n previousThread: Thread;\n thread: Thread;\n [k: string]: unknown;\n}\nexport interface ThreadAssignmentTransitionedPublicEventPayload {\n eventType: \"thread.thread_assignment_transitioned\";\n previousThread: Thread;\n thread: Thread;\n [k: string]: unknown;\n}\nexport interface ThreadEmailReceivedPublicEventPayload {\n eventType: \"thread.email_received\";\n thread: Thread;\n email: Email;\n [k: string]: unknown;\n}\nexport interface Email {\n timelineEntryId: Id;\n id: Id;\n to: EmailParticipant;\n from: EmailParticipant;\n replyTo: string | null;\n additionalRecipients: EmailParticipant[];\n hiddenRecipients: EmailParticipant[];\n subject: string | null;\n textContent: string | null;\n markdownContent: string | null;\n authenticity: EmailAuthenticity;\n sentAt: Datetime | null;\n receivedAt: Datetime | null;\n attachments: Attachment[];\n inReplyToEmailId: string | null;\n isStartOfThread: boolean;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface Attachment {\n id: Id;\n fileName: string;\n fileSizeBytes: number;\n fileMimeType: string;\n fileExtension: NullableString;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface ThreadEmailSentPublicEventPayload {\n eventType: \"thread.email_sent\";\n thread: Thread;\n email: Email;\n [k: string]: unknown;\n}\nexport interface ThreadSlackMessageReceivedEventPayload {\n eventType: \"thread.slack_message_received\";\n thread: Thread;\n slackMessage: SlackMessage;\n [k: string]: unknown;\n}\nexport interface SlackMessage {\n timelineEntryId: Id;\n id: Id;\n text: string;\n resolvedText?: string;\n attachments: Attachment[];\n slackChannelId: string;\n slackChannelName: string;\n slackMessageLink: string;\n slackReactions?: SlackReaction[];\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface SlackReaction {\n name: string;\n actors: {\n actorId: Id;\n actorType: \"user\" | \"machineUser\" | \"customer\" | \"system\";\n slackUserId: string;\n [k: string]: unknown;\n }[];\n imageUrl?: string | null;\n [k: string]: unknown;\n}\nexport interface ThreadSlackMessageSentEventPayload {\n eventType: \"thread.slack_message_sent\";\n thread: Thread;\n slackMessage: SlackMessage;\n [k: string]: unknown;\n}\nexport interface ThreadMSTeamsMessageReceivedEventPayload {\n eventType: \"thread.ms_teams_message_received\";\n thread: Thread;\n msTeamsMessage: MsTeamsMessage;\n [k: string]: unknown;\n}\nexport interface MsTeamsMessage {\n timelineEntryId: Id;\n threadId: Id;\n msTeamsMessageId: string;\n type: (\"INBOUND\" | \"OUTBOUND\" | \"UNKNOWN_MS_TEAMS_MESSAGE_TYPE\") | null;\n text: string;\n attachments: Attachment[];\n lastEditedOnMsTeamsAt: Datetime | null;\n deletedOnMsTeamsAt: Datetime | null;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface ThreadMSTeamsMessageSentEventPayload {\n eventType: \"thread.ms_teams_message_sent\";\n thread: Thread;\n msTeamsMessage: MsTeamsMessage;\n [k: string]: unknown;\n}\nexport interface ThreadLabelsChangedPublicEventPayload {\n eventType: \"thread.thread_labels_changed\";\n changeType: \"ADDED\" | \"REMOVED\";\n thread: Thread;\n previousThread: Thread;\n [k: string]: unknown;\n}\nexport interface ThreadPriorityChangedPublicEventPayload {\n eventType: \"thread.thread_priority_changed\";\n previousThread: Thread;\n thread: Thread;\n [k: string]: unknown;\n}\nexport interface ThreadFieldCreatedPublicEventPayload {\n eventType: \"thread.thread_field_created\";\n thread: Thread;\n threadField: ThreadField;\n [k: string]: unknown;\n}\nexport interface ThreadField {\n id: Id;\n threadId: Id;\n key: string;\n type:\n | \"STRING\"\n | \"BOOL\"\n | \"ENUM\"\n | \"NUMBER\"\n | \"CURRENCY\"\n | \"DATE\"\n | \"UNKNOWN_THREAD_FIELD_SCHEMA_TYPE\";\n stringValue: string | null;\n booleanValue: boolean | null;\n numberValue?: number | null;\n dateValue?: string | null;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface ThreadFieldUpdatedPublicEventPayload {\n eventType: \"thread.thread_field_updated\";\n thread: Thread;\n previousThreadField: ThreadField;\n threadField: ThreadField;\n [k: string]: unknown;\n}\nexport interface ThreadFieldDeletedPublicEventPayload {\n eventType: \"thread.thread_field_deleted\";\n thread: Thread;\n previousThreadField: ThreadField;\n [k: string]: unknown;\n}\nexport interface ThreadChatSentPublicEventPayload {\n eventType: \"thread.chat_sent\";\n chat: Chat;\n thread: Thread;\n [k: string]: unknown;\n}\nexport interface Chat {\n timelineEntryId: Id;\n id: Id;\n customerReadAt: Datetime | null;\n text?: string | null;\n attachments: Attachment[];\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface ThreadServiceLevelAgreementStatusTransitionedPayload {\n eventType: \"thread.service_level_agreement_status_transitioned\";\n thread: Thread;\n serviceLevelAgreement: ServiceLevelAgreement;\n previousServiceLevelAgreementStatusDetail: ServiceLevelAgreementStatusDetail;\n serviceLevelAgreementStatusDetail: ServiceLevelAgreementStatusDetail;\n [k: string]: unknown;\n}\nexport interface Tier {\n id: Id;\n name: string;\n externalId: string | null;\n color: string;\n defaultThreadPriority?: number;\n isDefault: boolean;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n [k: string]: unknown;\n}\n/**\n * A customer has been created\n */\nexport interface CustomerCreatedPublicEventPayload {\n eventType: \"customer.customer_created\";\n customer: Customer;\n [k: string]: unknown;\n}\n/**\n * A customer has been updated\n */\nexport interface CustomerUpdatedPublicEventPayload {\n eventType: \"customer.customer_updated\";\n customer: Customer;\n previousCustomer: Customer;\n [k: string]: unknown;\n}\n/**\n * A customer has been deleted\n */\nexport interface CustomerDeletedPublicEventPayload {\n eventType: \"customer.customer_deleted\";\n previousCustomer: Customer;\n [k: string]: unknown;\n}\nexport interface ThreadNoteCreatedEventPayload {\n eventType: \"thread.note_created\";\n thread: Thread;\n note: Note;\n [k: string]: unknown;\n}\nexport interface Note {\n timelineEntryId: Id;\n id: Id;\n text: string;\n markdown: string | null;\n createdAt: Datetime;\n createdBy: InternalActor;\n updatedAt: Datetime;\n updatedBy: InternalActor;\n deletedAt: NullableDatetime;\n deletedBy: NullableInternalActor;\n [k: string]: unknown;\n}\nexport interface ThreadNoteMentionCreatedPublicEventPayload {\n eventType: \"thread.note_mention_created\";\n thread: Thread;\n note: Note;\n mentions: MachineUser[];\n [k: string]: unknown;\n}\nexport interface DiscussionMessageCreatedPublicEventPayload {\n eventType: \"discussion.message_created\";\n discussion: Discussion;\n message: {\n id: Id;\n type: \"INBOUND\" | \"OUTBOUND\" | \"UNKNOWN_DISCUSSION_MESSAGE_TYPE\";\n markdown: string;\n createdBy: Actor;\n createdAt: Datetime;\n [k: string]: unknown;\n };\n [k: string]: unknown;\n}\nexport interface Discussion {\n id: Id;\n type: \"SLACK\" | \"EMAIL\" | \"AGENT_SESSION\" | \"UNKNOWN_DISCUSSION_TYPE\";\n agent: MachineUser | null;\n status: \"OPEN\" | \"RESOLVED\" | \"UNKNOWN_DISCUSSION_STATUS\";\n threadId: Id | null;\n [k: string]: unknown;\n}\nexport interface ThreadChatReceivedPublicEventPayload {\n eventType: \"thread.chat_received\";\n chat: Chat;\n thread: Thread;\n [k: string]: unknown;\n}\nexport interface ThreadSlackMessageUpdatedEventPayload {\n eventType: \"thread.slack_message_updated\";\n changeType?:\n | \"MESSAGE_EDITED\"\n | \"MESSAGE_DELETED\"\n | \"REACTIONS_CHANGED\"\n | \"UNKNOWN_SLACK_MESSAGE_CHANGE_TYPE\";\n thread: Thread;\n slackMessage: SlackMessage;\n reactionChange?: SlackReactionChange | null;\n [k: string]: unknown;\n}\nexport interface SlackReactionChange {\n changeType: \"ADDED\" | \"REMOVED\" | \"UNKNOWN_SLACK_REACTION_CHANGE_TYPE\";\n reaction: SlackReaction;\n [k: string]: unknown;\n}\nexport interface ThreadDiscordMessageReceivedEventPayload {\n eventType: \"thread.discord_message_received\";\n thread: Thread;\n discordMessage: DiscordMessage;\n [k: string]: unknown;\n}\nexport interface DiscordMessage {\n timelineEntryId: Id;\n id: Id;\n discordGuildId: string;\n discordChannelId: string;\n discordThreadId: string;\n discordId: string;\n discordTimestamp: Datetime;\n textContent: string;\n attachments?: Attachment[];\n lastEditedOnDiscordAt?: Datetime | null;\n deletedOnDiscordAt?: Datetime | null;\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n}\nexport interface ThreadDiscordMessageSentEventPayload {\n eventType: \"thread.discord_message_sent\";\n thread: Thread;\n discordMessage: DiscordMessage;\n [k: string]: unknown;\n}\nexport interface ThreadDiscordMessageUpdatedEventPayload {\n eventType: \"thread.discord_message_updated\";\n thread: Thread;\n discordMessage: DiscordMessage;\n [k: string]: unknown;\n}\nexport interface ThreadTenantUpdatedPublicEventPayload {\n eventType: \"thread.thread_tenant_updated\";\n previousThread: Thread;\n thread: Thread;\n previousTenant: {\n id: Id;\n workspaceId: Id;\n name: string;\n externalId: string;\n url: string | null;\n source?: \"api\" | \"salesforce\" | \"hubspot\" | \"attio\" | \"email_domain\" | \"UNKNOWN_TENANT_SOURCE\";\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n } | null;\n tenant: {\n id: Id;\n workspaceId: Id;\n name: string;\n externalId: string;\n url: string | null;\n source?: \"api\" | \"salesforce\" | \"hubspot\" | \"attio\" | \"email_domain\" | \"UNKNOWN_TENANT_SOURCE\";\n createdAt: Datetime;\n createdBy: Actor;\n updatedAt: Datetime;\n updatedBy: Actor;\n [k: string]: unknown;\n } | null;\n [k: string]: unknown;\n}\nexport interface ThreadLockedPublicEventPayload {\n eventType: \"thread.thread_locked\";\n previousThread: Thread;\n thread: Thread;\n [k: string]: unknown;\n}\nexport interface DiscussionCreatedPublicEventPayload {\n eventType: \"discussion.discussion_created\";\n discussion: Discussion;\n [k: string]: unknown;\n}\nexport interface WebhookMetadata {\n webhookTargetId: Id;\n webhookTargetVersion: \"2026-08-31\";\n webhookDeliveryAttemptId: Id;\n webhookDeliveryAttemptNumber: number;\n webhookDeliveryAttemptTimestamp: Datetime;\n [k: string]: unknown;\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -105,6 +105,12 @@
105
105
  },
106
106
  {
107
107
  "$ref": "#/definitions/threadTenantUpdatedPublicEventPayload"
108
+ },
109
+ {
110
+ "$ref": "#/definitions/threadLockedPublicEventPayload"
111
+ },
112
+ {
113
+ "$ref": "#/definitions/discussionCreatedPublicEventPayload"
108
114
  }
109
115
  ]
110
116
  },
@@ -131,6 +137,7 @@
131
137
  "thread.chat_received",
132
138
  "thread.note_created",
133
139
  "thread.note_mention_created",
140
+ "discussion.discussion_created",
134
141
  "discussion.message_created",
135
142
  "thread.thread_labels_changed",
136
143
  "thread.thread_priority_changed",
@@ -139,6 +146,7 @@
139
146
  "thread.thread_field_deleted",
140
147
  "thread.service_level_agreement_status_transitioned",
141
148
  "thread.thread_tenant_updated",
149
+ "thread.thread_locked",
142
150
  "customer.customer_created",
143
151
  "customer.customer_updated",
144
152
  "customer.customer_deleted",
@@ -2980,7 +2988,7 @@
2980
2988
  },
2981
2989
  "webhookTargetVersion": {
2982
2990
  "type": "string",
2983
- "const": "2026-08-19"
2991
+ "const": "2026-08-31"
2984
2992
  },
2985
2993
  "webhookDeliveryAttemptId": {
2986
2994
  "$ref": "#/definitions/id"
@@ -3781,6 +3789,37 @@
3781
3789
  },
3782
3790
  "required": ["eventType", "previousThread", "thread", "previousTenant", "tenant"],
3783
3791
  "additionalProperties": true
3792
+ },
3793
+ "threadLockedPublicEventPayload": {
3794
+ "type": "object",
3795
+ "properties": {
3796
+ "eventType": {
3797
+ "type": "string",
3798
+ "const": "thread.thread_locked"
3799
+ },
3800
+ "previousThread": {
3801
+ "$ref": "#/definitions/thread"
3802
+ },
3803
+ "thread": {
3804
+ "$ref": "#/definitions/thread"
3805
+ }
3806
+ },
3807
+ "required": ["eventType", "previousThread", "thread"],
3808
+ "additionalProperties": true
3809
+ },
3810
+ "discussionCreatedPublicEventPayload": {
3811
+ "type": "object",
3812
+ "properties": {
3813
+ "eventType": {
3814
+ "type": "string",
3815
+ "const": "discussion.discussion_created"
3816
+ },
3817
+ "discussion": {
3818
+ "$ref": "#/definitions/discussionMessageCreatedPublicEventPayload/properties/discussion"
3819
+ }
3820
+ },
3821
+ "required": ["eventType", "discussion"],
3822
+ "additionalProperties": true
3784
3823
  }
3785
3824
  },
3786
3825
  "$schema": "http://json-schema.org/draft-07/schema#"
package/dist/verify.js CHANGED
@@ -55,7 +55,13 @@ function verifyWebhookSignature(payload, signature, secret) {
55
55
  .createHmac("sha256", secret)
56
56
  .update(payload, "utf8")
57
57
  .digest("hex");
58
- if (signature !== expectedSignature) {
58
+ // timingSafeEqual requires both buffers to be the same length; a length mismatch definitively
59
+ // means the signature is wrong and leaks no secret. Compare the encoded byte lengths, not the
60
+ // string lengths: the signature is caller-supplied, and a multi-byte character makes those two
61
+ // disagree, which would get past a string-length check and then make timingSafeEqual throw.
62
+ const given = Buffer.from(signature, "utf8");
63
+ const expected = Buffer.from(expectedSignature, "utf8");
64
+ if (given.length !== expected.length || !crypto.timingSafeEqual(given, expected)) {
59
65
  return {
60
66
  error: new PlainWebhookSignatureVerificationError("The signature provided is invalid."),
61
67
  };
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAEL,wBAAwB,EACxB,sCAAsC,GACvC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAe,MAAM,aAAa,CAAC;AAGjD;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAkB,EAClB,SAAiB,EACjB,MAAc,EACd,SAAS,GAAG,GAAG;IAEf,MAAM,2BAA2B,GAAG,sBAAsB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1F,IAAI,KAAK,CAAC,2BAA2B,CAAC,EAAE,CAAC;QACvC,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QACzB,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,+BAA+B,CAAC,CAAC;IAEtF,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,KAAK,EAAE,IAAI,wBAAwB,CACjC,sDAAsD,SAAS,qDAAqD,OAAO,CAAC,EAAE,IAAI,CACnI;SACF,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,EAAE,CAAC;QACzD,OAAO;YACL,KAAK,EAAE,IAAI,sCAAsC,CAC/C,2GAA2G,SAAS,WAAW,CAChI;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAe,EACf,SAAiB,EACjB,MAAc;IAEd,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,KAAK,EAAE,IAAI,sCAAsC,CAAC,kCAAkC,CAAC;SACtF,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO;YACL,KAAK,EAAE,IAAI,sCAAsC,CAC/C,wGAAwG,CACzG;SACF,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,KAAK,EAAE,IAAI,sCAAsC,CAC/C,8FAA8F,CAC/F;SACF,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM;SAC7B,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC;SAC5B,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;SACvB,MAAM,CAAC,KAAK,CAAC,CAAC;IAEjB,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;QACpC,OAAO;YACL,KAAK,EAAE,IAAI,sCAAsC,CAAC,oCAAoC,CAAC;SACxF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"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"}
@@ -188,9 +188,9 @@ export type ServiceLevelAgreementStatusDetail = {
188
188
  export interface WebhooksSchemaDefinition {
189
189
  timestamp: Datetime;
190
190
  workspaceId: Id;
191
- payload: CustomerChangedPayload | CustomerGroupMembershipsChangedPayload | TimelineEntryChangedPayload | CustomerGroupChangedPayload | ThreadCreatedPublicEventPayload | ThreadStatusTransitionedPublicEventPayload | ThreadAssignmentTransitionedPublicEventPayload | ThreadEmailReceivedPublicEventPayload | ThreadEmailSentPublicEventPayload | ThreadSlackMessageReceivedEventPayload | ThreadSlackMessageSentEventPayload | ThreadMSTeamsMessageReceivedEventPayload | ThreadMSTeamsMessageSentEventPayload | ThreadLabelsChangedPublicEventPayload | ThreadPriorityChangedPublicEventPayload | ThreadFieldCreatedPublicEventPayload | ThreadFieldUpdatedPublicEventPayload | ThreadFieldDeletedPublicEventPayload | ThreadChatSentPublicEventPayload | ThreadServiceLevelAgreementStatusTransitionedPayload | CustomerCreatedPublicEventPayload | CustomerUpdatedPublicEventPayload | CustomerDeletedPublicEventPayload | ThreadNoteCreatedEventPayload | ThreadNoteMentionCreatedPublicEventPayload | DiscussionMessageCreatedPublicEventPayload | ThreadChatReceivedPublicEventPayload | ThreadSlackMessageUpdatedEventPayload | ThreadDiscordMessageReceivedEventPayload | ThreadDiscordMessageSentEventPayload | ThreadDiscordMessageUpdatedEventPayload | ThreadTenantUpdatedPublicEventPayload;
191
+ payload: CustomerChangedPayload | CustomerGroupMembershipsChangedPayload | TimelineEntryChangedPayload | CustomerGroupChangedPayload | ThreadCreatedPublicEventPayload | ThreadStatusTransitionedPublicEventPayload | ThreadAssignmentTransitionedPublicEventPayload | ThreadEmailReceivedPublicEventPayload | ThreadEmailSentPublicEventPayload | ThreadSlackMessageReceivedEventPayload | ThreadSlackMessageSentEventPayload | ThreadMSTeamsMessageReceivedEventPayload | ThreadMSTeamsMessageSentEventPayload | ThreadLabelsChangedPublicEventPayload | ThreadPriorityChangedPublicEventPayload | ThreadFieldCreatedPublicEventPayload | ThreadFieldUpdatedPublicEventPayload | ThreadFieldDeletedPublicEventPayload | ThreadChatSentPublicEventPayload | ThreadServiceLevelAgreementStatusTransitionedPayload | CustomerCreatedPublicEventPayload | CustomerUpdatedPublicEventPayload | CustomerDeletedPublicEventPayload | ThreadNoteCreatedEventPayload | ThreadNoteMentionCreatedPublicEventPayload | DiscussionMessageCreatedPublicEventPayload | ThreadChatReceivedPublicEventPayload | ThreadSlackMessageUpdatedEventPayload | ThreadDiscordMessageReceivedEventPayload | ThreadDiscordMessageSentEventPayload | ThreadDiscordMessageUpdatedEventPayload | ThreadTenantUpdatedPublicEventPayload | ThreadLockedPublicEventPayload | DiscussionCreatedPublicEventPayload;
192
192
  id: Id;
193
- type: "thread.thread_created" | "thread.thread_status_transitioned" | "thread.thread_assignment_transitioned" | "thread.email_received" | "thread.email_sent" | "thread.slack_message_received" | "thread.slack_message_sent" | "thread.slack_message_updated" | "thread.discord_message_received" | "thread.discord_message_sent" | "thread.discord_message_updated" | "thread.ms_teams_message_sent" | "thread.ms_teams_message_received" | "thread.chat_sent" | "thread.chat_received" | "thread.note_created" | "thread.note_mention_created" | "discussion.message_created" | "thread.thread_labels_changed" | "thread.thread_priority_changed" | "thread.thread_field_created" | "thread.thread_field_updated" | "thread.thread_field_deleted" | "thread.service_level_agreement_status_transitioned" | "thread.thread_tenant_updated" | "customer.customer_created" | "customer.customer_updated" | "customer.customer_deleted" | "customer.customer_changed" | "customer.customer_group_changed" | "customer.customer_group_memberships_changed" | "timeline.timeline_entry_changed";
193
+ type: "thread.thread_created" | "thread.thread_status_transitioned" | "thread.thread_assignment_transitioned" | "thread.email_received" | "thread.email_sent" | "thread.slack_message_received" | "thread.slack_message_sent" | "thread.slack_message_updated" | "thread.discord_message_received" | "thread.discord_message_sent" | "thread.discord_message_updated" | "thread.ms_teams_message_sent" | "thread.ms_teams_message_received" | "thread.chat_sent" | "thread.chat_received" | "thread.note_created" | "thread.note_mention_created" | "discussion.discussion_created" | "discussion.message_created" | "thread.thread_labels_changed" | "thread.thread_priority_changed" | "thread.thread_field_created" | "thread.thread_field_updated" | "thread.thread_field_deleted" | "thread.service_level_agreement_status_transitioned" | "thread.thread_tenant_updated" | "thread.thread_locked" | "customer.customer_created" | "customer.customer_updated" | "customer.customer_deleted" | "customer.customer_changed" | "customer.customer_group_changed" | "customer.customer_group_memberships_changed" | "timeline.timeline_entry_changed";
194
194
  webhookMetadata: WebhookMetadata;
195
195
  [k: string]: unknown;
196
196
  }
@@ -819,14 +819,7 @@ export interface ThreadNoteMentionCreatedPublicEventPayload {
819
819
  }
820
820
  export interface DiscussionMessageCreatedPublicEventPayload {
821
821
  eventType: "discussion.message_created";
822
- discussion: {
823
- id: Id;
824
- type: "SLACK" | "EMAIL" | "AGENT_SESSION" | "UNKNOWN_DISCUSSION_TYPE";
825
- agent: MachineUser | null;
826
- status: "OPEN" | "RESOLVED" | "UNKNOWN_DISCUSSION_STATUS";
827
- threadId: Id | null;
828
- [k: string]: unknown;
829
- };
822
+ discussion: Discussion;
830
823
  message: {
831
824
  id: Id;
832
825
  type: "INBOUND" | "OUTBOUND" | "UNKNOWN_DISCUSSION_MESSAGE_TYPE";
@@ -837,6 +830,14 @@ export interface DiscussionMessageCreatedPublicEventPayload {
837
830
  };
838
831
  [k: string]: unknown;
839
832
  }
833
+ export interface Discussion {
834
+ id: Id;
835
+ type: "SLACK" | "EMAIL" | "AGENT_SESSION" | "UNKNOWN_DISCUSSION_TYPE";
836
+ agent: MachineUser | null;
837
+ status: "OPEN" | "RESOLVED" | "UNKNOWN_DISCUSSION_STATUS";
838
+ threadId: Id | null;
839
+ [k: string]: unknown;
840
+ }
840
841
  export interface ThreadChatReceivedPublicEventPayload {
841
842
  eventType: "thread.chat_received";
842
843
  chat: Chat;
@@ -924,9 +925,20 @@ export interface ThreadTenantUpdatedPublicEventPayload {
924
925
  } | null;
925
926
  [k: string]: unknown;
926
927
  }
928
+ export interface ThreadLockedPublicEventPayload {
929
+ eventType: "thread.thread_locked";
930
+ previousThread: Thread;
931
+ thread: Thread;
932
+ [k: string]: unknown;
933
+ }
934
+ export interface DiscussionCreatedPublicEventPayload {
935
+ eventType: "discussion.discussion_created";
936
+ discussion: Discussion;
937
+ [k: string]: unknown;
938
+ }
927
939
  export interface WebhookMetadata {
928
940
  webhookTargetId: Id;
929
- webhookTargetVersion: "2026-08-19";
941
+ webhookTargetVersion: "2026-08-31";
930
942
  webhookDeliveryAttemptId: Id;
931
943
  webhookDeliveryAttemptNumber: number;
932
944
  webhookDeliveryAttemptTimestamp: Datetime;
@@ -1 +1 @@
1
- {"version":3,"file":"webhook-schema.d.ts","sourceRoot":"","sources":["../src/webhook-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhook-schema.d.ts","sourceRoot":"","sources":["../src/webhook-schema.ts"],"names":[],"mappings":"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"}
@@ -105,6 +105,12 @@
105
105
  },
106
106
  {
107
107
  "$ref": "#/definitions/threadTenantUpdatedPublicEventPayload"
108
+ },
109
+ {
110
+ "$ref": "#/definitions/threadLockedPublicEventPayload"
111
+ },
112
+ {
113
+ "$ref": "#/definitions/discussionCreatedPublicEventPayload"
108
114
  }
109
115
  ]
110
116
  },
@@ -131,6 +137,7 @@
131
137
  "thread.chat_received",
132
138
  "thread.note_created",
133
139
  "thread.note_mention_created",
140
+ "discussion.discussion_created",
134
141
  "discussion.message_created",
135
142
  "thread.thread_labels_changed",
136
143
  "thread.thread_priority_changed",
@@ -139,6 +146,7 @@
139
146
  "thread.thread_field_deleted",
140
147
  "thread.service_level_agreement_status_transitioned",
141
148
  "thread.thread_tenant_updated",
149
+ "thread.thread_locked",
142
150
  "customer.customer_created",
143
151
  "customer.customer_updated",
144
152
  "customer.customer_deleted",
@@ -2980,7 +2988,7 @@
2980
2988
  },
2981
2989
  "webhookTargetVersion": {
2982
2990
  "type": "string",
2983
- "const": "2026-08-19"
2991
+ "const": "2026-08-31"
2984
2992
  },
2985
2993
  "webhookDeliveryAttemptId": {
2986
2994
  "$ref": "#/definitions/id"
@@ -3781,6 +3789,37 @@
3781
3789
  },
3782
3790
  "required": ["eventType", "previousThread", "thread", "previousTenant", "tenant"],
3783
3791
  "additionalProperties": true
3792
+ },
3793
+ "threadLockedPublicEventPayload": {
3794
+ "type": "object",
3795
+ "properties": {
3796
+ "eventType": {
3797
+ "type": "string",
3798
+ "const": "thread.thread_locked"
3799
+ },
3800
+ "previousThread": {
3801
+ "$ref": "#/definitions/thread"
3802
+ },
3803
+ "thread": {
3804
+ "$ref": "#/definitions/thread"
3805
+ }
3806
+ },
3807
+ "required": ["eventType", "previousThread", "thread"],
3808
+ "additionalProperties": true
3809
+ },
3810
+ "discussionCreatedPublicEventPayload": {
3811
+ "type": "object",
3812
+ "properties": {
3813
+ "eventType": {
3814
+ "type": "string",
3815
+ "const": "discussion.discussion_created"
3816
+ },
3817
+ "discussion": {
3818
+ "$ref": "#/definitions/discussionMessageCreatedPublicEventPayload/properties/discussion"
3819
+ }
3820
+ },
3821
+ "required": ["eventType", "discussion"],
3822
+ "additionalProperties": true
3784
3823
  }
3785
3824
  },
3786
3825
  "$schema": "http://json-schema.org/draft-07/schema#"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@team-plain/webhooks",
3
- "version": "1.7.0",
3
+ "version": "1.8.0",
4
4
  "description": "Webhook parsing and signature verification for Plain webhooks",
5
5
  "license": "MIT",
6
6
  "author": "Plain <hello@plain.com> (https://plain.com)",