<!-- BusyBot node reference — https://busybot.net/tools/currents/ -->

> Node: Currents (`currents`) · Action · v1
> Category: Utility · Credentials: Currents API (`currentsApi`)
> Updated: 2026-08-16

# Currents

> Manage test orchestration and analytics on Currents.dev.

## Overview

Currents (currents.dev) is a test orchestration and analytics platform for Cypress, Playwright, and other testing frameworks. This tool provides full access to the Currents REST API. It supports 8 resources: Action (create, delete, disable, enable, get, get many, update — manage test action rules like skip, quarantine, and tag), Instance (get — retrieve spec file execution instance details), Project (get, get many, get insights — manage projects and retrieve metrics), Run (cancel, cancel by GitHub CI, delete, find, get, get many, reset — manage test runs), Signature (generate — generate unique test signatures), Spec File (get many — spec file performance metrics), Test (get many — test performance metrics), and Test Result (get many — historical test execution results).

**Category:** Utility  
**Tool Name:** `currents`  
**Version:** 1

**Appearance:** Icon: `lucide-TestTube` | Color: `#4B5563`

## Node Type

**Action** — processes input items and produces output

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Currents API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/currents-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Action | `action` |
| Instance | `instance` |
| Project | `project` |
| Run | `run` |
| Signature | `signature` |
| Spec File | `specFile` |
| Test | `test` |
| Test Result | `testResult` |

### Operations

| Operation | Value | Description |
|-----------|-------|-------------|
| Create | `create` | Action — create a new action for a project |
| Delete | `delete` | Action — archive an action (soft delete) |
| Disable | `disable` | Action — deactivate an active action |
| Enable | `enable` | Action — reactivate a disabled action |
| Get | `get` | Action — get a single action by ID |
| Get Many | `getAll` | Action — get many actions for a project |
| Update | `update` | Action — update an existing action |
| Get | `get` | Instance — get a spec file execution instance with full test results |
| Get | `get` | Project — get a project by ID |
| Get Many | `getAll` | Project — get many projects |
| Get Insights | `getInsights` | Project — get project insights and metrics |
| Cancel | `cancel` | Run — cancel a run in progress |
| Cancel by GitHub CI | `cancelGithub` | Run — cancel a run by GitHub Actions workflow run ID |
| Delete | `delete` | Run — delete a run and all associated data |
| Find | `find` | Run — find a run by project and filters |
| Get | `get` | Run — get a run by ID |
| Get Many | `getAll` | Run — get many runs for a project |
| Reset | `reset` | Run — reset failed specs for re-execution on specified machines |
| Generate | `generate` | Signature — generate a unique test signature |
| Get Many | `getAll` | Spec File — get aggregated spec file metrics for a project |
| Get Many | `getAll` | Test — get aggregated test metrics for a project |
| Get Many | `getAll` | Test Result — get historical test execution results for a specific test signature |

Operation values are scoped to their resource, so `get`, `getAll` and `delete` mean different things depending on the Resource you picked.

### Parameters

#### Action: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Project ID | `string` | Yes | — | The Currents project ID. Find in Currents Dashboard under project settings. Supports expressions like {{ $json.projectId }}. |
| Name | `string` | Yes | — | The name of the action (1-255 characters). Supports expressions. |
| Action Type | `options` | Yes | `quarantine` | The type of action to create. |
| | | | | Options: `quarantine` (quarantine matching tests), `skip` (skip matching tests), `tag` (add tags to matching tests) |
| Tags (`actionTags`) | `string` | No | — | Comma-separated list of tags to apply. _(shown when Action Type is `tag`)_ |
| Matcher Type | `options` | Yes | `titleContains` | How to match tests for this action. |
| | | | | Options: `specContains` (spec file contains), `specEquals` (spec file equals), `signature` (test signature), `titleContains` (test title contains), `titleEquals` (test title equals) |
| Matcher Value | `string` | Yes | — | The value to match against (test title, spec file path, or signature). Supports expressions. |
| Options (`createOptions`) | `collection` | No | `{}` | Optional properties for the new action. |
| — Description | `string` | No | — | A description for the action. |
| — Expires After | `string` | No | — | When the action should expire (ISO 8601 format). |

#### Action: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Action ID | `string` | Yes | — | The ID of the action. Supports expressions. |

