Integrations

ServiceNow AppDynamics Integration Guide

intermediateHTTP Basic Authentication with AppDynamics username and passwordAppDynamics

The ServiceNow AppDynamics integration enables automated incident management by transforming application performance alerts into structured ServiceNow incidents with enriched topology data. This bi-directional integration helps IT operations teams reduce mean time to resolution by automatically correlating performance issues with business services and routing incidents to appropriate teams based on configurable policies. Organizations use this integration to bridge the gap between application monitoring and IT service management, ensuring critical performance degradations trigger immediate remediation workflows. The integration primarily flows data from AppDynamics to ServiceNow through REST API calls triggered by AppDynamics policy violations, health rule violations, and anomaly detection events. Incidents are automatically created in the Incident Management module with contextual application topology information, while ServiceNow can also query AppDynamics for real-time performance metrics through the Integration Hub AppDynamics spoke.

Prerequisites

  • ServiceNow Quebec or later with Integration Hub Professional license
  • AppDynamics Controller 4.5 or later with API access enabled
  • AppDynamics user account with Administrator role or custom role including Configure Applications, Configure Policies, and Configure HTTP Request Templates permissions
  • ServiceNow user with admin role or custom role including integration_set_credential_value, rest_service, and incident_manager roles
  • Network connectivity from AppDynamics Controller to ServiceNow instance over HTTPS port 443
  • ServiceNow Integration Hub AppDynamics spoke installed from ServiceNow Store
  • Valid SSL certificates configured on both ServiceNow instance and AppDynamics Controller

Architecture Overview

The integration leverages the ServiceNow Integration Hub AppDynamics spoke which provides pre-built Actions for querying application topology, metrics, and health status from AppDynamics Controllers. Authentication is established using HTTP Basic Authentication stored in ServiceNow Connection & Credential Aliases, with the Connection Alias pointing to the AppDynamics Controller REST API endpoint and credentials containing the AppDynamics username and password. Data flows bi-directionally with AppDynamics pushing alerts to ServiceNow via HTTP Request Templates that call ServiceNow Scripted REST APIs, while ServiceNow pulls topology and performance data using the spoke Actions triggered by Flow Designer flows or Business Rules. No MID Server is required since both platforms communicate over standard HTTPS, but organizations with strict network segmentation may route traffic through a MID Server for additional security. AppDynamics API rate limits default to 100 requests per minute per user, while the Integration Hub spoke respects these limits through built-in throttling mechanisms.

Sourdough
Chrome Extension

Sourdough: ServiceNow Monitoring and Analytics

A Chrome extension for ServiceNow Admins and Developers with essential tools, analytics, graphs and monitoring features.

Instance HealthGraphs & ChartsAPI HealthDeveloper ToolsQuick SearchInstance Switcher
Add to Chrome

Free to install. Pro $5/month after a 14-day no-card trial.
Pro requires the ServiceNow admin role. Upgrade inside the extension.

Overview
Tasks
CMDB
API
Metrics
Monitor
Internals
Instance:sourdoughdev·Version:Yokohama
Instance StateONLINE
System StatusFully Operational
Session Timeout90 minutes
Logged-In Sessions2 (20 active)
Build Nameyokohama-12-18-2024_p1
IP Address10.159.128.43
Instance HealthHealth Score: 90%
🔥 5dSourdough (Chrome Plugin)Dark Mode

Implementation Steps

1

Install and configure the AppDynamics spoke in ServiceNow

Navigate to System Applications > All Available Applications > All and search for 'AppDynamics' to locate the official ServiceNow Integration Hub spoke. Click Install and wait for the installation to complete, which typically takes 2-3 minutes. After installation, navigate to Integration Hub > Connections & Credentials > Connection & Credential Aliases to verify the AppDynamics connection alias was created. The spoke provides Actions including Get Application, Get Business Transactions, Get Nodes, Get Metrics, and Get Events for comprehensive AppDynamics data retrieval. Verify the spoke installation by checking that the AppDynamics logo appears in Integration Hub > Action Designer under the Applications section.

