Insightful-Develope

Developer Tools
Download This Spec

About this spec

<img src="https://storage.googleapis.com/insightful-public/images/developers-head.png"> This API exposes the entire Insightful infrastructure via a standardized programmatic interface. Using Insightful's API, you can do just about anything you can do on insightful.io while using your programming language of choice. The Insightful's API is a RESTful API based on HTTP requests and JSON responses. The easiest way to start using the Insightful's API is by clicking the Run in Postman button above. Postman is a free tool that helps developers run and debug API requests and is the source of truth for this documentation. Every endpoint you see documented here is readily available by running our Postman collection. > _**NOTE:**_ API Rate Limits - To protect our servers, every organization can make up to 100 requests per minute. Once you exceed the limit, Insightful will return a 429 HTTP status code along with a message corresponding to which limit was exceeded. # Authorization Insightful's API is using Bearer Token for authorization. Here is how you can obtain yours: 1\. Login as an Admin to your organization's account --- 2\. Go to the API page <img src="https://storage.googleapis.com/insightful-public/images/developers-step1.png"> --- 3\. Create a new Token <img src="https://storage.googleapis.com/insightful-public/images/developers-step2.png"> --- 4\. Name your token <img src="https://storage.googleapis.com/insightful-public/images/developers-step3.png"> --- 5\. Generate new token and keep in mind that this will be the only time that we will provide you with your token <img src="https://storage.googleapis.com/insightful-public/images/developers-step4.png"> --- 6\. Copy the token and make sure you are storing it safely <img src="https://storage.googleapis.com/insightful-public/images/developers-step5.png"> # Models ## EMPLOYEE | Key | Format | Description | | --- | --- | --- | | id | string | The ID for the employee | | name | string | The name for employee | | teamsId | string | The ID of team which employee now belongs | | sharedSettingsId | string | The ID of shared settings applied on employee | | accountId | string | The ID of the employee account in Insightful application | | identifier | string | Unique ID of an employee based on email, computer logon or domain logon info | | type | string | Type of shared settings applied on this employee. Values are `personal`, `office` | | organizationId | string | The ID of organization which employee belongs | | projects\[\] | string | The IDs of projects which employee has access | | deactivated | number | Time in milliseconds represents the time since the employee was deactivated | | invited | number | Time in milliseconds represents the time elapsed from the time the invitation was sent to the acceptance | | createdAt | number | Time in milliseconds represents the time when employee was created | --- ## TEAM | Key | Format | Description | | --- | --- | --- | | id | string | The ID for the team | | ignoreProductive | boolean | If true, all productive applications won't be tracked for the team | | ignoreNeutral | boolean | If true, all neutral applications won't be tracked for the team | | ignoreUnproductive | boolean | If true, all unproductive applications won't be tracked for the team | | ignoreUnreviewed | boolean | If true, all unreviewed applications won't be tracked for the team | | name | string | The name of team | | description | string | The description of team | | organizationId | string | The ID of the organization which team belongs | | default | boolean | The flag which tells you if team is default | | employees\[\] | string | Array of all employees in this team | | projects\[\] | string | Array of all projects in this team | | createdAt | number | Time in milliseconds represents the time when team was created | --- ## PROJECT | Key | Format | Description | | --- | --- | --- | | id | string | The ID for the project | | archived | boolean | Is project archived or not | | statuses\[\] | string | Possible statuses for tasks | | priorities\[\] | string | Possible priorities for tasks | | billable | boolean | Is project billable or not | | payroll | [ProjectPayroll](#projectpayroll) | Information about payroll | | name | string | The name of project | | description | string | The description of project | | employees\[\] | string | The employees assigned on project | | creatorId | string | The users responsible for project creation | | organizationId | string | The ID of organization | | teams | string | The array of team IDs to which employees belong | | createdAt | number | Date in milliseconds representing when project was created | --- ## TASK | Key | Format | Description | | --- | --- | --- | | id | string | The ID for the task | | status | string | The status for the task | | priority | string | The priority for the task | | billable | boolean | Is task billable or not | | name | string | The name of task | | projectId | string | The ID of project task belong to | | employees\[\] | string | Employee IDs working on this project | | description | string | The description of task | | creatorId | string | Te user who create task | | organizationId | string | Te organization ID | | teams\[\] | string | Team Ids employees belong | | createdAt | string | Date in milliseconds representing when task is created | --- ## Shared Settings | Key | Format | Description | | --- | --- | --- | | id | string | The ID for the settings | | name | string | The ID for the name | | type | [SettingsType](#settings-type) | Typeof settings | | settings | [Settings](#settings) | settings | | organizationId | string | The ID of organization | | default | boolean | Flag to mark if settings is default or not | | createdAt | string | Date in milliseconds representing when task is created | --- ## Screenshot Response | Key | Format | Description | | --- | --- | --- | | id | string | The ID for the settings | | site | string | Site used when screenshot is taken | | productivity | number | Type of productivity | | employeeId | string | The ID of employee | | appId | string | The ID of app when screenshot is taken | | appOrgId | string | The ID of app org | | appTeamId | string | The ID of app team | | teamId | string | The ID of team | | organizationId | string | The ID of organization | | srcEmployeeId | string | The ID of merged employee | | srcTeamId | string | The team ID of merged employee | | timestampTranslated | string | Timestamp in milliseconds translated to UTC | | next | string | Hash value that is used to fetch next batch of data | ## SHIFT | Key | Format | Description | | --- | --- | --- | | id | string | The ID for the shift | | token | string | Token | | type | [ShiftType](#shift-type) | Type of shift | | start | number | Time in milliseconds when shift is started | | end | number | Time in milliseconds when shift is ended | | timezoneOffset | number | Timezone difference in milliseconds, between the UTC and the current local time. | | name | string | The name of user | | user | string | The username of user | | domain | string | Company domain | | computer | string | Computer name | | hwid | string | Hardware ID | | os | string | Operating system | | osVersion | string | Version of operating system | | paid | boolean | Indicates if the employee is paid for work on the shift | | payRate | number | Employee's hourly pay rate | | overtimePayRate | number | Employee’s overtime hourly pay rate | | overtimeStart | number | A moment (timestamp in milliseconds) during the shift when overtime has started | | employeeId | string | Employee ID | | teamId | string | team ID | | organizationId | string | Organization ID | | startTranslated | number | It is calculated by subtracting the timezone offset from the start time of the shift | | endTranslated | number | It is calculated by subtracting the timezone offset from the end time of the shift | | overtimeStartTranslated | number | It is calculated by subtracting the timezone offset from the overtime start time. | | negativeTime | number | Reserved field | | deletedScreenshots | number | Number of deleted screenshots during the shift | | lastActivityEnd | number | Time of the last activity on shift | | lastActivityEndTranslated | number | It is calculated by subtracting the timezone offset from the end time of the last activity | --- ## Activity | Key | Format | Description | | --- | --- | --- | | id | string | The ID for the activity | | employeeId | string | Employee ID | | teamId | string | team ID | | organizationId | string | Organization ID | | name | string | The name of user | | user | string | The username of user | | domain | string | Company domain | | computer | string | Computer name | | hwid | string | Hardware ID | | os | string | Operating system | | osVersion | string | Version of operating system | | start | number | Time in milliseconds when shift is started | | end | number | Time in milliseconds when shift is ended | | timezoneOffset | number | Timezone difference in milliseconds, between the UTC and the current local time. | | startTranslated | number | It is calculated by subtracting the timezone offset from the start time of the shift | | endTranslated | number | It is calculated by subtracting the timezone offset from the end time of the shift | | shiftId | string | ID of shift | | projectId | number | The ID of project | | taskId | string | The ID of task | | windowId | string | The ID of window | | paid | boolean | Indicates whether the employee is paid for the work on the shift or not during the activity | | billable | boolean | Indicates whether the project is billable or not | | overtime | boolean | Indicates whether the activity is created while the employee is working overtime or not | | billRate | number | Bill rate | | overtimeBillRate | number | Overtime bill rate | | payRate | number | Employee's hourly pay rate | | overtimePayRate | number | Employee’s overtime hourly pay rate | | keystrokes | number | Number of key strokes during the activity | | mouseClicks | number | Number of clicks during the activity | --- ## Window | Key | Format | Description | | --- | --- | --- | | id | string | The ID for the window | | token | string | Token | | type | [WindowType](#window-type) | Type of window | | start | number | Time in milliseconds when shift is started | | end | number | Time in milliseconds when shift is ended | | timezoneOffset | number | Timezone difference in milliseconds, between the UTC and the current local time. | | shiftId | string | ID of shift | | projectId | number | The ID of project | | taskId | string | The ID of task | | taskStatus | string | The status of task | | taskPriority | string | The priority of task | | paid | boolean | Indicates whether the employee is paid for the work on the shift or not during the window | | billable | boolean | Indicates whether the project is billable or not | | overtime | boolean | Indicates whether the window is created while the employee is working overtime or not | | billRate | number | Bill rate | | overtimeBillRate | number | Overtime bill rate | | payRate | number | Employee's hourly pay rate | | overtimePayRate | number | Overtime bill rate | | note | string | Task note | | name | string | The name of user | | user | string | The username of user | | domain | string | Company domain | | computer | string | Computer name | | hwid | string | Hardware ID | | os | string | Operating system | | osVersion | string | Version of operating system | | employeeId | string | Employee ID | | teamId | string | team ID | | organizationId | string | Organization ID | | startTranslated | number | It is calculated by subtracting the timezone offset from the start time of the shift | | endTranslated | number | It is calculated by subtracting the timezone offset from the end time of the shift | | negativeTime | number | Reserved field | | deletedScreenshots | number | Count of deleted screenshots during the window | --- ## Window Type | Format | Description | | --- | --- | | enum | Values are: `manual`, `tracked` | --- ## BREAK | Key | Format | Description | | --- | --- | --- | | id | string | The ID for the break | | shiftId | string | The ID of shift | | start | number | Time in milliseconds when shift is started | | end | number | Time in milliseconds when shift is ended | | timezoneOffset | number | Timezone difference in milliseconds, between the UTC and the current local time. | | name | string | The name of user | | user | string | The username of user | | domain | string | Company domain | | computer | string | Computer name | | hwid | string | Hardware ID | | os | string | Operating system | | osVersion | string | Version of operating system | | employeeId | string | Employee ID | | teamId | string | team ID | | organizationId | string | Organization ID | | startTranslated | number | It is calculated by subtracting the timezone offset from the start time of the shift | | endTranslated | number | It is calculated by subtracting the timezone offset from the end time of the shift | --- ## Fragment | Key | Format | Description | | --- | --- | --- | | id | string | The ID for the fragment | | name | string | The name of user | | user | string | The username of user | | domain | string | Company name | | computer | string | Computer name | | hwid | string | Hardware ID | | os | string | Operating system | | osVersion | string | Operating system version | | start | number | Time in milliseconds when fragment is started | | end | number | Time in milliseconds when fragment is ended | | timezoneOffset | string | Timezone difference in milliseconds, between the UTC and the current local time. | | app | string | Application name | | appFileName | string | Application executable's name | | appFilePath | string | Application executable's full path | | title | string | Application/Website Title | | url | string | Website Url | | document | string | Reserved field | | active | boolean | Indicates whether the application is active or not | | gateways | string\[\] | List of network adapters mac addresses | | keystrokes | number | Number of key strokes during the fragment | | mouseClicks | number | Number of clicks during the fragment | | shiftId | string | The ID of shift | | projectId | string | The ID of project | | taskId | string | The ID of task | | taskStatus | string | The status of task | | taskPriority | string | Tasks priority | | windowId | string | The ID of window | | paid | boolean | Indicates whether the employee is paid for the work on the shift or not during the fragment | | billable | boolean | Indicates whether the project is billable or not | | overtime | boolean | Indicates whether the fragment is created while the employee is working overtime or not | | billRate | number | Bill rate | | overtimeBillRate | number | Overtime bill rate | | payRate | number | Employee's hourly pay rate | | site | string | Site address | | productivity | [ProductivityType](#productivity-type) | Type of productivity | | appId | string | The ID of app | | appOrgId | string | The ID of app org | | appTeamId | string | The ID of app team | | organizationId | string | The ID of organization | | teamId | string | The ID of team | | activityId | string | The ID of activity | | startTranslated | number | It is calculated by subtracting the timezone offset from the start time of the fragment | | endTranslated | number | It is calculated by subtracting the timezone offset from the end time of the fragment | | next | string | Hash value that can be used for fetching next bunch of data if result is bigger than 10000 records. | ## Productivity | Key | Format | Description | | --- | --- | --- | | productivity | [ProductivityType](#productivity-type) | Type of productivity | | usage | number | Sum of usage | --- ## Productivity Type > _**NOTE:**_ > `0` represent unreviewed time > > `1` represent productive time > > `2` represent unproductive time > > `3` represent neutral time | Format | Description | | --- | --- | | enum | Values are: `0`, `1`,`2`, `3` | --- ## Project time | Key | Format | Description | | --- | --- | --- | | id | string | Project Id | | time | number | Total sum of the time spent on the one task | | costs | number | Total costs | | income | number | Total income | --- ## App | Key | Format | Description | | --- | --- | --- | | appId | string | The ID of application | | usage | number | Sum of usage | | name | string | Name of the application | --- ## App-team (analytics) | Key | Format | Description | | --- | --- | --- | | appTeamId | string | The ID of app team | | usage | number | Sum of usage | | name | string | The name of application | | appId | string | The ID of application | | productivity | [ProductivityType](#productivity-type) | Type of productivity | --- ## Shift Type | Format | Description | | --- | --- | | enum | Values are: `manual`, `automated`,`scheduled`, `leave` | --- ## Filter Params | Key | Format | Required | Description | | --- | --- | --- | --- | | start | number | required | Date in milliseconds | | end | number | required | Date in milliseconds | | groupBy | [GroupBy](#groupby) | optional | By which parameter you want to group response data | | timezone | string | optional | If passed data will be shown as in particular timezone. | | employeeId | cs string | optional | Get result for specific employees | | teamId | cs string | optional | Get result for specific teams | | projectId | cs string | optional | Get result for specific projects | | taskId | cs string | optional | Get result for specific tasks | | shiftId | cs string | optional | Get result for specific shifts | | appId | cs string | optional | Get result for specific apps | | productivity | string | optional | Get result by productivity | > _**NOTE:**_ `cs string` - comma separated string --- ## GroupBy | Format | Description | | --- | --- | | enum | Values are: `day`, `week`,`month`, `employee`,`team`, `shift`,`task`,`project`, `window` | --- ## ScreenshotSort | Format | Description | | --- | --- | | enum | Values are: `productivity`, `name`, `user`, `app`, `title`, `url`, `shiftId`, `projectId`, `taskId`, `WindowId`, `appOrgId`, `appTeamId`, `employeeId`, `teamId` | --- ## Settings Type | Format | Description | | --- | --- | | enum | Values are: `personal`, `office` | --- ## Tracking Type | Format | Description | | --- | --- | | enum | Values are: `unlimited`, `limited`, `network`, `project`, `manual` | --- ## Week Days | Key | Format | Required | | --- | --- | --- | | monday | boolean | required | | tuesday | boolean | required | | wednesday | boolean | required | | thursday | boolean | required | | friday | boolean | required | | saturday | boolean | required | | sunday | boolean | required | --- ## Privilege | Format | Description | | --- | --- | | enum | Values are: `read`, `write` | --- ## Employee privileges | Key | Format | Required | Description | | --- | --- | --- | --- | | apps | boolean | required | Provide access to AppUsage data, if true | | productivity | boolean | required | Provide access to Productivity data, if true | | screenshots | [Privilege](#privilege) / false | required | Controls access to screenshots | | pm | [Privilege](#privilege) / false | required | Controls access to PM | | offline | [Privilege](#privilege) / false | required | Provide access to Productivity data, if true | --- ## Settings > _**NOTE:**_ Settings can be one of the following types [UnlimitedSettings](#unlimitedsettings) | [LimitedSettings](#limitedsettings) | [NetworkSettings](#networksettings) | [ProjectSettings](#projectsettings) | [ManualSettings](#manualsettings) --- ## BaseSettings | Key | Format | Required | Description | | --- | --- | --- | --- | | type | [TrackingType](#tracking-type) | required | Type of tracking | | idle | number | required | Idle time | | breaks | number | required | Breaks | | screenshots | number | required | Screenshots | | days | [WeekDays](#week-days) | required | Days | | icon | boolean | required | Agent shows app icon on the taskbar, if true | | timer | boolean | required | Agent shows Projects and Tasks, if true | | clocker | boolean | required | Agent shows timer, if true | | privileges | [EmployeePrivilege](#employee-privileges) | required | Privileges of an employe | --- ## UnlimitedSettings > _**NOTE:**_ UnlimitedSettings includes all properties from [BaseSettings](#basesettings) > but property `type` needs to be set on `unlimited` ## LimitedSettings > _**NOTE:**_ LimitedSettings includes all properties from [BaseSettings](#basesettings) > but property `type` needs to be set on `limited` and has two more properties | Key | Format | Required | Description | | --- | --- | --- | --- | | start | number | required | Shift start time | | end | number | required | Shift end time | --- ## NetworkSettings > _**NOTE:**_ NetworkSettings includes all properties from [BaseSettings](#basesettings) > but property `type` needs to be set on `network` and has one more properties | Key | Format | Required | Description | | --- | --- | --- | --- | | network\[\] | [Network](#network) | required | List of router mac addresses | --- ## ProjectSettings > _**NOTE:**_ NetworkSettings includes all properties from [BaseSettings](#basesettings) > but property `type` needs to be set on `project` > but property `breaks` needs to be set on `0` > but property `icon` needs to be set on `true` > but property `timer` needs to be set on `true` > but property `clocker` needs to be set on `false` --- ## ManualSettings > _**NOTE:**_ NetworkSettings includes all properties from [BaseSettings](#basesettings) > but property `type` needs to be set on `manual` > but property `icon` needs to be set on `true` > but property `clocker` needs to be set on `true` --- ## Network | Key | Format | Required | Description | | --- | --- | --- | --- | | name | string | required | Network Name | | macAddress | string | required | Router mac address | --- ## Payroll | Key | Format | Required | Description | | --- | --- | --- | --- | | billRate | number | required | Bill rate | | overtimeBillRate | number | optional | Overtime bill rate | --- ## ProjectPayroll | Key | Format | Required | Description | | --- | --- | --- | --- | | employeeId | [Payroll](#payroll) | required | Payment details for every employee separately or use `\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*` to target every employee | --- ## ApplicationType > _**NOTE:**_ > `App` represents desktop application > > `Site` represents web application | Format | Description | | --- | --- | | enum | Values are: `app`, `site` | --- ## AppTeam | Key | Format | Description | | --- | --- | --- | | usage | number | Usage in milliseconds for app team | | type | [AppType](#app-type) | Type of application | | name | string | Name of the application | | appId | string | Id of the application | | appOrgId | string | Id of the parent app org | | teamId | string | Id of the team | | organizationId | string | Id of the organization | | labelOrg | [ProductivityType](#productivity-type) | Productivity of app org | | label | [ProductivityType](#productivity-type) | Productivity of app team | | ignoreOrg | boolean | Ignore property on app org | | ignore | boolean | Ignore property for app team | | alwaysActiveOrg | boolean | Always active property on app org | | alwaysActive | boolean | Always active property for app team | | ignoreScreenshotsOrg | boolean | Ignore screenshots property on app org | | ignoreScreenshots | boolean | Ignore screenshots property on app team | | productivity | [ProductivityType](#productivity-type) | Type of productivity | --- ## AppOrg | Key | Format | Description | | --- | --- | --- | | usage | number | Usage in milliseconds for app team | | type | [AppType](#app-type) | Type of application | | name | string | Name of the application | | appId | string | Id of the application | | organizationId | string | Id of the organization | | label | [ProductivityType](#productivity-type) | Productivity of app team | | ignore | boolean | Ignore property for app org | | alwaysActive | boolean | Always active property for app org | | ignoreScreenshots | boolean | Ignore screenshots property for app org | | productivity | [ProductivityType](#productivity-type) | Type of productivity | --- ## Directory | Key | Format | Description | | --- | --- | --- | | type | [DirectoryType](#directory-type) | Type of directory | | sumSync | number | Summarized number of syncs | | organizationId | string | Id of the organization | | isActive | boolean | Whether the directory is active or not | | settings | [DirectorySettings](#directory-settings) | Settings of the directory | --- ## DirectoryType > _**NOTE:**_ > `CSV` CSV directory type | Format | Description | | --- | --- | | enum | Values are: `csv` | --- ## DirectorySettings ### ICSVSettings | Key | Format | Description | | --- | --- | --- | | threshold | number | Minimum number of actions for auto approve. 0 -> never auto-approve | | scopeInheritance | boolean | Whether there will be inheritance of scopes for managers | --- ## DirectorySync | Key | Format | Description | | --- | --- | --- | | organizationId | string | Id of the organization | | directoryId | string | Id of the directory | | status | [DirectorySyncStatus](#DirectorySyncStatus) | Status of the sync | | errorMessage | string | Message of the error if happens. | --- ## DirectorySyncStatus > _**NOTE:**_ > `AutoApprove` sync is auto approved > > `ApprovedBy` approved by someone > > `WaitingForApprovement` waiting for approvement > > `Disapproved` sync is disapproved > > `AnotherSyncApproved` another sync is approved > > `ErrorWhileProcessing` error while processing > > `InProgress` sync in processing | Format | Description | | --- | --- | | enum | Values are: `AutoApprove`, `ApprovedBy`, `WaitingForApprovement`, `Disapproved`, `AnotherSyncApproved`, `ErrorWhileProcessing`, `InProgress` | --- ## Alert | Key | Format | Description | | --- | --- | --- | | adminIds | string\[\] | List of ids of admins or asterisk sign (\*) | | managerIds | string\[\] | List of ids of managers or asterisk sign (\*) | | recipients | [AlertRecipients](#AlertRecipients) | Recipient type. | | employeeIds | string\[\] | List of ids of employees or asterisk sign (\*) | | teamIds | string\[\] | List of ids of teams or asterisk sign (\*) | | settings | AlertSettings | | | days | \[Week Days\](#Week Days) | Days on which alerts will be triggered. | | active | boolean | Whether the alert is active/inactive. Alert will not be sent if alert is inactive. | | isRemoved | boolean | Whether the alert is deleted (soft). Alert will not be sent if alert is deleted. | | deliveryMethod | [NotificationDeliveryMethod](#NotificationDeliveryMethod) | Delivery method of alert. Can be one of the notification delivery methods except it cannot be turned off. | --- ## NotificationDeliveryMethod | Format | Description | | --- | --- | | enum | Values are: Off, InApp, InMail, All | --- ## AlertRecipients | Format | Description | | --- | --- | | enum | Values are: onlyMe, allAdmins, specificUsers | --- ## AlertType | Format | Description | | --- | --- | | enum | Values are: breakOverage, absentDays, missedClockIn, idleTime, usedApp, visitedWebsite, keywordDetection | --- ## AlertSettings > _**NOTE:**_ Settings can be one of the following types BreakOverageSettings | AbsentDaysSettings | MissedClockInSettings | IdleTimeSettings | UsedAppSettings | VisitedWebsiteSettings | KeywordDetectionSettings ## BreakOverageSettings | **Key** | **Format** | **Description** | | --- | --- | --- | | type | AlertType.BreakOverage | Type of alert. | ## AbsentDaysSettings | **Key** | **Format** | **Description** | | --- | --- | --- | | type | AlertType.AbsentDays | Type of alert. | | threshold | number | Number of days which will trigger alert. Minimum is 1 and maximum 365 | | timezone | string (timezone) | Timezone. | ## MissedClockInSettings | **Key** | **Format** | **Description** | | --- | --- | --- | | type | AlertType.MissedClockIn | Type of alert. | | hour | number | Hour of the intersection. Minimum is 0 and maximum is 23. | | minute | number | Minute of the intersection. Minimum is 0 and maximum is 59. | | timezone | string (timezone) | Timezone. | ## IdleTimeSettings | **Key** | **Format** | **Description** | | --- | --- | --- | | type | AlertType.IdleTime | Type of alert. | | threshold | number | Number in minutes after which the alert will be triggered. Minimum is 10 and maximum is 120. | ## UsedAppSettings | **Key** | **Format** | **Description** | | --- | --- | --- | | type | AlertType.UsedApp | Type of alert. | | apps | UserAppAlert | Id of application chosen from list of apps from the platform. | | externalAppNames | string\[\] | Application names to trigger the alert. | | takeScreenshot | boolean, optional | Whether the screenshot will be taken at the moment when alert is triggered on again. | ### UserAppAlert | **Key** | **Format** | **Description** | | --- | --- | --- | | id | string | Id of application from platform. | | name | string | Name of the application from platform. | ## VisitedWebsite | **Key** | **Format** | **Description** | | --- | --- | --- | | type | AlertType.VisitedWebsite | Type of alert. | | urls | string\[\] | List of URLs. Minimum 1 and maximum 15 urls. | | condition | [AlertConditionType](#AlertConditionType) | Condition of alert. | | takeScreenshot | boolean, optional | Whether the screenshot will be taken at the moment when alert is triggered on again. | ## KeywordDetection | **Key** | **Format** | **Description** | | --- | --- | --- | | type | AlertType.KeywordDetection | Type of alert. | | keywords | string\[\] | Keywords of which to trigger the alert. Minimum 1 and maximum 1000 keywords. | | condition | [AlertConditionType](#AlertConditionType) | Condition of alert. | | takeScreenshot | boolean, optional | Whether the screenshot will be taken at the moment when alert is triggered on again. | ## AlertConditionType | **Format** | **Description** | | --- | --- | | enum | Values are: equals, contains. |

About Versori

Versori has established itself as the third generation of Integration Platform as a Service (iPaaS). Versori builds custom integrations for its customers using an intuitive visual user interface.

Versori’s connector engine means there is no dependency on an existing library of apps, all you need to start is the documentation of the app or system you want to integrate to.

How can I integrate with this spec?

Upload your spec

Drag and drop the Open API Spec into Versori's connector engine to create a new connector in minutes.

Build your workflow

Build out visual integration workflows with powerful data tools on an intuitive canvas UI.

Deploy instantly

Deploy your automated workflow instantly and maintain your integrations with ease.

Issue with this spec?

Is there something wrong with this spec? Let us know and Versori's engineering team will improve the quality of the spec based on your feedback.

Report This Spec
Built for Security & Scale

How developers maximise their time & productivity with Versori

Easily map complex data fields

Automatically match and transform data fields between systems with precision, reducing manual effort and errors.

Build, integrate & deploy faster

Design integrations visually, test workflows instantly, and deploy seamlessly—accelerating your time to value.

Create any custom connector in minutes

Drag and drop API specifications to build custom integrations, unlocking endless connectivity with minimal setup.

Start building today

Ready to start integrating?

Google Ads
Batch
Dropbox
Airtable
Asana
Calendly
Filter