Slack alerts for new ConnectWise PSA service tickets

By General Input

Catch new service tickets before they go cold. Every 15 minutes, your dispatch team gets a triaged Slack message for each new ConnectWise PSA ticket.

Integrations

  • ConnectWise PSA (Manage)
  • Slack Bot

Type

Agentic Task

Categories

  • Customer Support
  • Operations

Build me an agent workflow that triages new service tickets from ConnectWise PSA into a Slack dispatch channel every 15 minutes during business hours, so a dispatcher can pick up a ticket in one click without combing the queue.

Trigger: a cron schedule that fires every 15 minutes between 7am and 7pm in my local timezone, on weekdays only. Skip evenings and weekends.

On each run, the agent should do the following using ConnectWise PSA and Slack Bot.

1. Pull fresh tickets from ConnectWise PSA with List Service Tickets. Use a conditions filter that returns tickets where dateEntered is within the last 20 minutes (a small overlap so we never miss anything during clock skew) and the status name is one of New, Reopened, or Needs Attention. Scope to the service board IDs I configure.

2. For each ticket, call Get Service Ticket to pull the full record (summary, initial description, board, status, priority, owner, contact, agreement) and Get Company on the linked company to pull the customer name and any agreement metadata.

3. Skip any ticket that already has an owner assigned, and skip any ticket whose ID is less than or equal to the highest ticket ID the workflow has already alerted on in a previous run.

4. Write a one or two sentence plain-English summary of what the customer is reporting, based on the ticket summary and initial description. Strip signatures and email quoting.

5. Infer a recommended priority of P1 through P4 from urgency keywords in the summary ("down", "outage", "production", "cannot", "urgent"), the SLA tier on the linked agreement (if present), and a configurable list of tier-1 customers that should always be P1 or P2.

6. Suggest a likely queue or owner based on the board, the customer, and keywords in the summary (for example, route anything mentioning Microsoft 365 or Exchange to the M365 queue).

7. Post one Slack message per ticket to the dispatch channel I name. The message should include the ticket number, customer name, the one-line summary, the recommended priority (with an emoji prefix like :rotating_light: for P1 and :large_yellow_circle: for P3), the suggested owner or queue, and a clickable deep link back to the ticket in ConnectWise of the form https://{siteUrl}/v4_6_release/services/system_io/router/openrecord.rails?locale=en_US&recordType=ServiceFV&recid={ticketId}. Use Slack thread replies for follow-up updates so each ticket stays in its own thread.

State to remember between runs: track the highest ticket ID already posted and the cutoff timestamp of the last successful scan. Use that on the next run to deduplicate, even if a status flips back and forth. If a run fails partway, do not advance the cutoff so the next run replays the missed window.

Configuration I should be able to edit without rewriting the agent:

- The service board IDs to watch.

- The Slack channel for alerts.

- The cron window (default every 15 minutes, 7am to 7pm, weekdays).

- The statuses that count as "new" (default New and Reopened).

- The tier-1 customer list and urgency keyword list used by the priority inference.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them