Supported Platforms
Snipe-IT supports webhooks for:Slack
Send notifications to Slack channels
Microsoft Teams
Integrate with Teams workflows
Google Chat
Post messages to Google Workspace Chat spaces
Generic Webhooks
Send JSON payloads to any custom endpoint
Configuration
Navigate to Admin > Settings > Slack (the webhook settings are in the Slack section regardless of platform).Slack Webhook Setup
Create Slack App
- Go to Slack API
- Click Create New App
- Choose From scratch
- Enter an app name (e.g., “Snipe-IT Notifications”)
- Select your workspace
- Click Create App
Enable Incoming Webhooks
- In your app settings, click Incoming Webhooks
- Toggle Activate Incoming Webhooks to On
- Click Add New Webhook to Workspace
- Select the channel for notifications
- Click Allow
- Copy the Webhook URL (it starts with
https://hooks.slack.com/services/)
Microsoft Teams Webhook Setup
Microsoft has deprecated the old “Incoming Webhook” connector. Use the new Workflows approach for Teams webhooks.
Create Workflow in Teams
- Open Microsoft Teams
- Navigate to the channel where you want notifications
- Click the ··· (More options) next to the channel name
- Select Workflows
- Search for “Post to a channel when a webhook request is received”
- Click Add workflow
Configure Workflow
- Select the Team and Channel
- Click Next
- Click Add workflow
- Copy the webhook URL (it contains
workflowsin the path)
Google Chat Webhook Setup
Create Webhook in Google Chat
- Open Google Chat
- Go to the space where you want notifications
- Click the space name at the top
- Select Apps & integrations
- Click Add webhooks
- Enter a name (e.g., “Snipe-IT”)
- Optionally add an avatar URL
- Click Save
- Click the ⋮ next to your new webhook
- Copy the webhook URL
Configure Snipe-IT
- In Snipe-IT, go to Admin > Settings > Slack
- Select Google Workspaces from the dropdown
- Webhook Endpoint: Paste your Google Chat webhook URL (format:
https://chat.googleapis.com/v1/spaces/*/messages?key=*) - Channel field will show “#NA” (not applicable)
- Click Test to verify the connection
- Click Save
Generic Webhook Setup
For custom integrations, you can send notifications to any HTTP endpoint that accepts JSON.Prepare Your Endpoint
Create an endpoint that:
- Accepts POST requests
- Expects JSON payload
- Returns 200 OK on success
Environment Variables
You can also configure webhooks via environment variables in your.env file:
.env
Webhook Payload Format
Slack Payload
Google Chat Payload
Microsoft Teams Payload (Workflows)
Events That Trigger Webhooks
Webhooks are triggered for the following events:Asset Checkout
Asset Checkout
When an asset is checked out to a user or location:Message Format:
Asset Check-in
Asset Check-in
When an asset is checked back in:Message Format:
Accessory Checkout
Accessory Checkout
When an accessory is checked out:Message Format:
Consumable Checkout
Consumable Checkout
When a consumable is checked out:Message Format:
License Checkout
License Checkout
When a license seat is checked out:Message Format:
Testing Your Webhook
Using the Built-in Test
- Navigate to Admin > Settings > Slack
- Configure your webhook settings
- Click the Test button
- Check your messaging platform for the test message
- If successful, you’ll see a green success message
- If failed, you’ll see an error with details
Manual Testing via Command Line
You can test webhooks using curl:Troubleshooting
Test Fails with Connection Error
Test Fails with Connection Error
Possible Causes:
- Firewall blocking outbound HTTPS connections
- Incorrect webhook URL
- Webhook has been revoked in the messaging platform
- Verify the webhook URL is correct and complete
- Test network connectivity:
curl https://hooks.slack.com - Check firewall rules allow outbound HTTPS
- Regenerate webhook in your messaging platform
Test Succeeds but No Events Received
Test Succeeds but No Events Received
Possible Causes:
- Webhook settings were not saved
- Events are not configured to trigger webhooks in code
- Click Save after testing
- Verify webhook settings are saved in database
- Check
storage/logs/laravel.logfor webhook errors - Perform a test checkout to trigger an event
401 or 403 Errors
401 or 403 Errors
Possible Causes:
- Webhook URL is incorrect or expired
- Channel doesn’t exist or bot doesn’t have access
- Regenerate the webhook in your messaging platform
- Verify the channel name includes
#for Slack - Check bot has permission to post in the channel
Teams Deprecation Warning
Teams Deprecation Warning
If you see a Teams webhook deprecation warning:
- The old “Incoming Webhook” connector is deprecated
- Your webhook URL doesn’t contain “workflows”
- Create a new workflow-based webhook (see Teams setup above)
- Update Snipe-IT with the new webhook URL
- Old webhooks will stop working in the near future
Messages Have Wrong Format
Messages Have Wrong Format
For Microsoft Teams:
- New workflow webhooks use Adaptive Cards format
- Old webhooks used MessageCard format
- Ensure you’re using the correct webhook type
- Check your endpoint expects the JSON format Snipe-IT sends
- Review the payload format section above
- Add logging to your endpoint to inspect received data
Advanced Configuration
Custom Webhook Handler
If you’re building a custom integration, your endpoint should:- Accept POST requests
- Parse JSON body
- Extract message text from the payload
- Return HTTP 200 on success
- Return appropriate error codes on failure
Webhook Retry Logic
Snipe-IT does not automatically retry failed webhooks. If a webhook fails, the event is logged but not retried.
- Monitor
storage/logs/laravel.logfor webhook errors - Implement error handling in your webhook receiver
- Consider using a message queue for critical notifications
Multiple Webhooks
Currently, Snipe-IT supports one webhook endpoint at a time. To send to multiple destinations:- Create a proxy endpoint that receives Snipe-IT webhooks
- Have the proxy forward to multiple destinations
- Point Snipe-IT to your proxy endpoint
Security Considerations
Secure Storage
Webhook URLs often contain secrets. Store them in
.env file, not in code.HTTPS Only
Always use HTTPS endpoints for webhooks to encrypt data in transit.
Validate Sources
If building custom receivers, validate requests come from your Snipe-IT instance.
Monitor Logs
Regularly review webhook logs for failures or suspicious activity.
Next Steps
API Overview
Learn about the Snipe-IT REST API
Email Configuration
Set up email notifications
