Skip to main content

WebhookPayload

type WebhookPayload =
| {
eventData: | {
content: string;
fileAttachment: | {
fileDuration?: number | null;
fileName?: string | null;
fileSize?: number | null;
fileType?: string | null;
fileUrl?: string | null;
image?: string | null;
imageHeight?: number | null;
imageWidth?: number | null;
resourceType: string;
title?: string | null;
uploadState?: "completed" | "pending" | null;
url?: string | null;
}
| null;
id: string;
isDeleted: boolean;
item: {
addedAt: Date | null;
addedByUid: string | null;
assignedByUid: string | null;
checked: boolean;
childOrder: number;
completedAt: Date | null;
content: string;
dayOrder: number;
deadline: | {
date: string;
lang: string;
}
| null;
description: string;
due: | {
date: string;
datetime?: string | null;
isRecurring: boolean;
lang?: string | null;
string: string;
timezone?: string | null;
}
| null;
duration: | {
amount: number;
unit: "minute" | "day";
}
| null;
id: string;
isCollapsed: boolean;
isDeleted: boolean;
isUncompletable: boolean;
labels: string[];
parentId: string | null;
priority: number;
projectId: string;
responsibleUid: string | null;
sectionId: string | null;
updatedAt: Date | null;
url: string;
userId: string;
};
postedAt: Date | null;
postedUid: string | null;
reactions: Record<string, string[]> | null;
taskId: string;
uidsToNotify: string[] | null;
url: string;
}
| {
content: string;
fileAttachment: | {
fileDuration?: number | null;
fileName?: string | null;
fileSize?: number | null;
fileType?: string | null;
fileUrl?: string | null;
image?: string | null;
imageHeight?: number | null;
imageWidth?: number | null;
resourceType: string;
title?: string | null;
uploadState?: "completed" | "pending" | null;
url?: string | null;
}
| null;
id: string;
isDeleted: boolean;
postedAt: Date | null;
postedUid: string | null;
projectId: string;
reactions: Record<string, string[]> | null;
uidsToNotify: string[] | null;
};
eventName: "note:added";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: | {
content: string;
fileAttachment: | {
fileDuration?: number | null;
fileName?: string | null;
fileSize?: number | null;
fileType?: string | null;
fileUrl?: string | null;
image?: string | null;
imageHeight?: number | null;
imageWidth?: number | null;
resourceType: string;
title?: string | null;
uploadState?: "completed" | "pending" | null;
url?: string | null;
}
| null;
id: string;
isDeleted: boolean;
item: {
addedAt: Date | null;
addedByUid: string | null;
assignedByUid: string | null;
checked: boolean;
childOrder: number;
completedAt: Date | null;
content: string;
dayOrder: number;
deadline: | {
date: string;
lang: string;
}
| null;
description: string;
due: | {
date: string;
datetime?: string | null;
isRecurring: boolean;
lang?: string | null;
string: string;
timezone?: string | null;
}
| null;
duration: | {
amount: number;
unit: "minute" | "day";
}
| null;
id: string;
isCollapsed: boolean;
isDeleted: boolean;
isUncompletable: boolean;
labels: string[];
parentId: string | null;
priority: number;
projectId: string;
responsibleUid: string | null;
sectionId: string | null;
updatedAt: Date | null;
url: string;
userId: string;
};
postedAt: Date | null;
postedUid: string | null;
reactions: Record<string, string[]> | null;
taskId: string;
uidsToNotify: string[] | null;
url: string;
}
| {
content: string;
fileAttachment: | {
fileDuration?: number | null;
fileName?: string | null;
fileSize?: number | null;
fileType?: string | null;
fileUrl?: string | null;
image?: string | null;
imageHeight?: number | null;
imageWidth?: number | null;
resourceType: string;
title?: string | null;
uploadState?: "completed" | "pending" | null;
url?: string | null;
}
| null;
id: string;
isDeleted: boolean;
postedAt: Date | null;
postedUid: string | null;
projectId: string;
reactions: Record<string, string[]> | null;
uidsToNotify: string[] | null;
};
eventName: "note:updated";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: | {
content: string;
fileAttachment: | {
fileDuration?: number | null;
fileName?: string | null;
fileSize?: number | null;
fileType?: string | null;
fileUrl?: string | null;
image?: string | null;
imageHeight?: number | null;
imageWidth?: number | null;
resourceType: string;
title?: string | null;
uploadState?: "completed" | "pending" | null;
url?: string | null;
}
| null;
id: string;
isDeleted: boolean;
item: {
addedAt: Date | null;
addedByUid: string | null;
assignedByUid: string | null;
checked: boolean;
childOrder: number;
completedAt: Date | null;
content: string;
dayOrder: number;
deadline: | {
date: string;
lang: string;
}
| null;
description: string;
due: | {
date: string;
datetime?: string | null;
isRecurring: boolean;
lang?: string | null;
string: string;
timezone?: string | null;
}
| null;
duration: | {
amount: number;
unit: "minute" | "day";
}
| null;
id: string;
isCollapsed: boolean;
isDeleted: boolean;
isUncompletable: boolean;
labels: string[];
parentId: string | null;
priority: number;
projectId: string;
responsibleUid: string | null;
sectionId: string | null;
updatedAt: Date | null;
url: string;
userId: string;
};
postedAt: Date | null;
postedUid: string | null;
reactions: Record<string, string[]> | null;
taskId: string;
uidsToNotify: string[] | null;
url: string;
}
| {
content: string;
fileAttachment: | {
fileDuration?: number | null;
fileName?: string | null;
fileSize?: number | null;
fileType?: string | null;
fileUrl?: string | null;
image?: string | null;
imageHeight?: number | null;
imageWidth?: number | null;
resourceType: string;
title?: string | null;
uploadState?: "completed" | "pending" | null;
url?: string | null;
}
| null;
id: string;
isDeleted: boolean;
postedAt: Date | null;
postedUid: string | null;
projectId: string;
reactions: Record<string, string[]> | null;
uidsToNotify: string[] | null;
};
eventName: "note:deleted";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: {
[key: string]: unknown;
color: string;
id: string;
isDeleted: boolean;
isFavorite: boolean;
isFrozen: boolean;
itemOrder: number;
name: string;
query: string;
};
eventName: "filter:added";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: {
[key: string]: unknown;
color: string;
id: string;
isDeleted: boolean;
isFavorite: boolean;
isFrozen: boolean;
itemOrder: number;
name: string;
query: string;
};
eventName: "filter:updated";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: {
[key: string]: unknown;
color: string;
id: string;
isDeleted: boolean;
isFavorite: boolean;
isFrozen: boolean;
itemOrder: number;
name: string;
query: string;
};
eventName: "filter:deleted";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: {
color: string;
id: string;
isDeleted: boolean;
isFavorite: boolean;
name: string;
order: number | null;
};
eventName: "label:added";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: {
color: string;
id: string;
isDeleted: boolean;
isFavorite: boolean;
name: string;
order: number | null;
};
eventName: "label:updated";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: {
color: string;
id: string;
isDeleted: boolean;
isFavorite: boolean;
name: string;
order: number | null;
};
eventName: "label:deleted";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: | {
canAssignTasks: boolean;
childOrder: number;
color: string;
createdAt: Date | null;
defaultOrder: number;
description: string;
id: string;
inboxProject: boolean;
isArchived: boolean;
isCollapsed: boolean;
isDeleted: boolean;
isFavorite: boolean;
isFrozen: boolean;
isShared: boolean;
name: string;
parentId: string | null;
updatedAt: Date | null;
url: string;
viewStyle: string;
}
| {
access?: {
visibility: "restricted" | "team" | "public";
};
canAssignTasks: boolean;
childOrder: number;
collaboratorRoleDefault: string;
color: string;
createdAt: Date | null;
defaultOrder: number;
description: string;
folderId: string | null;
id: string;
isArchived: boolean;
isCollapsed: boolean;
isDeleted: boolean;
isFavorite: boolean;
isFrozen: boolean;
isInviteOnly: boolean | null;
isLinkSharingEnabled: boolean;
isShared: boolean;
name: string;
role: string | null;
status: string;
updatedAt: Date | null;
url: string;
viewStyle: string;
workspaceId: string;
};
eventName: "project:added";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: | {
canAssignTasks: boolean;
childOrder: number;
color: string;
createdAt: Date | null;
defaultOrder: number;
description: string;
id: string;
inboxProject: boolean;
isArchived: boolean;
isCollapsed: boolean;
isDeleted: boolean;
isFavorite: boolean;
isFrozen: boolean;
isShared: boolean;
name: string;
parentId: string | null;
updatedAt: Date | null;
url: string;
viewStyle: string;
}
| {
access?: {
visibility: "restricted" | "team" | "public";
};
canAssignTasks: boolean;
childOrder: number;
collaboratorRoleDefault: string;
color: string;
createdAt: Date | null;
defaultOrder: number;
description: string;
folderId: string | null;
id: string;
isArchived: boolean;
isCollapsed: boolean;
isDeleted: boolean;
isFavorite: boolean;
isFrozen: boolean;
isInviteOnly: boolean | null;
isLinkSharingEnabled: boolean;
isShared: boolean;
name: string;
role: string | null;
status: string;
updatedAt: Date | null;
url: string;
viewStyle: string;
workspaceId: string;
};
eventName: "project:updated";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: | {
canAssignTasks: boolean;
childOrder: number;
color: string;
createdAt: Date | null;
defaultOrder: number;
description: string;
id: string;
inboxProject: boolean;
isArchived: boolean;
isCollapsed: boolean;
isDeleted: boolean;
isFavorite: boolean;
isFrozen: boolean;
isShared: boolean;
name: string;
parentId: string | null;
updatedAt: Date | null;
url: string;
viewStyle: string;
}
| {
access?: {
visibility: "restricted" | "team" | "public";
};
canAssignTasks: boolean;
childOrder: number;
collaboratorRoleDefault: string;
color: string;
createdAt: Date | null;
defaultOrder: number;
description: string;
folderId: string | null;
id: string;
isArchived: boolean;
isCollapsed: boolean;
isDeleted: boolean;
isFavorite: boolean;
isFrozen: boolean;
isInviteOnly: boolean | null;
isLinkSharingEnabled: boolean;
isShared: boolean;
name: string;
role: string | null;
status: string;
updatedAt: Date | null;
url: string;
viewStyle: string;
workspaceId: string;
};
eventName: "project:deleted";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: | {
canAssignTasks: boolean;
childOrder: number;
color: string;
createdAt: Date | null;
defaultOrder: number;
description: string;
id: string;
inboxProject: boolean;
isArchived: boolean;
isCollapsed: boolean;
isDeleted: boolean;
isFavorite: boolean;
isFrozen: boolean;
isShared: boolean;
name: string;
parentId: string | null;
updatedAt: Date | null;
url: string;
viewStyle: string;
}
| {
access?: {
visibility: "restricted" | "team" | "public";
};
canAssignTasks: boolean;
childOrder: number;
collaboratorRoleDefault: string;
color: string;
createdAt: Date | null;
defaultOrder: number;
description: string;
folderId: string | null;
id: string;
isArchived: boolean;
isCollapsed: boolean;
isDeleted: boolean;
isFavorite: boolean;
isFrozen: boolean;
isInviteOnly: boolean | null;
isLinkSharingEnabled: boolean;
isShared: boolean;
name: string;
role: string | null;
status: string;
updatedAt: Date | null;
url: string;
viewStyle: string;
workspaceId: string;
};
eventName: "project:archived";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: | {
canAssignTasks: boolean;
childOrder: number;
color: string;
createdAt: Date | null;
defaultOrder: number;
description: string;
id: string;
inboxProject: boolean;
isArchived: boolean;
isCollapsed: boolean;
isDeleted: boolean;
isFavorite: boolean;
isFrozen: boolean;
isShared: boolean;
name: string;
parentId: string | null;
updatedAt: Date | null;
url: string;
viewStyle: string;
}
| {
access?: {
visibility: "restricted" | "team" | "public";
};
canAssignTasks: boolean;
childOrder: number;
collaboratorRoleDefault: string;
color: string;
createdAt: Date | null;
defaultOrder: number;
description: string;
folderId: string | null;
id: string;
isArchived: boolean;
isCollapsed: boolean;
isDeleted: boolean;
isFavorite: boolean;
isFrozen: boolean;
isInviteOnly: boolean | null;
isLinkSharingEnabled: boolean;
isShared: boolean;
name: string;
role: string | null;
status: string;
updatedAt: Date | null;
url: string;
viewStyle: string;
workspaceId: string;
};
eventName: "project:unarchived";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: {
[key: string]: unknown;
due: | {
date: string;
datetime?: string | null;
isRecurring: boolean;
lang?: string | null;
string: string;
timezone?: string | null;
}
| null;
id: string;
isDeleted: boolean;
isUrgent: boolean;
itemId: string;
minuteOffset: number | null;
notifyUid: string;
projectId?: string;
type: "relative" | "absolute" | "location";
};
eventName: "reminder:fired";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: {
addedAt: Date;
archivedAt: Date | null;
id: string;
isArchived: boolean;
isCollapsed: boolean;
isDeleted: boolean;
name: string;
projectId: string;
sectionOrder: number;
updatedAt: Date | null;
url: string;
userId: string;
};
eventName: "section:added";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: {
addedAt: Date;
archivedAt: Date | null;
id: string;
isArchived: boolean;
isCollapsed: boolean;
isDeleted: boolean;
name: string;
projectId: string;
sectionOrder: number;
updatedAt: Date | null;
url: string;
userId: string;
};
eventName: "section:updated";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: {
addedAt: Date;
archivedAt: Date | null;
id: string;
isArchived: boolean;
isCollapsed: boolean;
isDeleted: boolean;
name: string;
projectId: string;
sectionOrder: number;
updatedAt: Date | null;
url: string;
userId: string;
};
eventName: "section:deleted";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: {
addedAt: Date;
archivedAt: Date | null;
id: string;
isArchived: boolean;
isCollapsed: boolean;
isDeleted: boolean;
name: string;
projectId: string;
sectionOrder: number;
updatedAt: Date | null;
url: string;
userId: string;
};
eventName: "section:archived";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: {
addedAt: Date;
archivedAt: Date | null;
id: string;
isArchived: boolean;
isCollapsed: boolean;
isDeleted: boolean;
name: string;
projectId: string;
sectionOrder: number;
updatedAt: Date | null;
url: string;
userId: string;
};
eventName: "section:unarchived";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: {
addedAt: Date | null;
addedByUid: string | null;
assignedByUid: string | null;
checked: boolean;
childOrder: number;
completedAt: Date | null;
content: string;
dayOrder: number;
deadline: | {
date: string;
lang: string;
}
| null;
description: string;
due: | {
date: string;
datetime?: string | null;
isRecurring: boolean;
lang?: string | null;
string: string;
timezone?: string | null;
}
| null;
duration: | {
amount: number;
unit: "minute" | "day";
}
| null;
id: string;
isCollapsed: boolean;
isDeleted: boolean;
isUncompletable: boolean;
labels: string[];
parentId: string | null;
priority: number;
projectId: string;
responsibleUid: string | null;
sectionId: string | null;
updatedAt: Date | null;
url: string;
userId: string;
};
eventName: "item:added";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: {
addedAt: Date | null;
addedByUid: string | null;
assignedByUid: string | null;
checked: boolean;
childOrder: number;
completedAt: Date | null;
content: string;
dayOrder: number;
deadline: | {
date: string;
lang: string;
}
| null;
description: string;
due: | {
date: string;
datetime?: string | null;
isRecurring: boolean;
lang?: string | null;
string: string;
timezone?: string | null;
}
| null;
duration: | {
amount: number;
unit: "minute" | "day";
}
| null;
id: string;
isCollapsed: boolean;
isDeleted: boolean;
isUncompletable: boolean;
labels: string[];
parentId: string | null;
priority: number;
projectId: string;
responsibleUid: string | null;
sectionId: string | null;
updatedAt: Date | null;
url: string;
userId: string;
};
eventDataExtra?: {
oldItem: {
addedAt: Date | null;
addedByUid: string | null;
assignedByUid: string | null;
checked: boolean;
childOrder: number;
completedAt: Date | null;
content: string;
dayOrder: number;
deadline: | {
date: string;
lang: string;
}
| null;
description: string;
due: | {
date: string;
datetime?: string | null;
isRecurring: boolean;
lang?: string | null;
string: string;
timezone?: string | null;
}
| null;
duration: | {
amount: number;
unit: "minute" | "day";
}
| null;
id: string;
isCollapsed: boolean;
isDeleted: boolean;
isUncompletable: boolean;
labels: string[];
parentId: string | null;
priority: number;
projectId: string;
responsibleUid: string | null;
sectionId: string | null;
updatedAt: Date | null;
url: string;
userId: string;
};
updateIntent: | "item_updated"
| "item_completed"
| "item_uncompleted"
| "responsible_uid_changed";
};
eventName: "item:updated";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: {
addedAt: Date | null;
addedByUid: string | null;
assignedByUid: string | null;
checked: boolean;
childOrder: number;
completedAt: Date | null;
content: string;
dayOrder: number;
deadline: | {
date: string;
lang: string;
}
| null;
description: string;
due: | {
date: string;
datetime?: string | null;
isRecurring: boolean;
lang?: string | null;
string: string;
timezone?: string | null;
}
| null;
duration: | {
amount: number;
unit: "minute" | "day";
}
| null;
id: string;
isCollapsed: boolean;
isDeleted: boolean;
isUncompletable: boolean;
labels: string[];
parentId: string | null;
priority: number;
projectId: string;
responsibleUid: string | null;
sectionId: string | null;
updatedAt: Date | null;
url: string;
userId: string;
};
eventName: "item:completed";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: {
addedAt: Date | null;
addedByUid: string | null;
assignedByUid: string | null;
checked: boolean;
childOrder: number;
completedAt: Date | null;
content: string;
dayOrder: number;
deadline: | {
date: string;
lang: string;
}
| null;
description: string;
due: | {
date: string;
datetime?: string | null;
isRecurring: boolean;
lang?: string | null;
string: string;
timezone?: string | null;
}
| null;
duration: | {
amount: number;
unit: "minute" | "day";
}
| null;
id: string;
isCollapsed: boolean;
isDeleted: boolean;
isUncompletable: boolean;
labels: string[];
parentId: string | null;
priority: number;
projectId: string;
responsibleUid: string | null;
sectionId: string | null;
updatedAt: Date | null;
url: string;
userId: string;
};
eventName: "item:uncompleted";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
}
| {
eventData: {
addedAt: Date | null;
addedByUid: string | null;
assignedByUid: string | null;
checked: boolean;
childOrder: number;
completedAt: Date | null;
content: string;
dayOrder: number;
deadline: | {
date: string;
lang: string;
}
| null;
description: string;
due: | {
date: string;
datetime?: string | null;
isRecurring: boolean;
lang?: string | null;
string: string;
timezone?: string | null;
}
| null;
duration: | {
amount: number;
unit: "minute" | "day";
}
| null;
id: string;
isCollapsed: boolean;
isDeleted: boolean;
isUncompletable: boolean;
labels: string[];
parentId: string | null;
priority: number;
projectId: string;
responsibleUid: string | null;
sectionId: string | null;
updatedAt: Date | null;
url: string;
userId: string;
};
eventName: "item:deleted";
initiator: {
email: string;
fullName: string;
id: string;
imageId: string | null;
isPremium: boolean;
};
triggeredAt: Date;
userId: string;
version: "1";
};

A parsed webhook payload. Narrow by eventName to access typed eventData.