Tool ID:
clickhouse_click_stack_create_alertRun this action
Use the TypeScript SDK for a single call. Putctx.tools.execute(...) inside a Play when the call should be durable, scheduled, or run across a CSV.
import { Deepline } from 'deepline';
const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
'clickhouse_click_stack_create_alert',
{
"organizationId": "123e4567-e89b-42d3-a456-426614174000",
"serviceId": "123e4567-e89b-42d3-a456-426614174000"
},
);
console.log(result.toolResponse.raw);
CLI
deepline tools execute clickhouse_click_stack_create_alert --input '{
"organizationId": "123e4567-e89b-42d3-a456-426614174000",
"serviceId": "123e4567-e89b-42d3-a456-426614174000"
}' --json
Example response
The SDK exposes this shape atresult.toolResponse.raw. Values below are representative.
{
"data": {
"status": 123,
"requestId": "123e4567-e89b-42d3-a456-426614174000",
"result": {
"dashboardId": "dashboard_123",
"tileId": "tile_123",
"savedSearchId": "saved_search_123"
}
}
}
deepline tools get clickhouse_click_stack_create_alert --json for the latest machine-readable contract.
Input reference
This endpoint is in beta. API contract is stable, and no breaking changes are expected in the future. ClickStack: Creates a new alert| Name | Type | Required | Default | Details |
|---|---|---|---|---|
payload.organizationId | string | Yes | — | ID of the organization that owns the service. Format: uuid. |
payload.serviceId | string | Yes | — | ID of the ClickStack service. Format: uuid. |
payload.dashboardId | string | No | — | Dashboard ID for tile-based alerts. |
payload.tileId | string | No | — | Tile ID for tile-based alerts. Must be a line, stacked bar, or number type tile. |
payload.savedSearchId | string | No | — | Saved search ID for saved_search alerts. |
payload.groupBy | string | No | — | Group-by key for saved search alerts. |
payload.threshold | number | No | — | Threshold value for triggering the alert. For between and not_between threshold types, this is the lower bound. |
payload.thresholdMax | number | No | — | Upper bound for between and not_between threshold types. Required when thresholdType is between or not_between, must be >= threshold. |
payload.interval | "1m" | "5m" | "15m" | "30m" | "1h" | "6h" | "12h" | "1d" | No | — | Evaluation interval for the alert. Allowed: 1m, 5m, 15m, 30m, 1h, 6h, 12h, 1d. |
payload.scheduleOffsetMinutes | integer | No | — | Offset from the interval boundary in minutes. For example, 2 with a 5m interval evaluates windows at :02, :07, :12, etc. (UTC). |
payload.scheduleStartAt | string | No | — | Absolute UTC start time anchor. Alert windows start from this timestamp and repeat every interval. Format: date-time. |
payload.source | "saved_search" | "tile" | No | — | Alert source type (tile-based or saved search). Allowed: saved_search, tile. |
payload.thresholdType | "above" | "below" | "above_exclusive" | "below_or_equal" | "equal" | "not_equal" | "between" | "not_between" | No | — | Threshold comparison direction. Allowed: above, below, above_exclusive, below_or_equal, equal, not_equal, between, not_between. |
payload.channel | object | No | — | — |
payload.name | string | No | — | Human-friendly alert name. |
payload.message | string | No | — | Alert message template. |
payload.note | string | No | — | Freeform note for the alert. Supports markdown formatting. |
payload.numConsecutiveWindows | integer | No | — | Fire the alert only after its condition has been met for this many consecutive evaluation windows. While the condition is met but fewer than this many consecutive windows have violated, the alert is in the PENDING state. |
Output reference
Standard tool result payload.| Name | Type | Required | Default | Details |
|---|---|---|---|---|
result.data | object | Yes | — | Provider response payload. |
result.data.status | number | No | — | HTTP status code. |
result.data.requestId | string | No | — | Unique id assigned to every request. UUIDv4 Format: uuid. |
result.data.result | object | No | — | — |
result.data.result.dashboardId | string | null | No | — | Dashboard ID for tile-based alerts. |
result.data.result.tileId | string | null | No | — | Tile ID for tile-based alerts. Must be a line, stacked bar, or number type tile. |
result.data.result.savedSearchId | string | null | No | — | Saved search ID for saved_search alerts. |
result.data.result.groupBy | string | null | No | — | Group-by key for saved search alerts. |
result.data.result.threshold | number | No | — | Threshold value for triggering the alert. For between and not_between threshold types, this is the lower bound. |
result.data.result.thresholdMax | number | null | No | — | Upper bound for between and not_between threshold types. Required when thresholdType is between or not_between, must be >= threshold. |
result.data.result.interval | "1m" | "5m" | "15m" | "30m" | "1h" | "6h" | "12h" | "1d" | No | — | Evaluation interval for the alert. Allowed: 1m, 5m, 15m, 30m, 1h, 6h, 12h, 1d. |
result.data.result.scheduleOffsetMinutes | integer | null | No | — | Offset from the interval boundary in minutes. For example, 2 with a 5m interval evaluates windows at :02, :07, :12, etc. (UTC). |
result.data.result.scheduleStartAt | string | null | No | — | Absolute UTC start time anchor. Alert windows start from this timestamp and repeat every interval. Format: date-time. |
result.data.result.source | "saved_search" | "tile" | No | — | Alert source type (tile-based or saved search). Allowed: saved_search, tile. |
result.data.result.thresholdType | "above" | "below" | "above_exclusive" | "below_or_equal" | "equal" | "not_equal" | "between" | "not_between" | No | — | Threshold comparison direction. Allowed: above, below, above_exclusive, below_or_equal, equal, not_equal, between, not_between. |
result.data.result.channel | record | No | — | — |
result.data.result.name | string | null | No | — | Human-friendly alert name. |
result.data.result.message | string | null | No | — | Alert message template. |
result.data.result.note | string | null | No | — | Freeform note for the alert. Supports markdown formatting. |
result.data.result.numConsecutiveWindows | integer | null | No | — | Fire the alert only after its condition has been met for this many consecutive evaluation windows. While the condition is met but fewer than this many consecutive windows have violated, the alert is in the PENDING state. |
result.data.result.id | string | No | — | Unique alert identifier. |
result.data.result.state | "ALERT" | "OK" | "INSUFFICIENT_DATA" | "DISABLED" | "PENDING" | No | — | Current alert state. Allowed: ALERT, OK, INSUFFICIENT_DATA, DISABLED, PENDING. |
result.data.result.teamId | string | No | — | Team identifier. |
result.data.result.silenced | record | No | — | — |
result.data.result.executionErrors | array | No | — | Errors recorded during the most recent alert execution, if any. |
result.data.result.executionErrors[].timestamp | string | Yes | — | When the error occurred. Format: date-time. |
result.data.result.executionErrors[].type | "QUERY_ERROR" | "WEBHOOK_ERROR" | "INVALID_ALERT" | "UNKNOWN" | Yes | — | Category of the error. Allowed: QUERY_ERROR, WEBHOOK_ERROR, INVALID_ALERT, UNKNOWN. |
result.data.result.executionErrors[].message | string | Yes | — | Human-readable error message. |
result.data.result.createdAt | string | null | No | — | Creation timestamp. Format: date-time. |
result.data.result.updatedAt | string | null | No | — | Last update timestamp. Format: date-time. |
result.meta | object | No | — | Additional response metadata (status, paging). |
Deepline cost
- Pricing model:
fixed(per call). - Estimated Deepline credits:
0per pricing unit. - Provider-native pricing may still exist outside Deepline credit billing.