Intermediate~15 min setupCommunication & Project ManagementVerified April 2026
Slack logo
Jira logo

How to Create Jira Issues from Slack Messages with Pipedream

Convert urgent Slack messages into Jira tickets automatically using slash commands or emoji reactions.

Steps and UI details are based on platform versions at time of writing β€” check each platform for the latest interface.

β„Ή

Jira Cloud for Slack exists as a native integration, but it handles basic notifications but no conditional routing. This guide uses an automation platform for full control. View native option β†’

Best for

Dev teams who need to capture bugs and requests from Slack conversations without losing context.

Not ideal for

Teams that prefer manual issue creation or need complex approval workflows before ticket creation.

Sync type

real-time

Use case type

routing

Real-World Example

πŸ’‘

A 12-person engineering team uses this when QA finds bugs during testing. They react with πŸ› emoji to any bug report in #testing-alerts, and a Jira ticket appears in 3 seconds with the full message thread as description. Before automation, 20% of reported bugs never made it to Jira because someone forgot to manually create tickets.

What Will This Cost?

Drag the slider to your expected monthly volume.

/mo
505005K50K

Each platform counts differently β€” Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.

Prices shown for annual billing. Based on published pricing as of April 2026.

Estimated ROI

1000

min saved/mo

$583

labor value/mo

Free

no platform cost

Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.

Implementation

Skip the setup

Import this workflow directly into Pipedream

Copy the pre-built Pipedream blueprint and paste it straight into Pipedream. All modules, filters, and field mappings are already configured β€” you just need to connect your accounts.

Before You Start

Make sure you have everything ready.

Slack admin access to install apps in your workspace
Jira API token from your Atlassian Account Security settings
Create Issues permission in your target Jira project
Pipedream account with webhook credits available

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Issue Summarysummary
Issue Descriptiondescription
Project Keyproject
Issue Typeissuetype
4 optional fieldsβ–Έ show
Reporterreporter
Prioritypriority
Labelslabels
Slack Linkcustomfield_10001

Step-by-Step Setup

1

Workflows > New > Start from scratch

Create New Workflow in Pipedream

Log into pipedream.com and click the green 'New' button in the top right. Select 'Start from scratch' from the dropdown menu. You'll see the workflow builder with an empty canvas where you can add your trigger and steps.

  1. 1Click 'New' in the top navigation
  2. 2Select 'Start from scratch' from dropdown
  3. 3Name your workflow 'Slack to Jira Issue Creator'
  4. 4Click 'Create Workflow'
βœ“ What you should see: You should see an empty workflow canvas with 'Add a trigger' as the first step.
2

Trigger > Add a trigger > Slack > New Reaction Added

Add Slack Events API Trigger

Click 'Add a trigger' and search for Slack in the app list. Select 'New Reaction Added (Instant)' as your trigger type. This creates a webhook that fires immediately when someone adds an emoji reaction to any message in channels where your bot is present.

  1. 1Click 'Add a trigger'
  2. 2Type 'slack' in the search box
  3. 3Select 'New Reaction Added (Instant)' trigger
  4. 4Click 'Save and continue'
βœ“ What you should see: You should see the Slack trigger configuration panel with authentication options.
⚠
Common mistake β€” The Events API trigger only works with Slack apps, not legacy webhooks. Don't try to use incoming webhooks here.
Pipedream
+
click +
search apps
Slack
SL
Slack
Add Slack Events API Trigger
Slack
SL
module added
3

Trigger Configuration > Connect Account > Slack OAuth

Connect Your Slack Account

Click 'Connect new account' to link your Slack workspace. You'll be redirected to Slack's OAuth page where you need admin permissions to install the Pipedream app. Grant permissions for channels:read, reactions:read, and chat:history to capture message content and reactions.

  1. 1Click 'Connect new account'
  2. 2Select your Slack workspace from the list
  3. 3Click 'Allow' on the permissions screen
  4. 4Return to Pipedream when redirected
βœ“ What you should see: You should see 'Connected' with your workspace name in the account dropdown.
⚠
Common mistake β€” You need admin rights to install apps in Slack. Ask your Slack admin if the connection fails.
Pipedream settings
Connection
Choose a connection…Add
click Add
Slack
Log in to authorize
Authorize Pipedream
popup window
βœ“
Connected
green checkmark
4

Trigger Configuration > Reaction Filter

Configure Reaction Filter

