import requests
url = "https://app.langwatch.ai/api/triggers/{id}"
payload = {
"name": "<string>",
"customGraphId": "<string>"
}
headers = {
"X-Auth-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-Auth-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>', customGraphId: '<string>'})
};
fetch('https://app.langwatch.ai/api/triggers/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request PATCH \
--url https://app.langwatch.ai/api/triggers/{id} \
--header 'Content-Type: application/json' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"name": "<string>",
"customGraphId": "<string>"
}
'{
"id": "<string>",
"name": "<string>",
"action": "SEND_EMAIL",
"actionParams": {},
"graphAlert": {
"threshold": 123,
"operator": "gt",
"timePeriod": 1,
"seriesName": "<string>"
},
"report": {
"source": {
"kind": "dashboard",
"dashboardId": "<string>"
},
"schedule": {
"cron": "<string>",
"timezone": "<string>"
},
"compareToPrevious": false
},
"filters": {},
"filterQuery": "<string>",
"kind": "AUTOMATION",
"customGraphId": "<string>",
"notificationCadence": "<string>",
"traceDebounceMs": 123,
"templates": {
"slackTemplateType": "string",
"slackTemplate": "<string>",
"emailSubjectTemplate": "<string>",
"emailBodyTemplate": "<string>"
},
"active": true,
"message": "<string>",
"alertType": "CRITICAL",
"createdAt": "<string>",
"updatedAt": "<string>",
"platformUrl": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Update a trigger
Update an automation. Every field is optional and what is left out is left alone, except actionParams, which replaces the delivery configuration as a whole. The delivery channel and an alert’s graph cannot be changed.
import requests
url = "https://app.langwatch.ai/api/triggers/{id}"
payload = {
"name": "<string>",
"customGraphId": "<string>"
}
headers = {
"X-Auth-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-Auth-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>', customGraphId: '<string>'})
};
fetch('https://app.langwatch.ai/api/triggers/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request PATCH \
--url https://app.langwatch.ai/api/triggers/{id} \
--header 'Content-Type: application/json' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"name": "<string>",
"customGraphId": "<string>"
}
'{
"id": "<string>",
"name": "<string>",
"action": "SEND_EMAIL",
"actionParams": {},
"graphAlert": {
"threshold": 123,
"operator": "gt",
"timePeriod": 1,
"seriesName": "<string>"
},
"report": {
"source": {
"kind": "dashboard",
"dashboardId": "<string>"
},
"schedule": {
"cron": "<string>",
"timezone": "<string>"
},
"compareToPrevious": false
},
"filters": {},
"filterQuery": "<string>",
"kind": "AUTOMATION",
"customGraphId": "<string>",
"notificationCadence": "<string>",
"traceDebounceMs": 123,
"templates": {
"slackTemplateType": "string",
"slackTemplate": "<string>",
"emailSubjectTemplate": "<string>",
"emailBodyTemplate": "<string>"
},
"active": true,
"message": "<string>",
"alertType": "CRITICAL",
"createdAt": "<string>",
"updatedAt": "<string>",
"platformUrl": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Authorizations
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.
Path Parameters
Body
1CRITICAL, WARNING, INFO, null Show child attributes
Show child attributes
The trace query this automation is about, in the syntax the traces view uses. When set it supersedes filters.
SEND_EMAIL, ADD_TO_DATASET, ADD_TO_ANNOTATION_QUEUE, SEND_SLACK_MESSAGE, SEND_WEBHOOK The graph this alert watches, which an update cannot change. Accepted so that writing the read response back works; a different graph is refused. Create an alert on the other graph and delete this one.
Replaces the delivery configuration as a whole rather than merging into it: send the fields this automation should have from now on, and anything left out is removed — omit headers and it delivers with none, omit signingSecret and its deliveries are no longer signed. The one exception is a credential the read hid: send back the [redacted] placeholder and the stored credential is kept (a Slack automation not yet on a connection has its stored secret moved into one), so reading an automation, changing one field and writing the whole object back is safe. Only this channel's fields are accepted; anything else is refused rather than dropped, and the rule this automation fires by belongs in graphAlert or report.
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
Show child attributes
Show child attributes
The rule this alert fires by. Only for an automation that is one.
Show child attributes
Show child attributes
What this report renders and when. Only for one that is a report.
Show child attributes
Show child attributes
The Liquid templates this automation's message is rendered from. Absent fields render the LangWatch default for the channel.
Show child attributes
Show child attributes
How often a notification automation is allowed to send. A new one starts on a five-minute digest, which is what keeps a broad condition from sending a message per matching trace.
immediate, 5min_digest, 15min_digest, hourly_digest How long to wait for a trace to settle before the conditions are read.
0 <= x <= 600000Response
Trigger updated
SEND_EMAIL, ADD_TO_DATASET, ADD_TO_ANNOTATION_QUEUE, SEND_SLACK_MESSAGE, SEND_WEBHOOK 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.
Show child attributes
Show child attributes
The rule an alert fires by. Null for anything that is not one.
Show child attributes
Show child attributes
What a report renders and when. Null for anything else.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
What this automation is about: matching traces, a metric crossing a threshold, or a schedule.
AUTOMATION, ALERT, REPORT The Liquid templates this automation's message is rendered from. Absent fields render the LangWatch default for the channel.
Show child attributes
Show child attributes
CRITICAL, WARNING, INFO, null Was this page helpful?