Goal
Automatically send a Slack Direct Message (DM) to the Jira reporter whenever a new Jira issue is created.
- Architecture
- Environment
- Prerequisites
- Step 1. Expose n8n to the Internet
- Step 2. Create a Jira Automation Rule
- Step 3. Build the n8n Workflow
- Step 4. Look Up the Slack User
- Step 5. Send the DM
- Result
- Problems I Encountered
- Lessons Learned
- Next Steps
Architecture
The overall architecture is shown below.
+----------------+
| Jira Cloud |
+--------+-------+
|
| Jira Automation
|
v
HTTPS Webhook Request
|
v
+-----------------------+
| Cloudflare |
| Tunnel |
+-----------+-----------+
|
v
+-------------+
| n8n |
+------+------+
|
+----------------+----------------+
| |
v v
Lookup Slack User Send Slack DM
by Email to Reporter
Environment
The environment used in this article:
| Component | Version / Service |
|---|---|
| Jira | Jira Cloud |
| n8n | Self-hosted (Docker) |
| Slack | Slack Workspace |
| Cloudflare | Tunnel |
| OS | macOS |
| Container Runtime | Docker + Colima |
Prerequisites
Before building this automation, make sure the following components are already configured.
Jira Cloud
A Jira Cloud instance with:
- A project for testing
- Permission to create Jira Automation rules
- Permission to create Web Requests
n8n
A self-hosted n8n instance.
In my environment:
- Docker
- Colima
- macOS
- Cloudflare Tunnel
The n8n instance is publicly accessible through a secure HTTPS URL.
Example:
https://automation.example.com
Note
Jira Cloud cannot call a webhook running on localhost. A public HTTPS endpoint (e.g., Cloudflare Tunnel) is required.
Slack Workspace
A Slack workspace where the Jira reporters are members.
Slack App
Create a Slack App from Slack API.
Configure the following Bot Token Scopes:
users:read
users:read.email
chat:write
im:write
Install the app into your Slack workspace and obtain the Bot User OAuth Token:
xoxb-xxxxxxxxxxxxxxxx
This token will be used by n8n to:
- Look up a user by email
- Send Direct Messages (DMs)
n8n Slack Credential
Step 1. Expose n8n to the Internet
Since Jira Cloud cannot access localhost, I exposed my local n8n instance through Cloudflare Tunnel.
Jira
│
Internet
│
Cloudflare Tunnel
│
localhost:5678
- Webhook URL:
https://<my-subdomain>.<my-domain>/webhook/jira-test
Cloudflare Tunnel is free for personal use and is a secure way to expose local services to the Internet. It also provides a public URL that can be used in Jira Automation.

Tunneling through Cloudflare allows me to run n8n locally while still being able to receive webhooks from Jira Cloud.

Step 2. Create a Jira Automation Rule
- Trigger:
Work item created - Action:
Send web request - Method:
POST - Request body:
{ "issue": { "key": "", "summary": "", "reporter": "", "reporterEmail": "" } }
Step 3. Build the n8n Workflow
- Webhook
│
▼
Slack
(Look up user by email)
│
▼
Slack
(Send message)
│
▼
Respond to Webhook
Step 4. Look Up the Slack User
- Slack node:
Resource User Operation Look Up by Email - Expression:
- Slack returns:
{ "id": "U012345678", "real_name": "Firstname Lastname", ... }
Step 5. Send the DM
- Slack node:
Resource Message Operation Send - Destination:
User - Selection:
By ID - Expression:
- Message:
Hello ! Issue: Summary:
Result
Whenever a Jira issue is created:
Jira
↓
n8n
↓
Slack DM
The reporter immediately receives a Direct Message from:
Jira Automation
Which is sent by the Slack bot.

Problems I Encountered
- Reporter email was empty
Wrong:Corrent:
- “Respond to Webhook” error
The Webhook node was configured to:
Using 'Respond to Webhook' Node
Therefore, the workflow must end with:
Respond to Webhook

Lessons Learned
- Use Cloudflare Tunnel to expose a local n8n instance securely.
- Jira Automation can send rich JSON payloads to n8n.
- Slack’s Look Up by Email operation makes it easy to identify a user.
- A Bot Token (xoxb-…) sends messages as the Slack App rather than as a personal user.
- n8n’s node-based workflow makes integrating SaaS services straightforward.
Next Steps
The next improvement is to make the workflow production-ready by adding:
- Data normalization (Edit Fields node)
- Better Slack message formatting (Block Kit)
- Error handling
- Logging
- Reusable sub-workflows
Eventually, this workflow will become one component of a larger Company AI Assistant, integrating Slack, Jira, Notion, and AI through n8n.