2

Create AppDynamics credentials in ServiceNow

Navigate to Connections & Credentials > Credentials and click New to create a new credential record. Set the Name field to 'AppDynamics Controller Credential' and select 'Basic Auth Credentials' as the Type. In the User name field, enter your AppDynamics username, and in the Password field, enter the corresponding AppDynamics password. Ensure the Active checkbox is selected and click Submit to save the credential. Test the credential by navigating to the newly created record and clicking the Test Connection button if available, or verify authentication by attempting to log into the AppDynamics Controller web interface using the same credentials.

3

Configure the AppDynamics connection alias

Navigate to Connections & Credentials > Connection & Credential Aliases and locate the pre-created AppDynamics connection alias from the spoke installation. Click on the connection alias record and update the Connection URL field to point to your AppDynamics Controller, typically in the format 'https://your-controller.saas.appdynamics.com' or 'https://your-controller:8181' for on-premises installations. In the Credential field, select the AppDynamics credential created in the previous step from the dropdown. Verify the connection by scrolling to the Related Links section and clicking Test Connection, which should return a successful authentication response. Save the record and note the Connection Alias name for use in subsequent Flow Designer flows.

4

Create a Scripted REST API to receive AppDynamics webhook data

Navigate to System Web Services > Scripted REST APIs and click New to create a new API. Set the Name to 'AppDynamics Webhook Handler' and API ID to 'appdynamics_webhook', then set the Base API path to '/api/x_snc_appdynamics/webhook'. Create a new HTTP Method by clicking New in the Resources tab, set the HTTP method to POST, Name to 'Create Incident', and Relative path to '/incident'. In the Script field, implement logic to parse the incoming AppDynamics alert payload and create corresponding ServiceNow incidents. Set the Security to 'Require authentication' and assign appropriate ACLs to control access to the webhook endpoint.

ServiceNow Script
(function process(request, response) {
    try {
        var payload = request.body.data;
        var incident = new GlideRecord('incident');
        incident.initialize();
        incident.short_description = payload.displayName || 'AppDynamics Alert';
        incident.description = payload.summaryMessage || '';
        incident.urgency = payload.severity === 'ERROR' ? 1 : 2;
        incident.impact = payload.severity === 'ERROR' ? 1 : 2;
        incident.assignment_group = 'Application Support';
        incident.u_appdynamics_alert_id = payload.id;
        incident.u_application_name = payload.affectedEntityName;
        var sys_id = incident.insert();
        
        response.setStatus(201);
        response.setBody({incident_number: incident.number, sys_id: sys_id});
    } catch (e) {
        response.setStatus(500);
        response.setBody({error: e.getMessage()});
    }
})(request, response);
5

Configure AppDynamics HTTP Request Templates for webhook notifications

Log into your AppDynamics Controller and navigate to Alert & Respond > HTTP Request Templates. Click Create HTTP Request Template and set the Name to 'ServiceNow Incident Creation'. Configure the Request URL to point to your ServiceNow Scripted REST API endpoint created in the previous step, using the format 'https://your-instance.servicenow.com/api/x_snc_appdynamics/webhook/incident'. Set the Method to POST, add Content-Type header with value 'application/json', and configure Basic Authentication using your ServiceNow integration user credentials. In the Payload section, construct a JSON payload that includes relevant AppDynamics variables such as ${displayName}, ${summaryMessage}, ${severity}, ${affectedEntityName}, and ${deepLinkUrl} to provide rich context to ServiceNow incidents.

ServiceNow Script
{
  "displayName": "${displayName}",
  "summaryMessage": "${summaryMessage}",
  "severity": "${severity}",
  "affectedEntityName": "${affectedEntityName}",
  "deepLinkUrl": "${deepLinkUrl}",
  "eventTime": "${eventTime}",
  "applicationName": "${applicationName}",
  "tierName": "${tierName}",
  "nodeName": "${nodeName}",
  "id": "${id}"
}
6

