Integrations Page Guide
Guide to the Moftgate Integrations page: native connectors, webhooks, API keys and SSO, plus the setup wizard, asset sync and event subscriptions.
What the Integrations Page Is#
The Integrations page is the single admin-only surface where every outbound connection to your IT, security, and collaboration tools is configured, tested, and monitored. It is not a list of credentials in a database - it is the operational control plane for how Moftgate talks to the rest of your stack.
It lives under General > Settings > Integrations and is reachable from the General navigation, the main Settings page card, and the global Spotlight search. Non-admin users cannot reach it.
It groups four distinct capabilities that share a common theme: how Moftgate communicates with systems outside itself.
| Tab | Purpose | Direction |
|---|---|---|
| Integrations | Native connectors to PSA, ITSM, collaboration, observability, and SIEM tools | Outbound (panel initiates) |
| Webhooks | Signed HTTP POST notifications to any external endpoint for selected events | Outbound (panel initiates) |
| API Keys | Programmatic access to the Moftgate REST API for scripts and automation | Inbound (external client authenticates) |
| Single sign-on | OIDC identity provider login for panel users | Bidirectional (OAuth2 flow) |
The active tab is set via a query parameter, so it is bookmarkable, shareable, and survives a page reload.
Native Integrations#
The Integrations tab is where most operators spend their time. It renders every supported integration type as a card - not a table - because integrations are configured objects, not rows of telemetry. Each card shows the provider logo, capability badges, a plain-language description, and the benefit of using it, so an operator can pick without reading external documentation.
Moftgate ships with ten native integration types, each with its own credentials, delivery behaviour, and capability set. Each type is a first-class connector, not a generic webhook with a different label.
| Type | Capabilities | Delivery | What it does |
|---|---|---|---|
| ConnectWise PSA | Assets, tickets | API (Basic auth) | Creates service tickets; syncs endpoints as configurations |
| HaloPSA | Assets, tickets | API (OAuth2) | Fetches a token, then opens tickets; syncs assets |
| Hudu | Assets | API (API key) | Asset sync only - no ticketing |
| ZestMSP | Assets, tickets | API (Bearer) | Opens tickets; syncs devices |
| Slack | Notifications | Webhook | Posts a message with attachments |
| Microsoft Teams | Notifications | Webhook | Posts a MessageCard |
| Jira | Tickets | API (Basic auth) | Opens a Jira issue of type Task |
| Freshservice | Tickets | API (API key) | Opens a Freshservice ticket |
| Datadog | Observability | API (API key) | Publishes an event with severity mapping |
| Splunk | SIEM | API (HEC token) | Forwards to the HTTP Event Collector |
Every outbound call - whether an event delivery or an asset sync - is recorded with the event name, URL, HTTP status, outcome, duration, and a message. This is the integration layer’s audit trail. The per-integration Events modal paginates this log so operators can troubleshoot failed deliveries, and the card shows the most recent outcome without opening the modal.
| Status | Meaning |
|---|---|
| success | The provider accepted the delivery |
| failed | The provider rejected it (bad credentials, rate limit, validation error) |
| error | A network or client-side error prevented the call |
| skipped | The config is incomplete or the type does not accept event deliveries |
The Integration Wizard#
Configuring an integration is not a single long form. It is a multi-step wizard that validates each step before advancing, shows progress at the top, and lets you jump back to completed steps.
- 1Details
Provider logo, description, benefit, and a display name for the integration.
- 2Configuration
Type-specific fields such as URL, API key, token, project key, or site.
- 3Events
Which Moftgate events the integration should receive.
- 4Asset sync
For asset-capable types: enable sync and map endpoint groups to provider companies and sites.
- 5Review
Summary, test connection, active toggle, and save.
Webhooks#
Webhooks are the generic, provider-agnostic counterpart to native integrations. Where a native integration knows how to talk to Jira or Splunk, a webhook just POSTs a signed JSON payload to any URL you configure. Use webhooks when you want to deliver events to a system Moftgate does not have a native connector for.
When a webhook has a secret configured, every delivery is signed with HMAC-SHA256 over the JSON body, sent in the X-Moftgate-Signature header. The receiver verifies the signature to confirm the payload came from Moftgate and was not tampered with in transit.
Deliveries are queued and retried up to three times with backoff, so a slow or temporarily unavailable receiver never blocks request handling. You can also send a manual test payload from the webhook card to verify your endpoint.
| Event | When it fires |
|---|---|
| audit.created | Every audited panel action |
| alert.created | A new alert is raised |
| endpoint.created | A new endpoint registers for the first time |
| incident.created | An incident is reported by an agent |
| automation.run_completed | An automation run finishes (success or failure) |
API Keys#
API keys allow programmatic access to the Moftgate REST API. They are the credential you hand to a script, a CI pipeline, or a third-party tool that needs to read or write Moftgate data.
- Keys are stored as hashes - the plaintext token is never persisted.
- The token format is a prefix followed by 64 hex characters (32 random bytes), shown only once at creation time.
- Authentication uses a Bearer token header. The panel looks up the key by its prefix, then verifies the hash.
- Two abilities: read (read-only) and write (read and write).
- Revocation: delete the key or deactivate it. Both stop the token immediately.
Single Sign-On#
Single sign-on provides OIDC-compatible identity provider login for panel users. This is fully functional login, not just configuration storage. Four provider types are supported: Microsoft Entra ID, Google Workspace, Okta, and Custom OIDC.
The SSO modal is a two-column layout: the form on the left, a persistent setup guide on the right with copyable callback and discovery URLs and step-by-step instructions. The guide stays visible while you fill the form so focus is never lost, and on narrow screens it stacks below the form. Every URL in the guide is a copy-on-click chip, so you never have to select text manually.
A client ID and client secret are required for every OIDC provider - they identify this panel as an OAuth2 client at the identity provider. The client secret is stored encrypted and is never exposed to the browser. When editing a provider without supplying a new secret, the existing value is preserved.
| Provider | Discovery URL | Notes |
|---|---|---|
| Microsoft Entra ID | Required | Tenant-specific discovery URL |
| Google Workspace | Optional | Defaults to the Google well-known endpoint |
| Okta | Required | Org-specific discovery URL |
| Custom OIDC | Required | Any OIDC discovery document |
The login page lists every active SSO provider as a sign-in button. When a user signs in, the panel validates the identity token, matches the user by email, and either logs them in or auto-provisions a new account. Local 2FA is bypassed because MFA is handled by the identity provider. A test connection button in the modal validates the configuration before saving by loading the discovery document and signing keys.
SIEM Forwarding#
SIEM log forwarding is managed separately from the Integrations page, from the main Settings page via the SIEM Log Forwarding card. It supports UDP, TCP, and HTTPS transports and CEF, LEEF, RFC 5424, and JSON formats, so you can stream logs to any SIEM that prefers a syslog-style input over an HTTP API.
This complements the native Splunk integration on the Integrations tab: use the Splunk integration for HTTP Event Collector forwarding, and use SIEM forwarding for streaming syslog to Splunk, QRadar, or any other collector.
Security Principles#
- Outbound-only: every integration, webhook, and asset sync is outbound. The panel initiates all requests - no inbound firewall rule, no public callback URL, no exposed listener.
- Encrypted secrets: API keys, client secrets, HEC tokens, and private keys are stored encrypted or hashed at rest. The plaintext API token is shown once at creation and never exposed to the browser in edit forms.
- Per-integration credentials: each integration has its own credentials. A compromised Slack webhook URL does not expose your Jira API token - least privilege applied at the integration boundary.
- Audit logging: every admin action on the Integrations page is logged with named parameters, and the audit log is itself an event source for webhooks.
- Transactional writes: critical operations - creating an integration with group mappings, creating an API key, storing an SSO provider - are wrapped in database transactions so a partial failure never leaves the system inconsistent.