← Files OfferCopilotARCHIVED FILE

plugin.json

5.66 KB · Nov 10, 2026 · 07:30 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "offercopilot",
  "version": "1.0.0",
  "description": "Check deals, chase signatures, message clients and start offers in OfferCopilot.",
  "author": {
    "name": "AI Offers Inc.",
    "email": "support@offercopilot.ca",
    "url": "https://offercopilot.ca"
  },
  "homepage": "https://offercopilot.ca/api/",
  "keywords": [
    "real estate",
    "offers",
    "e-signature",
    "crm"
  ],
  "extensions": {
    "com.openai": {
      "onboardingSkill": "./skills/setup/SKILL.md",
      "interface": {
        "displayName": "OfferCopilot",
        "shortDescription": "Deals and offers, from chat",
        "longDescription": "OfferCopilot writes real estate offers for Canadian agents and sends them for e-signature. Connect your OfferCopilot account to see where every deal stands, who still has to sign and what each client still owes. You can also add clients, start an offer with its terms filled in, re-send signing invites and email clients OfferCopilot's stock messages. Nothing is emailed until you approve the recipients, and you choose which permissions the connection gets.",
        "developerName": "AI Offers Inc.",
        "category": "Business & Operations",
        "capabilities": [
          "Read deal status, signers and what clients owe",
          "Add clients",
          "Start an offer with its terms filled in",
          "Re-send signing invites and email clients after you approve the recipients"
        ],
        "websiteURL": "https://offercopilot.ca",
        "supportURL": "https://offercopilot.ca/support.html",
        "privacyPolicyURL": "https://app.offercopilot.ai/PrivacyPolicy/",
        "termsOfServiceURL": "https://app.offercopilot.ai/TermsOfService/",
        "defaultPrompt": [
          "What needs my attention on my deals today?",
          "Which offers are still waiting on signatures?",
          "Email my buyer the documents they still owe"
        ],
        "brandColor": "#2563eb",
        "composerIcon": "./assets/icon.png",
        "logo": "./assets/icon.png"
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Morning briefing across the agent's deals",
              "prompt": "What needs my attention on my deals today?",
              "tools_triggered": "list_offers, get_deal_status",
              "expected_behavior": "Lists the account's live deals, live ones first, each with its stage, and gives the next step for the deals it checks, asking before checking more than five. Every fact comes from the tools, and archived deals are left out."
            },
            {
              "description": "Find who still has to sign",
              "prompt": "Which of my offers are still waiting on signatures, and who hasn't signed?",
              "tools_triggered": "list_offers, get_deal_status",
              "expected_behavior": "Names each deal that is out for signature and, for each one, the people who have not signed yet."
            },
            {
              "description": "Start an offer without saving anything",
              "prompt": "Start a purchase offer on 51 Rogers Rd, Toronto at $899,000 with a $45,000 deposit.",
              "tools_triggered": "start_offer",
              "expected_behavior": "Returns an OfferCopilot link that opens a new offer with the address searched and the price and deposit filled in. Nothing is saved until the agent finishes the offer in OfferCopilot."
            },
            {
              "description": "Mark a submitted offer as received by the listing side",
              "prompt": "The listing agent confirmed they got my most recent submitted offer. Mark it as received.",
              "tools_triggered": "list_offers, acknowledge_offer_receipt",
              "expected_behavior": "Finds the most recent submitted offer, names its address, and marks it received. If it was already marked, says so and changes nothing."
            },
            {
              "description": "Add a client, then email them only after the agent approves the recipient",
              "prompt": "Add Jordan Review as a new buyer client, email support@offercopilot.ca, then email them the documents they still owe.",
              "tools_triggered": "create_client, message_client",
              "expected_behavior": "Adds Jordan Review as a buyer, or says a client already uses that email and links to them. Then shows the recipient name, support@offercopilot.ca and the subject, and asks the user to confirm; nothing is sent before that. After the user says yes, sends the email and confirms it went out."
            }
          ],
          "negative": [
            {
              "description": "Signing on someone else's behalf is not supported",
              "prompt": "Sign the offer for my buyer so we can submit it."
            },
            {
              "description": "Another agent's deals are outside the connected account",
              "prompt": "Show me the deals of the other agents at my brokerage."
            },
            {
              "description": "A general writing request doesn't need OfferCopilot",
              "prompt": "Write an Instagram caption for a new listing in Leslieville."
            }
          ]
        },
        "demo_recording_url": "https://youtu.be/TNT4RsQkCrY",
        "commerce": false,
        "commerce_description": "OfferCopilot does not sell products or take payments in ChatGPT."
      },
      "publication": {
        "release_notes": "First release: read deal status, add clients, start offers, and re-send signing invites or email clients after the agent approves each recipient."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: 0e87692556d2cd7f08a55f45b0e5f8aa4864f78d1937889909136efc08fdf3ce