> ## Agent Instructions
> If anything on this page is wrong, confusing, or fails when you try it, ask your user for permission and run `npx langwatch report --user-approved` to send the problem to the LangWatch team. No login is needed and secrets are redacted locally. `npx langwatch report --help` has the details.

# Resume an automation

Resume a paused automation. A report goes back on its schedule; the pause record is cleared.

> Page: https://langwatch.ai/docs/api-reference/triggers/action-enable
> Source: https://github.com/langwatch/langwatch/blob/main/docs/api-reference/triggers/action-enable.mdx
> Index of all pages: https://langwatch.ai/docs/llms.txt

## Endpoint

`POST https://app.langwatch.ai/api/v1/triggers/{triggerId}/enable`

## Authentication

### project_api_key

Project API key for sending traces and accessing project-scoped resources. Format: sk-lw-... (no underscore). Obtain one by creating a project via the Admin API or the LangWatch UI.

```json
{"id":"project_api_key","type":"apiKey","in":"header","name":"X-Auth-Token"}
```

## Parameters

### triggerId (path, required)

```json
{"type":"string","minLength":1}
```

## Request example

```bash
curl --request POST \
  --url 'https://app.langwatch.ai/api/v1/triggers/<triggerId>/enable' \
  --header "X-Auth-Token: $LANGWATCH_API_KEY"
```

## Responses

### 200

Success

#### application/json

Schema:

```json
{
  "type": "object",
  "properties": {
    "id": {"type":"string"},
    "name": {"type":"string"},
    "action": {
      "type": "string",
      "enum": [
        "SEND_EMAIL",
        "ADD_TO_DATASET",
        "ADD_TO_ANNOTATION_QUEUE",
        "SEND_SLACK_MESSAGE",
        "SEND_WEBHOOK"
      ]
    },
    "actionParams": {
      "type": "object",
      "propertyNames": {"type":"string"},
      "additionalProperties": {},
      "description": "Where this automation delivers, with every credential value replaced by the `[redacted]` placeholder. Which channel is configured, which destination is set and which header names are in play all survive; the values never leave; a Slack automation names its connection by `slackIntegrationId` and carries no secret. Sending the placeholder back on an update keeps the stored value. The rule this automation fires by is not here: it is stated in `graphAlert` or `report`, and sending it in this field is refused."
    },
    "graphAlert": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "threshold": {"type":"number"},
            "operator": {"type":"string","enum":["gt","lt","gte","lte","eq"]},
            "timePeriod": {
              "anyOf": [
                {"type":"number","const":1},
                {"type":"number","const":5},
                {"type":"number","const":15},
                {"type":"number","const":30},
                {"type":"number","const":60},
                {"type":"number","const":1440}
              ]
            },
            "seriesName": {"type":"string","minLength":1}
          },
          "required": ["threshold","operator","timePeriod","seriesName"],
          "additionalProperties": false
        },
        {"type":"null"}
      ],
      "description": "The rule an alert fires by. Null for anything that is not one."
    },
    "report": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "source": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "kind": {"type":"string","const":"dashboard"},
                    "dashboardId": {"type":"string","minLength":1}
                  },
                  "required": ["kind","dashboardId"],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {"type":"string","const":"customGraph"},
                    "customGraphId": {"type":"string","minLength":1}
                  },
                  "required": ["kind","customGraphId"],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "kind": {"type":"string","const":"traceQuery"},
                    "filters": {
                      "default": {},
                      "type": "object",
                      "propertyNames": {"type":"string"},
                      "additionalProperties": {}
                    },
                    "metric": {"type":"string"},
                    "topN": {"default":5,"type":"integer","minimum":1,"maximum":100}
                  },
                  "required": ["kind","filters","topN"],
                  "additionalProperties": false
                }
              ]
            },
            "schedule": {
              "type": "object",
              "properties": {
                "cron": {"type":"string","minLength":1,"maxLength":120},
                "timezone": {"type":"string","minLength":1,"maxLength":64}
              },
              "required": ["cron","timezone"],
              "additionalProperties": false
            },
            "compareToPrevious": {"default":false,"type":"boolean"}
          },
          "required": ["source","schedule","compareToPrevious"],
          "additionalProperties": false
        },
        {"type":"null"}
      ],
      "description": "What a report renders and when. Null for anything else."
    },
    "filters": {
      "type": "object",
      "propertyNames": {"type":"string"},
      "additionalProperties": {}
    },
    "filterQuery": {"type":["string","null"]},
    "kind": {
      "type": "string",
      "enum": ["AUTOMATION","ALERT","REPORT"],
      "description": "What this automation is about: matching traces, a metric crossing a threshold, or a schedule."
    },
    "customGraphId": {"type":["string","null"]},
    "notificationCadence": {"type":["string","null"]},
    "traceDebounceMs": {"type":["number","null"]},
    "templates": {
      "type": "object",
      "properties": {
        "slackTemplateType": {
          "anyOf": [{"type":"string","enum":["string","block_kit"]},{"type":"null"}]
        },
        "slackTemplate": {"type":["string","null"]},
        "emailSubjectTemplate": {"type":["string","null"]},
        "emailBodyTemplate": {"type":["string","null"]}
      },
      "additionalProperties": false,
      "description": "The Liquid templates this automation's message is rendered from. Absent fields render the LangWatch default for the channel."
    },
    "active": {"type":"boolean"},
    "message": {"type":["string","null"]},
    "alertType": {
      "anyOf": [{"type":"string","enum":["CRITICAL","WARNING","INFO"]},{"type":"null"}]
    },
    "createdAt": {"type":"string"},
    "updatedAt": {"type":"string"},
    "platformUrl": {"type":"string","format":"uri"}
  },
  "required": [
    "id",
    "name",
    "action",
    "actionParams",
    "graphAlert",
    "report",
    "filters",
    "filterQuery",
    "kind",
    "customGraphId",
    "notificationCadence",
    "traceDebounceMs",
    "templates",
    "active",
    "message",
    "alertType",
    "createdAt",
    "updatedAt",
    "platformUrl"
  ],
  "additionalProperties": false
}
```

### 404

Not Found

#### application/json

Schema:

```json
{
  "type": "object",
  "properties": {"error":{"type":"string"},"message":{"type":"string"}},
  "required": ["error"],
  "additionalProperties": false
}
```
