Track and report customer kontingent usage from Productive.io. Monitor budget consumption and warn on low kontingent.
Track customer kontingent (budget/hours) usage via Productive.io Time Entries.
Read-Only - This skill reads data from Productive.io but does not write:
Budget tracking is essential for:
/budget status [customer]Show current kontingent status for a customer.
Output:
┌─────────────────────────────────────────────────────┐
│ BUDGET STATUS: [Customer Name] │
├─────────────────────────────────────────────────────┤
│ Delivery Unit Booked Used Remaining │
│ ───────────────────── ────── ──── ───────── │
│ Agent: Support Bot 40h 28h 12h │
│ Workshop: AI Training 16h 16h 0h ⚠️ │
│ Advisory: Strategy 8h 4h 4h │
├─────────────────────────────────────────────────────┤
│ TOTAL 64h 48h 16h │
│ Usage: ████████████░░░░ 75% │
└─────────────────────────────────────────────────────┘
Data Sources:
/budget report [customer]Generate a detailed budget report for customer communication.
Report Contents:
Output Format: Markdown for customer-ready sharing
/budget warnCheck all customers for low kontingent and generate warnings.
Thresholds:
Actions:
# Get all budgets for organization
curl -X GET "https://api.productive.io/api/v2/budgets" \
-H "Content-Type: application/vnd.api+json" \
-H "X-Auth-Token: ${PRODUCTIVE_API_TOKEN}" \
-H "X-Organization-Id: ${PRODUCTIVE_ORG_ID}"
Budget Response Fields:
{
"data": {
"id": "budget_id",
"attributes": {
"name": "Monthly Retainer",
"budget_type": "time_and_materials",
"total_hours": 40,
"spent_hours": 28,
"remaining_hours": 12
},
"relationships": {
"project": { "data": { "id": "project_id" } },
"company": { "data": { "id": "company_id" } }
}
}
}
# Get time entries for a project
curl -X GET "https://api.productive.io/api/v2/time_entries?filter[project_id]=PROJECT_ID" \
-H "Content-Type: application/vnd.api+json" \
-H "X-Auth-Token: ${PRODUCTIVE_API_TOKEN}" \
-H "X-Organization-Id: ${PRODUCTIVE_ORG_ID}"
Time Entry Response Fields:
{
"data": {
"id": "time_entry_id",
"attributes": {
"date": "2026-01-15",
"time": 120,
"note": "Agent development session"
},
"relationships": {
"person": { "data": { "id": "person_id" } },
"service": { "data": { "id": "service_id" } },
"task": { "data": { "id": "task_id" } }
}
}
}
# Budget Report: [Customer Name]
**Report Period:** [Start Date] - [End Date]
**Generated:** [Current Date]
## Executive Summary
[Customer Name] hat aktuell **[X]h von [Y]h** des gebuchten Kontingents verbraucht.
Das entspricht einer Auslastung von **[Z]%**.
## Kontingent-Übersicht
| Delivery Unit | Typ | Gebucht | Verbraucht | Verbleibend | Status |
|--------------|-----|---------|------------|-------------|--------|
| [Name] | [Type] | [X]h | [Y]h | [Z]h | 🟢/🟡/🔴 |
## Aktivitäten im Berichtszeitraum
### [Delivery Unit 1]
| Datum | Aktivität | Dauer |
|-------|-----------|-------|
| [Date] | [Description] | [Hours] |
**Gesamt:** [X]h
### [Delivery Unit 2]
...
## Burn-Rate Analyse
- **Durchschnittlicher Verbrauch:** [X]h pro Woche
- **Geschätzte Restlaufzeit:** [Y] Wochen
- **Empfohlene Handlung:** [Recommendation]
## Empfehlungen
1. [Recommendation based on usage patterns]
2. [Recommendation for next period]
3. [Recommendation for kontingent adjustment]
---
*Report generiert via /budget skill*
*Datenquelle: Productive.io*
Session Start During Work Reporting
───────────── ─────────── ─────────
/prime Log time in /budget status
↓ Productive.io /budget report
Check kontingent ↓ ↓
status Time accumulates Customer update
Consider adding to /prime:
1. Check customer kontingent status
2. Warn if < 20% remaining
3. Block work if 0% remaining (optional)
# Productive.io API Access
PRODUCTIVE_API_TOKEN=your-api-token
PRODUCTIVE_ORG_ID=your-organization-id
Store customer → Productive.io mapping in .productive-config: