Krosoft Wiki

Jira Automation Rules recipes

Purpose

Use this reference when you want Planning Sync for Jira to forward Tempo plan events to Jira Automation and let Jira Automation send Slack notifications or update Slack status. This is documentation for building Jira Automation rules; it is not a native Slack integration, Slack OAuth setup, or importable Automation package.

The pattern is:

  1. Planning Sync receives a Tempo plan event.

  2. Planning Sync forwards the existing Automation webhook payload to a Jira Automation incoming webhook.

  3. Jira Automation reads the webhook smart values and branches by event type.

  4. Jira Automation performs the customer-owned Slack action, such as sending a channel message or calling a Slack/status webhook.

Planning Sync forwards payloads only. Jira Automation and Slack own Slack authorization, channel access, user mapping, status permissions, and the final action behavior.

Prerequisites

Before setup, confirm that you have:

  • Planning Sync Advanced edition, because Automation webhook forwarding is an Advanced feature.

  • Administrator access to the Planning Sync configuration in Jira.

  • Permission to create or edit Jira Automation rules.

  • A Jira Automation incoming webhook URL.

  • A Jira Automation Slack action, Slack connection, or customer-owned webhook action that is already permitted to perform the desired Slack operation.

  • A decision about which Tempo plan events should trigger Slack behavior: plan.created, plan.updated, plan.deleted, or a subset.

  • For Slack status updates, a tenant-specific way to map the Tempo plan assignee to a Slack user. Use {{webhookData.tempoPlan.assigneeId}} only when your Jira Automation or Slack setup can map that value.

Planning Sync Automation webhook setup

  1. In Jira, create a Jira Automation rule that starts with an incoming webhook trigger.

  2. Copy the incoming webhook URL generated by Jira Automation.

  3. In Jira, open Apps, then Planning Sync, then Settings, then Advanced settings.

  4. Expand Automation webhook.

  5. Enable Automation webhook forwarding.

  6. Paste the Jira Automation incoming webhook URL.

  7. Select the Tempo plan events to forward, such as plan.created, plan.updated, and plan.deleted.

  8. Optionally store a webhook token if your Automation rule validates X-Automation-Webhook-Token.

  9. Save the Automation webhook configuration.

  10. Use Send test webhook to verify that Jira Automation receives the payload.

  11. Open Show rule templates in Planning Sync for the in-app transition and Slack recipe snippets.

For runtime Tempo plan events, Planning Sync appends Jira Automation's issue query parameter when a related Jira issue key or id is available. Manual test deliveries use the same envelope with test: true, but they do not require a fake Jira issue.

Common Automation smart values

Use these Jira Automation smart values from the incoming webhook payload:

Smart value

Purpose

{{webhookData.eventType}}

Tempo plan event type, such as plan.created, plan.updated, or plan.deleted.

{{webhookData.jiraIssue.key}}

Related Jira work item key.

{{webhookData.jiraIssue.summary}}

Related Jira work item summary.

{{webhookData.tempoPlan.startDate}}

Tempo plan start date.

{{webhookData.tempoPlan.endDate}}

Tempo plan end date.

{{webhookData.tempoPlan.assigneeId}}

Tempo plan assignee id. Use only with customer-owned user mapping.

{{webhookData.payload}}

Raw Tempo payload for advanced Automation branches.

Recipe 1: Send a Slack channel notification

Use this recipe when a shared Slack channel should receive planning updates.

Jira Automation rule outline

  1. Trigger: Incoming webhook

    • Use the Jira Automation incoming webhook URL saved in Planning Sync.

    • Let the rule use the issue passed by the webhook when Jira Automation prompts for issue handling.

  2. Optional condition: Event type

    • Add a condition where {{webhookData.eventType}} equals one of:

      • plan.created

      • plan.updated

      • plan.deleted

    • Use separate branches if one rule should handle multiple events differently.

  3. Action: Send Slack message

    • Use Jira Automation's Slack message action.

    • Choose the Slack channel from the Jira Automation and Slack connection available in your tenant.

    • Paste or adapt the message example below.

Recommended Slack message:

{{webhookData.eventType}} for {{webhookData.jiraIssue.key}}: {{webhookData.jiraIssue.summary}} from {{webhookData.tempoPlan.startDate}} to {{webhookData.tempoPlan.endDate}}

Use this for operational notifications, planning channels, or project-specific channels where a simple event summary is enough.

Recipe 2: Update a Slack status from Tempo planning

