Edwin AI ThousandEyes Integration
Last updated on 17 July, 2025The LogicMonitor Edwin AI ThousandEyes Integration enables Edwin AI to receive alert events from your ThousandEyes environment in real time using custom webhooks. This facilitates automated response, alert enrichment, and cross-platform incident correlation.
This integration supports structured JSON payloads using the Edwin Common Event Format (CEF) and can be configured to enrich event data with test metrics, rule metadata, and more.
Setting up the Edwin AI ThousandEyes integration involves the following:
- Installing and configuring a custom webhook integration in ThousandEyes
- Assigning webhooks to alert rules
- Using enrichments in webhook payload for custom data
All setup actions are explicitly required, and Edwin AI cannot process data until configurations are completed.
Requirements for Configuring Edwin AI ThousandEyes Integration
To configure your Edwin AI ThousandEyes Integration, you need the following:
- Access to the Integrations page in your ThousandEyes account
- An Edwin AI Client ID and Client Secret, provided by your Edwin AI administrator
Installing and Configuring the Webhook Integration in ThousandEyes
- In ThousandEyes, navigate to Integrations > New Integration.
- Select Custom Webhook, from the Integration Type.
- Select “OAuth Client Credentials”from the Auth Type dropdown menu.
- Configure the OAuth2.0 Authentication by doing the following:
- In the Name field, enter “Edwin AI”
- In the URL field, enter the following URL: “
https://<accountname>.dexda.ai/integration/event/v1"
- In the Token URL field, enter the following URL: “
https://<accountname>.dexda.ai/auth/token"
- In the Client ID field, enter the following: “
<client_id>
.” - In the Client Secret field, enter the following: “
<client_secret>
.”
- In the Body field of the integration, enter the following Edwin CEF-formatted JSON payload:
[
{
"cef" : {
{{#if alert.targets.size}}
"eventCi": "{{#each alert.targets}}{{description}}{{#unless @last}}, {{/unless}}{{/each}}",
{{else}}
"eventCi" : "",
{{/if}}
"eventObject" : "{{alert.test.name}}",
"eventName" : "{{alert.rule.name}}",
"eventDescription" : "{{formatExpression alert.rule.expression}}",
{{#if alert.details.size}}
"eventDetails": "{{#each alert.details}}{{source.name}}: {{metricsAtStart}} - {{metricsAtEnd}} {{#unless @last}}, {{/unless}}{{/each}}",
{{else}}
"eventDetails" : "",
{{/if}}
{{#if (eq type.id 1)}}
"eventSeverity": 0,
{{else}}
{{#if (eq alert.severity.id "INFO")}}
"eventSeverity": 1,
{{/if}}
{{#if (eq alert.severity.id "MINOR")}}
"eventSeverity": 2,
{{/if}}
{{#if (eq alert.severity.id "MAJOR")}}
"eventSeverity": 3,
{{/if}}
{{#if (eq alert.severity.id "CRITICAL")}}
"eventSeverity": 4,
{{/if}}
{{/if}}
"eventId": "{{id}}",
"eventTimestamp" : {{alert.firstSeen.epochMilli}},
"eventSourceIdLink": "https://app.thousandeyes.com/alerts/list/?__a={{alert.rule.account.id}}&alertId={{alert.id}}",
"eventSourceId" : "{{alert.id}}",
"eventSource": "ThousandEyes",
"sourceRecord": {},
"class": "event",
"version": "1.1",
"eventDomain" : ""
},
"enrichments": {}
}
]
This payload dynamically maps ThousandEyes alert data to the Edwin AI CEF structure.
For more information, see Event Records.
Important: When using the Test button in ThousandEyes, remove the following line from the payload:”eventId": "{{id}}
”
The test payload uses an invalid id value of “0”, which fails UID validation. After testing is complete, re-add the eventId field to map ThousandEyes-generated UIDs.
For more information on testing webhooks, see Testing a Webhook from ThousandEyes.
Assigning Webhooks to Alert Rules
- In ThousandEyes, navigate to Manage > Integrations.
- Select your Edwin AI Webhook, then select Manage Alert Rules from the ellipsis dropdown menu.
- Select an existing rule or create a new one. For more information, see Creating and Editing Alert Rules from ThousandEyes.
- Select Save.
For more information, see Attaching Alert Rules to Your Webhook from ThousandEyes.
Note: You must assign a webhook to every alert rule you want to send to Edwin AI.
Using Enrichments in Webhook Payload
You can use templating logic and enrichments in the JSON payload to control behavior and surface contextual data in Edwin AI. These enrichment fields will display in the Edwin AI interface and can be used to automate triage, assignment, or correlation.
The following JSON snippet illustrates how the enrichment displays in the payload:
"enrichments": {
"test_id": "{{alert.test.id}}",
"test_type": "{{alert.test.type}}",
"assignment_group": "network_support"
}