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

Check out Port for yourself ➜ 

Create a Jira issue from a monitoring alert

This guide demonstrates the pattern for automatically creating a Jira issue when a monitoring or security tool raises an alert in Port. The automation triggers when an alert entity is created or its severity changes, then calls the Jira API through a webhook.

This guide uses Datadog as the worked example. The same pattern applies to any tool that syncs alerts into Port - you only swap the source blueprint. See adapt this for other tools at the end of the guide.

Use cases​

  • Automatically create Jira issues from monitoring or security alerts.
  • Track and follow up on incidents from monitoring systems.

Prerequisites​

Set up data model​

For this guide, we will use the data model provided by the Port Datadog integration.

If you haven’t installed the Datadog integration yet, head over to the integration installation page to install it. This will automatically set up the relevant blueprints for you.

Set up automation​

With the integration installed and Datadog alerts ingested into Port, we’ll now set up an automation that is triggered when a Datadog Alert priority changes to high or critical. Alert priorities in Datadog are indicated by integer values from 1 (critical) to 5 (low). This automation will create a Jira issue using the details of the alert.

Follow the steps below to configure the automation:

Add Port secrets

To add these secrets to your portal:

  1. In your Port application, click on your profile picture .

  2. Click on Credentials.

  3. Click on the Secrets tab.

  4. Click on + Secret and add the following secret:

    • JIRA_AUTH - Base64 encoded string of your Jira credentials. Generate this by running:

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

      Replace your-email@domain.com with your Jira email and your-api-token with your Jira API token.

      One time generation

      The base64 encoded string only needs to be generated once and will work for all webhook calls until you change your API token.

Automation backend

  1. Head to the automation page.

  2. Click on the + Automation button.

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

    Create Jira issue from Datadog alert automation (Click to expand)
    Placeholde replacement

    Replace <JIRA_ORGANIZATION_URL> in the webhook URL with your Jira organization URL (e.g., example.atlassian.net).

    Replace <JIRA_PROJECT_NAME> in the webhook body with your Jira project name.

    {
    "identifier": "createJiraIssueFromDatadogAlert",
    "title": "Create Jira Issue from Datadog Alert",
    "description": "Automation to open a Jira issue when a Datadog alert changes from medium to higher priority",
    "trigger": {
    "type": "automation",
    "event": {
    "type": "ENTITY_UPDATED",
    "blueprintIdentifier": "datadogMonitor"
    },
    "condition": {
    "type": "JQ",
    "expressions": [
    ".diff.before.properties.priority | tonumber >= 3",
    ".diff.after.properties.priority | tonumber < 3"
    ],
    "combinator": "and"
    }
    },
    "invocationMethod": {
    "type": "WEBHOOK",
    "url": "https://<JIRA_ORGANIZATION_URL>/rest/api/3/issue",
    "agent": false,
    "synchronized": true,
    "method": "POST",
    "headers": {
    "Authorization": "Basic {{.secrets.JIRA_AUTH}}",
    "Content-Type": "application/json"
    },
    "body": {
    "fields": {
    "project": {
    "key": "<JIRA_PROJECT_NAME>"
    },
    "summary": "Datadog Alert: {{.event.diff.after.title}}",
    "description": {
    "version": 1,
    "type": "doc",
    "content": [
    {
    "type": "paragraph",
    "content": [
    {
    "type": "text",
    "text": "Priority",
    "marks": [
    {
    "type": "strong"
    }
    ]
    },
    {
    "type": "text",
    "text": ": {{.event.diff.after.properties.priority}}"
    }
    ]
    },
    {
    "type": "paragraph",
    "content": [
    {
    "type": "text",
    "text": "Monitory Type",
    "marks": [
    {
    "type": "strong"
    }
    ]
    },
    {
    "type": "text",
    "text": ": {{.event.diff.after.properties.monitorType}}"
    }
    ]
    },
    {
    "type": "paragraph",
    "content": [
    {
    "type": "text",
    "text": "Overall State",
    "marks": [
    {
    "type": "strong"
    }
    ]
    },
    {
    "type": "text",
    "text": ": {{.event.diff.after.properties.overallState}}"
    }
    ]
    },
    {
    "type": "paragraph",
    "content": [
    {
    "type": "text",
    "text": "Thresholds",
    "marks": [
    {
    "type": "strong"
    }
    ]
    },
    {
    "type": "text",
    "text": ": {{.event.diff.after.properties.thresholds}}"
    }
    ]
    },
    {
    "type": "paragraph",
    "content": [
    {
    "type": "text",
    "text": "Tags",
    "marks": [
    {
    "type": "strong"
    }
    ]
    },
    {
    "type": "text",
    "text": ": {{.event.diff.after.properties.tags}}"
    }
    ]
    },
    {
    "type": "paragraph",
    "content": [
    {
    "type": "text",
    "text": "Created By",
    "marks": [
    {
    "type": "strong"
    }
    ]
    },
    {
    "type": "text",
    "text": ": {{.event.diff.after.properties.createdBy}}"
    }
    ]
    },
    {
    "type": "paragraph",
    "content": [
    {
    "type": "text",
    "text": "Created At",
    "marks": [
    {
    "type": "strong"
    }
    ]
    },
    {
    "type": "text",
    "text": ": {{.event.diff.after.properties.createdAt}}"
    }
    ]
    },
    {
    "type": "paragraph",
    "content": [
    {
    "type": "text",
    "text": "Updated At",
    "marks": [
    {
    "type": "strong"
    }
    ]
    },
    {
    "type": "text",
    "text": ": {{.event.diff.after.properties.updatedAt}}"
    }
    ]
    }
    ]
    },
    "issuetype": {
    "name": "Bug"
    },
    "labels": [
    "datadog"
    ]
    }
    }
    },
    "publish": true
    }
  4. Click Save.

Now, every time a Datadog Alert priority is raised to high or critical (i.e., moves from 3, 4, or 5 to 1 or 2), a Jira issue like the one below will be created:

Adapt this for other tools​

The pattern above works for any monitoring or security tool that syncs alerts or vulnerabilities into Port. Keep the automation and Jira webhook the same, and change the source blueprint that triggers the automation:

ToolSource blueprintTool-specific guide
DatadogdatadogAlertThis guide
DependabotgithubDependabotAlertCreate a Jira issue from a Dependabot alert
New RelicnewRelicAlertCreate a Jira issue from a New Relic alert
SnyksnykVulnerabilityCreate a Jira issue from a Snyk vulnerability

For each tool, point the automation's trigger at the relevant source blueprint and map that blueprint's properties into the Jira issue payload.