Browse
On this page

Integrations at a glance

Every card on the Integrations > All page grouped by category, plus four provider detail pages (Anthropic, Microsoft Entra ID, Dell TechDirect warranty, Stripe) and the Matching workbench, all shown on an instance with nothing connected except its own AI key.

  1. Setup wizards

    Five step-by-step wizards: Connect Microsoft, Make Northwind Managed Services Portal my PSA, Set up Microsoft 365, Set up Google Workspace, and Connect QuickBooks. Not now dismisses a wizard card without changing anything already set.

  2. Microsoft Graph isn't connected

    A warning banner that shows while Microsoft Graph has no connection at all: no Microsoft 365 user sync, mailboxes, Out-of-Office awareness, or identity actions until it's connected. Connect Graph jumps straight to the Microsoft Entra ID page.

  3. Identity

    Identity providers used for sign-in and directory sync: Microsoft Entra ID, shown here Not Configured. Google Workspace is the other identity provider, though it has no card of its own on this instance yet. Each needs OAuth credentials and admin consent before it can sync. Once a provider is connected and consented, the sign-in page shows its SSO button; anyone who signs in that way is auto-provisioned as a client user linked to their organization by email domain, never promoted to staff automatically.

  4. PSA

    Autotask and HaloPSA, the two PSA platforms wired today, both Not Configured. Connecting one reads in tickets, customer records, contacts, and time entries from the PSA. Write-back is permanently off: the portal never pushes a change back to the PSA, and a mirrored ticket stays read-only here until you disconnect the PSA (that disconnect is the cutover; every ticket goes native from then on). Only one PSA is active at a time; the provider factory routes all sync work to whichever one is configured.

  5. RMM

    NinjaOne, the one RMM platform card, Not Configured. Connecting it feeds device management, alerts, and scripts into the portal; the devices, policies, and script library it feeds live under the RMM item in the main sidebar, not here.

  6. Security

    ThreatLocker, the one security and EDR card, Not Configured. It covers zero-trust application control, ringfencing, and endpoint security.

  7. Billing

    Three billing platforms: Pax8 for distributor subscription sync, QuickBooks Online for invoice generation and customer records, and Stripe for card vaulting and off-session charges on the platform billing rail. Once connected, QuickBooks syncs customers, invoices, estimates, payments, and products automatically, on a schedule or triggered manually; fields ezCyber itself owns, like product categories, are never overwritten by that sync.

  8. Documentation

    Five documentation and warranty providers: Dell TechDirect, HP Warranty, and Lenovo Warranty for hardware warranty lookups, Hudu (the live documentation platform), and IT Glue (scaffolded, not yet implemented). Hudu and IT Glue surface a client's articles, password vaults, procedures, assets, domains, and networks into one unified per-client view once connected.

  9. AI

    Four AI provider cards. Anthropic (Claude) is Configured here, the only card on this whole page that is; the green dot on its logo and the Configured badge both mark that. OpenAI is the alternative provider; Cohere and Voyage AI upgrade knowledge-base search to hybrid vector retrieval. This tab only connects providers; which model tier each portal feature uses is set under Settings, AI Assistant, not here. Without any key configured, AI features stay completely inactive rather than erroring, so a missing key can look like a missing feature.

  10. Remote Access

    One remote-access provider: Splashtop, shown here Not Configured. It takes no API key, just the team's own Splashtop owner email; the agent reads Splashtop's own registry on each device to show coverage and launch a session, so no Splashtop password is ever stored here. Turning it on is what lights up the Control column on the RMM device roster and the direct-connect option from a device's own page.

A provider detail page: Anthropic (Claude)

  1. Provider header

    Icon, name, status badge, category tag, and description: the same shape every provider detail page opens with. Configured here because a key is already saved; Re-test replaces the plain Test Connection button once credentials exist.

  2. API Credentials

    Where a saved key lives, masked, with a note to leave the field blank to keep it. Anthropic's own key is billed directly to the MSP's own Anthropic account; nothing here marks it up. Get one at console.anthropic.com under Settings, then API Keys, then Create Key; Anthropic requires its own small prepaid billing balance before the key works. Without a key saved, every AI-dependent feature (chat, ticket triage, drafting, auto-summaries, dispatch suggestions) stays completely inactive rather than erroring.

  3. Connection Test

    Test Connection (Re-test once already saved) makes one lightweight API call to verify the saved credentials actually work. The card only appears once credentials are saved; save first, then test.

  4. Sync health

    The scheduled background jobs this integration owns: last run, next run, and a 7-day pass/fail trend strip, one segment per day. AI Model Sync shows a green segment for a run that completed. AI Retry Queue reads "runs automatically in the background; there's no per-run history for this job": it still runs on schedule, it simply never writes a row to plot.

