Skip to content

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:

ParamDescription
requesting_user_slack_id
monthYYYY-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:

TypeSeverityTrigger
burn_ratecritical / warningRetainer pacing over/under budget
stale_itemwarningUnresolved item open > N days
allocation_gapinfoProject with no coverage in upcoming weeks

Interpretation:

  • critical → immediate action required
  • warning → action needed soon
  • info → 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:

ParamDescription
requesting_user_slack_id
status"open" (default), "resolved", "dismissed"

Item types:

  • sick_conflict — user sick while they have active project envelopes
  • leave_conflict — leave logged while they have active project envelopes
  • pto_conflict — PTO approved while they have active project envelopes
  • time_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_holidays first.


get_work_week

Return the current work week configuration. Any role.

Returns work_week.days (array of day abbreviations: MonSun) 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: MonSun), 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

VERA by talktalkmake