The Process List¶
View recently executed processes in the process list. All processes are listed in reverse chronological order, with the most recent process at the top.
Logs are retained for 90 days¶
After 90 days, workflow logs (including the list of processes and tasks) are permanently deleted from the VibeIQ system.
Filter and Search Processes¶
You can filter and search for processes by date, event, and output.
Filter by Start Date¶
The filter includes any process that started within the selected date range.
Filter by Event and Output¶
A workflow process is triggered by an Event
. An Event
may trigger multiple processes, but each process will only have one Event
. Every process has one or more tasks. Every task within a process has an Output
. The Output
is the result of the task.
You filter processes by these fields using the search bar located above the process list.
The query only applies to the current page of processes
Only the current page of the results are filtered. If you want to search across all processes, enter your search term and page through the results.
Designing a Query¶
The query uses a case-insensitive substring match on a stringified version of the event and output fields. If a match is found anywhere within a process, the process will be included in the list of results.
When formatting your search query, consider:
- Newline between elements of the JSON objects are removed
- Spaces between elements of the JSON objects are removed
- Escape characters within string values are preserved (e.g.
\"
,\\
,\n
)
Example¶
{
"email": "grace.hopper@yale.edu",
"name": "Grace Hopper",
}
{
"rank": "Rear Admiral",
"languages": [
{ "COBOL": true },
{ "javaScript": false }
],
"quote": "\"A ship in port is safe, but that's not what ships are built for.\""
}
Query Behavior¶
Search Query | Is the Process included in the result? |
---|---|
grace |
✅ Yes |
Grace |
✅ Yes |
grace Hopper |
✅ Yes |
graceHopper |
❌ No |
rank":"Rear Admiral" |
✅ Yes |
rank: Rear Admiral |
❌ No |
rank": "Rear Admiral" |
❌ No |
languages":[{"cobol":true |
✅ Yes |
"quote":"a ship is safe |
❌ No |
"quote":"\"a ship is safe |
✅ Yes |
Programmatically Inspect and Monitor Processes¶
You can check the status of a process and view the result of its tasks using HTTP requests and the SDK.
Get Process by Id
¶
Inspect the state of a single process.
curl \
--location 'https://api.vibeiq.com/prod/api/event-workflow-processes/238cka02-em' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: API_KEY' \
--header 'X-Api-Org: ORG_KEY'
import { Entities } from "@contrail/sdk";
await new Entities().get({
entityName: "event-workflow-process",
id: "238cka02-em"
});
Below is an example with two tasks:
{
"id": "process-123"
"orgId": "org-123",
"createdOn": "2024-08-01T18:58:00.098Z",
"startTime": "2024-08-01T18:58:01.261Z",
"triggerEvent": {},
"templateName": "Create Process With Status",
"eventWorkflowTemplateId": "event-workflow-template-123",
"taskOutputs": {
"task-123": {
"startTime": "2024-08-01T18:58:13.331Z",
"endTime": "2024-08-01T18:58:23.334Z",
"event": {},
},
"task-456": {
"startTime": "2024-08-01T18:59:14.470Z",
"endTime": "2024-08-01T18:59:24.476Z",
"event": {},
}
},
"eventWorkflowTaskIds": [
"task-123",
"task-456",
],
"createdById": "user-123",
"status": "COMPLETE"
}
Get Many Processes
¶
Get the state of many processes. Supports filters by time, process status, and event workflow template.
Query Params¶
Filter Results¶
Use the criteria
query parameter to filter results. This parameter is a JSURL
-encoded object with of the fields to filter by.
Field Name | Description | Example |
---|---|---|
eventWorkflowTemplateId |
Limit results to processes of a specific event workflow template | criteria=~(eventWorkflowTemplateId~%27QQnYCfw0dsadfas) |
createdOn |
The time (UCT) at which the process was first created. Default limit is last 7 days. | criteria=~(createdOn~%27BETWEEN*202024-09-30T04*3a00*3a00.145Z*20and*202024-10-02T03*3a59*3a59.145Z) |
status |
Limit results to processes with a specific status. See table below. | criteria=~(status~%27FAILED) |
Order, Limits, and Pagination¶
Sequence results with order, limits, and pagination.
Parameter | Description | Type | Example |
---|---|---|---|
order |
The field by which to order processes. Only createdOn is supported. |
JSURL-encoded Object | order=~(~(orderField~%27createdOn~order~%27desc)) |
take |
The maximum number of processes to return | number | task=25 |
nextPageKey |
Indicates where the api should resume fetching additional processes | string | nextPageKey=eyJBTFRfU0syIjoiMjAyNC0xMC0wMVQ |
Pagination is sequential¶
To get to the third page of results, you must load pages one and two, using the nextPageKey
in the response as a query parameter in the next request.
Examples¶
curl
--location "https://admin.vibeiq.com/api/event-workflow-processes?" \
"criteria=" \
"~(status~%27FAILED~" \
"eventWorkflowTemplateId~%27event-workflow-template-123~" \
"createdOn~%27BETWEEN*202024-09-30T04*3a00*3a00.145Z*20and*202024-10-02T03*3a59*3a59.145Z)&" \
"order=~(~(orderField~%27createdOn~order~%27desc))&" \
"take=25&" \
"nextPageKey=eyJTSyI6Im9yZzo1TWFGb0ZwV="
--header 'Content-Type: application/json' \
--header 'X-Api-Key: API_KEY' \
--header 'X-Api-Org: ORG_KEY' \
--header 'Api-Version: 2'
import { API_VERSION, Entities, SortOrderOptions } from '@contrail/sdk';
await contrail.login({
// your login info
});
const processes = await new Entities().get({
entityName: 'event-workflow-process',
criteria: {
eventWorkflowTemplateId: 'event-workflow-123',
status: 'FAILED',
createdOn: 'BETWEEN 2024-10-01T15:10:14.000Z and 2024-10-01T15:10:20.000Z',
},
order: [{
orderField: 'createdOn',
order: SortOrderOptions.ASC,
}],
take: 2,
apiVersion: API_VERSION.V2,
nextPageKey:
'eyJTSyI6Im9yZzo1TWFGb0ZwV=',
});
{
"nextPageKey": "eyJBTFRfU0sxIjoib3JnOjVNYUZv="
"results": [
{
"messageGroupId": "org:org-123:event-workflow-template-123_2",
"endedOn": "2024-10-01T09:50:28.730Z",
"updatedOn": "2024-10-01T09:50:28.774Z",
"updatedById": "user-123",
"templateId": "event-workflow-template-123",
"createdOn": "2024-10-01T09:50:21.493Z",
"orgId": "org-123",
"notifyOnFailure": false,
"templateName": "Forecast Weather",
"eventWorkflowTemplateId": "event-workflow-template-123",
"taskOutputs": {
"task-456": {
"jsonResponse": {
"elevation": 0,
"generationtime_ms": 0.015020370483398438,
"current": {
"temperature_2m": 14.5,
"interval": 900,
"time": "2024-10-01T09:45"
},
}
}
},
"triggerEvent": { "location": "New York, New York" },
"id": "mAw9dXgzfc1jYPNH",
"eventWorkflowTaskIds": [
"task-456"
],
"createdById": "user-123",
"status": "FAILED"
},
{
"messageGroupId": "org:org-123:event-workflow-template-123_1",
"endedOn": "2024-10-01T09:45:26.016Z",
"updatedOn": "2024-10-01T09:45:26.073Z",
"updatedById": "user-123",
"templateId": "event-workflow-template-123",
"createdOn": "2024-10-01T09:45:21.517Z",
"orgId": "org-123",
"notifyOnFailure": false,
"templateName": "Forecast Weather",
"eventWorkflowTemplateId": "event-workflow-template-123",
"taskOutputs": {
"task-123": {
"jsonResponse": {
"elevation": 0,
"generationtime_ms": 0.02288818359375,
"current": {
"temperature_2m": 13.8,
"interval": 900,
"time": "2024-10-01T09:45"
},
}
}
},
"triggerEvent": { "location": "New York, New York" },
"id": "process-123",
"eventWorkflowTaskIds": [
"task-123"
],
"createdById": "user-123",
"status": "FAILED"
},
],
}
Programmatic statuses differ from UI statuses
The API uses slightly different statuses than the Admin Console.
UI Status | Corresponding API Status |
---|---|
Pending | PENDING |
Processing | ACTIVE |
Awaiting | AWAITING |
Completed | COMPLETE |
Failed | FAILED |