Hudu + IT Glue integration
Hudu and IT Glue are where most MSPs write down what's in their customers' environments. The usual pain is that documentation drifts from reality — someone changes a CA policy, nobody updates the doc, and six months later the runbook is wrong. Manage365's Hudu + IT Glue integration mirrors the live M365 state into your documentation platform on a schedule, so the docs stay honest.
What gets pushed
Per tenant, Manage365 generates a posture snapshot — a structured document with the facts that matter for service delivery:
- Tenant metadata: primary domain, tenant ID, licence summary, user count, MFA adoption
- Conditional Access summary: policy count, enabled policies, target users, key gaps
- Standards status: which standards are applied, any open drift
- Compliance scores: latest Essential Eight / APRA / CIS M365 results
- Defender surface: active high-severity incidents, open recommendations
- Exchange posture: DKIM-enabled domains, configured anti-phish policies
- Copilot: licences + idle seats, prompt-audit enablement
- Last sync + last push timestamps
The snapshot is the same shape whether you push to Hudu or IT Glue — the difference is the provider target and formatting (Hudu uses articles, IT Glue uses flexible assets).
Push cadence
Default: nightly at 02:00 AEST per tenant. Override to manual-only or hourly from the integration settings. Manual push is always available via the Push now button on the integration settings page or via API.
Each push replaces the previous article / asset in place (versioned by Hudu / IT Glue automatically), so you always have a current snapshot visible and historical versions behind it.
Configuration — Hudu
Settings → Integrations → Hudu takes three fields:
{
"baseUrl": "https://it.yourmsp.com",
"apiKey": "<hudu-api-key>",
"companyIdByTenantId": {
"<manage365-tenant-uuid>": 42,
"<manage365-tenant-uuid>": 57
}
}- baseUrl — the root of your Hudu instance (don't include
/api/v1; Manage365 appends that) - apiKey — from Hudu Settings → API Keys. Make a fresh one for Manage365 with write scope to articles.
- companyIdByTenantId — the mapping from Manage365 tenant UUID to Hudu company ID. You fill this in once per tenant you want pushed.
Tenants not in the mapping are skipped. So opting in is explicit, one row per tenant.
Configuration — IT Glue
Settings → Integrations → IT Glue takes three fields:
{
"apiKey": "<it-glue-api-key>",
"region": "au",
"organizationIdByTenantId": {
"<manage365-tenant-uuid>": 1234567,
"<manage365-tenant-uuid>": 1234568
}
}- apiKey — from IT Glue Account → API Keys. Requires password permission.
- region — one of
us,eu,au. Controls the API base URL (AU accounts useapi.au.itglue.com). - organizationIdByTenantId — Manage365 tenant UUID → IT Glue organization ID. Same explicit opt-in model as Hudu.
Test connection
Before the first push, hit Test connection. The endpoint:
- Validates the API key
- Confirms the base URL is reachable
- Lists the first 10 companies / organisations so you can cross-check your ID mapping
- Reports the rate-limit headers returned by the provider
A test connection call is read-only — it doesn't push anything.
Endpoints
| Method + path | What it does | Permission |
|---|---|---|
GET /integrations/hudu | Current Hudu config (apiKey masked) | INTEGRATIONS_READ |
PUT /integrations/hudu | Upsert Hudu config | INTEGRATIONS_MANAGE |
POST /integrations/hudu/test | Test connection | INTEGRATIONS_READ |
POST /integrations/hudu/push/:tenantId | Push snapshot for one tenant | INTEGRATIONS_MANAGE |
POST /integrations/hudu/push-all | Push snapshots for every mapped tenant | INTEGRATIONS_MANAGE |
GET /integrations/it-glue | Current IT Glue config (apiKey masked) | INTEGRATIONS_READ |
PUT /integrations/it-glue | Upsert IT Glue config | INTEGRATIONS_MANAGE |
POST /integrations/it-glue/test | Test connection | INTEGRATIONS_READ |
POST /integrations/it-glue/push/:tenantId | Push snapshot for one tenant | INTEGRATIONS_MANAGE |
POST /integrations/it-glue/push-all | Push snapshots for every mapped tenant | INTEGRATIONS_MANAGE |
End-to-end example: Hudu setup
- In Hudu, create an API key with write permission. Note the company ID for your first customer (visible in the URL when viewing the company).
- In Manage365, go to Settings → Integrations → Hudu. Paste the base URL and API key. Add a row to the tenant mapping for the customer — Manage365 tenant UUID on the left, Hudu company ID on the right.
- Click Test connection. The response should list the first 10 companies from Hudu — confirm your mapped company is in there.
- Click Push now. A new article titled “Manage365 M365 Posture — <customer>” appears in the customer's Hudu company page within 30 seconds.
- Open it in Hudu. Verify the content looks right.
- The next nightly run picks it up automatically. Add more tenant mappings over time as you onboard more customers.
Common pitfalls
- Tenant UUID typo in the mapping — mismatched key is silently skipped (nothing to push for a tenant that doesn't exist). Copy UUIDs directly from the tenant list.
- Hudu API key too narrow — read-only keys pass the test-connection check but fail the actual push. Issue a write-scope key from Hudu.
- IT Glue region wrong — US vs AU uses different API hosts. An AU account with
region: usfails immediately on test connection with a 401. - Rate limiting — IT Glue throttles at 10 requests per second per organisation. The push-all endpoint self-paces inside that budget; manual push of 50 tenants in rapid succession may bounce off 429s. Use push-all instead.
- Stale article after tenant rename — the article title includes the tenant name at push time. If you rename the Manage365 tenant, the next push updates the body but the old-named article stays. Delete the old article manually in Hudu / IT Glue.
FAQ
Can I push specific sections only? Not yet — the snapshot is all-or-nothing. The use case for pushing “just compliance scores” is the evidence export (see Evidence export) rather than the integration.
Does the customer see what's pushed? Depends on your Hudu / IT Glue permission model. Manage365 doesn't control visibility; it just writes to the target company / organisation per your mapping.
What about custom templates in the snapshot? Not supported today. The snapshot layout is fixed — if you want custom content in the same article, put it in a sibling article in Hudu / IT Glue rather than trying to co-edit the Manage365 one (your edits would be overwritten on next push).
Can both integrations run at once? Yes — configure each independently; they push in parallel.