Skip to main content

Webhook Notifications

Webhook notifications can be requested on completion of events (Crawl finished, Role changed, ...).

The webhook payload contains event-specific data useful to build custom notifications.

Webhook notifications schemas

Callback Failed
{
eventType: "callback-failed";
eventData: {
/**
* Project ID
*/
projectId: number;
/**
* User's firstName if the notification is being sent to a User.
*/
firstName: string | null;
/**
* User's lastName if the notification is being sent to a User.
*/
lastName: string | null;
/**
* Project's name.
*/
projectName: string;
/**
* URL to edit Project settings, pointing at step 4.
*/
projectSettingsLink: string;
/**
* Project's sitePrimary.
*/
sitePrimary: string;
/**
* HTTP status for the failed callback response, if available.
*/
status: number | null;
};
/**
* Lumar Account ID
*/
accountId: number;
/**
* Account ID on SSO Client
*/
ssoClientAccountId: string;
}
Crawl Finished
{
eventType: "crawl-finished";
eventData: {
/**
* Crawl ID
*/
crawlId: number;
/**
* Formatted Crawl's crawlingAt timestamp in the Account's timezone.
* @example "Nov 23, 2021 01:03PM"
*/
crawlingAt: string;
/**
* User interface URL leading to the /accounts/:accountId/projects/:projectId/crawls/:crawlId page, if the notification is being
* sent to the Crawl createdByUser. Sharelink otherwise.
*/
crawlUrl: string;
/**
* Crawl createdByUser's firstName if the notification is being sent to that User.
*/
firstName: string | null;
/**
* Crawl createdByUser's lastName if the notification is being sent to that User.
*/
lastName: string | null;
/**
* Crawl Project's name.
*/
projectName: string;
/**
* Crawl Project's sitePrimary.
*/
sitePrimary: string;
/**
* Number of URLs crawled
*/
totalSteps: string;
};
/**
* Lumar Account ID
*/
accountId: number;
/**
* Account ID on SSO Client
*/
ssoClientAccountId: string;
}
Crawl Paused (Credits)
{
eventType: "crawl-paused-credits";
eventData: {
/**
* Crawl ID
*/
crawlId: number;
/**
* Formatted time when autofinalize will occur if no action is taken by the User.
* Should be 72 hours in the future at the time the notification is being sent.
* @example "Nov 23, 2021 01:03PM"
*/
autoFinalizeAt: string;
/**
* User interface URL leading to the /accounts/:accountId/projects/:projectId/crawls page.
*/
crawlUrl: string;
/**
* Crawl createdByUser's firstName if the notification is being sent to that User.
*/
firstName: string | null;
/**
* Crawl createdByUser's lastName if the notification is being sent to that User.
*/
lastName: string | null;
/**
* Crawl Project's name.
*/
projectName: string;
/**
* Crawl Project's sitePrimary.
*/
sitePrimary: string;
/**
* User interface URL leading to the /subscription page.
*/
subscriptionUrl: string;
};
/**
* Lumar Account ID
*/
accountId: number;
/**
* Account ID on SSO Client
*/
ssoClientAccountId: string;
}
Crawl Paused (Limits)
{
eventType: "crawl-paused-limits";
eventData: {
/**
* Crawl ID
*/
crawlId: number;
/**
* Formatted time when autofinalize will occur if no action is taken by the User.
* Should be 72 hours in the future at the time the notification is being sent.
* @example "Nov 23, 2021 01:03PM"
*/
autoFinalizeAt: string;
/**
* Formatted Crawl's crawlingAt timestamp in the Account's timezone.
* @example "Nov 23, 2021 01:03PM"
*/
crawlingAt: string;
/**
* User interface URL leading to the /accounts/:accountId/projects/:projectId/crawls page.
*/
crawlUrl: string;
/**
* Crawl createdByUser's firstName if the notification is being sent to that User.
*/
firstName: string | null;
/**
* Crawl createdByUser's lastName if the notification is being sent to that User.
*/
lastName: string | null;
/**
* Crawl Project's name.
*/
projectName: string;
/**
* Crawl Project's sitePrimary.
*/
sitePrimary: string;
/**
* Sum of ShelveCrawlStat's progress across all levels.
* The number is formatted with thousands grouped.
* @example "12,345,678"
*/
totalSteps: string;
};
/**
* Lumar Account ID
*/
accountId: number;
/**
* Account ID on SSO Client
*/
ssoClientAccountId: string;
}
Role Changed
{
eventType: "role-changed";
eventData: {
/**
* Account name
*/
accountName: string;
/**
* Admin user's email
*/
adminEmail: string;
/**
* Admin user's first name
*/
adminFirstName: string;
/**
* Admin user's last name
*/
adminLastName: string;
/**
* User's first name
*/
firstName: string | null;
/**
* User's first name
*/
lastName: string | null;
/**
* New Role name
*/
newRoleName: string;
}
/**
* Lumar Account ID
*/
accountId: number;
/**
* Account ID on SSO Client
*/
ssoClientAccountId: string;
}
Scheduled Crawl Failed (Active Projects Limit)
{
eventType: "scheduled-crawl-failed-active-projects-limit";
eventData: {
/**
* Project ID
*/
projectId: number;
/**
* User interface URL leading to the /accounts/:accountId/projects/:projectId/crawls page.
*/
crawlsUrl: string;
/**
* User's firstName if the notification is being sent to a User.
*/
firstName: string | null;
/**
* User's lastName if the notification is being sent to a User.
*/
lastName: string | null;
/**
* Project's name.
*/
projectName: string;
/**
* Project's sitePrimary.
*/
sitePrimary: string;
/**
* User interface URL leading to the /subscription page.
*/
subscriptionUrl: string;
};
/**
* Lumar Account ID
*/
accountId: number;
/**
* Account ID on SSO Client
*/
ssoClientAccountId: string;
}
Scheduled Crawl Failed (Analytics)
{
eventType: "scheduled-crawl-failed-analytics";
eventData: {
/**
* Project ID
*/
projectId: number;
/**
* User interface URL leading to the /accounts/:accountId/projects/:projectId/crawls page.
*/
crawlsUrl: string;
/**
* User's firstName if the notification is being sent to a User.
*/
firstName: string | null;
/**
* User's lastName if the notification is being sent to a User.
*/
lastName: string | null;
/**
* Project's name.
*/
projectName: string;
/**
* Project's sitePrimary.
*/
sitePrimary: string;
};
/**
* Lumar Account ID
*/
accountId: number;
/**
* Account ID on SSO Client
*/
ssoClientAccountId: string;
}
Scheduled Crawl Failed (Crawl Running)
{
eventType: "scheduled-crawl-failed-crawl-running";
eventData: {
/**
* Project ID
*/
projectId: number;
/**
* Crawl ID
*/
crawlId: number | null;
/**
* User interface URL leading to the /accounts/:accountId/projects/:projectId/crawls/:crawlId page.
*/
crawlUrl: string;
/**
* User's firstName if the notification is being sent to a User.
*/
firstName: string | null;
/**
* User's lastName if the notification is being sent to a User.
*/
lastName: string | null;
/**
* Project's name.
*/
projectName: string;
/**
* Project's sitePrimary.
*/
sitePrimary: string;
};
/**
* Lumar Account ID
*/
accountId: number;
/**
* Account ID on SSO Client
*/
ssoClientAccountId: string;
}
Legacy Tasks Created
{
eventType: "legacy-tasks-created;
eventData: {
action: "created";
dashboardUrl: string;
greetingName: string | null;
legacyTasks: {
assignedTo: string[] | null;
category: string | null;
createdAt: string;
deadlineAt: string | null;
description: string | null;
fixedAt: string | null;
identified: number | null;
priority: string;
priorityColor: string;
remaining: number | null;
remainingColor: string | null;
reportLink: string | null;
title: string;
trendGraph: string | null;
}[];
projectName: string;
}
/**
* Lumar Account ID
*/
accountId: number;
/**
* Account ID on SSO Client
*/
ssoClientAccountId: string;
}
Legacy Tasks Updated
{
eventType: "legacy-tasks-updated;
eventData: {
action: "updated";
dashboardUrl: string;
greetingName: string | null;
legacyTasks: {
assignedTo: string[] | null;
category: string | null;
createdAt: string;
deadlineAt: string | null;
description: string | null;
fixedAt: string | null;
identified: number | null;
priority: string;
priorityColor: string;
remaining: number | null;
remainingColor: string | null;
reportLink: string | null;
title: string;
trendGraph: string | null;
}[];
projectName: string;
}
/**
* Lumar Account ID
*/
accountId: number;
/**
* Account ID on SSO Client
*/
ssoClientAccountId: string;
}