Admin Lesson 4: Helpdesk Integration

Admin Lesson 4: Helpdesk Integration

Helpdesk integration is the first thing you set up. Until Horizon can read tickets from your PSA and write back to it, nothing else matters — triage has nothing to triage, assignment has nothing to assign, scheduled todos have no tickets to attach to. This lesson walks through the integration pages and the order you set them up in.

Why this comes first

Problem: Horizon adds a layer on top of your helpdesk — todos, scheduling, assignment, automation. That layer needs the underlying tickets, contacts, companies, statuses, and users from the helpdesk to attach itself to. Without the connection, the rest of Horizon is configuring rules against an empty dataset.

Horizon's answer: A bidirectional integration with your PSA. Horizon pulls tickets and reference data in, and pushes notes, status changes, time entries, and other updates back out. Once the integration is live, every other Horizon feature has something to operate on.

Supported helpdesks:

  • ConnectWise Manage
  • Autotask (Datto/Kaseya)
  • Zoho Desk
  • HaloPSA

You pick one per account. Most teams stay on a single PSA — Horizon does too.

Where helpdesk integration lives

Open the admin panel and navigate to Integrations → Helpdesk. You'll find the following pages:

PageWhat it does
Helpdesk Configurationthe connection itself — credentials, sync settings
Helpdesk User Mappingmaps each helpdesk user to a Horizon user
Picklist Databaselocal cache of helpdesk picklists (statuses, types, priorities, queues) used throughout Horizon
Helpdesk Callback Statuslive view of inbound webhook health from the helpdesk
Helpdesk Widget Statushealth check for the dashboard and ticket widgets embedded in the helpdesk
Sync Run logsaudit trail of every sync operation Horizon has run
Callback Logrecord of every inbound webhook the helpdesk has fired

The recommended setup order is: configuration → user mapping → picklist database → widgets → callbacks → verify with sync run logs.

Helpdesk Configuration

This is where Horizon learns how to talk to your PSA.

The form changes based on which helpdesk you pick:

  • ConnectWise — public/private API keys, company ID, regional endpoint (NA, EU, AU, or staging).
  • Autotask — API user credentials, integration code (tracking ID), zone discovery is automatic.
  • Zoho Desk — OAuth flow; the form launches a Zoho consent screen, you approve, Horizon stores the refresh token.
  • HaloPSA — client ID, client secret, base URL, tenant.

Exact credential setup per PSA is in the per-helpdesk KB articles — this lesson covers the page itself, not the auth dance for each PSA.

Once credentials are saved, the page also exposes sync settings:

  • Which entities to sync (tickets, contacts, companies, time entries — varies by PSA)
  • How far back to ingest historical tickets on first sync
  • Polling interval for backup polling (in case webhooks are delayed)

Tip: Start with a conservative ingest window (e.g. 30 days). You can backfill more later. Pulling years of historical tickets on day one slows down the first-sync experience and almost never pays off.

Helpdesk User Mapping

Problem: Horizon has its own user records. Your helpdesk has its own user records. They're not the same records. Without a map, Horizon doesn't know that "Bob Smith" in ConnectWise is the same person as "bob.smith@msp.com" in Horizon.

Horizon's answer: The User Mapping page lists every active helpdesk user and lets you bind each one to a Horizon user. After mapping:

  • Tickets assigned in the helpdesk show up under the right Horizon agent.
  • Time entries posted from Horizon land under the correct helpdesk identity.
  • Activity tracked in the helpdesk (status changes, notes) attribute correctly in Horizon.

Mapping is bi-directional: if you create a new agent in Horizon, you can come back here and link them to a helpdesk user later. New helpdesk users surface here automatically after the next sync.

Tip: Map every active helpdesk user, even ones you don't think will use Horizon. The cost is zero, and unmapped users cause weird gaps in reporting later.

Picklist Database

Problem: Triage rules, routing rules, ticket filters, scheduled todo conditions — all of these need to reference helpdesk picklist values: ticket statuses, types, priorities, queues, departments. Hardcoding those values into rules is a maintenance nightmare. Querying the helpdesk every time is slow.

Horizon's answer: A local mirror of every picklist Horizon cares about. The Picklist Database page shows every picklist Horizon has discovered, with values and current selections.

