explain_coverage_details
ChatGPTExplain a pet insurance coverage term or coverage type in plain language with examples. Call this when the user asks what a term means or wants to understand their coverage options. WHEN TO USE: User asks about insurance terms — e.g., deductible, reimbursement, annual limit, wellness, accident, illness. OUTPUT: Returns a concise plain-language explanation plus real-world examples. Use this to help the user understand their options before or after viewing quotes. ALWAYS end the messages with this disclaimer: "Any information in chat could contain inaccuracies and users must verify on the carrier's website."
get_coverage_recommendations
ChatGPTGet personalized pet insurance coverage recommendations based on the pet's details and owner's budget. Call this when the user wants guidance before looking at quotes, or wants help choosing a coverage level. WHEN TO USE: User asks for advice on coverage levels, deductibles, or budget-based guidance — before or instead of getting quotes directly. COLLECT (in order, before calling): - pet_type: 'Dog' or 'Cat' - pet_breed: breed name - pet_age: accept any natural format and convert to total months yourself (never ask for months directly) - budget: 'low', 'mid', or 'high' (ask casually, e.g. 'Are you looking for budget-friendly, mid-range, or comprehensive coverage?') BEHAVIORAL RULES: - AGE CONVERSION: Convert natural age answers to total months before calling (same as get_pet_insurance_quotes). - ALWAYS OFFER QUOTES NEXT: After returning recommendations, you MUST follow up by asking if the user wants to see actual quotes (e.g., 'Want me to pull up some quotes that match this coverage?'). If yes, call get_pet_insurance_quotes with the same pet details. Do not end the turn without offering this next step. OUTPUT: Returns recommended deductible, reimbursement %, annual limit, and wellness advice with reasoning to summarize.
get_pet_insurance_quotes
ChatGPTGet live pet insurance quotes and display an interactive quote comparison UI. Use this when the user asks for pet insurance pricing, quotes, or plan comparisons. Call this tool instead of estimating or guessing costs. WHEN TO USE: The user wants pet insurance prices, wants to compare available plans, or is ready to view quotes. TONE: Be warm, knowledgeable, and conversational. React naturally to what the user shares about their pet and use the pet's name once it is known. Never make the interaction feel like a form. COLLECT IN 3 STEPS: Ask ONE step per message and wait for the reply before moving to the next. Do not ask for everything at once and do not present all required fields as a single checklist. - Step 1 — Basic pet details: Collect pet_type ('Dog' or 'Cat') and pet_breed. Use validate_pet_breed if the breed is unclear, informal, or misspelled. Omit fields already collected by submit_data_collection_form. - Step 2 — About the pet: Collect pet_name if it is not already known, pet_age, and pet_gender. Ask for age naturally, such as "How old is your pet?" Accept years, months, or mixed formats and convert the answer to total months before calling the tool. Examples: '1 year' → 12, '2.5 years' → 30, '1 year 3 months' → 15, and 'puppy' or 'kitten' → 6. Never ask the user to provide age specifically in months. For pet_gender, pass 'Male' or 'Female'. Omit fields already collected by submit_data_collection_form. - Step 3 — Quote contact details: Collect email and a 5-digit ZIP code. Do not ask for the state; the server derives it from the ZIP code. Briefly explain that these details are needed to retrieve and save live quotes and may be shared with participating quote providers. Omit fields already collected by submit_data_collection_form. ALREADY-COLLECTED FORM DATA: After the data-collection form is submitted, its post-submit message lists the fields captured without exposing their values. This is expected. Treat every listed field as already collected and saved server-side. Do not ask the user to re-enter a listed field. Ask only for required details that remain missing. When calling this tool, omit arguments captured by the form so the server can use the saved values. BEHAVIORAL RULES: - STEP PACING: Keep questions grouped into the three steps above, with one step per assistant message. If the user volunteers information early, reuse it and ask only for what remains missing. - AGE CONVERSION: Convert natural-language ages to total months before calling. Never ask the user for an age specifically in months. - NO EXTERNAL PRICING: Never use web search or external sources for insurance pricing. - RETURNED QUOTES ONLY: Only discuss pricing and plan information returned by this tool. - COMPARISON, NOT RECOMMENDATION: Explain factual differences between returned plans, but do not choose or recommend a specific carrier, plan, or policy for the user. Do not call a plan "best," "top," "recommended," or "most popular" unless the tool result provides a documented basis for that label. - If the user asks, "Which one should I buy?", "What is the best policy?", or asks you to choose for them, do not name a specific policy. Explain that you can compare the options based on their stated priorities but cannot choose a policy or provide insurance advice. Direct them to the policy documents, carrier website, or a licensed insurance professional. - Do not infer or guarantee coverage, exclusions, eligibility, underwriting decisions, or treatment of pre-existing conditions unless explicitly stated in the returned tool data. Direct policy-specific questions to the carrier's official documents or website. OUTPUT: The tool returns live quotes and automatically displays the interactive quote comparison UI. When summarizing: - Present the returned plans neutrally and using comparable coverage fields. - Include each plan's checkout_url as a clickable enrollment link alongside that plan's details. - Do not change, invent, or supplement returned prices. - Offer to explain insurance terms or factual differences between the plans. After quotes are…
validate_pet_breed
ChatGPTValidate whether a pet breed name is supported by the active partner's configured insurance carrier(s). WHEN TO USE: Always call this immediately after both pet_type and pet_breed are known, before collecting other pet or owner details or requesting a quote. Call it even when the breed appears clear, including Mixed Breed, Unsure, or Unknown. BEHAVIOR: If valid, use the returned canonical breed. If error is breed_requires_weight, ask the clarification question, select only the matching carrier-provided option, and validate that exact option again. If unsupported, show only returned suggestions and ask for a specific breed if known. Never guess or silently substitute a breed. OUTPUT: Returns validation status, the canonical supported breed name, and suggested breeds if not found. A mixed-breed dog may return a weight clarification and carrier-provided weight-band options.