SuperOps
Works with: SuperOps for MSPs (US and EU data centres). What SafeHanded does in SuperOps: private ticket notes on every step · close-to-purge · request from a ticket (deep link). SafeHanded doesn’t post a customer-visible reply for SuperOps yet, and doesn’t attach the chain-of-custody certificate to the ticket. The separate SuperOps for IT teams product isn’t supported yet.
Before you start
Section titled “Before you start”- A SuperOps admin, and a SafeHanded Owner/Admin on the Team plan or above.
- About ten minutes.
1. Connect
Section titled “1. Connect”- In SuperOps, click the Settings (gear) icon, select your name under My Profile, open the API Token tab and click Generate Token. (SuperOps developer docs)
- In SafeHanded: Settings → Integrations, choose Connect and pick
SuperOps. Give the connection a name, paste the API token, enter your subdomain (the
CustomerSubDomain, e.g.
acme) and choose your data centre (US or EU), then click Connect and test.
2. Close detection
Section titled “2. Close detection”Nothing to set up. SafeHanded polls SuperOps 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)”SuperOps has no built-in button that opens a web address, so add the link to a reply template (a canned reply) that agents insert as a private note.
- In SuperOps, create a reply template named, for example, Create SafeHanded request.
- Paste the link below into it.
{{ticket.ticketId}}is the ticket’s internal ID (not the number shown on screen), which SuperOps fills in where it supports placeholders. - On a ticket, the agent inserts the template as a private note and clicks the link in it.
https://safehanded.com/app/requests/new?ticket={{ticket.ticketId}}To copy this link, open Settings → Integrations, select your SuperOps integration and go to its Activity tab.
If the link opens without the ticket filled in, bookmark the plain new-request page instead and pick the ticket in SafeHanded’s ticket picker:
https://safehanded.com/app/requests/newChoosing 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 SuperOps automation’s Webhook 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 SuperOps’s polling.
4. Status mapping
Section titled “4. Status mapping”SuperOps ships New / Resolved / Closed by default; the map also covers commonly-added statuses — Open / In Progress → open, Pending / On Hold → pending, Resolved → resolved, Closed → closed. Anything else shows as unknown (never purge) until mapped.
5. What technicians see
Section titled “5. What technicians see”- Private notes: created · submitted · (optionally) revealed · destroyed · expired · revoked · rotation recommended.
- In-ticket link delivery isn’t available for SuperOps yet — use email or SMS delivery instead.
Troubleshooting
Section titled “Troubleshooting”| Symptom | Cause / fix |
|---|---|
| Test connection fails | Check the token, the subdomain (CustomerSubDomain) and that the data centre matches your account. |
| “Unknown status” on the card | Map the status under Status mapping on the integration’s Configuration tab. |