Microsoft Entra ID: app creation and mail connections

  1. Initial Microsoft Setup

    A Configured pill sits above this card: the connection details are saved and can be read, but nothing has tested them yet (a Connected pill instead means the last test succeeded; an Incomplete pill names the missing field). Connect Microsoft as Admin creates three app registrations in the MSP's own Microsoft tenant in one step: MSP Runtime, Client Access, and (right after) Mail Auth. It requires a Global Administrator, or another consent-capable admin role; an Application Administrator can create the apps but can't grant the consent, and sign-in is blocked outright. Prefer PowerShell? Generate a script instead runs the same setup by hand.

  2. Mail Connections

    Where a help-desk, billing, or training mailbox gets authorized, once the Mail Auth app exists. This instance reads "The mail sending app isn't set up yet": the Initial Microsoft Setup connection above has to succeed first.

  3. What we access & why

    Every one of the 44 permissions the MSP-owned Microsoft apps request, broken out by app: MSP Runtime (25 permissions, the MSP's own tenant) and Client Access (19 permissions, each client tenant that consents). Nothing here can work until the Initial Microsoft Setup connection above succeeds.

A warranty provider's credential form: Dell TechDirect

  1. API Credentials

    Warranty lookups need their own API keys, made on each maker's own site, one maker at a time, and each optional. Dell and HP both ask for an API Client ID and an API Client Secret from their own developer portals. Lenovo issues one key instead, sent in a header literally named ClientID. Nothing is looked up until at least one card is set up, and each maker has its own daily lookup cap (Dell's default is 5,000 a day for the whole portal), set under Settings, then Administration, then Integration Sync; setting a cap to 0 stops asking that maker without undoing its setup.

Stripe: card vaulting for the platform billing rail

  1. API Credentials

    Card data never reaches this portal: a client's card goes straight to Stripe's own hosted form, and this system only ever keeps a reference plus the network, last four digits, and expiry. Capturing client cards needs Customers, Payment Methods, and Setup Intents at write, plus Account at read for your statement descriptor. Turning on automatic card billing needs Payment Intents at write too, since that is the call that takes the money. The management instance that also runs platform billing needs the same key scoped wider, to Charges and Invoices too, because that rail actually moves money.

  2. Client card capture

    Let clients save a card, and charge it, off by default, adds a My Payment page to the client portal; the card vaults onto the MSP's own Stripe account, and now charges that card when one of the client's invoices comes due. Billed-by identity line names the legal entity clients are authorizing, shown verbatim above the card form; leaving it blank omits the line rather than guessing from the company name. One step in your Stripe dashboard adds this page's own webhook URL and three events (setup_intent.succeeded, payment_method.attached, payment_method.detached) to Stripe by hand; without it cards still save and still show, because the page reads Stripe live, but the audit trail of cards arriving and leaving stays empty.

Matching: linking one external record to one portal client

  1. Matched / Unmatched / Create tabs

    Matched lists clients where every connected integration already has a linked external record. Unmatched lists synced records still waiting to be linked, each with a suggested portal client based on name and domain similarity. Create turns a confirmed new external record into a pre-filled new-client form.

  2. Content pane

    This instance has nothing connected yet, so every tab reads empty: "No integrations are configured. Connect a PSA, RMM, accounting system, or documentation tool to start matching." When multiple systems (M365, PSA, RMM, docs) each hold their own record of the same company, Matching is where that gets confirmed as one portal client rather than staying as separate, unlinked records.

Why it works this way

Matching's suggested links come from name and domain similarity, not an exact ID; that's why each one gets confirmed or overridden on the Matched / Unmatched tabs rather than happening silently.

A shared mailbox like helpdesk@ or billing@ usually can't sign in on its own, so a real user's account has to be granted Full Access delegation to it in the Microsoft 365 admin center before this portal can authorize it; sending mail from it needs a separate Send As or Send on Behalf grant.

Warranty lookups need their own vendor API keys because none of the three makers share one scheme: Dell and HP each issue an API Client ID plus a Secret, Lenovo issues a single key sent in a header named ClientID, and each maker enforces its own daily lookup cap independently of the portal.

Status badges are a small, fixed set on purpose: Configured (credentials saved), Connected (QuickBooks only, a live verified connection), and Not Configured (nothing saved). There's no separate error or stale badge; a dead QuickBooks connection just stops showing Connected and asks to be reauthorized, while a dead credential elsewhere keeps its settings and fails every call silently rather than surfacing an error on this page.