#### Action: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Project ID | `string` | Yes | — | The Currents project ID. Find in Currents Dashboard under project settings. Supports expressions. |
| Filters | `collection` | No | `{}` | Optional filters narrowing the action list. |
| — Search | `string` | No | — | Search actions by name (max 100 characters). |
| — Status | `multiOptions` | No | `[]` | Filter by action status. |
| | | | | Options: `active`, `archived`, `disabled`, `expired` |

#### Action: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Action ID | `string` | Yes | — | The ID of the action. Supports expressions. |
| Update Fields | `collection` | No | `{}` | Properties to change on the existing action. Fields you leave out are untouched. |
| — Name | `string` | No | — | The name of the action (1-255 characters). |
| — Description | `string` | No | — | A description for the action. |
| — Expires After | `string` | No | — | When the action should expire (ISO 8601 format). |

#### Action: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Action ID | `string` | Yes | — | The ID of the action. Supports expressions. |

#### Action: Enable

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Action ID | `string` | Yes | — | The ID of the action. Supports expressions. |

#### Action: Disable

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Action ID | `string` | Yes | — | The ID of the action. Supports expressions. |

#### Instance: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Instance ID | `string` | Yes | — | The ID of the spec file execution instance. Supports expressions. |

#### Project: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Project ID | `string` | Yes | — | The Currents project ID. Find in Currents Dashboard under project settings. Supports expressions. |

#### Project: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Limit | `number` | No | `10` | Max number of results to return. |

#### Project: Get Insights

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Project ID | `string` | Yes | — | The Currents project ID. Find in Currents Dashboard under project settings. Supports expressions. |
| Date Start | `string` | Yes | — | Start date for metrics (ISO 8601 format). Supports expressions. |
| Date End | `string` | Yes | — | End date for metrics (ISO 8601 format). Supports expressions. |
| Options (`options`) | `collection` | No | `{}` | Optional filters and shaping for the insights query. |
| — Git Authors | `string` | No | — | Filter by git authors (comma-separated for multiple). |
| — Branches | `string` | No | — | Filter by branches (comma-separated for multiple). |
| — Groups | `string` | No | — | Filter by groups (comma-separated for multiple). |
| — Resolution | `options` | No | `1d` | Time resolution for metrics. |
| | | | | Options: `1h` (1 hour), `1d` (1 day), `1w` (1 week) |
| — Tags | `string` | No | — | Filter by tags (comma-separated for multiple). |

#### Run: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Run ID | `string` | Yes | — | The ID of the run. Supports expressions like {{ $json.runId }}. |

#### Run: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Project ID | `string` | Yes | — | The Currents project ID. Find in Currents Dashboard under project settings. Supports expressions. |
| Limit | `number` | No | `10` | Max number of results to return. |
| Filters | `collection` | No | `{}` | Optional filters narrowing the run list. |
| — Git Authors | `string` | No | — | Filter by git authors (comma-separated for multiple). |
| — Branches | `string` | No | — | Filter by branches (comma-separated for multiple). |
| — Completion State | `multiOptions` | No | `[]` | Filter by completion state. |
| | | | | Options: `CANCELED`, `COMPLETE`, `IN_PROGRESS`, `TIMEOUT` |
| — Date End | `string` | No | — | Filter runs created before this date (ISO 8601). |
| — Date Start | `string` | No | — | Filter runs created on or after this date (ISO 8601). |
| — Search | `string` | No | — | Search by ciBuildId or commit message (max 200 characters). |
| — Status | `multiOptions` | No | `[]` | Filter by run status. |
| | | | | Options: `FAILED`, `FAILING`, `PASSED`, `RUNNING` |
| — Tags | `string` | No | — | Filter by tags (comma-separated for multiple). |
| — Tag Operator | `options` | No | `AND` | Logical operator for tag filtering. |
| | | | | Options: `AND`, `OR` |
| Options (`options`) | `collection` | No | `{}` | Cursor pagination controls. |
| — Starting After | `string` | No | — | Cursor for forward pagination (use cursor from previous response). |
| — Ending Before | `string` | No | — | Cursor for backward pagination (use cursor from previous response). |

#### Run: Find

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Project ID | `string` | Yes | — | The Currents project ID. Find in Currents Dashboard under project settings. Supports expressions. |
| Filters | `collection` | No | `{}` | Criteria identifying the run to find. |
| — Branch | `string` | No | — | Filter by git branch name. |
| — CI Build ID | `string` | No | — | Filter by CI build ID. |
| — Tags | `string` | No | — | Filter by tags (comma-separated for multiple). |

