Skip to main content

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

FieldDescriptionRequired
Case NumberAuto-generated ID (e.g., CASE-2025-00001)Auto
SubjectBrief issue descriptionYes
DescriptionDetailed problem explanationYes
CategoryIssue typeYes
PriorityUrgency levelYes
StatusCurrent stateAuto

Customer Information

FieldDescriptionFormat
Customer NameContact personText
Customer EmailEmail addressEmail format
Customer PhonePhone number10-15 digits

Context Information (Aviation)

FieldDescriptionExample
Flight NumberAssociated flightLH123
Flight DateDate of flight2025-01-15
AircraftVehicle/tail numberD-AIAA
FleetAirline/fleetLufthansa
Transaction IDPayment referenceTXN-ABC123
Product TypeService purchasedwifi_tariff, voucher, upgrade

Assignment and Resolution

FieldDescriptionAuto-set
Assigned ToSupport agent handling caseManual
Assigned AtAssignment timestampYes
Resolved ByAgent who resolved caseYes
Resolved AtResolution timestampYes
Resolution NotesHow issue was resolvedManual
Closed AtCase closure timestampYes

Ticket Statuses

Tickets progress through four main statuses:

StatusDescriptionActions Available
OpenNew ticket awaiting assignmentAssign to agent, add notes
In ProgressAgent actively working on issueAdd notes, request info, resolve
ResolvedIssue addressed, awaiting confirmationClose, reopen if needed
ClosedCase completed and archivedView only (read-only)

Status Workflow

┌──────┐     ┌─────────────┐     ┌──────────┐     ┌────────┐
│ Open │────▶│ In Progress │────▶│ Resolved │────▶│ Closed │
└──────┘ └─────────────┘ └──────────┘ └────────┘
│ │ ▲
│ │ │
└───────────────────────────────────┴──────────────┘
(Direct close in some cases)
Auto-Close

Resolved tickets automatically close after 7 days if no further action is taken.

Priority Levels

Set priority based on urgency and impact:

PriorityWhen to UseResponse Time
UrgentCritical issues affecting operationsImmediate
HighSignificant problems needing fast resolutionWithin 4 hours
MediumStandard issues (default)Within 24 hours
LowMinor questions or non-urgent requestsWithin 48 hours

Ticket Categories

Organize tickets by issue type:

CategoryDescriptionCommon Examples
TechnicalConnectivity and technical issuesCannot connect, slow speeds, authentication errors
BillingPayment and invoice questionsIncorrect charges, payment failures
RefundRefund requests and processingService not delivered, unsatisfactory experience
GeneralGeneral inquiries and questionsHow-to questions, account info
ComplaintCustomer complaintsService quality, poor experience

Creating a Ticket

From the Console

  1. Navigate to Support > Tickets
  2. Click Create Ticket
  3. Enter ticket details:
    • Subject - Brief issue description
    • Description - Detailed explanation
    • Category - Select issue type
    • Priority - Set urgency level
  4. Add customer information:
    • Name, email, phone
  5. Add context (if applicable):
    • Flight number and date
    • Aircraft/fleet
    • Transaction ID
  6. 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"
}
}'
Unique Naming

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

  1. Navigate to Support > Tickets
  2. View list showing:
    • Case number
    • Subject
    • Status and priority
    • Assigned agent
    • Creation date
  3. 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

  1. Click on a ticket in the list
  2. 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

  1. Open the ticket details
  2. Click Edit
  3. Modify any of:
    • Status
    • Priority
    • Assigned agent
    • Description
    • Resolution notes
  4. Click Save

Assigning a Ticket

Assign tickets to support agents for resolution:

  1. Open ticket details
  2. Click Assign
  3. Select agent from dropdown
  4. Click Confirm
  5. Status automatically changes to "In Progress"
  6. Agent receives notification

Adding Notes

Add internal or customer-facing notes:

  1. Open ticket details
  2. Navigate to Notes section
  3. Click Add Note
  4. Enter note text
  5. Choose note type:
    • Internal - Only visible to agents
    • Customer-facing - Visible in customer communications
  6. Click Save
Internal Notes

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:

  1. Open ticket details
  2. Click Resolve
  3. Enter resolution notes:
    • What was the problem?
    • How was it fixed?
    • Any follow-up needed?
  4. Click Mark as Resolved
  5. Status changes to "Resolved"
  6. Customer notified (if email configured)

Closing a Ticket

Permanently close resolved tickets:

  1. Open ticket details (must be in "Resolved" status)
  2. Click Close Ticket
  3. Confirm closure
  4. Status changes to "Closed"
  5. Ticket moves to archived view
Auto-Close

Tickets in "Resolved" status automatically close after 7 days if no further action is taken.

Agent Management

Support Agent Roles