Create AppDynamics policies to trigger ServiceNow incident creation

In the AppDynamics Controller, navigate to Alert & Respond > Policies and click Create Policy. Set the Policy Name to 'Critical Application Issues - ServiceNow Integration' and configure triggers based on Health Rule violations, Business Transaction performance degradation, or Error Rate spikes. In the Actions section, add the HTTP Request Template created in the previous step and configure it to execute when the policy conditions are met. Set appropriate execution frequency limits to prevent alert flooding, typically limiting to once every 10 minutes per application. Enable the policy and assign it to relevant applications that should trigger ServiceNow incident creation, ensuring proper scope and coverage for your monitoring requirements.

7

Create Flow Designer flows for incident enrichment

Navigate to Process Automation > Flow Designer and create a new flow triggered by 'Record Inserted' on the Incident table with condition 'AppDynamics Alert ID is not empty'. Add AppDynamics spoke Actions to enrich the incident with additional topology data such as Get Application Details, Get Business Transactions, and Get Metrics. Configure the flow to update incident fields with relevant AppDynamics data including application topology, dependent services, and current performance metrics. Use the Connection Alias configured earlier and implement error handling to gracefully manage API timeouts or connection failures. Test the flow using the Test button and validate that AppDynamics data is successfully retrieved and populated into incident records.

8

Test the complete integration workflow

Create a test scenario in AppDynamics by temporarily lowering health rule thresholds or using the AppDynamics Event API to simulate a policy violation. Monitor the AppDynamics Controller logs to verify the HTTP Request Template executes successfully and receives a 201 response from ServiceNow. Check the ServiceNow System Logs > System Log > All for any errors related to the Scripted REST API execution. Verify that incidents are created with proper categorization, assignment, and enrichment data from the Flow Designer workflow. Test the bi-directional aspect by using the AppDynamics spoke Actions in Flow Designer to query real-time metrics and validate the connection authentication works correctly.

ServiceNow Script
// Test script to validate AppDynamics connectivity
var flow = new GlideFlowEngine();
var inputs = {};
inputs.connection_alias = 'AppDynamics Connection';
inputs.application_name = 'YourTestApplication';

try {
    var result = flow.startFlow('AppDynamics Application Health Check', inputs);
    gs.info('AppDynamics integration test successful: ' + result);
} catch (e) {
    gs.error('AppDynamics integration test failed: ' + e.getMessage());
}

Common Use Cases

Automated incident creation from application performance alerts

AppDynamics health rule violations and policy alerts automatically create ServiceNow incidents with contextual application topology information. The integration maps AppDynamics severity levels to ServiceNow urgency and impact values, ensuring critical performance issues receive appropriate priority classification. Incidents include deep links back to AppDynamics dashboards, affected business transactions, and server topology data to accelerate troubleshooting. This use case eliminates manual incident creation and ensures no critical application issues are missed during off-hours or high-volume alert periods.

Policy-based incident routing and assignment

Different AppDynamics applications and tiers trigger incident creation with automated assignment to specific ServiceNow groups based on configurable routing rules. Business-critical applications automatically assign incidents to Tier 1 support groups with high priority, while development environment alerts route to application development teams with lower urgency. The integration uses AppDynamics metadata such as application name, tier, and business criticality to determine appropriate ServiceNow assignment groups and escalation paths. This ensures the right teams respond to application issues based on established operational procedures and SLA requirements.

Real-time performance data enrichment in ServiceNow

