Install any skill in seconds. Free to start, no credit card required.
Get Started Free →FreshBooks Automation: manage businesses, projects, time tracking, and billing in FreshBooks cloud accounting
.claude/skills/composiohq-freshbooks-automation/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-21 | ✗→✓ | ▲ Improved | 38% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 165% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 29% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -26% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -5% | 0% |
Automate FreshBooks operations including listing businesses, managing projects, tracking time, and monitoring budgets for small and medium-sized business accounting.
Toolkit docs: composio.dev/toolkits/freshbooks
This skill requires the Rube MCP server connected at https://rube.app/mcp.
Before executing any tools, ensure an active connection exists for the freshbooks toolkit. If no connection is active, initiate one via RUBE_MANAGE_CONNECTIONS.
Retrieve all businesses associated with the authenticated user. The business_id from this response is required for most other FreshBooks API calls.
Tool: FRESHBOOKS_LIST_BUSINESSES
Parameters: None required.
Example:
Tool: FRESHBOOKS_LIST_BUSINESSES
Arguments: {}Output: Returns business membership information including all businesses the user has access to, along with their role in each business.
> Important: Always call this first to obtain a valid business_id before performing project-specific operations.
Retrieve all projects for a business with comprehensive filtering and sorting options.
Tool: FRESHBOOKS_LIST_PROJECTS
Key Parameters:
business_id (required) -- Business ID obtained from FRESHBOOKS_LIST_BUSINESSESactive -- Filter by active status: true (active only), false (inactive only), omit for allcomplete -- Filter by completion: true (completed), false (incomplete), omit for allsort_by -- Sort order: "created_at", "due_date", or "title"updated_since -- UTC datetime in RFC3339 format, e.g., "2026-01-01T00:00:00Z"include_logged_duration -- true to include total logged time (in seconds) per projectskip_group -- true to omit team member/invitation data (reduces response size)Example:
Tool: FRESHBOOKS_LIST_PROJECTS
Arguments:
business_id: 123456
active: true
complete: false
sort_by: "due_date"
include_logged_duration: trueUse Cases:
Track project progress and budgets by filtering for active, incomplete projects.
Steps:
FRESHBOOKS_LIST_BUSINESSES to get business_idFRESHBOOKS_LIST_PROJECTS with active: true, complete: false, include_logged_duration: trueCheck for recent project activity using the updated_since filter.
Steps:
FRESHBOOKS_LIST_BUSINESSES to get business_idFRESHBOOKS_LIST_PROJECTS with updated_since set to your cutoff datetimeExample:
Tool: FRESHBOOKS_LIST_PROJECTS
Arguments:
business_id: 123456
updated_since: "2026-02-01T00:00:00Z"
sort_by: "created_at"FRESHBOOKS_LIST_BUSINESSESFRESHBOOKS_LIST_PROJECTS with the obtained business_idactive, complete, updated_since, and sort_by parameters| Pitfall | Detail | |---------|--------| | business_id required | Most FreshBooks operations require a business_id. Always call FRESHBOOKS_LIST_BUSINESSES first to obtain it. | | Date format | The updated_since parameter must be in RFC3339 format: "2026-01-01T00:00:00Z". Other formats will fail. | | Paginated results | Project list responses are paginated. Check for additional pages in the response. | | Empty results | Returns an empty list if no projects exist or match the applied filters. This is not an error. | | Logged duration units | When include_logged_duration is true, the duration is returned in seconds. Convert to hours (divide by 3600) for display. |
| Tool Slug | Description | |-----------|-------------| | FRESHBOOKS_LIST_BUSINESSES | List all businesses for the authenticated user | | FRESHBOOKS_LIST_PROJECTS | List projects with filtering and sorting for a business |
Powered by Composio
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-21 | fail→pass | 5,934 | 1,429 | -76% | 1 | 1 | 0% | 1,060 | 1,463 | +38% | 0 | 0 | — |
case-01 | fail→fail | 5,587 | 2,543 | -54% | 1 | 1 | 0% | 951 | 1,429 | +50% | 0 | 0 | — |
case-02 | fail→fail | 4,774 | 2,439 | -49% | 1 | 1 | 0% | 478 | 1,412 | +195% | 0 | 0 | — |
case-03 | fail→fail | 9,317 | 3,036 | -67% | 1 | 1 | 0% | 1,755 | 1,442 | -18% | 0 | 0 | — |
case-04 | fail→pass | 3,682 | 3,117 | -15% | 1 | 1 | 0% | 674 | 1,784 | +165% | 0 | 0 | — |
case-05 | pass→pass | 7,995 | 5,563 | -30% | 1 | 1 | 0% | 1,763 | 2,323 | +32% | 0 | 0 | — |
case-06 | fail→pass | 7,758 | 3,705 | -52% | 1 | 1 | 0% | 1,498 | 1,939 | +29% | 0 | 0 | — |
case-07 | pass→pass | 6,274 | 2,658 | -58% | 1 | 1 | 0% | 1,306 | 1,809 | +39% | 0 | 0 | — |
case-08 | fail→pass | 10,626 | 1,677 | -84% | 1 | 1 | 0% | 2,105 | 1,560 | -26% | 0 | 0 | — |
case-09 | fail→pass | 13,967 | 5,118 | -63% | 1 | 1 | 0% | 2,499 | 2,364 | -5% | 0 | 0 | — |
case-10 | fail→pass | 8,108 | 4,243 | -48% | 1 | 1 | 0% | 1,398 | 2,010 | +44% | 0 | 0 | — |
case-11 | fail→fail | 9,684 | 3,315 | -66% | 1 | 1 | 0% | 1,746 | 1,704 | -2% | 0 | 0 | — |
case-12 | pass→pass | 9,919 | 4,752 | -52% | 1 | 1 | 0% | 1,711 | 2,062 | +21% | 0 | 0 | — |
case-13 | pass→pass | 6,311 | 1,580 | -75% | 1 | 1 | 0% | 1,300 | 1,520 | +17% | 0 | 0 | — |
case-14 | fail→pass | 7,526 | 5,078 | -33% | 1 | 1 | 0% | 1,371 | 2,230 | +63% | 0 | 0 | — |
case-15 | pass→pass | 10,951 | 6,103 | -44% | 1 | 1 | 0% | 2,200 | 2,407 | +9% | 0 | 0 | — |
case-16 | pass→fail | 3,815 | 4,910 | +29% | 1 | 1 | 0% | 742 | 1,556 | +110% | 0 | 0 | — |
case-17 | pass→fail | 3,606 | 5,450 | +51% | 1 | 1 | 0% | 608 | 1,640 | +170% | 0 | 0 | — |
case-18 | pass→fail | 3,387 | 6,433 | +90% | 1 | 1 | 0% | 568 | 1,702 | +200% | 0 | 0 | — |
case-19 | pass→fail | 2,876 | 4,773 | +66% | 1 | 1 | 0% | 430 | 1,392 | +224% | 0 | 0 | — |
case-20 | fail→pass | 7,662 | 3,944 | -49% | 1 | 1 | 0% | 1,492 | 2,051 | +37% | 0 | 0 | — |
case-22 | fail→pass | 6,466 | 2,511 | -61% | 1 | 1 | 0% | 1,164 | 1,738 | +49% | 0 | 0 | — |
case-23 | pass→fail | 5,523 | 5,085 | -8% | 1 | 1 | 0% | 1,065 | 1,643 | +54% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 15 counted toward the lift figure. The other 8 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +17 percentage points is the difference between those two pass rates over the 15 comparable cases. 5 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.