#### Run: Cancel

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Run ID | `string` | Yes | — | The ID of the run. Supports expressions. |

#### Run: Cancel by GitHub CI

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| GitHub Run ID | `string` | Yes | — | The GitHub Actions workflow run ID. Supports expressions. |
| GitHub Run Attempt | `number` | Yes | `1` | The GitHub Actions workflow attempt number. |
| Options (`cancelGithubOptions`) | `collection` | No | `{}` | Optional narrowing of what gets cancelled. |
| — Project ID | `string` | No | — | Limit cancellation to a specific project. |
| — CI Build ID | `string` | No | — | Limit cancellation to a specific CI build. |

#### Run: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Run ID | `string` | Yes | — | The ID of the run. Supports expressions. |

#### Run: Reset

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Run ID | `string` | Yes | — | The ID of the run. Supports expressions. |
| Machine IDs | `string` | Yes | — | Comma-separated list of machine identifiers to reset (1-63 items). Supports expressions. |
| Options (`resetOptions`) | `collection` | No | `{}` | Optional settings for the reset. |
| — Batched Orchestration | `boolean` | No | `false` | Whether to enable batched orchestration. |

#### Signature: Generate

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Project ID | `string` | Yes | — | The Currents project ID. Supports expressions. |
| Spec File Path | `string` | Yes | — | The complete path to the spec file. Supports expressions. |
| Test Title | `string` | Yes | — | The test title. For nested describe blocks, use " > " as separator (e.g., "Login > should login with valid credentials"). Supports expressions. |

#### Spec File: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Project ID | `string` | Yes | — | The Currents project ID. Supports expressions. |
| Date Start | `string` | Yes | — | Start date for metrics (ISO 8601 format). Supports expressions. |
| Date End | `string` | Yes | — | End date for metrics (ISO 8601 format). Supports expressions. |
| Limit | `number` | No | `50` | Max number of results to return. |
| Filters | `collection` | No | `{}` | Optional filters narrowing which spec files are measured. |
| — Git Authors | `string` | No | — | Filter by git authors (comma-separated for multiple). |
| — Branches | `string` | No | — | Filter by branches (comma-separated for multiple). |
| — Groups | `string` | No | — | Filter by groups (comma-separated for multiple). |
| — Spec Name | `string` | No | — | Filter spec files by name (partial match). |
| — Tags | `string` | No | — | Filter by tags (comma-separated for multiple). |
| Options (`options`) | `collection` | No | `{}` | Ordering, paging and metric shaping. |
| — Include Failed in Duration | `boolean` | No | `false` | Whether to include failed executions in duration calculation. |
| — Order By | `options` | No | `avgDuration` | The field to order results by. |
| | | | | Options: `avgDuration`, `failedExecutions`, `failureRate`, `flakeRate`, `flakyExecutions`, `fullyReported`, `overallExecutions`, `suiteSize`, `timeoutExecutions`, `timeoutRate` |
| — Sort Direction | `options` | No | `desc` | The direction to sort results. |
| | | | | Options: `asc`, `desc` |
| — Page | `number` | No | `0` | Page number (0-indexed). |

#### Test: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Project ID | `string` | Yes | — | The Currents project ID. Supports expressions. |
| Date Start | `string` | Yes | — | Start date for metrics (ISO 8601 format). Supports expressions. |
| Date End | `string` | Yes | — | End date for metrics (ISO 8601 format). Supports expressions. |
| Limit | `number` | No | `50` | Max number of results to return. |
| Filters | `collection` | No | `{}` | Optional filters narrowing which tests are measured. |
| — Git Authors | `string` | No | — | Filter by git authors (comma-separated for multiple). |
| — Branches | `string` | No | — | Filter by branches (comma-separated for multiple). |
| — Groups | `string` | No | — | Filter by groups (comma-separated for multiple). |
| — Minimum Executions | `number` | No | `1` | Minimum number of executions to include a test. |
| — Spec File | `string` | No | — | Filter tests by spec file name (partial match). |
| — Tags | `string` | No | — | Filter by tags (comma-separated for multiple). |
| — Test State | `multiOptions` | No | `[]` | Filter by test state. |
| | | | | Options: `failed`, `passed`, `pending`, `skipped` |
| — Title | `string` | No | — | Filter tests by title (partial match). |
| Options (`options`) | `collection` | No | `{}` | Ordering, paging and metric shaping. |
| — Order By | `options` | No | `title` | The field to order results by. |
| | | | | Options: `duration`, `durationDelta`, `durationXSamples` (duration impact), `executions`, `failRateXSamples` (failure impact), `failureRateDelta`, `failures`, `flakiness`, `flakinessXSamples` (flakiness impact), `flakinessRateDelta`, `passes`, `title` |
| — Sort Direction | `options` | No | `desc` | The direction to sort results. |
| | | | | Options: `asc`, `desc` |
| — Page | `number` | No | `0` | Page number (0-indexed). |
| — Metric Settings | `string` | No | — | Override which test statuses are included in metric calculations. JSON object with optional keys: executions, avgDuration, flakinessRate, failureRate. Each value is an array of status strings: passed, failed, pending, skipped. Example: {"executions":["failed","passed"],"failureRate":["failed"]} |

