Implementation
gradeNot graded
gradeNot graded
get_servicesAnswer
List all SkyRoofers services with pricing, warranty and what is included.
View tool JSON
{
"name": "get_services",
"kind": "answer",
"impl": "imperative",
"description": "List all SkyRoofers services with pricing, warranty and what is included.",
"inputSchema": {
"type": "object",
"properties": {}
}
}quick_estimateAction
Ballpark price for a roof. Uses Hill Country pitch/waste factors. Same math as the on-page estimator.
View tool JSON
{
"name": "quick_estimate",
"kind": "act",
"impl": "imperative",
"description": "Ballpark price for a roof. Uses Hill Country pitch/waste factors. Same math as the on-page estimator.",
"inputSchema": {
"type": "object",
"properties": {
"squareFeet": {
"type": "number"
},
"roofType": {
"type": "string",
"enum": [
"asphalt_shingle",
"metal",
"tile",
"flat",
"slate"
]
}
},
"required": [
"squareFeet",
"roofType"
]
}
}request_estimateAction
Create a detailed estimate lead. Stores it with an ID; team calls within 24h.
View tool JSON
{
"name": "request_estimate",
"kind": "act",
"impl": "imperative",
"description": "Create a detailed estimate lead. Stores it with an ID; team calls within 24h.",
"inputSchema": {
"type": "object",
"properties": {
"squareFeet": {
"type": "number"
},
"roofType": {
"type": "string",
"enum": [
"asphalt_shingle",
"metal",
"tile",
"flat",
"slate"
]
},
"urgency": {
"type": "string",
"enum": [
"immediate",
"this_week",
"next_month",
"planning"
]
},
"description": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"squareFeet",
"roofType"
]
}
}book_appointmentSensitive Action
Check live calendar and book an inspection/estimate. Persists and blocks double-book.
View tool JSON
{
"name": "book_appointment",
"kind": "transact",
"impl": "imperative",
"description": "Check live calendar and book an inspection/estimate. Persists and blocks double-book.",
"inputSchema": {
"type": "object",
"properties": {
"preferredDate": {
"type": "string",
"description": "YYYY-MM-DD"
},
"preferredTime": {
"type": "string"
},
"customerName": {
"type": "string"
},
"customerPhone": {
"type": "string"
},
"serviceType": {
"type": "string",
"enum": [
"inspection",
"estimate",
"repair_consultation"
]
}
},
"required": [
"preferredDate",
"customerName",
"customerPhone"
]
}
}send_contactSensitive Action
Send a message to SkyRoofers. Stores for team inbox.
View tool JSON
{
"name": "send_contact",
"kind": "transact",
"impl": "imperative",
"description": "Send a message to SkyRoofers. Stores for team inbox.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"message": {
"type": "string"
},
"inquiryType": {
"type": "string",
"enum": [
"roof_repair",
"roof_installation",
"roof_inspection",
"estimate",
"other"
]
}
},
"required": [
"name",
"email",
"message"
]
}
}analyze_roof_photoAction
AI triage from a roof photo. Returns condition, material, urgency and next step. Calls Vercel Function POST /api/analyze with OpenAI vision, falls back to deterministic if offline.
View tool JSON
{
"name": "analyze_roof_photo",
"kind": "act",
"impl": "imperative",
"description": "AI triage from a roof photo. Returns condition, material, urgency and next step. Calls Vercel Function POST /api/analyze with OpenAI vision, falls back to deterministic if offline.",
"inputSchema": {
"type": "object",
"properties": {
"imageBase64": {
"type": "string",
"description": "Base64 without data: prefix"
},
"mimeType": {
"type": "string",
"description": "image/jpeg or image/png"
}
},
"required": [
"imageBase64",
"mimeType"
]
}
}check_storm_eligibilityAnswer
Check recent hail/wind for a TX ZIP and whether insurance claim window is open. Hill Country storm data.
View tool JSON
{
"name": "check_storm_eligibility",
"kind": "answer",
"impl": "imperative",
"description": "Check recent hail/wind for a TX ZIP and whether insurance claim window is open. Hill Country storm data.",
"inputSchema": {
"type": "object",
"properties": {
"zip": {
"type": "string"
},
"date": {
"type": "string",
"description": "YYYY-MM-DD optional"
}
},
"required": [
"zip"
]
}
}