Appearance
Reports, Alerts & Calendar Tools
generate_monthly_report
Portfolio P&L for the current (or specified) month. Owner/Manager — role-filtered results.
Reads from: 01. Time Entries, 02. Projects, 22. Projects Master, 13. Rate_History, 14. Liabilities
Parameters:
| Param | Description |
|---|---|
requesting_user_slack_id | |
month | YYYY-MM — defaults to current month |
Returns:
- Per-project: name, hours_logged, budget_hours, utilisation%, burn_rate_status, revenue (Owner), cost (Owner), margin (Owner)
total_revenue_overrun: revenue at risk from over-budget projects (Owner)open_items_total: unresolved items count- Summary: over_budget_count, under_utilised_count
Status emojis: 🚨 critical_overpace | ⚠️ warning_overpace | ✅ on_track | 📉 warning_underpace | 🔴 critical_underpace | ➖ no status
get_export_data
Raw export of all operational data for external analysis. Owner only.
Reads from: All operational sheets
Returns: time_entries, projects, users, tasks, clients — full data without role-filtering
This is also triggered automatically when a user asks to "export" or requests a CSV in conversation.
get_proactive_alerts
Current alerts across burn rate, stale items, and envelope gaps. Manager/Owner.
No parameters required (beyond requesting_user_slack_id).
Returns grouped by type:
| Type | Severity | Trigger |
|---|---|---|
burn_rate | critical / warning | Retainer pacing over/under budget |
stale_item | warning | Unresolved item open > N days |
allocation_gap | info | Project with no coverage in upcoming weeks |
Interpretation:
critical→ immediate action requiredwarning→ action needed sooninfo→ worth reviewing
Never auto-resolve alerts — always let the Manager decide the action.
get_unresolved_items
Open operational issues that need attention. Manager/Owner.
Reads from: 11. Unresolved_Items, 02. Projects, 03. Users
Parameters:
| Param | Description |
|---|---|
requesting_user_slack_id | |
status | "open" (default), "resolved", "dismissed" |
Item types:
sick_conflict— user sick while they have active project envelopesleave_conflict— leave logged while they have active project envelopespto_conflict— PTO approved while they have active project envelopestime_off_request— pending time off request awaiting approval
Managers see only items for their assigned projects. Owners see all.
resolve_item
Mark an unresolved item as resolved — use when the Manager has taken action (e.g. reassigned work, updated envelopes). Manager/Owner.
Updates: 11. Unresolved_Items cols G:I
Parameters: requesting_user_slack_id, item_id, resolution_summary
dismiss_item
Dismiss an unresolved item without action — use when the Manager acknowledges the issue but decides no action is needed. Manager/Owner.
Updates: 11. Unresolved_Items col G (status → "dismissed")
Parameters: requesting_user_slack_id, item_id
get_resolution_options
Ranked list of resolution options for an unresolved item, with consequences. Manager/Owner.
Parameters: requesting_user_slack_id, item_id
Returns: ranked options, each with:
- Action description
- Consequence
- Tools needed to execute
Options are ranked by disruption level (lowest disruption first). Always present consequences to the Manager before asking them to choose. Never auto-execute an option.
add_company_holiday
Add a holiday or company event to the calendar. Owner only.
Writes to: 12. Company_Calendar
Parameters: requesting_user_slack_id, date, name, type ("holiday" or "company_event")
Only "holiday" entries block PTO requests and are excluded from leave date ranges.
list_company_holidays
All calendar entries.
Reads from: 12. Company_Calendar
Parameters: requesting_user_slack_id
remove_company_holiday
Delete a calendar entry by ID. Owner only.
Deletes from: 12. Company_Calendar
Parameters: requesting_user_slack_id, holiday_id
To find the holiday ID, call
list_company_holidaysfirst.
get_work_week
Return the current work week configuration. Any role.
Returns work_week.days (array of day abbreviations: Mon–Sun) and work_week.hours_per_day. If the tenant has never called set_work_week, the defaults are returned: Mon–Fri, 8 hours/day.
set_work_week
Configure the tenant's working days. Owner only.
Parameters: requesting_user_slack_id, days (array of abbreviations: Mon–Sun), hours_per_day (number)
Default is Monday–Friday, 8 hours/day. Work week settings affect:
- Leave date range calculations (weekends skipped)
- PTO hour defaults
- Capacity forecast calculations