#### Test Result: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Test Signature | `string` | Yes | — | The unique test signature. Use the Signature resource to generate this from project ID, spec file path, and test title. Supports expressions. |
| Date Start | `string` | Yes | — | Start date for results (ISO 8601 format). Supports expressions. |
| Date End | `string` | Yes | — | End date for results (ISO 8601 format). Supports expressions. |
| Limit | `number` | No | `10` | Max number of results to return. |
| Filters | `collection` | No | `{}` | Optional filters narrowing the result history. |
| — Branches | `string` | No | — | Filter by branches (comma-separated for multiple). |
| — Git Authors | `string` | No | — | Filter by git authors (comma-separated for multiple). |
| — Groups | `string` | No | — | Filter by groups (comma-separated for multiple). |
| — Status | `multiOptions` | No | `[]` | Filter by test status. |
| | | | | Options: `failed`, `passed`, `pending`, `skipped` |
| — Tags | `string` | No | — | Filter by run tags (comma-separated, multiple values supported). |
| Options (`options`) | `collection` | No | `{}` | Cursor pagination controls. |
| — Starting After | `string` | No | — | Cursor for forward pagination. |
| — Ending Before | `string` | No | — | Cursor for backward pagination. |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. |

## Output Data

The Currents response is merged into the item JSON at the top level, so the incoming fields stay addressable alongside it, and binary data is forwarded. Currents wraps most responses in a `data` envelope; the node unwraps it, so what lands on the item is the record itself rather than a wrapper.

**List operations fan out.** When the unwrapped response is an array — the Get Many operations, and Find when it matches several runs — each element becomes its own output item, so no Split Out node is needed. Every other operation produces exactly one output item per input item.

| Resource: Operation | What lands on the item |
|---------------------|------------------------|
| Action: Create / Get / Update / Enable / Disable | The action record — its ID, name, type, matcher, status and expiry. |
| Action: Get Many | One item per action in the project, filtered by Search and Status. |
| Action: Delete | `{ "success": true }` — the archive call returns no body of its own. |
| Instance: Get | The spec file execution instance, including its full test results. |
| Project: Get | The project record. |
| Project: Get Many | One item per project, capped by Limit. |
| Project: Get Insights | The insight metrics for the date range, bucketed at the Resolution you chose. |
| Run: Get / Cancel / Reset / Cancel by GitHub CI | The run record as it stands after the call. |
| Run: Get Many | One item per run, capped by Limit and narrowed by Filters. |
| Run: Find | The matching run, or one item per match when several runs qualify. |
| Run: Delete | `{ "success": true }` — the delete call returns no body of its own. |
| Signature: Generate | The generated test signature, ready to feed into Test Result: Get Many. |
| Spec File: Get Many | One item per spec file with its aggregated metrics, ordered by Order By. |
| Test: Get Many | One item per test with its aggregated metrics, ordered by Order By. |
| Test Result: Get Many | One item per historical execution of the signature you supplied. |

Because the merge happens at the top level, an incoming item field whose name collides with a Currents response key is overwritten. Rename such fields upstream if you need both.

## Usage Examples

- List all test runs for a project
- Create a quarantine action for a flaky test
- Get project insights and metrics for a date range
- Cancel a running test run
- Get historical test results for a specific test signature
- Generate a unique test signature from project, spec file, and test title
- Get spec file performance metrics
- Delete a test action

## Example Configuration

List the most recent failing runs for a project:

