Threadmaker is the conversations integration, not the
notifications add-on: every Jira issue gets one Slack thread, and the
discussion lands back on the ticket automatically. This page is
everything Slack workspace admins and Jira project admins need to
install, configure, and run it. Power users in mapped channels can skim
the scenarios +
shortcut + mentions
sections. If you can't find an answer here, email
support@threadmaker.dev.
Install in 5 steps
Prefer to see it?
Follow the visual setup guide — the same five steps with a
screenshot at each one, plus a short look at the per-project settings.
Add Threadmaker to Slack. Click the
Add to Slack button on
threadmaker.dev or your Slack App Directory entry
and authorize the workspace. After OAuth completes you'll see your
connection token — a UUID that pairs the Slack app with
its Jira counterpart. Copy it (we DM you a link back to the app —
never the token itself; a workspace admin can re-reveal or rotate
the token any time from the App Home tab).
Install the Forge plugin from the Atlassian Marketplace.
In Jira admin, open Apps → Threadmaker → Global Settings, paste the
connection token from step 1, and save. (The App URL is
preconfigured — the token is all you enter.)
Enable Threadmaker for the project. Open
Project settings → Apps → Threadmaker in Jira and turn on
"Threadmaker for this project". Sync is off by default, so
a Jira admin opts each project in before any of its comments leave Jira.
Per-project options and templates live here too. (Both this and the
channel mapping in the next step are needed for sync to flow.)
Pair a Slack channel with that project. In Slack, run
/jira-map in the channel you want to use. The modal
shows your Jira projects; pick one and confirm.
Try it. Comment on a Jira issue in the paired project.
Threadmaker creates a thread in the Slack channel and posts the
comment as a reply. Reply in the thread — the message lands as a
Jira comment within seconds.
That's it. Everything from here is configuration, edge cases, and
optional features.
Three ways teams use Threadmaker
Engineering triage
Your team files bugs in a Jira BUG project and discusses them in
#eng-bugs. Pair the channel to BUG once
(/jira-map); every new bug spawns a thread. Triage
happens in Slack; the ticket gathers the conversation
automatically. First-response time drops from "whenever someone
checks Jira" to "when someone reads Slack."
Customer support escalation
Your support team escalates to engineering in
#escalations. Pair it to a Jira CS project. The agent
creates the ticket, a thread spawns in Slack, engineering replies
in-thread, and the ticket grows a complete diagnostic log without
anyone retyping context — so engineering picks up the escalation
with the full history already attached.
On-call incident response
An incident opens a Jira INC ticket. Your team jumps into
#incidents. Everyone sees the anchor message — current
status, assignee, timeline — and as the ticket moves
Investigating → Mitigating → Resolved, the thread title
reflects it. After the incident, the thread is the
postmortem — no separate timeline to reconstruct.
One thread per ticket. Each Jira issue gets one
anchor message — a thread root in its
mapped channel. All Jira-side activity for that
ticket — comments, attachments, status updates — appears as
replies in that thread. The conversation lives in one place.
Bidirectional, with attribution. Slack replies become
Jira comments; Jira comments become Slack replies. Both sides
carry author attribution
([Alice via Slack] ... in Jira;
"Alice (Jira)" in Slack) — Threadmaker never silently
"speaks for" a real user.
Per-project opt-in. Every behaviour — enabled at all,
sync edits, sync reactions, sync messages from other Slack apps,
allow Slack→Jira issue creation, live anchor updates — is a Jira
project-admin
decision in Project settings → Apps → Threadmaker. Workspace
admins on the Slack side pair channels but don't override a
project-admin's "off". Defaults are conservative.
Slash commands (admin)
Who can run these
Three of the four — /jira-map, /jira-alerts,
and /jira-audit — are gated to Slack workspace admins or
owners; only an admin can change channel pairings, set the alerts
channel, or read the audit log. Non-admin members get a friendly
"this command is admin-only" reply. /jira-create is gated
differently: a Jira project admin opts it in per project (default OFF
— see project settings), and then any
member of the channel can run it.
Pair a channel with a project — /jira-map
Tell Threadmaker which Jira project a channel belongs to. Run inside
the channel you want to pair.
/jira-map (no args) — opens a modal with a dropdown
of your Jira projects. Pick one and confirm. Best for
discoverability.
/jira-map PROJ — power-user shortcut (workspace
admins only, same as the modal). Validates the project key and
binds it to the current channel. PROJ must be uppercase
letters, digits, and underscores, starting with a letter.
/jira-map off — unbind the current channel (workspace
admins only, like every /jira-map form). Existing
anchor messages stay in place; new Jira activity stops syncing.
Gotchas
One channel = one project — and one project = one channel.
Re-running with a different key replaces this channel's pairing;
mapping a project that's already paired to another channel
is rejected until you run /jira-map off there.
Invite the bot to the channel
(/invite @Threadmaker) before pairing — Slack
bots only receive events from channels they're a member of,
whether the channel is public or private.
The dropdown shows up to 100 projects (Slack's dropdown limit); the
/jira-map PROJ shortcut is always available for
tenants with more.
Create issues from Slack — /jira-create
Open a Jira create-issue modal without leaving the channel. OFF by
default per project; a Jira project admin opts in via Project
settings → Apps → Threadmaker → Allow creating Jira issues from
Slack. When on, anyone in the channel can run the command.
Running /jira-create opens a create modal scoped to the
project; /jira-create <text> opens it with the summary
pre-filled. On a Software or Business project it shows an Issue
type dropdown with the project's own types (e.g. Task / Story / Bug /
Epic) and files a standard issue.
On a Jira Service Management project it shows a Request type
dropdown listing the desk's portal request types and attempts to file a
customer request via the JSM API (with the app as reporter). JSM request
creation is best-effort — it depends on your site's Service Management
agent configuration; standard Software/Business issue creation is
unaffected. Required custom
fields surface as additional inputs. Submit to create the issue or
request and post a confirmation message linking to it.
Gotchas
The created issue is attributed to the Threadmaker app, not the
Slack user — the Slack reporter is named in the description.
Threadmaker runs as the app identity and doesn't act as
individual Jira users (no personal Jira tokens are stored).
Required fields and formats are validated inline in the modal —
it stays open with the errors highlighted. A rejection from Jira
itself after submit arrives as an ephemeral message that includes
your typed text, so you can retry without losing it.
Attachments aren't supported in the create modal — add them by
replying in the synced thread once the issue lands.
Inspect what's been syncing — /jira-audit
Show recent sync events for the project paired to the current
channel: timestamp, direction (Slack→Jira or Jira→Slack), action
(create / edit / delete, plus issue-level events: created / updated /
moved / deleted, plus housekeeping rows — 🧹 dormancy cleanup), issue
key, actor, and status (success/failed). Workspace admins only. Events
are retained for 90 days.
/jira-audit — last 20 events.
/jira-audit 50 — last 50 events (50 is the max).
Admin-gated and channel-scoped by design
The admin gate is the first line of defence: only workspace admins can
read the audit log at all. Channel scoping is the second: the log shows
only events for the project paired to this channel, so teams
using different channels for different projects can't read each
other's history. Running the command in an unpaired channel replies
"⚠️ This channel isn't mapped to a Jira project." Workspace-wide audit
access is available to operators via the internal admin portal — email
support@threadmaker.dev if your security
team needs it.
Choose where alerts go — /jira-alerts
Pick the Slack channel that receives failure alerts when a sync
attempt fails permanently (after 5 delivery attempts). The same channel
also gets license-transition notices (grace-period start, sync paused) —
not just delivery failures. Without an alerts channel these are silent —
the audit log captures failures but no human gets pinged. Every
/jira-alerts form is workspace-admin only.
/jira-alerts (no args) — opens a channel-picker
modal.
/jira-alerts #channel — pick the channel with Slack's
autocomplete (it must resolve to a channel pill; plain typed text
isn't resolved).
/jira-alerts CXXXXXXX — direct channel-ID form.
/jira-alerts off — clear the alerts channel.
Most admins prefer a dedicated #threadmaker-alerts
channel so the bot can post freely. Invite the bot first.
Forward any message to Jira
Use case: a message in a mapped channel — a side comment, a
customer note, a decision — belongs on a live ticket in that channel's
project. Right-click it (or hover → three-dots menu), pick
Send to Jira, and name the issue. Threadmaker posts that
message as a comment on the Jira issue, and — when the issue already
has a Slack thread — drops a mirror copy into that thread
("↪ Forwarded from #channel by Alice"), so the team following
the ticket sees the forwarded context without opening Jira. (If the
message you forward already lives in that thread, the mirror is
skipped — it's already there.)
The shortcut appears on every message, but it completes only from
a channel mapped to a Jira project — and only onto issues in
that channel's project (a channel mapped to SUP sends to
SUP-* issues, not another project's). If the channel isn't mapped
yet, run /jira-map PROJ-KEY there first. Later edits
or deletes of the forwarded message reach Jira only from channels
the bot is a member of.
The Jira comment is attributed to the person who forwards it
([Alice via Slack] ...). When you forward someone
else's message, the thread mirror names both — message by Bob,
forwarded by Alice.
Only the message text is forwarded — attachments on the
original message are not copied, and very long messages are
forwarded truncated. Re-attach files in Jira, or post them as a
reply in the mapped thread (a threaded file syncs normally,
subject to the attachment limits).
The thread mirror is informational: it appears only if the
issue's Slack thread already exists (no thread yet → the comment
still lands in Jira, and the thread appears with the ticket's
next synced activity), and it doesn't track later edits or
deletions. Editing the forwarded message in Slack updates the
Jira comment only when the message is a thread reply; deleting it
removes the Jira comment (when edit/delete sync is on for the
project) — the mirror post stays as-is. A group ping like
@here in the original is neutralised to plain text
in the mirror, so forwarding never re-pings the ticket
channel.
A message can be linked to one Jira issue: sending the
same message again to a different issue is rejected with a note
naming the issue it's already linked to. (If the first attempt
failed — say, a mistyped issue number — just re-run the shortcut
with the corrected key.)
Live status in the thread title
The first time a Jira ticket has activity in a paired channel,
Threadmaker posts an anchor message — the thread root for all
subsequent activity on that ticket. Default format:
WEB-1234 — Add export to PDF
Type: Story · Status: In Progress · Priority: High · Assignee: Alice
When issue type, status, priority, summary, or assignee
change in Jira, your anchor updates in place to reflect the new value
— the thread title in Slack always shows the current state. Updates
edit the existing message silently; they don't create new
notifications.
Per-project toggle: live updates can be disabled in
Project settings → Apps → Threadmaker → Sync anchor on Jira field
changes (default ON). When OFF, the anchor posts once at thread
creation and never updates. Useful if your team prefers immutable
thread roots.
The anchor format is a configurable template (live preview in the
settings page). The most-used variables:
{{issue.key}} — e.g. WEB-1234
{{issue.summary}} — one-line title
{{issue.url}} — full Jira URL (used in
<{{issue.url}}|{{issue.key}}> for clickable
links)
{{tm.anchor}} — optional; renders nothing (the
anchor is tracked invisibly via Slack message metadata)
…plus admin-defined custom-field aliases
({{issue.<alias>}}, configured in Project settings,
up to 20 per project) — the list grows as we add fields.
{{tm.anchor}} is optional and renders nothing — the
anchor is tracked invisibly via Slack message metadata, so it is no
longer required in the template. The default template also uses
{{issue.key}} and {{issue.url}} to build the
clickable link, but those are your choice.
If a Slack reply or a Jira comment is edited, the corresponding
message on the other side updates within seconds. Same for deletes —
deleting a Slack reply removes the matching Jira comment, and vice
versa.
Per-project toggle:Project settings → Apps → Threadmaker →
Sync comment edits and deletes (default ON). Turn off if your team needs synced
comments to be immutable for compliance or audit reasons; edits and
deletes then stop syncing in both directions — a Slack-side edit
is not written to Jira, and a Jira-side edit or delete is not written to
Slack. New comments still sync both ways.
Gotchas
Edit attribution prefix updates with the edited content (the
[Alice via Slack] stays).
Adding a file to a synced message or comment propagates within
the attachment limits. Removing a file
does not — the copy already synced to the other side stays
there. To retract a file, delete the whole message or comment.
Race-condition safety: if you edit a Slack reply and then
immediately delete it, the delete wins. Ordering between the
edit and delete on the destination side may vary, but the
final state is consistent.
OFF by default. A Jira project admin opts in via Project
settings → Apps → Threadmaker → Sync Slack reactions to Jira.
When on, reacting on a synced message in Slack posts a lightweight
Jira issue comment that deep-links back to the reacted comment, e.g.
Alice reacted to (comment) with :eyes:
where (comment) is a link to the specific Jira comment.
Removing the reaction removes that comment. Reactions on the anchor
message itself link to the Jira issue instead (there's no per-comment
target). Jira has no comment-on-comment, so every one of these is an
ordinary issue comment — the only difference is where the link points.
Why opt-in
On busy channels, reactions are sometimes accidents (a misclick on
:100: instead of :+1:). Most teams don't
want a Jira mini-comment for every accidental reaction. The default
OFF respects that.
Customisable mini-comment template lives in the same
project-settings page. Customise the body via
{{reaction.actor}}, {{reaction.emoji}},
{{reaction.link}}, and {{reaction.targetUrl}}
variables.
Limitation: sync is one-way (Slack → Jira). Native Jira
comment reactions aren't yet exposed via Atlassian's public API
(JRACLOUD-78153);
we'll add the reverse direction once Atlassian ships it.
@-mentions cross the boundary
Slack @alice in a synced message becomes a real
clickable Jira mention if Alice's Slack email matches her Jira
account email — and vice versa. The mention pings the right person on
the destination side.
Three-tier graceful fallback (no admin action required):
Match. Emails align on both sides → real ping with a
clickable link.
Display-name fallback. Email aligns on one side but not
the other → the message renders as @DisplayName
plain text (no ping, but readable).
Literal fallback. The raw ID (@U12345 in Jira
or @accountid in Slack) shows only when the user
lookup fails entirely — a deleted account or an API error — or,
on the Slack→Jira side, for mentions past the 10-per-comment cap
(those render as the raw @U12345 in Jira). A merely
missing email still falls back to the readable
@DisplayName tier above, not to the raw ID.
Lookups are cached for 24 hours per workspace. Up to 10 distinct
mentions resolve per comment (Cloudflare subrequest cap).
Privacy
Emails live only in our Cloudflare D1 database (encrypted at
rest), isolated per workspace, refreshed about every 24 hours,
deleted 30 days after last refresh, and deleted immediately when the
workspace uninstalls. We never share them with third parties or use
them for profiling. See
Privacy Policy §8 (Data Retention) for
the full PII boundary.
Slack → Jira: files attached to a Slack reply land as
attachments on the Jira comment.
Jira → Slack: files attached to a Jira comment land as
separate file-share messages in the Slack thread, paired with
the parent comment.
Cap: 5 files × 2 MB each per comment
Files over the cap are dropped (Slack→Jira) with an ephemeral
warning to the uploader explaining what happened. Best-effort: a
failed file upload doesn't abort the comment delivery — the text
still syncs.
Inline images. When you attach an image (PNG, JPEG, JPG, GIF,
WebP) to a Jira comment, it renders inline in the Jira comment body —
not just in the Attachments tab. SVG and other formats aren't inlined
for security reasons but still appear as attachments.
Why the cap? Threadmaker forwards file bytes through the
Cloudflare Workers + Atlassian Forge proxies, both of which have fixed
body-size budgets. The 5×2 MB shape covers the vast majority of triage
attachments (screenshots, log snippets, PDFs, small CSVs). For large
files (videos, log dumps, full database dumps), upload to your team's
storage system and paste a link in the comment.
Every behaviour is per-project. Open
Project settings → Apps → Threadmaker in Jira to configure:
Per-project settings, defaults, and when to change them.
Setting
Default
What it does
Enable Threadmaker for this project
OFF
Master switch — OFF by default (per-project data-egress
opt-in). A Jira admin must turn this ON in Jira → Project
Settings → Apps → Threadmaker before any comments sync;
mapping a channel with /jira-map alone does not
enable it — both steps are required. When OFF, no syncing happens
regardless of other settings.
Sync comment edits and deletes
ON
Bidirectional propagation of edits and deletes. Turn OFF if
your team needs Jira comments to be immutable.
Sync anchor on Jira field changes
ON
Live updates to the anchor message when type / status /
priority / assignee / summary change in Jira. See
live status.
Sync Slack reactions to Jira
OFF
Posts a lightweight issue comment that deep-links to the reacted
comment when someone reacts in Slack. See
reactions.
Allow creating Jira issues from Slack
OFF
Enables /jira-create for this project. See
/jira-create.
Sync messages from other Slack apps
OFF
Mirrors a reply that another Slack app posts inside a mapped
ticket thread into Jira as a comment. Only apps that reply in
a thread — a top-level channel post (most alert/incident
integrations) has no thread to attach to, so it is not synced. Off
by default; rate-limited and guarded against bot-to-bot echo
loops.
Notify in thread when an issue moves projects
OFF
Posts a 🔀 notice in the thread when a Jira issue is moved to a
different project. The thread follows the issue automatically;
this only adds a heads-up message.
JSM: public comments only
ON
JSM projects only. When ON, internal Jira agent notes stay in
Jira and never sync to Slack — only customer-visible comments
cross over. Default ON keeps internal notes private.
JSM: post Slack comments as internal
OFF
JSM projects only. When ON, Slack replies post as
agent-internal (not customer-visible) and internal Jira
comments begin syncing to Slack — an agent-only channel.
Mutually exclusive with "public comments only" above. Default
OFF = customer-visible.
Anchor template
2 visible lines
Customise the anchor format. Live preview in the settings
page. {{tm.anchor}} is optional — the anchor's
orphan-recovery marker is tracked invisibly via Slack message
metadata.
Slack-comment template (Jira side)
[{{slack.author}} via Slack] {{slack.text}}
How a Slack reply renders as a Jira comment. Vars:
slack.author, slack.text,
slack.channel.{id,name},
slack.message.{url,ts}. The sync marker is tracked
invisibly via a Jira comment property, so no template token is
needed.
Jira-comment template (Slack side)
*{{comment.author}}* (Jira):
{{comment.body}}
How a Jira comment renders as a Slack thread reply. Vars:
comment.author, comment.body,
comment.url, comment.{created,updated},
comment.kind (JSM only — 🔒 Internal note / 💬 Public reply /
👤 Customer for the mirrored comment; empty on non-JSM projects),
issue.key. (This Jira→Slack template does not carry
a marker — the reply is matched by its Slack thread position.)
Reaction-comment template (Jira side)
Sensible default
Active only when reaction sync is ON. Vars:
reaction.{emoji,actor,link,targetUrl}, plus the
shared slack.* / issue.* scopes. The
sync marker is tracked invisibly via a Jira comment property,
so no template token is needed.
How {{comment.kind}} is decided (JSM): Threadmaker
classifies the mirrored comment by the author's Jira account type,
not by where it was written. A portal customer (an account with no
Jira licence) shows as 👤 Customer; an agent — any licensed Jira user
— shows as 💬 Public reply even when they reply through the portal;
an agent's internal note shows as 🔒 Internal note (and only reaches
Slack when the project is not set to “Public comments only”).
Saving any setting pushes the change to the Threadmaker backend
within seconds. Workspace admins on the Slack side don't need to do
anything — the new behaviour applies to the next event.
App Home tab in Slack
Open Threadmaker from the Slack sidebar (or
Apps → Threadmaker) to see the App Home tab:
Setup checklist — a condensed two-step version (Connect to
Jira · Map a Slack channel) with live done/undone indicators based
on what you've already configured.
Connection token — copy or rotate. Rotating invalidates
every previous Forge ↔ Worker connection; you must re-paste
the new token in Jira admin afterwards. Use only if you suspect
the previous token leaked.
Failure alerts channel — current setting + a button to
change.
License status — Atlassian Marketplace billing state
(active, or paused with a grace-period countdown when a
subscription lapses). When a paying license lapses, Threadmaker
enters a 2-day grace period during which sync continues and a
warning banner appears here (and on the Jira admin page) showing
the date sync will pause; after that, sync pauses until the
license is reactivated.
Glossary
Anchor message
The thread root posted by Threadmaker when the first Jira
activity hits a mapped channel. Displays the issue key, summary,
type, status, priority, and assignee. All synced comments become
replies to this message. Updated in place when Jira fields
change.
Mapped channel (or "paired channel")
A Slack channel linked to a Jira project via /jira-map.
Issues from that project create anchor messages in that channel.
One channel = one project.
Connection token
A UUID generated at OAuth that pairs a Slack workspace with its
Forge plugin. A Jira admin pastes this token into
Apps → Threadmaker → Global Settings in Jira admin. Rotatable from
the App Home tab.
Marker
A short machine-readable correlation id Threadmaker stores invisibly
alongside each synced message — as a Jira comment property
on the Jira side and as Slack message metadata on the Slack
side. It is never shown in the comment or message text. It lets Threadmaker
recover from partial failures by finding the right Jira comment on retry.
The {{tm.marker}} template variable remains in the Slack-comment
template for compatibility but now renders nothing (the marker moved out of
the visible body). (Anchor templates use the sibling
{{tm.anchor}} for the same purpose.)
Live updates
The behaviour where an anchor message in Slack edits itself when
the underlying Jira issue's status, type, priority, or assignee
changes. Toggle in Project settings → Sync anchor field
updates.
Pricing tiers
Threadmaker is free for 1–10 users. Paid tiers (Team / Business /
Enterprise) bill through the Atlassian Marketplace by Jira user count;
no feature gates — every tier gets the full feature set (edit sync,
reactions, /jira-create, custom templates, live anchors).
The Slack app itself is always free; Atlassian handles the billing.
See threadmaker.dev pricing for tier details
and annual discounts. The free tier (up to 10 users) needs no credit
card; paid tiers come with Atlassian Marketplace's standard free trial
and are billed by Atlassian — Threadmaker never charges you directly.
Roadmap and current constraints
Coming soon
Bidirectional reaction sync (gated on Atlassian
JRACLOUD-78153)
— Atlassian doesn't yet expose comment reactions via public API.
We'll add the reverse direction once Atlassian ships it.
Architecture constraints (not priorities)
Attachment cap: 5 files × 2 MB per comment (see
attachments). Larger files belong in
your team's storage; paste a link in the comment.
Mention email matching: requires that a person's Slack
email matches their Jira account email. SSO setups where the two
differ fall back to display-name text rendering — readable but
no ping.
Custom-field validation in /jira-create:
we surface required built-in fields and most custom-field types
(priority, labels, components, single-select). Highly custom
types (cascade selects, scripted defaults) may not validate
cleanly through the modal — fall back to creating the issue in
Jira directly.
Sync latency: typical 1–5 seconds end-to-end. Slower under
Atlassian Forge cold-start (the first event after a quiet period
can take 10–30 seconds). Operations are durable — a retry queue
catches anything that fails on the first attempt.
Disable or uninstall cleanly
You can back out of Threadmaker without losing data. Three levels:
Disable for one project. Open Project settings → Apps →
Threadmaker and toggle Enable Threadmaker for this
project OFF. Existing anchor messages stay in the channel; new
Jira activity stops syncing. Jira comments and attachments are not
deleted.
Uninstall the Slack app. Go to Apps → Threadmaker
in Slack, click Uninstall App. The Slack-side sync stops;
Jira is unaffected. Your workspace's data is deleted automatically
on uninstall (typically within minutes; a 30-day SLA upper bound
covers any retry-window delay), per
Privacy Policy §8 (Data Retention). Rolling
encrypted backups age out within 90 days.
Uninstall the Forge plugin. In Jira, go to Settings →
Apps → Manage apps → Threadmaker and click Uninstall.
Forge-side configuration is removed and all Jira↔Slack syncing stops —
there's no longer anything to relay events through. The Slack app
itself still responds (slash-commands and the App Home tab, which now
shows "not connected"), but no comments move in either direction. If the
Forge side stays gone for about a month (~33 days of sustained silence),
Threadmaker treats the workspace as dormant and wipes its stored
Jira-derived data; it posts warnings to your alerts channel (or DMs the
installer) beforehand. Reconnect the plugin within that window to keep
your channel mappings and thread history.
For an immediate full-data wipe (GDPR data-subject request), email
dpo@threadmaker.dev with subject
"Data deletion request".
Troubleshooting
Comments aren't syncing
Ask a workspace admin to run /jira-audit in the
channel (the command is admin-only) — it shows the last 20 sync
events including failures. Check for any "failed" rows.
Confirm the channel is paired: a workspace admin can re-run
/jira-map PROJ and look for the
"✅ This channel is now synced with Jira project PROJ"
confirmation.
Confirm the project is enabled in
Project settings → Apps → Threadmaker.
Confirm the bot is invited to the channel
(/invite @Threadmaker) — Slack bots only receive
events from channels they're a member of, both public and
private.
Check the App Home tab for a license-paused banner. A lapsed
Atlassian Marketplace subscription pauses sync after a 2-day
grace period.
The anchor message shows the wrong status
Live updates are disabled in Project settings → Apps →
Threadmaker → Sync anchor on Jira field changes, or the anchor
predates the channel mapping. Manually re-run any operation on the
issue (add a comment, transition it) to trigger a fresh anchor render.
Or re-enable the toggle.
A Jira comment didn't appear in Slack
If the comment was made by the Threadmaker app itself (a
Slack→Jira sync round-trip), it's intentionally not echoed back
to Slack. Origin tracking prevents echo loops.
If a real Jira user wrote it, check /jira-audit for
an error row. Common causes: Slack channel was archived, bot
was kicked, or a Slack rate-limit briefly hit.
A Jira issue moved to another project
The thread follows the issue automatically — its key updates
(e.g. ABC-1 → XYZ-5) and the existing Slack
thread stays attached. If the destination project isn't paired to a
channel, pair it (/jira-map) to resume syncing new
comments. With Notify in thread when an issue moves projects
enabled, a 🔀 notice is posted; otherwise the move is silent.
An attachment didn't sync
Most likely it's over the 2 MB cap. Slack senders see an ephemeral
warning when one or more files are dropped. Jira-side attachments over
2 MB simply don't appear in Slack — the comment text still syncs.
Upload to your team's storage and paste a link.
"Sync paused" banner
The Atlassian Marketplace license has lapsed past the 2-day grace
period. Reactivate the subscription in Atlassian admin to resume sync.
The audit log preserves events that fired during the grace + paused
period (90-day retention).
Connection token leaked
Rotate it from the App Home tab → Rotate connection token.
The old token becomes invalid immediately. Paste the new token in
Apps → Threadmaker → Global Settings in Jira admin to re-establish the
connection. Until you re-paste, Jira-side activity won't deliver to
Slack.
Where to get help
Product questions, sync issues, configuration help:support@threadmaker.dev — see
Support for hours and what to include in
your email.
Status:/healthz
returns the current backend health snapshot.
Security disclosures:security@threadmaker.dev
with subject "Security disclosure". We acknowledge within one
business day under standard responsible-disclosure norms.