> For the complete documentation index, see llms.txt.
Skip to main content

Check out Port for yourself ➜ 

Respond to New Relic alerts

Implement with AI

Send this guide to your coding agent.

Prerequisite: Install Port MCP

This guide demonstrates how to respond to New Relic alerts by creating Jira issues or PagerDuty incidents through Port using workflows. Each workflow uses a webhook node that calls the target API directly, so no backend pipeline is required.

The PagerDuty response path filters the service picker to services connected to PagerDuty and routes the incident with New Relic alert context.

Common use cases

  • Turn a New Relic alert into a Jira bug with the alert description, link, and reporting user attached.
  • Open a PagerDuty incident from a New Relic alert and notify the on-call responder.
  • Give responders a governed, one-click way to act on alerts without leaving Port.
  • Keep alert response context connected to the affected service in your context lake.

Prerequisites

To create Jira issues, you also need:

  • Access to your Jira organization with permission to create issues.
  • A Jira API token with permission to create issues.
  • Port's Jira integration, or the ability to create the Jira issue blueprint manually.

Set up data model

The New Relic, Jira, and PagerDuty integrations create their respective blueprints automatically. If you do not install one of these integrations, use the relevant steps below to create its blueprints manually.

Create the New Relic alert blueprint

  1. Go to the Data model page in Port.

  2. Click on + Blueprint.

  3. Click on Edit JSON.

  4. Copy and paste the following JSON configuration into the editor:

    New Relic alert blueprint (click to expand)
    {
    "identifier": "newRelicAlert",
    "description": "This blueprint represents a New Relic alert in our context lake",
    "title": "New Relic Alert",
    "icon": "NewRelic",
    "ownership": {
    "type": "Inherited",
    "title": "Owning Teams",
    "path": "alert_to_workload.service"
    },
    "schema": {
    "properties": {
    "priority": {
    "type": "string",
    "title": "Priority",
    "enum": [
    "CRITICAL",
    "HIGH",
    "MEDIUM",
    "LOW"
    ],
    "enumColors": {
    "CRITICAL": "red",
    "HIGH": "red",
    "MEDIUM": "yellow",
    "LOW": "green"
    }
    },
    "state": {
    "type": "string",
    "title": "State",
    "enum": [
    "ACTIVATED",
    "CLOSED",
    "CREATED"
    ],
    "enumColors": {
    "ACTIVATED": "yellow",
    "CLOSED": "green",
    "CREATED": "lightGray"
    }
    },
    "sources": {
    "type": "array",
    "items": {
    "type": "string"
    },
    "title": "Sources"
    },
    "alertPolicyNames": {
    "type": "array",
    "items": {
    "type": "string"
    },
    "title": "Alert Policy Names"
    },
    "conditionName": {
    "type": "array",
    "items": {
    "type": "string"
    },
    "title": "Condition Name"
    },
    "link": {
    "type": "string",
    "title": "Link",
    "format": "url"
    },
    "description": {
    "type": "string",
    "title": "Description"
    },
    "activatedAt": {
    "type": "string",
    "title": "Activated at",
    "format": "date-time"
    }
    },
    "required": []
    },
    "mirrorProperties": {
    "cloud_resource_name": {
    "title": "Cloud Resource",
    "path": "cloud_resource.$title"
    },
    "port_service": {
    "title": "Service",
    "path": "alert_to_workload.service.$title"
    },
    "team": {
    "title": "Team",
    "path": "alert_to_workload.service.$team"
    },
    "workload_name": {
    "title": "Workload name",
    "path": "alert_to_workload.$title"
    },
    "pager_duty_service": {
    "title": "PagerDuty service",
    "path": "alert_to_workload.service.pager_duty_service.$identifier"
    }
    },
    "calculationProperties": {},
    "aggregationProperties": {},
    "relations": {
    "alert_to_workload": {
    "title": "Workload",
    "target": "workload",
    "required": false,
    "many": false
    },
    "cloud_resource": {
    "title": "Cloud resource",
    "target": "newRelicCloudResource",
    "required": false,
    "many": false
    }
    }
    }
  5. Click Save to create the blueprint.

Create the Jira issue blueprint

  1. Go to the Data model page in Port.

  2. Click on + Blueprint.

  3. Click on Edit JSON.

  4. Copy and paste the following JSON configuration into the editor:

    Jira issue blueprint (click to expand)
    {
    "identifier": "jiraIssue",
    "title": "Jira Issue",
    "icon": "Jira",
    "schema": {
    "properties": {
    "url": {
    "title": "Issue URL",
    "type": "string",
    "format": "url",
    "description": "URL to the issue in Jira"
    },
    "status": {
    "title": "Status",
    "type": "string",
    "description": "The status of the issue"
    },
    "issueType": {
    "title": "Type",
    "type": "string",
    "description": "The type of the issue"
    },
    "components": {
    "title": "Components",
    "type": "array",
    "description": "The components related to this issue"
    },
    "assignee": {
    "title": "Assignee",
    "type": "string",
    "format": "user",
    "description": "The user assigned to the issue"
    },
    "reporter": {
    "title": "Reporter",
    "type": "string",
    "description": "The user that reported the issue",
    "format": "user"
    },
    "priority": {
    "title": "Priority",
    "type": "string",
    "description": "The priority of the issue"
    },
    "created": {
    "title": "Created at",
    "type": "string",
    "description": "The date and time when the issue was created",
    "format": "date-time"
    },
    "updated": {
    "title": "Updated at",
    "type": "string",
    "description": "The date and time when the issue was updated",
    "format": "date-time"
    }
    }
    },
    "calculationProperties": {},
    "relations": {}
    }
  5. Click Save to create the blueprint.

