This page shows common automation scenarios you can build with Workflow Automation. Use these examples as starting points for your own workflows, or explore the template library for ready-to-deploy solutions.
Incident response and remediation
API gateway rollback
Revert API gateway configs to a previous state so you can fix errors and misconfigurations.
What this workflow does:
- Detects recent deployments related to an issue using New Relic change tracking
- Sends Slack notifications with approval buttons (:+1: or :-1:)
- After approval, creates an AWS Systems Manager document to automate the rollback
- Rolls back the API Gateway integration to the previous Lambda version
- Creates a new deployment to apply the rollback
- Sends success or failure notifications to Slack
- Cleans up the SSM document after completion
Requirements:
- AWS credentials with permissions for API Gateway and Systems Manager
- A configured Slack app for receiving notifications and approvals
- New Relic entity monitoring with change tracking
Key actions: newrelic.nerdgraph.execute, slack.chat.postMessage, slack.chat.getReactions, aws.systemsManager.writeDocument, aws.systemsManager.startAutomation, aws.systemsManager.waitForAutomationStatus, aws.systemsManager.deleteDocument
EC2 instance management
Automate provisioning, scaling, and termination of EC2 instances for optimal performance and cost.
What this workflow does:
- Receives high CPU utilization alerts from New Relic
- Retrieves alert details and identifies the impacted EC2 instance
- Sends Slack notification with instance details and requests approval for resizing
- After approval, creates an SSM document to automate instance resizing
- Stops the instance, modifies the instance type, and restarts it
- Sends progress updates to Slack during the resizing process
- Waits for completion and sends success or failure status
- Cleans up the SSM document and sends final confirmation
Requirements:
- AWS credentials with permissions for EC2 and Systems Manager
- An active New Relic alert condition for EC2 metrics
- A configured Slack app for receiving notifications and approvals
Key actions: newrelic.nerdgraph.execute, newrelic.nrdb.query, slack.chat.postMessage, slack.chat.getReactions, aws.systemsManager.writeDocument, aws.systemsManager.startAutomation, aws.systemsManager.waitForAutomationStatus, aws.systemsManager.deleteDocument, utils.datetime.fromEpoch, utils.uuid.generate
Deployment rollback
Rollback deployment if entity becomes unhealthy and notify with either AWS SQS or HTTP.
What this workflow does:
- Monitors an entity's alert severity for a specified duration (default 30 minutes)
- Checks entity health every minute
- If entity becomes CRITICAL or WARNING, logs the unhealthy status
- Sends rollback notifications via AWS SQS (if configured) with entity details
- Sends rollback notifications via HTTP webhook (if configured)
- If entity remains healthy for the full duration, logs success
- Stops monitoring if entity is not found
Requirements:
- New Relic entity with alert severity monitoring
- (Optional) AWS SQS queue and role to receive rollback notifications
- (Optional) HTTP endpoint to receive rollback notification
Key actions: newrelic.nerdgraph.execute, newrelic.ingest.sendLogs, aws.execute.api (sqs.send_message), http.post
Data processing and reporting
Send a report to Slack
Send a NRQL query output as a CSV file on Slack.
What this workflow does:
- Executes a NRQL query against specified New Relic account(s)
- Generates a CSV file from the query results
- Posts the CSV file to a specified Slack channel with a message
Requirements:
- A New Relic credential and a functional NRQL query
- A configured Slack app with a token and a target channel
Key actions: newrelic.nrdb.query, utils.transform.toCSV, slack.chat.postMessage
JSON Parsing
Parses the New Relic public status API JSON (HTTP) and optionally logs operational and non-operational components.
What this workflow does:
- Fetches JSON data from the New Relic status API
- Extracts and categorizes components by their operational status
- Conditionally logs operational components (if enabled)
- Conditionally logs non-operational components (if enabled)
- Handles HTTP errors and logs error messages
Requirements:
- Access to the New Relic status API (summary.json)
- Permissions to send logs via newrelic.ingest.sendLogs
Key actions: http.get, newrelic.ingest.sendLogs
Available template workflows
The templates listed above are available directly in the New Relic Workflow Automation UI. To access them:
- Go to one.newrelic.com > All Capabilities > Workflow Automation
- Click Create workflow
- Select Use a template
- Browse the template library and choose a workflow that matches your use case
Each template includes:
- Pre-configured workflow steps and logic
- Example input parameters
- Required credentials and integrations
- Documentation of expected outcomes
You can use templates as-is or customize them to fit your specific requirements.
Passing data between steps
All workflows can reference outputs from previous steps using template syntax. This allows you to chain together actions and build complex automation logic.
Basic data passing
steps: - name: getAlert action: newrelic.nerdgraph.execute inputs: query: | { actor { account(id: 123456) { alerts { violation(id: 789) { condition entity { name guid } } } } } }
- name: sendToSlack action: slack.chat.postMessage inputs: channel: "#incidents" text: "Alert: ${{ .steps.getAlert.outputs.data.actor.account.alerts.violation.condition }}"Using data in loops
steps: - name: listInstances type: action action: aws.ec2.describeInstances version: 1 inputs: filters: - name: "tag:Environment" values: ["production"]
- name: checkEachInstance type: loop for: in: "${{ .steps.listInstances.outputs.reservations }}" steps: - name: getInstanceMetrics type: action action: newrelic.nerdgraph.execute version: 1 inputs: query: "SELECT average(cpuPercent) FROM SystemSample WHERE instanceId = '${{ .steps.checkEachInstance.loop.element.instanceId }}'"Conditional logic with data
steps: - name: checkCPU type: action action: newrelic.nerdgraph.execute version: 1 # ... query configuration
- name: decideAction type: switch switch: - condition: "${{ .steps.checkCPU.outputs.data.actor.account.nrql.results[0].average > 90 }}" next: resizeInstance - condition: "${{ .steps.checkCPU.outputs.data.actor.account.nrql.results[0].average > 70 }}" next: sendWarning next: normalOperation
- name: resizeInstance type: action action: aws.ec2.modifyInstanceAttribute version: 1 # ... resize configuration
- name: sendWarning type: action action: slack.chat.postMessage version: 1 # ... warning message
- name: normalOperation type: action action: newrelic.ingest.sendLogs version: 1 # ... log normal statusNext steps
- Create your own workflow - Step-by-step guide to building workflows
- Actions catalog - Browse all available actions
- Use a template - Deploy pre-built workflows
- Set up AWS credentials - Configure AWS authentication