Questions this page answers

What is the All tab?

The unified catalog of every integration, grouped by category (Identity, PSA, Billing, and so on), each shown as configured or not configured. Click any tile to open that provider's settings and connect it. QuickBooks is the one provider that also shows a live Connected state. Use this as the starting point when setting up a new tenant.

What do the status badges mean?

There are three states. Configured means credentials are saved for that provider, the normal state once you connect it. Connected is reserved for the one provider with a live health check (QuickBooks), meaning a verified live connection. Not configured means no credentials are saved yet. A small green dot on the provider logo doubles as an at-a-glance configured marker. There is no separate error or stale badge, and if QuickBooks goes dead it simply stops showing Connected and asks you to re-authorize.

How do I connect a new integration?

Go to Integrations and pick the category tab for the provider you want (All, Identity, PSA, RMM, Security, Billing, Documentation, or AI). Open the provider's card, enter the required API credentials, and click Save. Once the credentials are saved, a Test Connection card appears so you can verify them (providers with no test simply don't show that card). Credentials are stored securely in the database, not in .env files.

How does QuickBooks integration work?

QuickBooks syncs customers, invoices, estimates, payments, and products automatically. Connect via Integrations > Billing, then the QuickBooks card. The sync runs on a schedule and can also be triggered manually. ezCyber-only fields (like product categories) are never overwritten by sync.

What is customer matching?

After syncing QuickBooks customers, use the Matching page to link QB customers to ezCyber organizations. Matched customers have their invoices and billing data automatically associated.

How does customer matching work?

After syncing QuickBooks, the Matching tab shows three views: Matched (linked), Unmatched (need linking), and Create (new clients from QB). Unmatched QB customers can be linked to existing portal clients or used to pre-fill the onboarding form for new clients.

What does "Test Connection" do?

Test Connection validates your saved API credentials by making a lightweight API call to the provider. The Test Connection card only appears after credentials are saved, so save first, then test. A success message confirms the credentials work; a failure shows what went wrong (invalid key, expired token, wrong URL, and the like). Providers that have no connection test simply don't show a Test card.

What goes under Identity?

Identity providers used for SSO sign-in and for syncing the user directory into the portal. Microsoft Entra ID (Azure AD) is configured from its card here: it needs OAuth credentials plus admin consent before it can sync. Google Workspace has no card on this tab, and that is deliberate - there is no master Google connection to type, because the Google app lives on the central sign-in proxy. Each Google Workspace client grants consent once from its own Overview page, and the 'Set up Google Workspace' wizard on Integrations > All walks you through it.

How does SSO sign-in work?

Once Microsoft or Google is connected on the Identity tab and admin consent is granted, the login page shows the corresponding SSO button. New users who sign in via SSO are auto-provisioned as client users and linked to their organization by email domain. SSO never makes anyone staff automatically. Promote someone to staff via Team > Staff.

What goes under PSA?

Professional Services Automation platforms - HaloPSA and Autotask are wired today. Connecting one reads in tickets, customer records, contacts, and time entries from the PSA. Write-back is permanently off. The portal never pushes a change back to the PSA. A mirrored ticket stays read-only here until you disconnect the PSA. That disconnect is the cutover; every ticket goes native from then on. Only one PSA is active at a time.

What billing integrations are supported?

QuickBooks Online is the live accounting provider - invoices, payments, customers, and items sync bidirectionally. Xero is scaffolded but not yet implemented. Each provider exposes the same AccountingProvider contract so business code never imports the vendor SDK directly.

What goes under Documentation?

Documentation providers - Hudu is the live integration, IT Glue is scaffolded for upcoming impl. Both surface client articles, password vaults, procedures, assets, domains, and networks into the portal so techs see one unified view per client.

What do the Dell, Lenovo and HP warranty cards need?

One set of API keys each. You make them on the maker's own web site. Each card is optional. Set up only the brands you look after. Dell and HP give you an ID and a secret. Lenovo gives you one key. We send it in a header named ClientID. Nothing is looked up until at least one card is set up. Each maker has its own daily limit on lookups. You set those limits under Settings, then Administration, then Integration Sync. Dell allows 5,000 lookups a day for your whole portal. Set a limit to 0 to stop asking that maker. The card stays set up.

What does the AI tab configure?

