Skip to content
Development
Skill

/expenses

Autotask expense report and expense item structure - the report/item parent-child relationship, approval status workflow, expense categories, payment types, and the billable vs reimbursable distinction for MSP operational expenses.

From plugin
msp-claude-plugins
46200 skills146 agents200 commands4 MCP
Install
$ npx -y skills add wyre-technology/msp-claude-plugins --skill expenses --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/expenses

Context preview

The summary Claude sees to decide when to auto-load this skill.

Autotask expense report and expense item structure - the report/item parent-child relationship, approval status workflow, expense categories, payment types, and the billable vs reimbursable distinction for MSP operational expenses.

SKILL.md

expenses.SKILL.md
name: "Autotask Expenses"
description: >
  Autotask expense report and expense item structure - the report/item parent-child
  relationship, approval status workflow, expense categories, payment types, and the
  billable vs reimbursable distinction for MSP operational expenses.
when_to_use: >-
  When creating expense reports, adding line items, searching reports by status or submitter, or
  managing expense approval workflows. Use when: autotask expense, expense report, expense item,
  reimbursement, mileage, travel expense, receipt, expense approval, billable expense, expense
  category, create expense, or submit expense.

Autotask Expense Report Management

Overview

Expense reports track out-of-pocket costs incurred by technicians and staff during service delivery. Unlike time entries (which track labor hours), expense reports capture material costs like mileage, meals, equipment purchases, and travel expenses. Each report contains one or more expense items, and follows an approval workflow before reimbursement or client billing.

Anti-triggers

  • **A cost charged to the customer on a ticket** — that is a ticket

charge, a different entity on a different approval path; use `autotask-ticket-notes-attachments`.

  • **Labour hours rather than out-of-pocket cost** — use

`autotask-time-entries`.

  • **Whether an approved expense reached an invoice** — use

`autotask-billing`.

Key Concepts

Expense Report vs Expense Item

| Entity | Purpose | Relationship | |--------|---------|-------------| | **Expense Report** | Container/header for a group of expenses | Parent - groups items by period or purpose | | **Expense Item** | Individual expense line item | Child - belongs to exactly one report |

Approval Status Codes

| Status ID | Name | Description | |-----------|------|-------------| | **1** | New | Report created, not yet submitted | | **2** | Submitted | Sent for manager approval | | **3** | Approved | Manager approved, ready for processing | | **4** | Paid | Reimbursement processed | | **5** | Rejected | Manager rejected, needs correction | | **6** | InReview | Under review by approver |

Approval Workflow

NEW (1) ──────────> SUBMITTED (2) ──────────> IN REVIEW (6)
                                                   │
                                       ┌───────────┴───────────┐
                                       ▼                       ▼
                                 APPROVED (3)            REJECTED (5)
                                       │                       │
                                       ▼                       ▼
                                   PAID (4)              Back to NEW

Field Reference

Expense Report Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | `id` | int | System | Auto-generated unique identifier | | `name` | string | No | Report name (e.g., "Feb 2026 Travel") | | `description` | string | No | Report description | | `submitterId` | int | Yes | Resource ID of the person submitting | | `weekEndingDate` | date | No | Week ending date (YYYY-MM-DD) | | `status` | int | System | Current approval status (1-6) |

Expense Item Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | `expenseReportId` | int | Yes | Parent expense report ID | | `description` | string | Yes | Line item description | | `expenseDate` | date | Yes | Date expense was incurred (YYYY-MM-DD) | | `expenseCategory` | int | Yes | Expense category picklist ID | | `amount` | decimal | Yes | Expense amount | | `companyId` | int | No | Associated company ID (0 for internal) | | `paymentType` | int | No | Payment type picklist ID | | `isBillableToCompany` | boolean | No | Whether billable to client | | `isReimbursable` | boolean | No | Whether reimbursable to employee | | `haveReceipt` | boolean | No | Whether receipt is attached |

Expense Categories (Common)

Use `autotask_get_field_info` with entity `ExpenseItem` to get the full picklist for your instance. Common categories include:

| Category | Typical Use | |----------|-------------| | Mileage | Driving to client sites | | Meals | Client meetings, travel meals | | Lodging | Overnight travel | | Airfare | Flight costs | | Parking/Tolls | On-site parking fees | | Equipment | Small equipment purchases | | Supplies | Office or project supplies | | Other | Miscellaneous expenses |

Payment Types (Common)

| Type | Description | |------|-------------| | Cash | Out-of-pocket cash payment | | Personal Credit Card | Employee's own card | | Company Credit Card | Corporate card (usually not reimbursable) | | Check | Payment by check |

MCP Tool Reference

Create an Expense Report

Tool: autotask_create_expense_report
Args: {
  "submitterId": 29744150,
  "name": "Feb 2026 Client Travel",
  "description": "Travel expenses for on-site visits",
  "weekEndingDate": "2026-02-28"
}

**Notes:**

  • `submitterId` is the only required field
  • `name` defaults to auto-generated if omitted
  • `weekEndingDate` helps organize reports by period

Add an Expense Item

Tool: autotask_create_expense_item
Args: {
  "expenseReportId": 12345,
  "description": "Mileage to Contoso Ltd - server migration",
  "expenseDate": "2026-02-15",
  "expenseCategory": 1,
  "amount": 45.50,
  "companyId": 67890,
  "isBillableToCompany": true,
  "isReimbursable": true,
  "haveReceipt": false
}

**Required fields:** `expenseReportId`, `description`, `expenseDate`, `expenseCategory`, `amount`

Search Expense Reports

Tool: autotask_search_expense_reports
Args: {
  "submitterId": 29744150,
  "status": 1,
  "pageSize": 25
}

**Filters:**

  • `submitterId` - Filter by who submitted
  • `status` - Filter by approval status (1=New, 2=Submitted, 3=Approved, 4=Paid, 5=Rejected, 6=InReview)
  • `pageSize` - Results per page (default 25, max 100)

Get an Expense Report

Tool: autotask_get_expense_report
Args: {
Read more
Ships withmsp-claude-plugins

One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: mcp.wyre.ai

Get the whole plugin

Other skills on msp-claude-plugins.