Support Tickets
The Support Tickets system allows you to track, manage, and resolve customer support issues directly within the IronWifi Console. Designed for both general support and specialized aviation WiFi support, this feature provides comprehensive case management with agent assignment, priority tracking, and resolution workflows.
What are Support Tickets?
Support Tickets (also called Support Cases) are structured records of customer issues, questions, or requests. Each ticket captures:
- Customer information and contact details
- Issue description and category
- Priority level and status
- Assigned support agent
- Resolution notes and timeline
- Related context (flight, vehicle, transaction)
Use Cases
General Support
- Technical Issues - WiFi connectivity problems
- Account Questions - Billing inquiries, password resets
- Feature Requests - Product enhancement suggestions
- Bug Reports - System issues and errors
Aviation WiFi Support
- In-Flight Connectivity - Passenger WiFi issues during flights
- Refund Requests - Process transaction refunds
- Flight-Specific Issues - Problems tied to specific aircraft/routes
- Transaction Disputes - Billing and payment issues
Customer Care
- Complaint Management - Handle customer complaints systematically
- Escalation Tracking - Monitor high-priority cases
- Agent Performance - Track resolution times and workload
- SLA Monitoring - Ensure timely responses
Ticket Properties
Basic Information
| Field | Description | Required |
|---|---|---|
| Case Number | Auto-generated ID (e.g., CASE-2025-00001) | Auto |
| Subject | Brief issue description | Yes |
| Description | Detailed problem explanation | Yes |
| Category | Issue type | Yes |
| Priority | Urgency level | Yes |
| Status | Current state | Auto |
Customer Information
| Field | Description | Format |
|---|---|---|
| Customer Name | Contact person | Text |
| Customer Email | Email address | Email format |
| Customer Phone | Phone number | 10-15 digits |
Context Information (Aviation)
| Field | Description | Example |
|---|---|---|
| Flight Number | Associated flight | LH123 |
| Flight Date | Date of flight | 2025-01-15 |
| Aircraft | Vehicle/tail number | D-AIAA |
| Fleet | Airline/fleet | Lufthansa |
| Transaction ID | Payment reference | TXN-ABC123 |
| Product Type | Service purchased | wifi_tariff, voucher, upgrade |
Assignment and Resolution
| Field | Description | Auto-set |
|---|---|---|
| Assigned To | Support agent handling case | Manual |
| Assigned At | Assignment timestamp | Yes |
| Resolved By | Agent who resolved case | Yes |
| Resolved At | Resolution timestamp | Yes |
| Resolution Notes | How issue was resolved | Manual |
| Closed At | Case closure timestamp | Yes |
Ticket Statuses
Tickets progress through four main statuses:
| Status | Description | Actions Available |
|---|---|---|
| Open | New ticket awaiting assignment | Assign to agent, add notes |
| In Progress | Agent actively working on issue | Add notes, request info, resolve |
| Resolved | Issue addressed, awaiting confirmation | Close, reopen if needed |
| Closed | Case completed and archived | View only (read-only) |
Status Workflow
┌──────┐ ┌─────────────┐ ┌──────────┐ ┌────────┐
│ Open │────▶│ In Progress │────▶│ Resolved │────▶│ Closed │
└──────┘ └─────────────┘ └──────────┘ └────────┘
│ │ ▲
│ │ │
└───────────────────────────────────┴──────────────┘
(Direct close in some cases)
Resolved tickets automatically close after 7 days if no further action is taken.
Priority Levels
Set priority based on urgency and impact:
| Priority | When to Use | Response Time |
|---|---|---|
| Urgent | Critical issues affecting operations | Immediate |
| High | Significant problems needing fast resolution | Within 4 hours |
| Medium | Standard issues (default) | Within 24 hours |
| Low | Minor questions or non-urgent requests | Within 48 hours |
Ticket Categories
Organize tickets by issue type:
| Category | Description | Common Examples |
|---|---|---|
| Technical | Connectivity and technical issues | Cannot connect, slow speeds, authentication errors |
| Billing | Payment and invoice questions | Incorrect charges, payment failures |
| Refund | Refund requests and processing | Service not delivered, unsatisfactory experience |
| General | General inquiries and questions | How-to questions, account info |
| Complaint | Customer complaints | Service quality, poor experience |
Creating a Ticket
From the Console
- Navigate to Support > Tickets
- Click Create Ticket
- Enter ticket details:
- Subject - Brief issue description
- Description - Detailed explanation
- Category - Select issue type
- Priority - Set urgency level
- Add customer information:
- Name, email, phone
- Add context (if applicable):
- Flight number and date
- Aircraft/fleet
- Transaction ID
- Click Create
Via API
curl -X POST https://console.ironwifi.com/api/{company_id}/tickets \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "connectivity-issue-flight-lh123",
"status": "open",
"settings": {
"subject": "Cannot connect to WiFi on flight LH123",
"description": "Passenger unable to connect to in-flight WiFi",
"category": "technical",
"priority": "high",
"customer_email": "passenger@example.com",
"customer_name": "John Smith",
"flight_number": "LH123",
"flight_date": "2025-01-15"
}
}'
The ticket name field must be unique per company. Use descriptive names like "issue-type-identifier-date" for easy identification.
Managing Tickets
Viewing Your Tickets
- Navigate to Support > Tickets
- View list showing:
- Case number
- Subject
- Status and priority
- Assigned agent
- Creation date
- Use filters to find tickets:
- Filter by status
- Filter by priority
- Filter by assigned agent
- Search by subject or case number
- Sort by date, priority, or status
Viewing Ticket Details
- Click on a ticket in the list
- View comprehensive information:
- Overview - Basic info, customer details, context
- Timeline - Status changes, assignments, resolution
- Notes - Internal and customer-facing notes
- Refunds - Associated refund requests (if any)
Updating a Ticket
- Open the ticket details
- Click Edit
- Modify any of:
- Status
- Priority
- Assigned agent
- Description
- Resolution notes
- Click Save
Assigning a Ticket
Assign tickets to support agents for resolution:
- Open ticket details
- Click Assign
- Select agent from dropdown
- Click Confirm
- Status automatically changes to "In Progress"
- Agent receives notification
Adding Notes
Add internal or customer-facing notes:
- Open ticket details
- Navigate to Notes section
- Click Add Note
- Enter note text
- Choose note type:
- Internal - Only visible to agents
- Customer-facing - Visible in customer communications
- Click Save
Use internal notes for agent collaboration, investigation details, and resolution strategies. Use customer-facing notes for status updates sent to customers.
Resolving a Ticket
Mark issues as resolved:
- Open ticket details
- Click Resolve
- Enter resolution notes:
- What was the problem?
- How was it fixed?
- Any follow-up needed?
- Click Mark as Resolved
- Status changes to "Resolved"
- Customer notified (if email configured)
Closing a Ticket
Permanently close resolved tickets:
- Open ticket details (must be in "Resolved" status)
- Click Close Ticket
- Confirm closure
- Status changes to "Closed"
- Ticket moves to archived view
Tickets in "Resolved" status automatically close after 7 days if no further action is taken.
Agent Management
Support Agent Roles
| Role | Access Level | Capabilities |
|---|---|---|
| Agent | Assigned tickets only | View and update assigned cases |
| Supervisor | All tickets | Assign cases, view reports, escalate issues |
| Admin | Full access | Manage agents, configure permissions, full system access |
Agent Permissions
Control what agents can do:
| Permission | Description | Default (Agent) |
|---|---|---|
| can_refund | Process refund requests | No |
| max_refund_amount | Maximum refund amount (if can_refund=true) | 0 |
| can_view_all_cases | See all tickets (not just assigned) | No |
| can_assign_cases | Assign tickets to other agents | No |
| can_close_cases | Close tickets | Yes |
| can_delete_notes | Remove notes from tickets | No |
| can_manage_agents | Add/remove agents, edit permissions | No |
Fleet Access Control
Restrict agents to specific airlines/fleets:
- Navigate to Support > Agents
- Select agent
- Click Edit Access
- Choose fleets/airlines:
- Select specific airlines for limited access
- Leave empty for full access (admin)
- Save changes
For MSPs managing multiple airlines, use fleet access control to ensure agents only see tickets for their assigned airlines.
Refund Processing
When Refunds Are Needed
Process refunds directly from tickets:
- WiFi service not provided
- Technical issues preventing usage
- Billing errors
- Service quality complaints
Refund Workflow
- Customer Requests Refund - Via ticket or directly
- Agent Reviews Request - Check transaction, verify issue
- Supervisor Approves - If amount exceeds agent limit
- Refund Processed - Via payment gateway (Stripe, PayPal, Braintree)
- Customer Notified - Email confirmation sent
Processing a Refund
- Open ticket details
- Navigate to Refunds section
- Click Process Refund
- Enter refund details:
- Transaction ID
- Amount
- Reason
- Payment method used
- Click Submit for Approval (if needed)
- Supervisor approves
- Refund processed automatically
- Customer receives confirmation
Refund Statuses
| Status | Description |
|---|---|
| Pending | Awaiting approval |
| Processing | Being processed by payment gateway |
| Completed | Successfully refunded |
| Failed | Refund failed (payment gateway error) |
| Cancelled | Refund request cancelled |
Bulk Operations
Bulk Status Update
Update multiple tickets at once:
- Navigate to Support > Tickets
- Select tickets (up to 100)
- Click Bulk Actions > Update Status
- Choose new status
- Apply changes
Bulk Assignment
Assign multiple tickets to an agent:
- Select tickets (up to 100)
- Click Bulk Actions > Assign
- Select agent
- Confirm assignment
Bulk Close
Close multiple resolved tickets:
- Select tickets in "Resolved" status (up to 100)
- Click Bulk Actions > Close
- Confirm closure
Reporting and Analytics
Support Dashboard
View key metrics:
- Navigate to Support > Dashboard
- View metrics:
- Open Tickets - Current unresolved issues
- Response Time - Average first response time
- Resolution Time - Average time to resolve
- Agent Performance - Cases per agent, resolution rate
- Category Breakdown - Issues by category
- Priority Distribution - Cases by priority level
Ticket Reports
Generate detailed reports:
By Status:
- Open tickets requiring attention
- Resolved tickets awaiting closure
- Closed tickets (historical)
By Priority:
- Urgent tickets needing immediate action
- High-priority cases
- Standard workload
By Agent:
- Tickets per agent
- Average resolution time per agent
- Agent workload distribution
By Category:
- Technical issues
- Refund requests
- Billing questions
- General inquiries
Export Ticket Data
Export for external analysis:
- Navigate to Support > Tickets
- Apply filters (optional)
- Click Export
- Select format: CSV
- Download file
Email Notifications
Automatic Notifications
Customers receive email notifications for:
- Ticket Created - Confirmation with case number
- Ticket Assigned - Agent assigned to case
- Status Updated - When status changes
- Resolved - When issue is resolved
- Closed - When case is closed
- Refund Processed - Refund confirmation
Email Configuration
Configure email settings:
- Navigate to Account > Settings
- Go to Email Configuration
- Configure SendGrid:
- API token
- Sender email
- Sender name
- Email templates
- Save configuration
Email Templates
Customize email templates:
- case_created.html - Ticket creation confirmation
- case_assigned.html - Assignment notification
- case_resolved.html - Resolution notification
- refund_processed.html - Refund confirmation
API Integration
Manage tickets programmatically via the IronWifi REST API.
API Endpoints
POST /api/{company_id}/tickets - Create ticket
GET /api/{company_id}/tickets - List all tickets
GET /api/{company_id}/tickets/{id} - Get ticket details
PATCH /api/{company_id}/tickets/{id} - Update ticket
DELETE /api/{company_id}/tickets/{id} - Delete ticket
List Tickets
curl -X GET "https://console.ironwifi.com/api/{company_id}/tickets?page=1&page_size=25&filter=wifi" \
-H "Authorization: Bearer YOUR_TOKEN"
Query Parameters:
filter- Search by ticket namepage- Page number (default: 1)page_size- Items per page (1-5000, default: 25)sort- Sort field: creationdate, user_owner, username, email, sourceformat- Export format: json (default), csv
Get Ticket Details
curl -X GET https://console.ironwifi.com/api/{company_id}/tickets/{id} \
-H "Authorization: Bearer YOUR_TOKEN"
Update Ticket
curl -X PATCH https://console.ironwifi.com/api/{company_id}/tickets/{id} \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "resolved",
"settings": {
"resolution_notes": "Reset WiFi configuration, issue resolved"
}
}'
Bulk Update
Update multiple tickets (comma-separated IDs, max 100):
curl -X PATCH https://console.ironwifi.com/api/{company_id}/tickets/id1,id2,id3 \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "closed"
}'
Delete Ticket
curl -X DELETE https://console.ironwifi.com/api/{company_id}/tickets/{id} \
-H "Authorization: Bearer YOUR_TOKEN"
Bulk Delete
Delete multiple tickets (comma-separated IDs, max 100):
curl -X DELETE https://console.ironwifi.com/api/{company_id}/tickets/id1,id2,id3 \
-H "Authorization: Bearer YOUR_TOKEN"
Permissions
Access to ticket management is controlled by permissions:
| Permission | Access Level |
|---|---|
tickets.read | View tickets and details |
tickets.full | Full access: create, update, delete tickets |
Permission Requirements:
| Operation | Required Permission |
|---|---|
| List tickets | tickets.read OR tickets.full |
| View details | tickets.read OR tickets.full |
| Create ticket | tickets.full |
| Update ticket | tickets.full |
| Delete ticket | tickets.full |
| Bulk operations | tickets.full |
Contact your administrator to request ticket management permissions.
Best Practices
1. Ticket Creation
Be Descriptive:
- Use clear, concise subjects
- Provide detailed descriptions
- Include relevant context (flight, transaction, etc.)
- Attach screenshots if applicable
Set Appropriate Priority:
- Use "Urgent" sparingly for true emergencies
- Default to "Medium" for standard issues
- Escalate priority if unresolved after SLA time
2. Assignment Strategy
Quick Assignment:
- Assign immediately upon creation
- Use auto-assignment if available
- Balance workload across agents
Skill-Based Routing:
- Technical issues → technical specialists
- Refunds → agents with refund permissions
- VIP customers → senior agents
3. Note Management
Internal Notes:
- Document investigation steps
- Record troubleshooting attempts
- Note escalation reasons
- Track customer communications
Customer-Facing Notes:
- Keep professional and clear
- Provide status updates
- Set expectations for resolution time
- Avoid technical jargon
4. Resolution Guidelines
Complete Resolutions:
- Verify issue is actually fixed
- Document solution clearly
- Add preventive recommendations
- Follow up with customer if needed
Resolution Notes Should Include:
- Root cause identified
- Steps taken to resolve
- Any configuration changes
- Follow-up actions needed
5. SLA Management
Response Times:
- Acknowledge receipt within 1 hour
- First response within priority SLA
- Regular status updates every 24 hours
- Resolve within target timeframes
Escalation Triggers:
- Unresolved after SLA time
- Customer escalation request
- Complex technical issues
- High-value customers
Troubleshooting
Cannot Create Ticket
Possible causes:
- Insufficient permissions (need
tickets.full) - Duplicate ticket name
- Missing required fields
Solution:
- Verify you have
tickets.fullpermission - Ensure ticket name is unique
- Check all required fields are filled
- Use lowercase alphanumeric names
Ticket Not Appearing in List
Possible causes:
- Filters excluding the ticket
- Wrong company context
- Pagination issue
Solution:
- Clear all filters
- Verify company context
- Check all pages
- Search by ticket name or case number
Cannot Assign Ticket
Possible causes:
- Agent lacks permissions
- Fleet access restriction
- Agent not active
Solution:
- Verify agent has necessary permissions
- Check agent fleet access includes this ticket
- Confirm agent account is active
- Try assigning to different agent
Email Notifications Not Sending
Possible causes:
- SendGrid not configured
- Invalid customer email
- Template not set up
- Email bounced
Solution:
- Verify SendGrid configuration in Account Settings
- Check customer email is valid
- Confirm email templates are configured
- Review SendGrid logs for errors
- Check spam/junk folders
Refund Processing Failed
Possible causes:
- Agent lacks refund permission
- Amount exceeds agent limit
- Payment gateway error
- Invalid transaction ID
Solution:
- Verify agent has
can_refundpermission - Check amount is within
max_refund_amount - Confirm payment gateway is configured
- Verify transaction ID is correct
- Check payment gateway logs
Related Topics
- Users - Customer account management
- Fleet Management - Aircraft and fleet context
- SendGrid Integration - Email notifications
- REST API - Programmatic access
FAQ
What's the difference between Open and In Progress?
Open means the ticket is new and awaiting assignment. In Progress means an agent has been assigned and is actively working on the issue.
Can customers create tickets directly?
Currently, tickets are created by administrators or via API. Customer-facing ticket submission can be implemented using the API integrated into your support portal.
How do auto-close timers work?
Tickets in "Resolved" status automatically change to "Closed" after 7 days if no further action is taken. This keeps the ticket list clean and focuses attention on active issues.
Can I reopen a closed ticket?
Closed tickets are typically read-only. Best practice is to create a new ticket referencing the closed one if the issue recurs.
How are refunds tracked?
Refunds are linked to tickets and tracked separately in the refunds system. Each refund has its own status (pending, processing, completed, failed) and maintains an audit trail.
Can I customize email templates?
Yes, you can customize SendGrid email templates for ticket notifications. Configure template content in your SendGrid account and reference the template IDs in IronWifi settings.
What happens to tickets when an agent leaves?
Tickets assigned to inactive agents should be reassigned to active agents. Use bulk reassignment to transfer all tickets from one agent to another.
How do I export ticket history?
Use the CSV export feature to download ticket data. Apply filters before exporting to get specific date ranges or categories.
Can tickets be deleted?
Yes, administrators with tickets.full permission can delete tickets. However, closing tickets is preferred to maintain historical records.
How do fleet restrictions work?
Agents can be restricted to specific fleets/airlines. They'll only see tickets related to their assigned fleets. This is useful for MSPs managing multiple airline clients.