Jira Automation
Jira doesn't natively support SailPoint Entro's webhook format, but you can bridge this gap by using a SOAR platform as a proxy. This allows you to send SailPoint Entro risks to Jira by transforming the data into a format Jira understands.
Jira accepts webhooks in the following JSON structure, allowing for additional data to be included within the "data" key:
The core idea is to embed SailPoint Entro's risk data directly into this "data" field. Once the webhook is received in Jira, you can then access this embedded information using Jira's smart value: {{webhookData}} as can be seen below.

We've provided examples below demonstrating how to proxy SailPoint Entro risks to Jira using various SOAR platforms:
Blinkops Flow YAML
Note that this flow relies on you storing the Jira API/Webhook key as a secret in Blinkops
name: New Workflow
automation_type: event
triggers:
webhooks:
- trigger_type: custom_webhook
name: Entro Event Received
method: apikey
steps: []
workflow:
- section: Steps
steps:
- action: http.requestV2
id: S2
name: Send HTTP Request
inputs:
method: POST
url: <Jira Webhook URL>
body: |-
{
"issues": [],
"data": {{event.payload}}
}
headers: "X-Automation-Webhook-Token: {{globals.jira_webhook_key}}"
retryOnRateLimit: true
disableSSL: false
disableJSONAutoConvert: false
Tines Story JSON
This flow relies on you keeping Jira's API/Webhook secret as a credential in Tines named jira_webhook_key.
{
"schema_version": 27,
"standard_lib_version": 83,
"action_runtime_version": 45,
"name": "Entro To Jira",
"description": null,
"guid": "3fd79631f5fcc975febc0328adeb9e8e",
"slug": "entro_to_jira",
"agents": [
{
"type": "Agents::WebhookAgent",
"name": "Entro Webhook Recevied",
"disabled": false,
"description": null,
"guid": "e777af7594007e3fc679329b9eb06716",
"origin_story_identifier": "cloud:379ee80a6db0de2ca27d1d4b3fface46:3fd79631f5fcc975febc0328adeb9e8e",
"options": {
"path": "aa37c9f1ef088d0e03743ccdf01365a9",
"secret": "411ce9d88325fb1bc10997d82d0ced85",
"verbs": "get,post"
},
"reporting": {
"time_saved_value": 0,
"time_saved_unit": "minutes"
},
"monitoring": {
"monitor_all_events": false,
"monitor_failures": false,
"monitor_no_events_emitted": null
},
"template": {
"created_from_template_guid": null,
"created_from_template_version": null,
"template_tags": []
},
"width": null
},
{
"type": "Agents::HTTPRequestAgent",
"name": "Forward to Jira",
"disabled": false,
"description": null,
"guid": "31837fae63309b5326e140ebd5d59809",
"origin_story_identifier": "cloud:379ee80a6db0de2ca27d1d4b3fface46:3fd79631f5fcc975febc0328adeb9e8e",
"options": {
"url": "<Jira Webhook URL>",
"content_type": "application_json",
"method": "post",
"payload": {
"issues": [],
"data": "<<entro_webhook_recevied.body>>"
},
"headers": {
"X-Automation-Webhook-Token": "<<CREDENTIAL.jira_webhook_key\n>>"
}
},
"reporting": {
"time_saved_value": 0,
"time_saved_unit": "minutes"
},
"monitoring": {
"monitor_all_events": false,
"monitor_failures": false,
"monitor_no_events_emitted": null
},
"template": {
"created_from_template_guid": null,
"created_from_template_version": null,
"template_tags": []
},
"width": null,
"schedule": null
}
],
"diagram_notes": [],
"links": [
{
"source": 0,
"receiver": 1
}
],
"diagram_layout": "{\"31837fae63309b5326e140ebd5d59809\":[480,225],\"e777af7594007e3fc679329b9eb06716\":[480,105]}",
"story_library_metadata": {},
"monitor_failures": false,
"synchronous_webhooks_enabled": false,
"integrations": [],
"parent_only_send_to_story": false,
"keep_events_for": 604800,
"reporting_status": true,
"send_to_story_enabled": false,
"entry_agent_guid": null,
"exit_agent_guids": [],
"api_entry_action_guids": [],
"api_exit_action_guids": [],
"send_to_story_access": null,
"send_to_story_access_source": 0,
"send_to_story_skill_use_requires_confirmation": true,
"pages": [],
"tags": [],
"time_saved_unit": "minutes",
"time_saved_value": 0,
"origin_story_identifier": "cloud:379ee80a6db0de2ca27d1d4b3fface46:3fd79631f5fcc975febc0328adeb9e8e",
"recipients": [
"yehonatan.tsirolnik@entro.security"
],
"integration_product": null,
"integration_vendor": null,
"llm_product_instructions": "",
"send_to_stories": [],
"exported_at": "2025-07-20T12:37:32Z",
"icon": ":hammer_and_pick:"
}
Jira Automation Rule JSON
This is the example seen above, which accepts data via a webhook and then either creates or edits issues. You can use it by proxying SailPoint Entro webhooks with your SOAR. This automation rule uses and thus requires a custom short text field named "Entro Risk ID". Refer to Creating custom fields in Jira on Atlassian's website. To import this automation rule, go to Settings > System > Global Automation > Import, located at https://
{
"cloud": true,
"rules": [
{
"id": 2033808,
"clientKey": "<client-key>",
"name": "Entro Updated Risk to Jira",
"state": "ENABLED",
"description": "",
"authorAccountId": "712020:4c412d6f-540d-4492-b772-4a1cd8e700f1",
"actor": {
"type": "ACCOUNT_ID",
"value": "<actor-account-id>"
},
"created": 1652677029656,
"updated": 1653084737589,
"trigger": {
"id": "10847886",
"component": "TRIGGER",
"parentId": null,
"conditionParentId": null,
"schemaVersion": 1,
"type": "jira.incoming.webhook",
"value": {
"webhookToken": "<secret-token-key>",
"searchOrProvide": "search",
"jql": "'Entro Risk ID' ~ \"\\\"{{webhookData.updatedRisk.guid}}\\\"\""
},
"children": [],
"conditions": [],
"connectionId": null
},
"components": [
{
"id": "11282883",
"component": "CONDITION",
"parentId": null,
"conditionParentId": null,
"schemaVersion": 1,
"type": "jira.condition.container.block",
"value": null,
"children": [
{
"id": "11282884",
"component": "CONDITION_BLOCK",
"parentId": "11282883",
"conditionParentId": null,
"schemaVersion": 1,
"type": "jira.condition.if.block",
"value": {
"conditionMatchType": "ALL"
},
"children": [
{
"id": "11282891",
"component": "ACTION",
"parentId": "11282884",
"conditionParentId": null,
"schemaVersion": 12,
"type": "jira.issue.edit",
"value": {
"operations": [
{
"field": {
"type": "ID",
"value": "description"
},
"fieldType": "description",
"type": "SET",
"value": "Severity Level: {{webhookData.updatedRisk.severity}}\n\nCurrent Status: {{webhookData.updatedRisk.status}}\n\nType of Risk: {{webhookData.updatedRisk.type}}\n\nCategory: {{webhookData.updatedRisk.category}}\n\nOwner: {{webhookData.updatedRisk.owner}}\n\nSource System: {{webhookData.updatedRisk.source}}\n\nDetection Time: {{webhookData.updatedRisk.detectionTime}}\n\nPath/Location: {{webhookData.updatedRisk.path}}\n\nAssociated Tags: {{webhookData.updatedRisk.tags}}"
}
],
"advancedFields": null,
"sendNotifications": true
},
"children": [],
"conditions": [],
"connectionId": null
},
{
"id": "11282982",
"component": "ACTION",
"parentId": "11282884",
"conditionParentId": null,
"schemaVersion": 1,
"type": "slack.notification",
"value": {
"webhookUrl": "https://hooks.slack.com/your-webhook-url",
"body": "Entro risk with ID {{webhookData.updatedRisk.guid}} was updated in Jira",
"channel": "<your-channel>",
"automationSender": true
},
"children": [],
"conditions": [],
"connectionId": null
}
],
"conditions": [
{
"id": "11282885",
"component": "CONDITION",
"parentId": null,
"conditionParentId": "11282884",
"schemaVersion": 1,
"type": "jira.issues.related.condition",
"value": {
"relatedType": "jql",
"linkTypes": [],
"operator": "present",
"relatedJql": "'Entro Risk ID' ~ \"\\\"{{webhookData.updatedRisk.guid}}\\\"\"",
"compareJql": "",
"compareValue": 0,
"similarityLimit": 40,
"jql": "'Entro Risk ID' ~ \"\\\"{{webhookData.updatedRisk.guid}}\\\"\""
},
"children": [],
"conditions": [],
"connectionId": null
}
],
"connectionId": null
},
{
"id": "11282886",
"component": "CONDITION_BLOCK",
"parentId": "11282883",
"conditionParentId": null,
"schemaVersion": 1,
"type": "jira.condition.if.block",
"value": {
"conditionMatchType": "ALL"
},
"children": [
{
"id": "11237724",
"component": "ACTION",
"parentId": "11282886",
"conditionParentId": null,
"schemaVersion": 12,
"type": "jira.issue.create",
"value": {
"operations": [
{
"field": {
"type": "ID",
"value": "summary"
},
"fieldType": "summary",
"type": "SET",
"value": "{{webhookData.updatedRisk.guid}} - {{webhookData.updatedRisk.name}}"
},
{
"field": {
"type": "ID",
"value": "description"
},
"fieldType": "description",
"type": "SET",
"value": "Severity Level: {{webhookData.updatedRisk.severity}}\n\nCurrent Status: {{webhookData.updatedRisk.status}}\n\nType of Risk: {{webhookData.updatedRisk.type}}\n\nCategory: {{webhookData.updatedRisk.category}}\n\nOwner: {{webhookData.updatedRisk.owner}}\n\nSource System: {{webhookData.updatedRisk.source}}\n\nDetection Time: {{webhookData.updatedRisk.detectionTime}}\n\nPath/Location: {{webhookData.updatedRisk.path}}\n\nAssociated Tags: {{webhookData.updatedRisk.tags}}"
},
{
"field": {
"type": "ID",
"value": "project"
},
"fieldType": "project",
"type": "SET",
"value": {
"type": "ID",
"value": "10540"
}
},
{
"field": {
"type": "ID",
"value": "issuetype"
},
"fieldType": "issuetype",
"type": "SET",
"value": {
"type": "ID",
"value": "10010"
}
}
],
"advancedFields": "{\n\"fields\": {\n \"Entro Risk ID\": \"{{webhookData.updatedRisk.guid}}\"\n}\n}",
"sendNotifications": false
},
"children": [],
"conditions": [],
"connectionId": null
},
{
"id": "11282380",
"component": "ACTION",
"parentId": "11282886",
"conditionParentId": null,
"schemaVersion": 1,
"type": "slack.notification",
"value": {
"webhookUrl": "https://hooks.slack.com/your-webhook-url",
"body": "New Entro risk with ID {{webhookData.updatedRisk.guid}} was created in Jira",
"channel": "<your-channel>",
"automationSender": true
},
"children": [],
"conditions": [],
"connectionId": null
}
],
"conditions": [],
"connectionId": null
}
],
"conditions": [],
"connectionId": null
}
],
"canOtherRuleTrigger": false,
"notifyOnError": "FIRSTERROR",
"projects": [],
"labels": [],
"tags": [
{
"id": 2196203,
"ruleIdUuid": "019813b1-1718-7c6f-866e-1386573e6566",
"tagType": "IS_RULE_UPDATED",
"tagValue": "true"
},
{
"id": 2196202,
"ruleIdUuid": "019813b1-1718-7c6f-866e-1386573e6566",
"tagType": "WEBHOOK_TOKEN",
"tagValue": "<secret-token-key>"
}
],
"writeAccessType": "UNRESTRICTED",
"collaborators": [],
"billingType": "NORMAL",
"idUuid": "019813b1-1718-7c6f-866e-1386573e6566",
"partitionId": "dc1a459a-1bba-4f6a-8783-c6e19cfc7651"
}
]
}