Use this recipe when a Tempo plan should drive a person's Slack status through customer-owned Jira Automation and Slack configuration.

Slack status updates are tenant-specific. Planning Sync does not store Slack users, request Slack OAuth, or call Slack APIs. Your Jira Automation rule, Slack app, or webhook endpoint must own the user lookup and status mutation.

Jira Automation rule outline

  1. Trigger: Incoming webhook

    • Use the Jira Automation incoming webhook URL saved in Planning Sync.

  2. Condition: Created or updated plan

    • Run the status update when {{webhookData.eventType}} equals plan.created or plan.updated.

    • Optionally add a separate plan.deleted branch to clear or reset status.

  3. Map the Slack user

    • Use {{webhookData.tempoPlan.assigneeId}} if your Jira Automation or Slack setup can map Tempo assignee ids to Slack users.

    • Otherwise use a customer-owned mapping table, Automation lookup, or webhook service.

  4. Action: Customer-owned Slack/status action

    • Use a Jira Automation Slack action when it supports the desired status behavior in your tenant.

    • Or use a Jira Automation webhook action that calls a customer-owned Slack integration endpoint.

    • Configure Slack authorization, scopes, user mapping, and status permissions outside Planning Sync.

Recommended status text:

Planned on {{webhookData.jiraIssue.key}} until {{webhookData.tempoPlan.endDate}}

For deleted plans, decide whether the rule should clear the Slack status, set a fallback status, or do nothing. That behavior depends on your Slack status policy and how many active plans a person may have.

Representative Automation webhook payload

Planning Sync sends a stable JSON envelope. The Slack recipes use the existing payload fields only; no Slack-specific fields are added.

JSON
{
  "eventType": "plan.updated",
  "forwardedAt": "2026-05-18T09:30:00.000Z",
  "source": "planning-sync",
  "tempoPlan": {
    "id": "123456",
    "startDate": "2026-05-18",
    "endDate": "2026-05-20",
    "planItemId": "10001",
    "assigneeId": "557058:example"
  },
  "jiraIssue": {
    "id": "10001",
    "key": "TEST-1",
    "projectKey": "TEST",
    "issueTypeName": "Task",
    "summary": "Example planned task"
  },
  "payload": {
    "id": 123456,
    "startDate": "2026-05-18",
    "endDate": "2026-05-20",
    "planItem": {
      "id": "10001",
      "type": "ISSUE"
    },
    "assignee": {
      "id": "557058:example",
      "type": "USER"
    }
  }
}

Test checklist

Before considering the rule live, verify that:

  • Automation webhook forwarding is enabled in Planning Sync.

  • The saved webhook URL is the current Jira Automation incoming webhook URL.

  • The intended Tempo event types are selected in Planning Sync.

  • The matching Tempo plan listeners are enabled in Planning Sync.

  • Send test webhook reaches the Jira Automation rule.

  • A real created or updated Tempo plan triggers the rule.

  • The Slack channel notification posts to the expected channel, if using the channel recipe.

  • The Slack status action targets the expected Slack user, if using the status recipe.

  • The plan.deleted branch clears, resets, or skips status exactly as your policy requires.

  • Planning Sync audit logs show successful Automation webhook delivery, or failures that match Jira Automation responses.

Troubleshooting

Symptom

What to check

Automation rule never starts

Confirm the Planning Sync Automation webhook URL is the current Jira Automation incoming webhook URL, forwarding is enabled, and the selected Tempo event type matches the test event.

Rule starts but no issue is selected

Test sends omit the Jira Automation issue query parameter. Use a real Tempo plan event linked to a Jira issue when validating issue-specific rule behavior.

Slack message does not send

Confirm the Jira Automation Slack connection, channel access, and rule actor permissions. Planning Sync only delivers the webhook payload.

Slack status updates the wrong user

Review the customer-owned mapping from {{webhookData.tempoPlan.assigneeId}} to Slack user id. Planning Sync does not manage Slack identity mapping.

Status is not cleared after plan deletion

Add or verify a plan.deleted branch, and decide whether deletion should clear status, set fallback text, or do nothing.

Smart values are empty

Confirm the Tempo event includes the expected Jira issue and Tempo plan fields. Use {{webhookData.payload}} for advanced fallback mapping when needed.

Delivery fails in Planning Sync

Review the Planning Sync audit logs and Jira Automation webhook response. Failed Automation webhook delivery is recorded for investigation.