Set the trigger to only fire for specific emoji reactions. In the trigger settings, add 'bug' and 'ticket' emojis to the reaction filter. This prevents the workflow from running on every reaction like thumbs up or celebration emojis that don't need Jira tickets.

  1. 1Scroll to 'Reaction Filter' section
  2. 2Click 'Add reaction'
  3. 3Type 'bug' for the bug emoji
  4. 4Add 'ticket' as another reaction option
  5. 5Click 'Deploy trigger'
βœ“ What you should see: The trigger shows 'Deployed' status with your reaction filters listed below.
⚠
Common mistake β€” Custom emoji names vary by workspace. Check your Slack emoji list if reactions don't trigger.
Slack
SL
trigger
filter
Condition
matches criteria?
yes β€” passes through
no β€” skipped
Jira
JI
notified
5

Trigger > Test > View Sample Data

Test Slack Trigger

Go to any Slack channel and post a test message, then react with the bug emoji. Return to Pipedream and you should see the webhook data appear in the trigger test panel. The payload includes message text, user info, channel details, and timestamp.

  1. 1Post 'Testing bug report workflow' in a Slack channel
  2. 2React with the bug emoji to your message
  3. 3Return to Pipedream workflow
  4. 4Click 'Refresh' in the test section
βœ“ What you should see: You should see JSON data with your message text, reaction details, and user information.
Pipedream
β–Ά Deploy & test
executed
βœ“
Slack
βœ“
Jira
Jira
πŸ”” notification
received
6

Steps > Add Step > Jira > Create Issue

Add Jira Create Issue Step

Click the plus button below your trigger to add a new step. Search for Jira and select 'Create Issue' action. This step will take the Slack message data and create a properly formatted Jira ticket with title, description, and metadata.

  1. 1Click the '+' button below the trigger
  2. 2Search for 'jira' in the apps list
  3. 3Select 'Create Issue' action
  4. 4Click 'Continue'
βœ“ What you should see: You should see the Jira Create Issue configuration form with empty fields.
⚠
Common mistake β€” Make sure you select 'Create Issue' not 'Create Issue (Advanced)' unless you need custom field mapping.
7

Jira Step > Connect Account > API Token

Connect Jira Account

Click 'Connect new account' and enter your Jira domain URL (yourcompany.atlassian.net). Use your email and an API token for authentication - not your password. Generate the API token from your Atlassian Account Settings under Security.

  1. 1Click 'Connect new account'
  2. 2Enter your Jira URL (yourcompany.atlassian.net)
  3. 3Enter your email address
  4. 4Paste your API token (not password)
  5. 5Click 'Connect'
βœ“ What you should see: You should see 'Connected' with your Jira domain name in the account dropdown.
⚠
Common mistake β€” API tokens expire after 6 months of inactivity. Set a calendar reminder to regenerate it.
8

Jira Configuration > Field Mapping

Configure Issue Creation Fields

Map Slack data to Jira fields using the reference picker. Set Project to your bug tracking project key. Use the Slack message text as the Summary field, and include the full message thread in Description. Set Issue Type to 'Bug' and Priority based on the channel or user.

  1. 1Select your project from the Project dropdown
  2. 2Set Issue Type to 'Bug'
  3. 3Map Summary to steps.trigger.event.item.message.text
  4. 4Map Description to include user and timestamp
  5. 5Set Priority to 'Medium'
βœ“ What you should see: All required Jira fields should show green checkmarks with mapped Slack data references.
Slack fields
text
user
channel
ts
thread_ts
available as variables:
1.props.text
1.props.user
1.props.channel
1.props.ts
1.props.thread_ts
9

Steps > Add Step > Code > Node.js

Add Code Step for Context Enhancement

Insert a Node.js code step between Slack and Jira to clean up the message format and add context. This step extracts the original message, formats the description with user details, and creates a proper issue title from the message content.

  1. 1Click '+' above the Jira step
  2. 2Select 'Code' from the apps list
  3. 3Choose 'Run Node.js code'
  4. 4Replace default code with formatting logic
  5. 5Click 'Test step'
βœ“ What you should see: The code step should output formatted title and description fields ready for Jira.
⚠
Common mistake β€” The Slack API returns nested message objects. Access the actual text with steps.trigger.event.item.message.text.

This Node.js code step cleans up Slack message formatting and extracts user context before sending to Jira. Paste it between your Slack trigger and Jira action steps.

