addedOutput schema / properties / capacity
Added value: +{
+ "description": "F5: the next 5 working days from this day, how booked each is and how many 2 hour visits still fit.",
+ "properties": {
+ "days": {
+ "items": {
+ "properties": {
+ "booked_minutes": {
+ "type": "integer"
+ },
+ "date": {
+ "type": "string"
+ },
+ "fits": {
+ "type": "integer"
+ },
+ "free_minutes": {
+ "type": "integer"
+ },
+ "open_minutes": {
+ "type": "integer"
+ },
+ "percent_booked": {
+ "type": "integer"
+ },
+ "weekday": {
+ "type": "string"
+ },
+ "workers": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "date",
+ "weekday",
+ "open_minutes",
+ "booked_minutes",
+ "free_minutes",
+ "percent_booked",
+ "fits",
+ "workers"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "hours_source": {
+ "type": "string"
+ },
+ "next_actions": {
+ "description": "Useful next steps to offer, in plain words. op names the op to call, when there is one.",
+ "items": {
+ "properties": {
+ "op": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "say": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "say",
+ "op"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "time_zone": {
+ "type": "string"
+ },
+ "visit_minutes": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "time_zone",
+ "hours_source",
+ "visit_minutes",
+ "days",
+ "next_actions"
+ ],
+ "type": "object"
+}
addedOutput schema / properties / open_tasks
Added value: +{
+ "description": "H1: open tasks overdue or due by the end of the day, overdue first, then by job.",
+ "properties": {
+ "count": {
+ "type": "integer"
+ },
+ "items": {
+ "items": {
+ "properties": {
+ "assignee_id": {
+ "format": "uuid",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "due_at": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "job_id": {
+ "format": "uuid",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "job_summary": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "overdue": {
+ "type": "boolean"
+ },
+ "task_id": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "task_id",
+ "title",
+ "job_id",
+ "job_summary",
+ "assignee_id",
+ "due_at",
+ "overdue"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "count",
+ "items"
+ ],
+ "type": "object"
+}
addedOutput schema / properties / quote_queue
Added value: +{
+ "description": "J6: visits done a day or more ago (last 14 days) on open jobs with no quote sent yet.",
+ "properties": {
+ "count": {
+ "type": "integer"
+ },
+ "items": {
+ "items": {
+ "properties": {
+ "customer_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "done_at": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "job_id": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "job_summary": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "visit_id": {
+ "format": "uuid",
+ "type": "string"
+ }
+ },
+ "required": [
+ "visit_id",
+ "job_id",
+ "job_summary",
+ "customer_name",
+ "done_at"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "count",
+ "items"
+ ],
+ "type": "object"
+}
changedOutput schema / required
Previous value: -[
- "date",
- "time_zone",
- "currency",
- "visits_today",
- "unassigned_visits",
- "new_requests",
- "quotes_waiting",
- "change_orders_waiting",
- "invoices_overdue",
- "draft_invoices",
- "jobs_to_invoice",
- "time_to_approve",
- "approvals_pending"
-]New value: +[
+ "date",
+ "time_zone",
+ "currency",
+ "visits_today",
+ "unassigned_visits",
+ "new_requests",
+ "quotes_waiting",
+ "change_orders_waiting",
+ "invoices_overdue",
+ "draft_invoices",
+ "jobs_to_invoice",
+ "time_to_approve",
+ "approvals_pending",
+ "open_tasks",
+ "capacity",
+ "quote_queue"
+]