| name | repairshopr-worksheet-result |
| description | Manage worksheet template results for tickets in RepairShopr |
| license | MIT |
| compatibility | opencode |
| metadata | {"audience":"technicians, field technicians, administrators","api":"GET /tickets/{ticket_id}/worksheet_results, POST /tickets/{ticket_id}/worksheet_results, GET /tickets/{ticket_id}/worksheet_results/{id}, PUT /tickets/{ticket_id}/worksheet_results/{id}, DELETE /tickets/{ticket_id}/worksheet_results/{id}"} |
What I do
I manage worksheet results for tickets. Worksheets are structured forms (like checklists, diagnostic forms, or evaluation sheets) that technicians fill out during or after service. They define fields that can be answered (text, checkboxes, etc.). I can list existing worksheet results for a ticket, create new ones from templates, update answers, and delete them.
When to use me
Use this when:
- A technician needs to fill out a diagnostic worksheet for a repair
- Completing a pre- or post-repair checklist
- Capturing structured data from a standardized form
- Reviewing or editing previously entered worksheet answers
- Removing outdated worksheet entries
How to use
Required API base URL:
VITE_REPAIRSHOPR_SUBDOMAIN
VITE_REPAIRSHOPR_API_KEY
Permissions: "Tickets - View Details" or "Tickets - View 'Their Ticket' Details (assigned to them)" for read operations. Same for create/update/delete. Single-Customer Users restricted to own tickets.
List Worksheet Results (GET /tickets/{ticket_id}/worksheet_results)
ticket_id (integer, required)
Optional:
page (integer) - Page number (25 results per page)
Create Worksheet Result (POST /tickets/{ticket_id}/worksheet_results)
ticket_id (integer, required)
Body:
worksheet_template_id (integer, optional) - Which template to base this on
title (string, optional) - Title/name of the worksheet result
Get Single Result (GET /tickets/{ticket_id}/worksheet_results/{id})
ticket_id (integer)
id (integer) - Worksheet result ID
Update Worksheet Result (PUT /tickets/{ticket_id}/worksheet_results/{id})
ticket_id (integer)
id (integer)
Body:
worksheet_template_id (integer, optional)
user_id (integer, optional)
title (string, optional)
complete (boolean, optional) - Mark as complete
public (boolean, optional) - Visibility
required (boolean, optional)
answers (object, optional) - Object mapping field slugs to answer values
Delete Worksheet Result (DELETE /tickets/{ticket_id}/worksheet_results/{id})
ticket_id (integer)
id (integer)
Example call:
const results = await skill({ name: "repairshopr-worksheet-result" }, {}, { ticket_id: 456, method: 'GET' })
const worksheet = await skill({ name: "repairshopr-worksheet-result" }, {
worksheet_template_id: 1,
title: "Diagnostic Checklist"
}, { ticket_id: 456, method: 'POST' })
await skill({ name: "repairshopr-worksheet-result" }, {
answers: {
power_adapter_working: true,
battery_health: "75%",
notes: "Customer reports occasional shut downs under load"
},
complete: true
}, { ticket_id: 456, id: worksheet.worksheet_result.id, method: 'PUT' })
Response includes:
- Worksheet result object with
id, worksheet_template_id, name, public, complete, required, field_list (array of field definitions with name, slug, id, position), and when available answers or history in each field.
Important
- Worksheet templates define the structure of fields; results contain the answers
field_list describes each field: name, slug (key for answers), id, position
answers object keyed by field slug contains the user's responses
complete flag indicates the worksheet is finished
public controls visibility (customer may see if true)
- The same field definitions are returned with the result; you can see which fields are available
Related skills
repairshopr-ticket - To manage the parent ticket
repairshopr-new-ticket-form - For intake forms which may include worksheets