RoleAccess LevelCapabilities
AgentAssigned tickets onlyView and update assigned cases
SupervisorAll ticketsAssign cases, view reports, escalate issues
AdminFull accessManage agents, configure permissions, full system access

Agent Permissions

Control what agents can do:

PermissionDescriptionDefault (Agent)
can_refundProcess refund requestsNo
max_refund_amountMaximum refund amount (if can_refund=true)0
can_view_all_casesSee all tickets (not just assigned)No
can_assign_casesAssign tickets to other agentsNo
can_close_casesClose ticketsYes
can_delete_notesRemove notes from ticketsNo
can_manage_agentsAdd/remove agents, edit permissionsNo

Fleet Access Control

Restrict agents to specific airlines/fleets:

  1. Navigate to Support > Agents
  2. Select agent
  3. Click Edit Access
  4. Choose fleets/airlines:
    • Select specific airlines for limited access
    • Leave empty for full access (admin)
  5. Save changes
Multi-Airline Support

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

  1. Customer Requests Refund - Via ticket or directly
  2. Agent Reviews Request - Check transaction, verify issue
  3. Supervisor Approves - If amount exceeds agent limit
  4. Refund Processed - Via payment gateway (Stripe, PayPal, Braintree)
  5. Customer Notified - Email confirmation sent

Processing a Refund

  1. Open ticket details
  2. Navigate to Refunds section
  3. Click Process Refund
  4. Enter refund details:
    • Transaction ID
    • Amount
    • Reason
    • Payment method used
  5. Click Submit for Approval (if needed)
  6. Supervisor approves
  7. Refund processed automatically
  8. Customer receives confirmation

Refund Statuses

StatusDescription
PendingAwaiting approval
ProcessingBeing processed by payment gateway
CompletedSuccessfully refunded
FailedRefund failed (payment gateway error)
CancelledRefund request cancelled

Bulk Operations

Bulk Status Update

Update multiple tickets at once:

  1. Navigate to Support > Tickets
  2. Select tickets (up to 100)
  3. Click Bulk Actions > Update Status
  4. Choose new status
  5. Apply changes

Bulk Assignment

Assign multiple tickets to an agent:

  1. Select tickets (up to 100)
  2. Click Bulk Actions > Assign
  3. Select agent
  4. Confirm assignment

Bulk Close

Close multiple resolved tickets:

  1. Select tickets in "Resolved" status (up to 100)
  2. Click Bulk Actions > Close
  3. Confirm closure

Reporting and Analytics

Support Dashboard

View key metrics:

  1. Navigate to Support > Dashboard
  2. 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:

  1. Navigate to Support > Tickets
  2. Apply filters (optional)
  3. Click Export
  4. Select format: CSV
  5. 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:

  1. Navigate to Account > Settings
  2. Go to Email Configuration
  3. Configure SendGrid:
    • API token
    • Sender email
    • Sender name
    • Email templates
  4. 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 name
  • page - Page number (default: 1)
  • page_size - Items per page (1-5000, default: 25)
  • sort - Sort field: creationdate, user_owner, username, email, source
  • format - 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:

PermissionAccess Level
tickets.readView tickets and details
tickets.fullFull access: create, update, delete tickets

Permission Requirements:

OperationRequired Permission
List ticketstickets.read OR tickets.full
View detailstickets.read OR tickets.full
Create tickettickets.full
Update tickettickets.full
Delete tickettickets.full
Bulk operationstickets.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:

  1. Verify you have tickets.full permission
  2. Ensure ticket name is unique
  3. Check all required fields are filled
  4. Use lowercase alphanumeric names

Ticket Not Appearing in List

Possible causes:

  • Filters excluding the ticket
  • Wrong company context
  • Pagination issue

Solution:

  1. Clear all filters
  2. Verify company context
  3. Check all pages
  4. Search by ticket name or case number

Cannot Assign Ticket

Possible causes:

  • Agent lacks permissions
  • Fleet access restriction
  • Agent not active

Solution:

  1. Verify agent has necessary permissions
  2. Check agent fleet access includes this ticket
  3. Confirm agent account is active
  4. Try assigning to different agent

Email Notifications Not Sending

Possible causes:

  • SendGrid not configured
  • Invalid customer email
  • Template not set up
  • Email bounced

Solution:

  1. Verify SendGrid configuration in Account Settings
  2. Check customer email is valid
  3. Confirm email templates are configured
  4. Review SendGrid logs for errors
  5. Check spam/junk folders

Refund Processing Failed

Possible causes:

  • Agent lacks refund permission
  • Amount exceeds agent limit
  • Payment gateway error
  • Invalid transaction ID

Solution:

  1. Verify agent has can_refund permission
  2. Check amount is within max_refund_amount
  3. Confirm payment gateway is configured
  4. Verify transaction ID is correct
  5. Check payment gateway logs

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.