| name | repairshopr-new-ticket-form |
| description | Manage ticket forms (intake forms) for repair ticket creation |
| license | MIT |
| compatibility | opencode |
| metadata | {"audience":"administrators, support managers","api":"GET /new_ticket_forms, GET /new_ticket_forms/{id}, POST /new_ticket_forms/{id}/process_form"} |
What I do
I manage Ticket Forms (also called intake forms) in RepairShopr. These forms define the fields and layout for creating new tickets, whether via customer portal, kiosk, or staff. They control which fields are required, shown, or hidden for different ticket submission contexts.
When to use me
Use this when:
- You need to display a ticket submission form to a customer
- You want to understand what fields a form requires before submission
- Processing a form submission from a kiosk or web portal
- Managing multiple forms for different service types or locations
How to use
Required API base URL:
VITE_REPAIRSHOPR_SUBDOMAIN
VITE_REPAIRSHOPR_API_KEY
Permission: "Ticket Workflows - Manage" for listing forms. "Tickets - Create" for processing a form.
List Forms (GET /new_ticket_forms)
Returns all ticket forms with their configuration.
Get Single Form (GET /new_ticket_forms/{id})
id (integer) - Form ID
Returns the form structure including configured fields.
Process Form (POST /new_ticket_forms/{id}/process_form)
id (integer) - Form ID
Body typically includes:
customer_details (object) - Customer information fields (firstname, lastname, email, phone, etc.)
ticket_details (object) - Ticket fields (subject, description, problem_type, user_id, priority, etc.)
appointments (object) - Optional appointment details if form includes scheduling
The exact required fields depend on the form's configuration (data field structure).
Example call:
const form = await skill({ name: "repairshopr-new-ticket-form" }, {}, { id: 1, method: 'GET' })
const result = await skill({ name: "repairshopr-new-ticket-form" }, {
customer_details: {
firstname: "Jane",
lastname: "Doe",
email: "jane@example.com",
phone: "555-1234"
},
ticket_details: {
subject: "MacBook Pro not charging",
description: "Battery doesn't hold charge, needs replacement",
problem_type: "Hardware"
}
}, { id: 1, method: 'POST' })
Response includes:
- List/Get:
new_ticket_forms array or single new_ticket_form object with id, name, data structure
- Process:
ticket object (created ticket), invoice (if applicable), redirect path, message
Important
- Forms define which fields are
require, show, or hide in the data structure
- Processing a form automatically creates the ticket and may redirect to a specific page
- The form
data includes nested customer_details and ticket_details sections with fields configurations
- Some forms may include
worksheets and related_assets sections
- If appointments are included and required, they must be provided with
summary and start_at/end_at
Related skills
repairshopr-ticket-create - Direct ticket creation when not using a form
repairshopr-appointment - For appointment scheduling after ticket creation
repairshopr-customer-create - Form may auto-create customers or link existing