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

> Node: Toggl Trigger (`toggl_trigger`) · Polling trigger · v1
> Category: Productivity · Credentials: Toggl API (`togglApi`)
> Updated: 2026-08-16

# Toggl Trigger

> Trigger workflows on new Toggl time entries

## Overview

The Toggl Trigger node polls the Toggl Track API at a configurable interval to detect new time entries for the authenticated user. On each poll it queries the time entries endpoint with a rolling time window defined by a start date (the last poll timestamp) and an end date (the current timestamp). On the very first poll it establishes a baseline by recording today's date and returns no items, preventing a flood of historical time entries. Subsequent polls return only time entries created since the last successful check. Each returned item includes the full Toggl time entry payload: ID, workspace, project, task, description, tags, duration, start/stop times, and billable status.

**Category:** Productivity  
**Tool Name:** `toggl_trigger`  
**Version:** 1

**Appearance:** Icon: `si-toggltrack` | Color: `#e57cd8`

## Node Type

**Trigger** — polling (checks for new data on a schedule)

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | None (trigger node) |
| Output | `Output` |

## Credentials

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

### Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Event | `options` | Yes | `newTimeEntry` | Which event to listen for. |
| | | | | Options: `newTimeEntry` |
| Poll Interval | `number` | No | `1` | How often to check for new time entries. |
| Poll Interval Unit | `options` | No | `minutes` | Unit for the poll interval. |
| | | | | Options: `seconds`, `minutes`, `hours` |

## Output Data

Each new time entry becomes one output item:

```json
{
  "id": 3812449001,
  "workspace_id": 1234567,
  "project_id": 987654,
  "task_id": null,
  "billable": true,
  "start": "2026-08-15T08:00:00+00:00",
  "stop": "2026-08-15T09:00:00+00:00",
  "duration": 3600,
  "description": "Design review",
  "tags": ["internal"],
  "tag_ids": [4455],
  "duronly": false,
  "at": "2026-08-15T09:00:03+00:00",
  "server_deleted_at": null,
  "user_id": 5551234,
  "uid": 5551234,
  "wid": 1234567,
  "pid": 987654,
  "_trigger": "toggl_polling",
  "_timestamp": "2026-08-15T09:01:00.000Z"
}
```

- `duration` — the entry length in seconds; a negative value means the entry is still running.
- `stop` — `null` while the entry is running.
- `at` — when Toggl last changed the entry.
- `uid`, `wid`, `pid` — Toggl's legacy aliases for `user_id`, `workspace_id` and `project_id`.
- `_trigger` — always `toggl_polling`.
- `_timestamp` — when the poll that produced the item ran.

Reference entry data downstream by expression, e.g. `{{ $json.description }}`.

## Usage Examples

- Start a workflow when a new time entry is logged in Toggl
- Monitor Toggl for completed time entries and sync to a spreadsheet
- Trigger an invoice update when time is tracked against a project
- Send a notification when a new billable time entry is created

## Example Configuration

Check for new time entries every minute:

```json
{
  "type": "toggl_trigger",
  "parameters": {
    "event": "newTimeEntry",
    "pollInterval": 1,
    "pollIntervalUnit": "minutes"
  }
}
```

Check hourly to keep API usage low:

```json
{
  "type": "toggl_trigger",
  "parameters": {
    "event": "newTimeEntry",
    "pollInterval": 1,
    "pollIntervalUnit": "hours"
  }
}
```

### Trigger Behavior

- **Activation:** Polling starts when the workflow is activated. There is no poll at the moment of activation — the first check runs one full interval later.
- **Schedule:** The trigger polls for new data based on the configured polling interval.
- **State:** Maintains internal state (the timestamp of the last check) so each poll returns only entries recorded since then.
- **First Run:** The first poll records the current position and returns no items, so activating the workflow never replays existing time entries.
- **Testing:** Running the node from the editor emits a single sample time entry so you can build the rest of the workflow; real entries arrive only while the workflow is activated.

## Tips

Connect your Toggl account using your email and password. The trigger will poll the Toggl Track API at the configured interval and return any new time entries created since the last check. On first activation it establishes a baseline and will only trigger on entries created afterward.

### Notes

- The trigger watches the entries of the authenticated Toggl user across their workspaces; it does not report other team members' time.
- The time window advances only after a successful API call, so a failed poll retries the same window on the next tick rather than skipping entries.