Integrations & webhooks

Phase 1 preview — pages render fixture data only; no changes are saved.
The saved provider is Slack. Legacy clears the fields when you switch provider, and the saved hook keeps firing until you save the new one. Only one provider is active at a time.

General webhook

Any endpoint that accepts a Slack-compatible JSON payload. It follows exactly the Slack code path.

Not configured
Write-only: the stored URL is never shown, because it contains the access token. It must be a public http(s) address.
Must start with #. Required when an endpoint is set.
Shown as the sender. Legacy falls back to "Snipe-Bot" when blank.
Cancel Saving settings is not available in Phase 1 — this screen previews the current configuration.

Endpoint and test rules

Not configured
Address rules
http or https only; the host must resolve to public addresses.
Internal targets
Refused — set WEBHOOK_ALLOW_INTERNAL_TARGETS to allow private addresses
Test to private addresses
Refused (TEST_ALLOW_PRIVATE_IPS is off)
Test message
A text message with the channel, the bot name and a heart icon.

Events sent to webhooks

Legacy has no per-event switches: when an endpoint is set, every event below is sent. Expiring licences, low stock, expected check-in and acceptance notices are email only.

EventWhich hookGeneral webhook Actions
Asset checked out
An asset is checked out · CheckoutAssetNotification
Company hook, else globalNative
Accessory checked out
An accessory is checked out · CheckoutAccessoryNotification
Company hook, else globalNative
Component checked out
A component is checked out to an asset · CheckoutComponentNotification
Company hook, else globalNative
Consumable checked out
A consumable is issued · CheckoutConsumableNotification
Company hook, else globalNative
License seat checked out
A license seat is assigned · CheckoutLicenseSeatNotification
Company hook, else globalNative
Asset checked in
An asset is checked in · CheckinAssetNotification
Company hook, else globalNative
Accessory checked in
An accessory is checked in · CheckinAccessoryNotification
Company hook, else globalNative
Component checked in
A component is checked in · CheckinComponentNotification
Company hook, else globalNative
License seat checked in
A license seat is released · CheckinLicenseSeatNotification
Company hook, else globalNative
Asset audited
An asset is audited · AuditNotification
Global hook onlyNative
Item requested
Someone requests an item · RequestAssetNotification
Global hook onlyNative
Request cancelled
A request is cancelled · RequestAssetCancelation
Global hook onlyNative

Company overrides

A company with its own endpoint replaces the global hook for check-out and check-in events of the items it owns. It does not add to it, and children do not inherit their parent's hook. Endpoints are never shown.

CompanyProviderChannelBot nameDetails Actions
<b>Hostile</b> Co "quoted" & <i>friends</i> General webhook#<b>ops</b>"<script>alert("bot")</script>—
Acme Labs Microsoft TeamsNot usedNot usedOffice 365 connector (deprecated)
Acme Labs Research
Child of Acme Labs
Google ChatNot usedNot used—
Acme Ltd Slack#asset-alertsAsset Bot—