ServiceNow incidents automatically populate with current AppDynamics performance metrics, error rates, and throughput data through Integration Hub spoke Actions triggered by Flow Designer. Support agents can view live application performance directly within ServiceNow incident records without switching between monitoring tools. The integration refreshes performance data periodically during incident lifecycle, providing ongoing context for troubleshooting and resolution validation. This enrichment includes application dependencies, infrastructure mapping, and business transaction performance to give complete operational visibility within ServiceNow.

Bi-directional status synchronization

ServiceNow incident resolution automatically triggers AppDynamics actions such as annotation creation, maintenance window scheduling, or alert suppression through outbound Integration Hub flows. When ServiceNow incidents are resolved, the integration can mark corresponding AppDynamics events as acknowledged and add resolution notes to AppDynamics event timelines. This creates a complete audit trail linking application performance issues to IT service management resolution activities. The synchronization ensures both platforms maintain consistent state information and provides comprehensive reporting across monitoring and ITSM domains.

Change management integration with deployment tracking

ServiceNow change records automatically query AppDynamics for pre and post-deployment performance baselines to validate change success and identify performance regressions. The integration compares key performance indicators before and after change implementation windows, automatically creating incidents if performance degrades beyond acceptable thresholds. AppDynamics deployment markers synchronize with ServiceNow change schedules to provide correlation between code releases and application performance impacts. This use case enables proactive change risk assessment and rapid rollback decision-making based on real-time application performance data.

Troubleshooting

HTTP 401 Unauthorized error when AppDynamics calls ServiceNow webhook

Verify the ServiceNow user credentials configured in the AppDynamics HTTP Request Template have the necessary roles including rest_service and integration_user. Check the ServiceNow System Log for authentication failures and ensure the user account is active and not locked. Navigate to System Security > High Security Settings and verify that REST API access is enabled for the integration user. Test the webhook endpoint directly using a REST client like Postman to isolate authentication issues from the AppDynamics configuration.

AppDynamics spoke Actions fail with connection timeout errors

Check the Connection & Credential Alias configuration to ensure the AppDynamics Controller URL is accessible from ServiceNow and includes the correct port number (typically 8181 for on-premises or 443 for SaaS). Verify network connectivity by testing the URL from a ServiceNow system property or MID Server if network segmentation requires it. Review the AppDynamics Controller's REST API limits and ensure the integration user has sufficient API quota available. Increase the timeout values in the Integration Hub spoke Action configurations if the AppDynamics Controller is consistently slow to respond.

Incidents created from AppDynamics alerts missing custom field data

Review the Scripted REST API payload parsing logic to ensure all required AppDynamics variables are correctly mapped to ServiceNow incident fields. Check the AppDynamics HTTP Request Template payload configuration and verify that variables like ${displayName} and ${affectedEntityName} are properly formatted and contain expected data. Use gs.log() statements in the Scripted REST API to debug incoming payload structure and identify missing or malformed data elements. Validate that custom ServiceNow fields referenced in the script exist and have proper write permissions for the integration user.

Flow Designer workflows for incident enrichment not triggering

Verify the Flow Designer trigger conditions match the actual incident data being created, particularly checking that the AppDynamics Alert ID field is populated and the trigger condition logic is correct. Review the Flow execution history in Process Automation > My Executions to identify failed or skipped flow instances and examine error messages. Check that the ServiceNow user executing the flow has necessary roles for both Flow Designer execution and AppDynamics spoke Action permissions. Ensure the incident table trigger is active and not disabled by other system configurations or business rules that might interfere with flow execution.

AppDynamics policy notifications not reaching ServiceNow despite policy execution

Check the AppDynamics Controller notification logs in Settings > Notification > Logs to verify HTTP Request Template execution and identify any HTTP errors or response codes from ServiceNow. Validate the HTTP Request Template URL configuration points to the correct ServiceNow instance and Scripted REST API endpoint with proper HTTPS protocol. Review AppDynamics policy execution frequency settings to ensure notifications are not being suppressed due to throttling or duplicate detection logic. Test the HTTP Request Template independently using the Test button in AppDynamics to isolate policy execution issues from HTTP delivery problems.

