Jira Service Management
Works with: Jira Service Management Cloud (*.atlassian.net) and Data Center / Server.
What SafeHanded does in Jira: private (internal) comments on every step · a customer-visible reply
for link delivery · the chain-of-custody certificate attached on purge · close-to-purge · request from
a ticket (deep link).
Before you start
Section titled “Before you start”- A Jira admin, and a SafeHanded Owner/Admin on the Team plan or above.
- About ten minutes.
1. Connect
Section titled “1. Connect”- Cloud: create an API token at https://id.atlassian.com/manage-profile/security/api-tokens. Data Center / Server: create a personal access token (Profile → Personal Access Tokens).
- In SafeHanded: Settings → Integrations → Connect → Jira Service Management. Enter
your site URL (e.g.
https://acme.atlassian.net), the account email (only used on Cloud, but the form asks for it either way), the token, and the deployment, then click Connect and test. - Organizations field id (under Advanced & optional settings) — leave blank unless you need it. Only fill this in if you map tickets to
clients by the JSM Organizations field, and then only with its real custom-field id (e.g.
customfield_10037). A made-up value makes Jira reject every ticket search with a 400 — so if the picker says “Ticket search is unavailable”, clear this field first.
2. Close detection
Section titled “2. Close detection”Nothing to set up. SafeHanded polls Jira for status changes, so resolving or closing a ticket purges its credential on the next poll. SafeHanded re-reads the ticket via the API before anything is purged — see how ticketing works.
3. Request from a ticket (deep link)
Section titled “3. Request from a ticket (deep link)”Jira has no built-in button that opens a web address, but an automation rule with a manual trigger adds a one-click action to every issue.
- In Jira, go to Project settings → Automation (or ⚙ Settings → System → Global automation for every project) and create a rule with the trigger Manual trigger. That puts the rule in each issue’s ••• → Automation menu.
- Add the action Comment on work item (older sites: Comment on issue), set its visibility to Internal, and paste the link below as the comment.
{{issue.key}}is Jira’s placeholder for the issue key, such asSUP-123; Jira fills it in when the rule runs. - Name the rule, for example Create SafeHanded request, save it and turn it on.
- On an issue, the agent runs the rule from ••• → Automation and clicks the link in the new internal comment.
https://safehanded.com/app/requests/new?ticket={{issue.key}}Settings → Integrations → your Jira Service Management card → Activity shows this link ready to copy.
Choosing a preset (optional). A preset is a saved request — the reason, how long the credential is kept, who receives it and how the link is sent. To start from one, add &preset= and the preset’s slug to the end of the link, for example &preset=password-reset. Each preset’s slug is shown, with a copy button, under Settings → Request presets. With no preset in the link, SafeHanded uses the client’s default preset, then the organisation default (Settings → Policy → Default preset for new requests), and otherwise the policy defaults.
No click at all. Point a Manual trigger rule’s Send web request action at a generic webhook integration’s trigger URL (Settings → Integrations → Generic webhook) with the SafeHanded trigger body; SafeHanded then creates the request with no one present. This needs a second ticketing integration (the generic webhook), which the MSP plan allows; the Team plan includes one ticketing integration. A request created this way is linked through the generic webhook integration, so its close-to-purge follows that integration’s setup, not Jira’s polling.
4. Status mapping
Section titled “4. Status mapping”The default map covers the common workflow status names — Open / To Do / In Progress / Waiting for support → open, Waiting for customer / Pending / On Hold → pending, Resolved → resolved, Done / Closed / Cancelled → closed. Because Jira workflows are per project, any custom status shows as unknown (never purge) until mapped.
5. What technicians see
Section titled “5. What technicians see”- Internal comments (
public: false): created · submitted · (optionally) revealed · destroyed · expired · revoked · rotation recommended. - Public reply (if the preset delivers in-ticket): the secure link and a one-line explanation — never the challenge code.
- The certificate PDF attached to the issue on destruction (if the Attach certificate policy is on).
Troubleshooting
Section titled “Troubleshooting”| Symptom | Cause / fix |
|---|---|
| Test connection fails | Cloud: check the account email matches the API token. Data Center: use a personal access token, not a password. |
| Requester email blank | Jira hides emailAddress unless the app has the user-privacy permission; grant it or map the reporter another way. |
| “Unknown status” on the card | Map the workflow status in the status-map editor. |