The picklist database refreshes automatically on a schedule, and you can force a manual refresh on this page if you've added new statuses or queues in your helpdesk and need them visible in Horizon right away.

If you build a triage rule and a status you expect doesn't appear in the dropdown, this is the page to check first.

Helpdesk Widget Status

Problem: The dashboard widget and ticket widget are how 90% of agent-side activity actually happens. If they're broken or misconfigured, agents can't see Horizon and they stop using it.

Horizon's answer: The Widget Status page shows whether the widgets are loading correctly inside your helpdesk, the last successful render, and any errors.

You'll also find widget setup instructions here — the URL or embed code to paste into your helpdesk's customization area, and any per-PSA gotchas. Exact embed steps are different for each helpdesk and live in their own KB article. Confirm widgets render before going live with the team, because nothing kills adoption faster than agents loading the dashboard and seeing a broken iframe.

Helpdesk Callback Status

Problem: Horizon depends on inbound webhooks (callbacks) from the helpdesk to know when a ticket changes — new ticket created, status changed, note added. If callbacks stop firing, Horizon's view goes stale and triage / assignment never run.

Horizon's answer: The Callback Status page shows live callback health: when the last callback fired, how many fired in the last hour, whether any are failing, and what the helpdesk's webhook config looks like from Horizon's perspective.

If the page is red or showing zero recent callbacks, the polling fallback in helpdesk configuration is what keeps Horizon mostly current, but you should fix the callback issue rather than rely on polling. Polling is a safety net, not a primary mechanism.

Sync Run Logs and Callback Logs

Problem: Something didn't sync. You don't know why.

Horizon's answer: Two audit trails, both browsable from the Helpdesk cluster.

  • Sync Run logs — every sync operation Horizon has executed, with start time, duration, entities touched, and any errors.
  • Callback logs — every inbound webhook Horizon has received, with payload (or a reference to it), processing result, and any failures.

When an agent says "this ticket isn't in Horizon", your sequence is: check sync run logs for the most recent ingest, check callback logs for any callback related to that ticket's external ID, and if nothing matches in either, force a manual sync.

When this is set up correctly

You know helpdesk integration is working when:

  • A new ticket created in the helpdesk shows up in Horizon within seconds (callback) or minutes (polling fallback).
  • Assigning a ticket in Horizon updates the helpdesk's assigned-to field.
  • Adding a note in Horizon appears in the helpdesk's note thread.
  • The dashboard widget loads inside the helpdesk and shows the agent's calendar.
  • Picklists in triage rules contain all the statuses, types, and queues you expect.

If any of those break, the relevant audit page tells you why before you have to open a support ticket.

Tip: After every credential change, every webhook reconfiguration, and every PSA-side update, do a smoke test: create a test ticket in the helpdesk, watch it land in Horizon, change its status in Horizon, watch it propagate back. Two minutes of verification beats two hours of debugging later.

    • Related Articles

    • Admin Lesson 2: Core Concepts — Tickets, Todos, and the Helpdesk Bridge

      Part of the Admin Training Series. Before you configure anything, you need the vocabulary. Horizon has three concepts that show up in every conversation, every config, every troubleshooting thread: tickets, todos, and the helpdesk bridge. Get these ...
    • Admin Lesson 15: Panel Customization

      The Agent and Dispatch panels work out of the box, but they don't know which scope tabs your team actually uses, which actions your team needs as one-click buttons, or which forms should be wired up as named buttons on ticket cards. Panel ...
    • Admin Lesson 8: Setting Up Booking Link Types

      Booking links let customers self-schedule into agent calendars. The agent sends a link, the customer picks an open slot, a scheduled todo lands on the agent's calendar — no email ping-pong, no missed bookings, no manual calendar entries. This lesson ...
    • Admin Lesson 6: Setting Up Triage

      Triage is the first piece of automation we set up after the foundations are in place. It's the highest-leverage thing you can configure, because every ticket your helpdesk receives goes through it. Get triage right and the rest of the system gets ...
    • Admin Lesson 5: Teams, Users, and Business Hours

      Once helpdesk integration is live, the next foundational layer is the people side. Horizon needs to know who works tickets, what teams they're on, and when they're working. Almost every other configuration in the system — triage routing, assignment ...