ServiceNow incidents contain incorrect urgency and impact values from AppDynamics alerts

Review the mapping logic in the Scripted REST API that translates AppDynamics severity levels to ServiceNow urgency and impact values, ensuring the conditional statements handle all possible severity values including ERROR, WARN, and INFO. Check the AppDynamics policy configuration to verify it's sending the expected severity values in the webhook payload. Update the incident creation logic to include default values for cases where AppDynamics severity data is missing or malformed. Test the mapping with various AppDynamics alert types to validate consistent priority assignment across different policy violation scenarios.

Pro Tips

  • Implement incident deduplication logic in your Scripted REST API by checking for existing incidents with the same AppDynamics Alert ID before creating new records. Use GlideRecord queries with indexed fields to prevent duplicate incidents from rapid-fire AppDynamics policy executions. This prevents alert storms from overwhelming ServiceNow with redundant incident records.
  • Configure AppDynamics HTTP Request Template payload to include the ${deepLinkUrl} variable and map it to a ServiceNow URL field for one-click navigation from incidents back to AppDynamics dashboards. This dramatically improves troubleshooting efficiency by providing instant context switching between ITSM and monitoring tools.
  • Use ServiceNow Transform Maps instead of Scripted REST APIs for high-volume AppDynamics integrations to improve performance and maintainability. Configure the transform map to handle AppDynamics webhook payloads and leverage built-in error handling, field mapping, and data validation capabilities.
  • Implement circuit breaker patterns in Flow Designer workflows that query AppDynamics APIs by adding conditional logic to skip API calls when previous calls have failed consecutively. This prevents integration failures from cascading and impacting ServiceNow performance during AppDynamics maintenance windows.
  • Create custom ServiceNow reports that correlate AppDynamics incident volume with change management activities by joining incident and change request tables on time-based criteria. This provides valuable insights into application stability trends and change success rates.
  • Configure AppDynamics Business Journey monitoring integration with ServiceNow to automatically create major incidents when end-user experience degrades across multiple applications. Use the AppDynamics spoke to query Business Journey health and implement sophisticated correlation rules in Flow Designer.

Known Limitations

  • AppDynamics Controller API rate limits restrict spoke Actions to 100 requests per minute per user, which may cause throttling during high-volume incident creation or bulk data enrichment scenarios. Consider implementing queuing mechanisms or staggered API calls for large-scale integrations. The Integration Hub AppDynamics spoke does not include built-in retry logic for rate-limited requests.
  • The ServiceNow Integration Hub AppDynamics spoke requires Professional or Enterprise Integration Hub licensing and is not available with Starter licenses. Organizations with Starter licenses must implement custom REST integrations using Scripted REST APIs and RESTMessageV2 classes. The spoke also requires quarterly updates to maintain compatibility with AppDynamics Controller API changes.
  • Real-time performance data synchronization between AppDynamics and ServiceNow introduces latency of 2-5 minutes depending on polling frequency and API response times. Critical alerts requiring immediate response should use AppDynamics native notification channels in addition to ServiceNow integration. The spoke Actions do not support streaming data or WebSocket connections for true real-time updates.
  • AppDynamics webhook payloads have a maximum size limit of 1MB, which may truncate large application topology or metric datasets when sent to ServiceNow. Complex application environments with extensive dependency mapping may require multiple API calls or filtered data sets to stay within payload limits. Custom field mapping may be required for AppDynamics installations with non-standard configuration schemas.

Frequently Asked Questions

Can the AppDynamics integration automatically resolve ServiceNow incidents when application performance returns to normal?

Yes, you can configure bidirectional resolution by creating AppDynamics policies that trigger when health rules return to normal states and call ServiceNow REST APIs to update incident status. Use AppDynamics HTTP Request Templates with different triggers for both violation and resolution events. Implement logic in your ServiceNow Scripted REST API to handle resolution payloads and update existing incidents based on the AppDynamics Alert ID. Consider adding validation to ensure incidents are only auto-resolved if no manual troubleshooting activities are in progress.