Create alert response

Choose whether to create a Jira issue or a PagerDuty incident. Each path uses a Port workflow with a webhook node that calls the target API directly.

Create a Jira issue

Use this path to turn a New Relic alert into a Jira bug that includes the alert description, link, and reporting user. The workflow calls Jira's API directly from Port using a webhook node.

Add Port secret

Existing secrets

If you have already installed Port's Jira integration, these secrets should already exist in Port. To view your existing secrets:

  1. Open the Credentials modal.
  2. Click on the Secrets tab.

Add a Base64-encoded Jira credential to Port:

  1. Open the Credentials modal.

  2. Click on the Secrets tab.

  3. Click on + Secret and add JIRA_AUTH. Generate its value by running:

    echo -n "your-email@domain.com:your-api-token" | base64

    Replace your-email@domain.com with the Jira user's email and your-api-token with that user's Jira API token. You only need to regenerate the value when the email or token changes.

Build the workflow

To create the workflow:

  1. Go to the Workflows page in Port.

  2. Click on the + Workflow button in the top-right corner.

  3. In the Name field, enter Report Bug from Newrelic, then click Confirm.

  4. On the editor page, click the see workflow JSON button (the code icon) to open the JSON editor.

  5. Copy and paste the workflow JSON below to replace the example workflow:

    Replace the variable

    Replace <JIRA_ORGANIZATION_URL> with your Jira organization subdomain. For example, use example for https://example.atlassian.net.

    Report a bug from a New Relic alert workflow (click to expand)
    {
    "identifier": "report_a_jira_bug_from_new_relic_alert",
    "title": "Report a bug from New Relic alert",
    "icon": "Jira",
    "description": "Report a Jira bug in Port based on a New Relic alert.",
    "allowAnyoneToViewRuns": true,
    "nodes": [
    {
    "identifier": "trigger",
    "title": "Report Bug from New Relic alert",
    "config": {
    "type": "SELF_SERVE_TRIGGER",
    "userInputs": {
    "properties": {
    "alert": {
    "title": "New Relic alert",
    "description": "The New Relic alert to report",
    "icon": "NewRelic",
    "type": "string",
    "format": "entity",
    "blueprint": "newRelicAlert"
    },
    "project": {
    "title": "Project",
    "description": "The Jira project where the bug will be created",
    "icon": "Jira",
    "type": "string",
    "format": "entity",
    "blueprint": "jiraProject"
    }
    },
    "required": ["alert", "project"],
    "order": ["alert", "project"]
    },
    "contexts": [
    {
    "on": "ENTITY",
    "userInput": "alert"
    }
    ]
    }
    },
    {
    "identifier": "fetch_alert",
    "title": "Fetch New Relic alert",
    "config": {
    "type": "WEBHOOK",
    "url": "https://api.port.io/v1/blueprints/newRelicAlert/entities/{{ .outputs.trigger.alert }}",
    "method": "GET",
    "synchronized": true
    },
    "variables": {
    "title": "{{ .result.response.data.entity.title }}",
    "description": "{{ .result.response.data.entity.properties.description }}",
    "link": "{{ .result.response.data.entity.properties.link }}"
    }
    },
    {
    "identifier": "create_jira_issue",
    "title": "Create Jira issue",
    "config": {
    "type": "WEBHOOK",
    "url": "https://<JIRA_ORGANIZATION_URL>.atlassian.net/rest/api/3/issue",
    "method": "POST",
    "synchronized": true,
    "headers": {
    "Authorization": "Basic {{ .secrets.JIRA_AUTH }}",
    "Content-Type": "application/json"
    },
    "body": {
    "fields": {
    "project": {
    "key": "{{ .outputs.trigger.project }}"
    },
    "summary": "Bug | New Relic | {{ .outputs.fetch_alert.title }}",
    "description": {
    "version": 1,
    "type": "doc",
    "content": [
    {
    "type": "paragraph",
    "content": [
    {
    "type": "text",
    "text": "\nNew Relic description: {{ .outputs.fetch_alert.description }}\n\nNew Relic link: {{ .outputs.fetch_alert.link }}"
    }
    ]
    },
    {
    "type": "paragraph",
    "content": [
    {
    "type": "text",
    "text": "Reported by: {{ .workflowRun.trigger.by.email }}"
    }
    ]
    }
    ]
    },
    "issuetype": {
    "name": "Bug"
    }
    }
    }
    }
    }
    ],
    "connections": [
    {
    "sourceIdentifier": "trigger",
    "targetIdentifier": "fetch_alert"
    },
    {
    "sourceIdentifier": "fetch_alert",
    "targetIdentifier": "create_jira_issue"
    }
    ]
    }
  6. Click Save to create the workflow.

Test the flow

  1. Go to the Self-service page in Port.

  2. Run the Report a bug from New Relic alert workflow.

  3. Select the New Relic alert and the Jira project where you want to create the bug.

  4. Click Execute.

  5. Confirm that the new bug appears in the selected Jira project.