JavaScript β€” Code Stepexport default defineComponent({
β–Έ Show code
export default defineComponent({
  async run({ steps, $ }) {
    const message = steps.trigger.event.item.message.text;

... expand to see full code

export default defineComponent({
  async run({ steps, $ }) {
    const message = steps.trigger.event.item.message.text;
    const user = steps.trigger.event.user;
    const channel = steps.trigger.event.item.channel;
    const ts = steps.trigger.event.item.message.ts;
    
    // Clean up Slack formatting
    const cleanMessage = message
      .replace(/<@U[A-Z0-9]+>/g, '') // Remove user mentions
      .replace(/<#C[A-Z0-9]+\|([^>]+)>/g, '#$1') // Clean channel refs
      .replace(/([\s\S]*?)/g, '{code}$1{code}') // Convert code blocks
      .trim();
    
    // Create Jira-formatted description
    const description = `*Reported by:* ${user.real_name || user.name}
*Channel:* ${channel.name}
*Timestamp:* ${new Date(ts * 1000).toLocaleString()}

*Issue Details:*
${cleanMessage}

[View in Slack|https://yourworkspace.slack.com/archives/${channel.id}/p${ts.replace('.', '')}]`;
    
    // Generate summary (max 100 chars for Jira)
    const summary = cleanMessage.length > 97 
      ? cleanMessage.substring(0, 97) + '...'
      : cleanMessage;
    
    return {
      summary,
      description,
      reporter_email: user.profile?.email,
      channel_name: channel.name,
      slack_link: `https://yourworkspace.slack.com/archives/${channel.id}/p${ts.replace('.', '')}`
    };
  },
});
10

Workflow > Deploy > Test Complete Flow

Test Complete Workflow

Deploy the workflow and test end-to-end by reacting to another Slack message with your bug emoji. Check your Jira project to verify the ticket was created with correct formatting, title, and description. The workflow should complete in under 5 seconds.

  1. 1Click 'Deploy' at the top right
  2. 2Post a new test message in Slack
  3. 3React with your configured emoji
  4. 4Check Jira for the new issue
  5. 5Verify all fields populated correctly
βœ“ What you should see: You should see a new Jira issue with the Slack message as title and formatted context in the description.
⚠
Common mistake β€” Jira project permissions might block issue creation. Verify your API user has 'Create Issues' permission.

Going live

Production Checklist

Before you turn this on for real, confirm each item.

Troubleshooting

Common errors and how to fix them.

Frequently Asked Questions

Common questions about this workflow.

Analysis

VerdictWhy n8n for this workflow

Use Pipedream for this if your team codes and needs custom message parsing logic. The Node.js code steps let you clean up Slack formatting, extract user context, and add conditional routing that other platforms can't match. Skip it if you just want basic message-to-ticket conversion without customization - Zapier handles simple field mapping faster.

Cost

Webhook triggers cost 1 credit per reaction. At 200 bug reports per month, you'll spend $2 on the Developer plan. Make costs $9/month minimum for the same volume. Zapier's $20 Professional plan includes 1000 tasks. Pipedream wins on pricing if you stay under 1000 credits monthly.

Tradeoffs

Zapier's Slack integration sees message edits and thread replies that Pipedream misses. Make has better Jira field validation and will show you exactly which required fields are missing before you deploy. n8n's self-hosted option costs nothing after setup. But Pipedream's instant webhook processing beats everyone - your tickets appear in Jira within 2 seconds of the emoji reaction.

You'll hit Slack's nested data structures first - message content lives at steps.trigger.event.item.message.text, not where you expect. Jira project permissions will block API calls if your integration user lacks Create Issues rights. The biggest gotcha: Slack emoji names vary by workspace, so :bug: might be :beetle: or :ladybug: depending on your custom emoji setup.

Ideas for what to build next

  • β†’
    Add Slash Command Trigger β€” Create /bug and /ticket slash commands that let users file issues directly from any channel without emoji reactions.
  • β†’
    Set Up Jira to Slack Updates β€” Build reverse sync that posts Slack updates when Jira issues change status, keeping the reporter informed of progress.
  • β†’
    Auto-Assign Based on Keywords β€” Parse message content for keywords like 'login', 'payment', 'api' and automatically assign issues to the right team members.

Related guides

Was this guide helpful?
← Slack + Jira overviewPipedream profile β†’