How do I prevent alert storms from AppDynamics from creating hundreds of ServiceNow incidents?

Implement deduplication logic in your ServiceNow Scripted REST API that checks for existing open incidents with the same AppDynamics application and alert type before creating new records. Configure AppDynamics policy execution frequency to limit notifications to once every 10-15 minutes per application. Use AppDynamics policy conditions that require sustained violations rather than single threshold breaches. Additionally, implement incident correlation rules in ServiceNow to automatically link related AppDynamics alerts to parent incidents rather than creating separate records.

What AppDynamics permissions are required for the ServiceNow integration user account?

The AppDynamics integration user needs Administrator role or a custom role with specific permissions including Configure Applications, Configure Policies, Configure HTTP Request Templates, and View Application Data. For spoke Actions that query metrics and topology, the user requires View Business Transactions, View Nodes, View Backends, and View Service Endpoints permissions. If implementing bidirectional integration, add permissions for Create Events and Update Events to allow ServiceNow to write data back to AppDynamics. Avoid using the built-in admin account for integrations and create a dedicated service account with minimal required permissions.

How can I customize incident assignment based on different AppDynamics applications?

Create assignment rules in your ServiceNow Scripted REST API or Flow Designer workflows that map AppDynamics application names to specific ServiceNow assignment groups. Use switch statements or lookup tables stored in ServiceNow custom tables to maintain the application-to-group mappings. Configure the AppDynamics HTTP Request Template payload to include application metadata such as business unit, criticality level, or support tier. Implement conditional logic that considers multiple factors including application name, severity level, and time of day to determine appropriate assignment and escalation paths.

Can I integrate AppDynamics with ServiceNow CMDB to automatically update configuration items?

Yes, use the AppDynamics spoke Actions to query application topology, node details, and backend connections, then update corresponding ServiceNow CMDB records through Flow Designer workflows. Configure scheduled flows that periodically synchronize AppDynamics discovered infrastructure with ServiceNow Configuration Items in the cmdb_ci_appl_* tables. Map AppDynamics entities like applications, tiers, nodes, and backends to appropriate ServiceNow CI classes. Implement change detection logic to only update CMDB records when AppDynamics topology changes occur, and maintain relationships between CIs based on AppDynamics dependency mapping.

What happens if the AppDynamics Controller is unreachable when ServiceNow tries to enrich incident data?

The Integration Hub AppDynamics spoke Actions will timeout after the configured timeout period (default 30 seconds) and return error responses that can be handled in Flow Designer error handling paths. Implement try-catch logic in custom scripts or conditional paths in flows to gracefully handle connection failures and continue incident processing without AppDynamics enrichment. Consider storing essential AppDynamics data locally in ServiceNow custom tables during successful API calls to use as fallback data during outages. Configure retry mechanisms with exponential backoff to attempt reconnection without overwhelming the AppDynamics Controller during recovery.

How do I track the performance and reliability of the AppDynamics-ServiceNow integration itself?

Create ServiceNow Performance Analytics dashboards that track integration metrics such as incident creation volume, API call success rates, and response times from AppDynamics spoke Actions. Use Flow Designer execution logs and ServiceNow System Log entries to monitor integration health and identify performance bottlenecks. Implement custom logging in Scripted REST APIs to track webhook payload processing times and error rates. Set up ServiceNow Event Management rules that create events when integration failures exceed acceptable thresholds, and configure AppDynamics monitoring of your ServiceNow instance endpoints to ensure bidirectional visibility.

Test Your Knowledge

Quick 3-question quiz — see how your ServiceNow skills stack up.

Question 1 of 3Performance

A list view on a table with millions of records is slow. Best fix?

Select an answer to continue