The API keys for the AI providers the portal uses. Anthropic (Claude) is the primary provider; OpenAI can be added as an alternative, and a Voyage or Cohere key upgrades knowledge-base search to hybrid vector retrieval. The portal calls the AI provider for every Elise interaction, KB draft generation, ticket classification, and email parsing. Which model each task uses isn't set here, that lives under Settings → AI Assistant. Without a configured key, AI features are unavailable rather than failing silently.

What is Matching?

When multiple systems (M365, PSA, RMM, docs) all have a record of "Acme Corp," they need to be linked to the SAME portal client. Matching is the workspace where you confirm those links - auto-suggested matches based on domain + name, plus manual override for ambiguous cases. Three tabs: Matched, Unmatched, Create.

What does the Matched tab show?

Clients where every connected integration has a linked external record. Use it to verify the match is correct - click a row to see all the linked external IDs (M365 tenant, HaloPSA client, NinjaOne org, Hudu company, etc.). Unlink + re-link if a match is wrong.

What does Unmatched show?

External records from connected integrations that haven't been linked to a portal client yet. Each row offers suggested portal matches based on name + domain similarity. Click Match to confirm, or Create New to onboard a new client pre-filled with the external data.

When would I use Matching > Create?

When you've confirmed an external record (e.g. a new HaloPSA customer) doesn't exist in the portal yet, the Create tab opens the new-client form pre-populated with that record's name, domain, contact, and external ID - skipping duplicate entry in the source system.

What does the Sync health section show?

Every scheduled background job this integration owns, one row each: the last run's outcome and time, the next scheduled run, the cron schedule, and a 7-day pass/fail trend. The most recent failure appears under its job with a link into the system logs. Integrations with no scheduled jobs show "No scheduled syncs" - they do their work on demand when you use them, which is a fact about their shape, not a fault.

How do I read the 7-day trend strip?

Each segment is one day: green means every run that day completed, red means the day had only failures, amber means a mixed day (some runs completed, some failed), and a hollow segment means no runs happened that day. Hover a segment for the exact completed/failed counts. A hollow stretch on a job that should run often is itself a signal - check whether the schedule is paused or the cron container is down.

Why does a job say there's no per-run history?

Only jobs that write run-history rows can show a last run and a trend strip. A job marked "runs automatically in the background; there's no per-run history for this job" still executes on its schedule, it just doesn't record per-run history, so there is nothing to plot. "No runs recorded yet" is different: that job does record history but hasn't run since this instance started keeping it.

Stripe: what am I responsible for by saving these keys here?

Card data never reaches this portal, so nothing about card storage lands on you here. Your clients type their card into Stripe’s own hosted form and it goes straight to Stripe; this system only ever holds a reference plus the network, last four digits and expiry. Because the form is hosted, Stripe validates SAQ A eligibility for the integration, so no PCI questionnaire is expected of you on account of it. Two things are yours: keep the secret key scoped to what this instance actually does, and set the authorization wording your clients agree to, under Settings → Billing & Pricing → Card Authorization. On scope: saving cards needs Customers, Payment Methods and Setup Intents at write, plus Account at read for your statement descriptor, so a restricted key covers it. If you turn on automatic card billing, add Payment Intents at write too, because that is the call that charges the card. If this is the management instance - the one that also runs platform billing - the same key runs that rail as well, which additionally needs Charges and Invoices. Grant what the instance uses and nothing beyond it.

How do I get an Anthropic API key?

Go to console.anthropic.com and sign up or sign in, then open Settings > API Keys and click Create Key. Anthropic requires its own billing on that account, typically a small prepaid credit balance, before a key will actually work; add a payment method there if you haven't already. Copy the key (it's only shown once) and paste it into the Anthropic card on this page, then Save. This key is billed directly by Anthropic to your own account; {product} does not mark it up or resell it.

What happens if I skip this / what breaks without an AI key?

The AI assistant, chat, ticket triage, drafting, auto-summaries, and dispatch suggestions, stays completely inactive; every AI-dependent feature simply does nothing rather than erroring loudly, so it can look like the portal is just missing those features rather than needing a key. Add the key here whenever you're ready; every AI feature turns on immediately once it's saved, no restart or additional setup needed.

What does "Connect Microsoft" actually do?

It signs you in as an admin on your own Microsoft 365 tenant and creates two app registrations in your tenant: MSP Runtime, which reads your own tenant's users, devices, and security data, and Client Access, which later reads consenting client tenants. A third registration, Mail Auth, gets created afterward and is what individual mailbox connections authorize against. Nothing else on this page or in the portal's Microsoft-dependent features (mailbox connections, per-client tenant sync, dispatch calendars, CyberSentry ingest) can work until this first connection succeeds.

Was this helpful?

Last validated 2026-09-24