← Files HamlaARCHIVED FILE

plugin.json

7.48 KB · Nov 3, 2026 · 19:19 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "app-6a8e0714db808191b28f05c1b49ee670",
  "version": "1.0.2",
  "description": "Connect your Hamla account to review campaign performance, explore contacts and audiences, and manage your marketing from ChatGPT. Create and edit campaigns, import contacts, generate images, draft lead-capture pages, and save plans, reports, and presentation decks. Request launch, schedule, or resume approval from the business owner in Hamla. You can also pause campaigns and set up scheduled marketing tasks. Requires a Hamla account; available channels and actions depend on your connected services and account permissions.",
  "author": {
    "name": "Hamla"
  },
  "extensions": {
    "com.openai": {
      "interface": {
        "brandColorDark": "#FFFFFF",
        "capabilities": [],
        "category": "Business & Operations",
        "defaultPrompt": [
          "Set up an Instagram auto-reply that DMs my free guide to anyone who comments GUIDE, and collects their email first",
          "Which channels brought in the most contacts last quarter, and which campaigns drove them?",
          "Find customers who haven't ordered in 90 days and draft a win-back email for them"
        ],
        "developerName": "Hamla",
        "displayName": "Hamla",
        "longDescription": "Connect your Hamla account to review campaign performance, explore contacts and audiences, and manage your marketing from ChatGPT. Create and edit campaigns, import contacts, generate images, draft lead-capture pages, and save plans, reports, and presentation decks. Request launch, schedule, or resume approval from the business owner in Hamla. You can also pause campaigns and set up scheduled marketing tasks. Requires a Hamla account; available channels and actions depend on your connected services and account permissions.",
        "privacyPolicyURL": "https://www.hamla.io/en/privacy",
        "shortDescription": "Campaigns, contacts, reports",
        "supportURL": "https://docs.hamla.io",
        "termsOfServiceURL": "https://www.hamla.io/en/terms",
        "websiteURL": "https://hamla.io",
        "logo": "./assets/hamla-icon.png",
        "composerIcon": "./assets/hamla-icon.png"
      },
      "review": {
        "commerce": false,
        "commerce_description": "The plugin manages an existing Hamla account. It does not sell subscriptions or credits, initiate purchases, offer upgrades or trials, or return checkout links. Existing account limits apply.",
        "test_cases": {
          "positive": [
            {
              "description": "Choose the right business, inspect marketing health, and explain performance with attribution.",
              "prompt": "I have more than one business in Hamla. For the active one I choose, show me whether anything urgent is wrong, summarize the last 30 days, and tell me which ad campaigns brought the highest-value customers.",
              "tools_triggered": "listBusinesses, checkAlerts, queryBusiness, queryAnalytics, queryAttribution",
              "expected_behavior": "Identifies or asks for the business, returns alert status, a 30-day business and analytics summary, and attribution rows with clear source/provenance language."
            },
            {
              "description": "Preview a pasted contact import, record confirmed consent, and build a reusable segment.",
              "prompt": "Preview this customer list import, tag everyone as launch-list, and after I confirm the preview I have permission to email them, record that consent and create a segment for customers tagged launch-list: name,email,phone\\nAmina Example,amina@example.com,+250788000001\\nOmar Example,omar@example.com,+250788000002",
              "tools_triggered": "importContacts, grantConsent, createSegment, queryContacts",
              "expected_behavior": "First previews the import and mapping without writing, then after confirmation imports contacts, records consent for the scoped list, creates the segment, and shows matching contacts."
            },
            {
              "description": "Use available-channel readiness and a saved design to create a draft campaign.",
              "prompt": "Create a draft cart recovery campaign using one of my popup templates, but do not launch it. Use a compatible follow-up channel only if Hamla says it is valid for this business.",
              "tools_triggered": "getCampaignChannelReadiness, listDesignTemplates, getDesignTemplate, createCampaign",
              "expected_behavior": "Uses readiness and template data to create a DRAFT campaign with compatible actions, explains any blockers, and states that launch still requires approval."
            },
            {
              "description": "Create a saved performance report and export a deck as a shareable PDF.",
              "prompt": "Make a concise monthly performance report, save it, turn it into a three-slide deck, and export the deck to PDF so I can share it.",
              "tools_triggered": "exportReport, saveReport, startDeck, addSlide, exportDeck",
              "expected_behavior": "Generates structured report data, saves a private report, builds the deck one slide at a time, and returns a Hamla-hosted PDF URL for the exported deck."
            },
            {
              "description": "Request owner approval to launch a draft campaign; ChatGPT confirmation alone cannot launch it.",
              "prompt": "Find my draft welcome campaign and launch it after I confirm the audience and message.",
              "tools_triggered": "queryCampaigns, requestCampaignLaunch",
              "expected_behavior": "Calls requestCampaignLaunch to request an owner approval gate, explains the audience, message, channels, and timing, and returns the tool-provided approval link. The campaign stays a draft until the authenticated owner approves in Hamla; confirmed=true in ChatGPT must not execute it. If the account cannot launch, explains availability without offering a plan, trial, upgrade, or checkout link. Reports errors without claiming delivery."
            }
          ],
          "negative": [
            {
              "description": "Do not trigger for unrelated personal calendar requests. The app should not be invoked because Hamla does not manage personal calendars.",
              "prompt": "What meetings do I have tomorrow, and can you move the 3 PM one?"
            },
            {
              "description": "Do not trigger for direct third-party account administration outside Hamla workflows. The app should not be invoked because the request asks for direct Shopify administration rather than Hamla-supported marketing reads or workflows.",
              "prompt": "Log in to my Shopify admin and change my checkout tax settings."
            },
            {
              "description": "Do not trigger for medical diagnosis or treatment advice. The app should not be invoked because medical diagnosis and treatment planning are outside Hamla's marketing operations scope.",
              "prompt": "Diagnose this patient's symptoms and write a treatment plan I can send them."
            }
          ]
        },
        "demo_recording_url": "https://youtu.be/TTRqcx9_bGQ"
      },
      "publication": {
        "release_notes": "Expose campaign lifecycle operations separately with operation-specific schemas and annotations; clarify that channel readiness and draft message steps are data rather than deferred callable tools. Preserve owner approval for launch, resume, and schedule."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: 54364e28aeab8bdc404387dca3934e393dd5c745269b893f8c610d11c8792221