Configure Jira for Deploy Change Investigator
Track Jira issue deployments by sending deployment webhooks when issues are released or deployed.
Before you begin
- Deploy Change Investigator setup: Deploy webhook integration created in AI SRE. Go to Deploy Change Investigator to create the webhook endpoint.
- Jira Cloud access: Administrator permissions to create automation rules.
- Deploy webhook URL: Deploy webhook URL from the AI SRE integrations page.
- Deployment workflow: Status workflow that includes deployment states (for example, "In Production" or "Deployed").
Configure Jira automation
Use Jira automation rules to send webhooks when issues transition to deployment states.
Create automation rule for status transitions
Send a webhook when issues move to deployment statuses.
- Navigate to Project settings, then select Automation
- Click Create rule
- Configure the trigger:
- When: Issue transitioned
- From status: Any status
- To status: Select deployment statuses (for example, "In Production" or "Deployed to Staging")
- Click New condition, then select Issue fields condition:
- Field: Fix Version/s
- Condition: is not empty
- Click New action, then select Send web request
- Configure the webhook:
- Webhook URL: Paste the deploy webhook URL from AI SRE
- HTTP method: POST
- Headers: Add
Content-Type: application/json - Webhook body: Custom data
- Paste the webhook payload described in the following sections
- Click Turn it on
Webhook payload
Status transition payload
{
"services": [{
"service": "{{issue.key}}",
"version": "{{issue.fixVersions.first.name}}"
}],
"environments": ["{{issue.status.name}}"],
"changeId": "{{issue.key}}-{{now}}",
"status": "SUCCESS",
"deployedBy": "{{initiator.emailAddress}}",
"deployTimestamp": "{{now.jiraDateTime}}"
}
Release version payload
For version release events:
{
"services": [{
"service": "{{version.project.key}}",
"version": "{{version.name}}"
}],
"environments": ["production"],
"changeId": "release-{{version.id}}",
"status": "SUCCESS",
"deployedBy": "{{initiator.emailAddress}}",
"deployTimestamp": "{{now.jiraDateTime}}"
}
Smart Values reference
Jira automation provides Smart Values for accessing issue and version data:
| Smart Value | Description | Example |
|---|---|---|
{{issue.key}} | Issue key | PROJ-123 |
{{issue.fixVersions.first.name}} | First fix version | 1.2.3 |
{{issue.status.name}} | Current status | In Production |
{{issue.components.first.name}} | First component | frontend |
{{initiator.emailAddress}} | User who triggered transition | user@example.com |
{{now}} | Current Unix timestamp | 1704067200000 |
{{now.jiraDateTime}} | ISO 8601 timestamp | 2025-01-01T00:00:00.000+0000 |
{{version.name}} | Version name | 1.2.3 |
{{version.project.key}} | Project key | PROJ |
{{version.id}} | Version ID | 10001 |
Service identification strategies
Map Jira issues to services using different approaches:
Option 1: Use issue key
{
"services": [{
"service": "{{issue.key}}",
"version": "{{issue.fixVersions.first.name}}"
}]
}
Best for: Single-service projects where each issue represents a deployable change
Option 2: Use component
{
"services": [{
"service": "{{issue.components.first.name}}",
"version": "{{issue.fixVersions.first.name}}"
}]
}
Best for: Multi-service projects using Jira components to identify services
Option 3: Use custom field
{
"services": [{
"service": "{{issue.Service Name}}",
"version": "{{issue.fixVersions.first.name}}"
}]
}
Replace Service Name with your custom field name. Best for: Projects with custom service tracking fields.
Map statuses to environments
Map Jira statuses to deployment environments:
| Jira Status | Environment Value |
|---|---|
| In Production | production |
| Deployed to Staging | staging |
| In UAT | uat |
| Deployed to Development | development |
Use the status name directly:
{
"environments": ["{{issue.status.name}}"]
}
Or map to standardized names using conditions in your automation rule.
Testing webhooks
Test status transition
Transition a test issue and confirm the webhook reaches AI SRE:
- Create or select a test issue
- Add a Fix Version to the issue
- Transition the issue to a deployment status (for example, "In Production")
- Navigate to AI SRE, then select Integrations
- Click the More icon on the DEPLOY integration
- Select Debug
- Verify the webhook appears with the correct payload
Verify automation execution
Confirm the automation rule ran and sent the webhook:
- Navigate to Project settings, then select Automation
- Click your automation rule
- Select the Audit log tab
- Verify the rule executed and the webhook was sent
- Check for any error messages
Troubleshooting
Jira automation webhook not received in AI SRE
Confirm the automation rule is turned on, verify the webhook URL matches the AI SRE integration, and check that the rule execution appears in the automation audit log. Ensure Jira Cloud allows outbound HTTPS, and open the audit log to find the failed execution and its error message.
Jira deployments not showing in AI SRE Change Management
Ensure the issue has a Fix Version set before the transition, keep services[].service and services[].version consistent across deployments, and confirm the webhook payload is valid JSON by checking the automation audit log.
Jira Smart Values returning empty in AI SRE webhook payloads
Empty Smart Values are usually caused by a missing Fix Version, an unassigned component, or an empty or misnamed custom field. Add a condition to check the field is not empty before sending the webhook, or use fallback values such as {{issue.fixVersions.first.name.or("unknown")}}.
Jira timestamp format issues in AI SRE deploy webhooks
Use {{now.jiraDateTime}} for ISO 8601 format, which is recommended for APIs. Avoid using {{now}} alone because it returns a Unix timestamp in milliseconds.
Multi-service releases
For releases that deploy multiple services, create separate webhook calls or construct a services array:
{
"services": [
{"service": "frontend", "version": "{{version.name}}"},
{"service": "backend", "version": "{{version.name}}"},
{"service": "worker", "version": "{{version.name}}"}
],
"environments": ["production"],
"changeId": "release-{{version.id}}",
"status": "SUCCESS",
"deployedBy": "{{initiator.emailAddress}}",
"deployTimestamp": "{{now.jiraDateTime}}"
}
Best practices
Follow these practices to keep Jira deployment tracking reliable:
- Set Fix Version before deployment: Ensure issues have a Fix Version set before transitioning to deployment statuses.
- Use consistent service names: Keep service identifiers consistent across issues and deployments.
- Test with real issues: Verify the automation rule works with actual project data before you enable it.
- Monitor audit logs: Regularly check automation audit logs for failures.
Next steps
- Go to Deploy Change Investigator to complete the setup.
- Go to AI Agent RCA to understand how the AI agent uses change detection during incidents.
- Go to Configure Jenkins to set up webhooks in Jenkins pipelines.