> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sndbox.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Add Gmail Label

> Add or remove message labels. Exact configuration, ports, placement, and execution behavior.

**Node type:** `gmail_add_label` · **Version:** `1` · **Category:** Communication

Add or remove message labels. This node can change external state or produce an external side effect.

## Configuration

| Field            | Type   | Default | What it controls                                                                 |
| ---------------- | ------ | ------- | -------------------------------------------------------------------------------- |
| `credentialId`   | string | `""`    | Reference to a connection stored in the operating-system credential vault.       |
| `messageId`      | string | `""`    | Gmail message or thread ID, usually mapped from a trigger or earlier Gmail node. |
| `addLabelIds`    | array  | `[]`    | Gmail label IDs to add, one per line in the editor.                              |
| `removeLabelIds` | array  | `[]`    | Gmail label IDs to remove, one per line in the editor.                           |

## Workflow JSON

The editor stores this node with the following implemented default configuration:

```json title="Default node configuration" theme={"system"}
{
  "type": "gmail_add_label",
  "version": 1,
  "configuration": {
    "credentialId": "",
    "messageId": "",
    "addLabelIds": [],
    "removeLabelIds": []
  }
}
```

Values may be entered literally or mapped from an earlier compatible output when the inspector exposes a mapping control. See [Variables and data mapping](/workflows/variables-and-data).

## Inputs

This node has no typed ports in this direction.

## Outputs

| Port     | Type  | Required | Description |
| -------- | ----- | -------- | ----------- |
| `result` | `any` | No       | Result      |

## Where it can run

* Desktop local runner
* Paired self-hosted runner
* Hosted runner

## Test and inspect

Use **Test node** in the editor to preview this step with the current configuration. A full run records resolved inputs, outputs, logs, duration, and any artifacts in the execution inspector. Side-effecting or destructive nodes can require an additional confirmation or approved workflow permission.