```json
{
  "type": "currents",
  "parameters": {
    "resource": "run",
    "operation": "getAll",
    "projectId": "{{ $json.projectId }}",
    "limit": 25,
    "filters": {
      "status": ["FAILED", "FAILING"],
      "branches": "main",
      "dateStart": "2026-03-01T00:00:00Z"
    }
  }
}
```

Quarantine a flaky test by title:

```json
{
  "type": "currents",
  "parameters": {
    "resource": "action",
    "operation": "create",
    "projectId": "{{ $json.projectId }}",
    "name": "Quarantine flaky checkout test",
    "actionType": "quarantine",
    "matcherType": "titleContains",
    "matcherValue": "{{ $json.testTitle }}",
    "createOptions": {
      "description": "Auto-quarantined by the flake watcher workflow",
      "expiresAfter": "2026-04-01T00:00:00Z"
    }
  }
}
```

Tag matching tests instead of quarantining them:

```json
{
  "type": "currents",
  "parameters": {
    "resource": "action",
    "operation": "create",
    "projectId": "{{ $json.projectId }}",
    "name": "Tag slow suite",
    "actionType": "tag",
    "actionTags": "slow, needs-review",
    "matcherType": "specContains",
    "matcherValue": "e2e/checkout"
  }
}
```

Generate a test signature, then read that test's history:

```json
{
  "type": "currents",
  "parameters": {
    "resource": "signature",
    "operation": "generate",
    "projectId": "{{ $json.projectId }}",
    "specFilePath": "cypress/e2e/checkout.cy.ts",
    "testTitle": "Checkout > applies a discount code"
  }
}
```

```json
{
  "type": "currents",
  "parameters": {
    "resource": "testResult",
    "operation": "getAll",
    "signature": "{{ $json.signature }}",
    "dateStart": "2026-03-01T00:00:00Z",
    "dateEnd": "2026-03-31T23:59:59Z",
    "limit": 50,
    "filters": {
      "status": ["failed"],
      "branches": "main"
    }
  }
}
```

Rank the flakiest tests over a month:

```json
{
  "type": "currents",
  "parameters": {
    "resource": "test",
    "operation": "getAll",
    "projectId": "{{ $json.projectId }}",
    "dateStart": "2026-03-01T00:00:00Z",
    "dateEnd": "2026-03-31T23:59:59Z",
    "limit": 50,
    "filters": {
      "minExecutions": 10
    },
    "options": {
      "order": "flakiness",
      "dir": "desc"
    }
  }
}
```

Cancel the run started by a GitHub Actions workflow:

```json
{
  "type": "currents",
  "parameters": {
    "resource": "run",
    "operation": "cancelGithub",
    "githubRunId": "{{ $json.workflow_run.id }}",
    "githubRunAttempt": 1,
    "cancelGithubOptions": {
      "projectId": "{{ $json.projectId }}"
    }
  }
}
```

Re-run the failed specs of a run on two machines:

```json
{
  "type": "currents",
  "parameters": {
    "resource": "run",
    "operation": "reset",
    "runId": "{{ $json.runId }}",
    "machineIds": "machine-1,machine-2",
    "resetOptions": {
      "isBatchedOr8n": true
    }
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Manage test orchestration and analytics on Currents.dev — actions, runs, projects, spec files, tests, and test results.

- **Almost everything needs a Project ID.** Find it in the Currents dashboard under project settings; a Project: Get Many run is the quickest way to list them all.
- **Dates are ISO 8601.** Date Start and Date End on the insights and metrics operations expect full timestamps such as `2026-03-01T00:00:00Z`.
- **Signatures identify a test across runs.** Generate one with Signature: Generate from the project ID, spec file path and test title, then use it for Test Result: Get Many or as the Matcher Value of a `signature` action.
- **Nested describe blocks use ` > `** in Test Title — for example `Login > should login with valid credentials`.
- **Action Type decides the extra fields.** Tags only appears for the `tag` type; `quarantine` and `skip` need no extra input beyond the matcher.
- **Delete archives an action.** It is a soft delete, so the action stops applying but remains visible with the `archived` status.
- **Two pagination styles.** Run: Get Many and Test Result: Get Many page with the Starting After / Ending Before cursors from the previous response; Spec File: Get Many and Test: Get Many page with a 0-indexed Page number.
- **Comma-separated lists are the norm.** Git Authors, Branches, Groups, Tags and Machine IDs all take one string with commas rather than repeated fields.
- **Reset needs the machines named.** Machine IDs takes between 1 and 63 identifiers, and only the failed specs of that run are re-queued.