← Files ProBeauty AIARCHIVED FILE

plugin.json

7.9 KB · Nov 3, 2026 · 19:06 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "probeauty-ai",
  "version": "1.0.0",
  "description": "Your salon's front desk inside ChatGPT. Check your schedule, find openings, book clients and send payment requests.",
  "author": {
    "name": "ProBeauty AI",
    "email": "support@probeauty.ai",
    "url": "https://www.probeauty.ai"
  },
  "homepage": "https://www.probeauty.ai",
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "ProBeauty AI",
        "shortDescription": "Your salon's front desk",
        "longDescription": "Your salon's front desk inside ChatGPT. Check your schedule, find openings, book clients and send payment requests.\n\nProBeauty AI is booking and client software for independent beauty professionals and small salons: hair stylists, nail techs, lash artists, and estheticians. Run your book from ChatGPT: see your schedule, look up clients and their history, find real openings, book, reschedule or cancel appointments, and create payment requests.\n\nPayments happen outside ChatGPT. A payment request returns a link to a ProBeauty AI page, where the client pays the beauty professional by card through Stripe as a direct charge on the professional's Stripe Connect account. Payment requests are available where the professional can receive payments through Stripe Connect. Elsewhere, the tool explains that payment requests are not available in that country yet. Read and booking tools work worldwide where ChatGPT is available. Payment links are texted by default unless the professional has turned texting off or the client has opted out.",
        "developerName": "ProBeauty AI",
        "category": "Productivity",
        "defaultPrompt": [
          "Who's on my schedule tomorrow?",
          "Find me an opening for a 90-minute balayage next week.",
          "Send Maya a $45 payment request for today's gel fill."
        ],
        "websiteURL": "https://www.probeauty.ai",
        "supportURL": "https://www.probeauty.ai/support",
        "privacyPolicyURL": "https://www.probeauty.ai/privacy-policy",
        "termsOfServiceURL": "https://www.probeauty.ai/terms-of-service",
        "logo": "./assets/probeauty-ai-icon.png",
        "composerIcon": "./assets/probeauty-ai-icon.png"
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Use a dedicated sample workspace with a known timezone and appointments tomorrow; include a second workspace to test selection. Record the actual date at execution.",
              "prompt": "Who's on my schedule tomorrow?",
              "tools_triggered": "list_workspaces, get_schedule",
              "expected_behavior": "Resolve the workspace, asking when ambiguous. Resolve tomorrow in its timezone; call get_schedule for that date using the live schema. Summarize only returned appointments without unsolicited phone, email, birthday, or notes."
            },
            {
              "description": "Sample workspace has a 90-minute balayage service, provider, and known openings next week.",
              "prompt": "Find me an opening for a 90-minute balayage next week.",
              "tools_triggered": "list_workspaces, list_services, find_availability",
              "expected_behavior": "Resolve workspace and the returned balayage service and provider; clarify ambiguous date range. Request 90-minute availability next week in the workspace timezone. Offer only returned open times. No write."
            },
            {
              "description": "Dedicated test workspace contains a uniquely identified sample Maya, Thursday appointment, and known availability. Use only an authorized test recipient; arrange the notification preference. Repeat with booking changes off.",
              "prompt": "Move Maya's Thursday appointment to 4 pm and text her the new time.",
              "tools_triggered": "list_workspaces, search_clients, get_schedule, list_services, find_availability, reschedule_booking",
              "expected_behavior": "Resolve Maya and the existing Thursday appointment from returned data. Check 4 pm with find_availability before rescheduling; if unavailable, offer returned alternatives. Confirm client, service, provider and date/time before the write; report client_notified from the result instead of promising a text. Send local YYYY-MM-DDTHH:MM without offset. Report actual result. If changes are off, explain Allow booking changes on ChatGPT & Claude and do not retry."
            },
            {
              "description": "Sample Sofia has a known completed visit and service in the test workspace.",
              "prompt": "When did Sofia last come in, and what did she get?",
              "tools_triggered": "list_workspaces, search_clients, get_client",
              "expected_behavior": "Resolve Sofia and report the most recent completed visit and service supported by returned history. Explain if history is unavailable. Do not expose unsolicited private contact details, birthday, or notes. No write."
            },
            {
              "description": "Dedicated sample Maya has today's gel fill and known currency. Use authorized test payment/recipient setup. Run variations with texting off, client opt-out, and a payment-ineligible country; do not charge a production client.",
              "prompt": "Send Maya a $45 payment request for today's gel fill.",
              "tools_triggered": "list_workspaces, search_clients, get_schedule, list_services, create_payment_request",
              "expected_behavior": "Resolve the client and today's appointment. Confirm the client, appointment, amount 45 and that the link will be texted before the write. Pass amount \"45\" without a symbol and do not ask for a currency. Return the actual payment link; do not claim payment was received. Respect texting off or opt-out. If country unavailable, explain returned message without fabricated link or retry; if changes off, direct to Allow booking changes and do not retry."
            }
          ],
          "negative": [
            {
              "description": "After list_workspaces, explain that product inventory and ordering are unsupported; do not invoke booking or payment tools or claim an order.",
              "prompt": "Order ten bottles of shampoo from my supplier."
            },
            {
              "description": "After list_workspaces, explain that issuing refunds is unsupported; do not use create_payment_request or appointment writes as a substitute.",
              "prompt": "Refund Maya's last card payment."
            },
            {
              "description": "After list_workspaces, explain that deleting client accounts and erasing client history are unsupported; do not invoke cancel_booking or other writes as a substitute.",
              "prompt": "Delete Sofia's client account and erase all her history."
            }
          ]
        },
        "commerce": true,
        "commerce_description": "Clients buy beauty services from the beauty professional. No payment occurs inside ChatGPT. create_payment_request creates a request in ProBeauty AI and returns a link to a ProBeauty AI page. Clients pay by card through Stripe, using direct charges on the professional's own Stripe Connect account; funds go to the professional. ProBeauty AI is the platform and Stripe is the processor. Links are texted by default unless texting is disabled or the client opted out. Payment requests are unavailable where the professional cannot receive payments through Stripe Connect; the tool explains that limitation.",
        "demo_recording_url": "https://drive.google.com/file/d/1WMomltZw62bGoxT_mzfoaPIUNKdiFlW3/view?usp=sharing"
      },
      "publication": {
        "countries": [],
        "release_notes": "First release. Check your schedule, find open times, book, reschedule or cancel appointments, look up clients and their visit history, and send payment requests from ChatGPT."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: 5fcc2facac17b4615ccbdaa5c4383337c1d08c5347348998570147cd63edeefd