Version: Arctyk ITSM v0.6.0+ Last Updated: January 2026
Integrations & Extensions¶
Welcome to the Arctyk ITSM Integrations documentation. This section provides guidance on extending Arctyk ITSM with third-party services, webhooks, workflows, and custom integrations.
Overview¶
Arctyk ITSM is designed to be extensible and can integrate with popular tools and services:
- Email - Notifications and ticket creation from email
- Slack - Real-time notifications and ticket updates
- Microsoft Teams - Chat-based notifications
- Webhooks - Custom integrations and automation
- API - Programmatic access to Arctyk ITSM data
Sections¶
Core APIs¶
- REST API - RESTful API for programmatic access to Arctyk ITSM data (Comments, Tickets, Projects, Assets)
- Workflows - Automated workflow engines, state transitions, and business logic
Notifications¶
- Email Integration - Email notifications, SMTP configuration, and email-triggered actions
- Slack Integration - Real-time Slack notifications for ticket events (planned)
- Microsoft Teams Integration - Microsoft Teams notifications and integration (planned)
Quick Start¶
REST API¶
Get a ticket using the API:
Webhooks¶
Configure a webhook to POST to your server when tickets are created:
{
"event": "ticket.created",
"ticket_id": 123,
"title": "New Support Request",
"timestamp": "2026-01-03T10:00:00Z"
}
Email Notifications¶
Emails are sent on these events:
- Ticket created
- Ticket assigned to you
- Ticket status changed
- Comment added to your ticket
Integration Architecture¶
Notification Flow¶
API Flow¶
Common Use Cases¶
Use Case 1: Automated Ticket Creation¶
Create tickets programmatically from external systems:
import requests
response = requests.post(
'https://arctyk.example.com/api/tickets/',
headers={'Authorization': 'Bearer TOKEN'},
json={
'title': 'API Created Ticket',
'description': 'Created from external system',
'priority': 'medium'
}
)
ticket_id = response.json()['id']
Use Case 2: Slack Notifications¶
Receive real-time Slack notifications when tickets are created or updated:
- Configure Slack webhook in Arctyk admin
- Select events to notify on
- Tickets appear in your Slack channel
Use Case 3: Custom Workflow¶
Build custom business logic using the Workflow Engine:
from tickets.workflow import apply_transition
# Move ticket to next status based on conditions
apply_transition(ticket, 'in_progress')
Authentication¶
API Authentication¶
Use token-based authentication:
Token can be obtained from user settings or generated in admin panel.
CSRF Protection¶
Web form submissions require CSRF token:
Configuration¶
Environment Variables¶
# Email Configuration
EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_HOST_USER=your-email@gmail.com
EMAIL_HOST_PASSWORD=your-password
EMAIL_USE_TLS=True
# Slack (planned)
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/YOUR/WEBHOOK/URL
# Teams (planned)
TEAMS_WEBHOOK_URL=https://outlook.webhook.office.com/webhookb2/YOUR/WEBHOOK/URL
Admin Panel Configuration¶
Some integrations can be configured in Django Admin:
- Log in as admin
- Navigate to Integrations section
- Configure credentials and settings
Troubleshooting¶
Email not sending?¶
- Check
EMAIL_BACKENDconfiguration - Verify SMTP credentials
- Check firewall/network access to email server
- Review Django logs
API errors?¶
- Verify authentication token
- Check request format (JSON)
- Review API documentation for endpoint
- Check HTTP status codes
Webhook issues?¶
- Verify webhook URL is correct
- Check network connectivity
- Review webhook delivery logs
- Test with sample payload
Development¶
Creating a Custom Integration¶
- Create a new Django app in
src/integrations/ - Define models for storing integration credentials
- Create views for handling webhooks
- Add Celery tasks for async processing
- Register URLs in
config/urls.py
Testing Integrations¶
# Test email sending
python manage.py shell
>>> from django.core.mail import send_mail
>>> send_mail('Test', 'Message', 'from@example.com', ['to@example.com'])
# Test API endpoint
curl -X GET http://localhost:8000/api/tickets/1/ \
-H "Authorization: Bearer TOKEN"
Related Documentation¶
Support¶
For integration questions or issues:
- Check the relevant section above
- Review Architecture - Workflows
- Contact the development team
- Check GitHub issues and discussions