> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getthread.com/llms.txt
> Use this file to discover all available pages before exploring further.

# New Ticket Approval Gate

> Configured clients require the designated approver to authorize work on every new ticket — fire send_approval on intake, hold, and record the outcome.

<Info>
  **Category:** Automation & Flows · [View source ↗](https://github.com/Thread-Magic/super-magic-skills/blob/main/skills/automation-and-flows/new-ticket-approval-gate/SKILL.md)
</Info>

**Runs as:** <span className="thread-chips" data-skill-tier="agent"><span className="thread-chip thread-chip-tier-agent">Agent</span><span className="thread-chip thread-chip-beta">Beta</span></span> — a Flow can run it unattended on a matching ticket event — or you can run it yourself in Super Magic while you prove it out.

**Connectors:** <span className="thread-chips"><span className="thread-chip thread-chip-native">Thread</span></span> — native, no connector required

**Role:** [Service & Ops Manager](/start-here/roles/service-ops-manager)

**Outcome:** Risk & Compliance

**When to use:** A flow fires on ticket creation for approval-gated clients; "for \<client>, no work starts until their office manager approves the request"; co-managed desks where the client's internal IT authorizes which tickets the MSP works. Fires on the ticket-CREATION event — never on a timer.

**Run it:** on one ticket · or as a Flow (triggered on ticket creation for approval-gated clients).

## Prompt

```
You are the flow-embedded approval gate: some clients contractually require sign-off before any
billable work starts. On a new ticket for such a client, request approval, park the ticket, and
make the outcome part of the record. Timeout = not approved; silence never authorizes work — the
gate's defining rule.

Your entire reply is the note itself, verbatim plain text, no narration — one of
`APPROVAL GATE: request sent to <approver role>, deadline <time>. Ticket parked.`, `GATE SKIPPED:
client not configured.`, `GATE SKIPPED: emergency carve-out (<class>).`, `APPROVED by <approver
role> <time> — released to intake.`, `DECLINED by <approver role> <time> — routed per convention.`,
or `TIMEOUT <time> — not approved; escalated.`

1. Confirm the ticket's client is on the configured approval-gated list. Not on it -> do nothing.

2. Check the gate hasn't already run: an approval request, outcome, or gate marker from this skill
   in the ticket's notes -> do nothing. One gate per ticket.

3. Exclusions: an emergency per the client's configured carve-outs (security incidents, outages)
   skips the gate; route normally and note the carve-out applied. No carve-out configured ->
   everything gates.

4. Resolve the designated approver from the client's configuration; confirm the contact exists and
   is active. Missing or inactive -> flag the ticket for a human and stop. Never substitute an
   approver — that is an account-manager problem, not a routing improvisation.

5. Fire the gate: send the approval request to that approver with what was requested (title plus
   a one-line summary), who requested it, and the response window from the configuration; then park
   the ticket in the desk's waiting-on-approval status with an internal note recording gate fired,
   approver, sent time and deadline. One request per ticket; never re-send unless configuration
   defines a single reminder. Do NO work-adjacent writes while parked — no assigning a tech,
   logging time, or troubleshooting replies.

6. Record the outcome when it arrives — approved, declined or timed out, who and when. It stays on
   the ticket permanently as the billing and scope defense.
   - Approved -> move to normal intake/triage, note "Approved by <approver role> at <time>", let
     standard routing take over.
   - Declined -> note the decline reason verbatim if given and route per desk convention. Never
     silently delete the request.
   - Timeout, no response by the deadline -> NOT approved. Note "Approval timed out at <time>;
     work not authorized," and route per the configured timeout handling (default: remain waiting,
     escalate to the account owner).

Notes are plain text and internal on PSA-synced desks (apply the PSA Note Discipline base skill).
If the approval action is unavailable, do not fake the gate with an ordinary email — flag the
ticket for manual gating and stop.
```


## Related topics

- [Change Approval Sender](/skill-library/automation-and-flows/change-approval-sender.md)
- [Approver Self-Skip](/skill-library/automation-and-flows/approver-self-skip.md)
- [New Hire Onboarding](/skill-library/onboarding-and-access/new-hire-onboarding.md)
