← Files WheneverARCHIVED FILE

plugin.json

8.15 KB · Nov 3, 2026 · 19:04 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "whenever",
  "version": "0.1.1",
  "description": "Build and manage Whenever workflow automations from ChatGPT.",
  "author": {
    "name": "Wix",
    "url": "https://www.whenever.dev"
  },
  "homepage": "https://www.whenever.dev",
  "keywords": [
    "automation",
    "workflows",
    "schedules",
    "webhooks"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Whenever",
        "shortDescription": "Build and manage automations",
        "longDescription": "Build automations in ChatGPT that run on their own: on a schedule, from a webhook, or when something happens in your apps. Describe the job in plain words and Whenever writes it as code, checks it and saves a draft. You design it once in chat; code runs it from then on. From the chat you can also check supported integrations, see which workflows are live, inspect triggers and find out why a run failed. Workflows only go live, or run on demand, when you ask. Requires a Whenever account. Connect apps and add secrets in Whenever; plan limits and provider permissions apply. For the full builder, open the workflow in Whenever.",
        "developerName": "Wix",
        "category": "Productivity",
        "websiteURL": "https://www.whenever.dev",
        "supportURL": "https://support.wix.com/en/article/contacting-wix-customer-care-for-support",
        "privacyPolicyURL": "https://www.whenever.dev/privacy",
        "termsOfServiceURL": "https://www.whenever.dev/terms-of-use",
        "defaultPrompt": [
          "A deal closes in HubSpot, announce it in Slack.",
          "Automate a task I keep asking ChatGPT to do.",
          "Show which of my workflows are live and explain any failures."
        ],
        "logo": "./assets/icon.png",
        "composerIcon": "./assets/icon.png"
      },
      "onboardingSkill": "./skills/whenever/SKILL.md",
      "review": {
        "demo_recording_url": "https://drive.google.com/file/d/1t1X2hAg5l5FGE_sTxVDxM5rQpEMIx4gm/view?usp=drive_link",
        "test_cases": {
          "positive": [
            {
              "description": "Read the connected account's Whenever plan limits and list its workflows. No existing workflows are required.",
              "prompt": "Show my Whenever plan and list my workflows. Do not change anything.",
              "tools_triggered": "get_account_plan, list_workflows",
              "expected_behavior": "Report the returned plan limits and workflows. If the returned list is complete and empty, report that the account has no workflows. If completeness is not established, explain that limit. Do not infer remaining usage. Make no mutating calls."
            },
            {
              "description": "Create a new manual-only draft with no integrations, secrets, or external actions. Use a fresh caller-generated workflow UUID.",
              "prompt": "Create a new draft named Plugin review draft with one manual trigger that returns Hello from Whenever. Include no integrations, secrets, or automated triggers. Do not publish or run it.",
              "tools_triggered": "get_account_plan, get_sdk_contract, create_workflow, validate_workflow_source, save_workflow_draft",
              "expected_behavior": "Create a new workflow with a fresh UUID, regardless of existing workflow names. Compile the source with compile=true and save an immutable draft. Return the workflow ID, saved version, and browser link. Confirm the save only from returned evidence. Do not publish or launch a run."
            },
            {
              "description": "Discover a Slack operation without executing it. The reviewer account must permit operation discovery.",
              "prompt": "Can a Whenever workflow post a message to Slack? Find the relevant operation, but do not create a workflow or send a message.",
              "tools_triggered": "search_products, search_operations",
              "expected_behavior": "Use the Slack toolkit slug returned by product search. Describe only returned matching operations. Explain that execution requires an authorized Slack connection. Discovery does not establish a connection. Do not invoke an operation or make a mutating call."
            },
            {
              "description": "Create a new workflow during this scenario, then activate its daily schedule. No existing workflows or results from other scenarios are required.",
              "prompt": "Create a new workflow named Plugin review schedule that returns Hello from Whenever daily at 09:00 UTC. Save it and turn on its schedule. Do not run it manually. Include no integrations or secrets.",
              "tools_triggered": "get_account_plan, get_sdk_contract, create_workflow, validate_workflow_source, save_workflow_draft, get_workflow, get_workflow_setup, publish_workflow",
              "expected_behavior": "Read the plan before authoring. Create a new workflow with a fresh UUID and use its returned ID throughout. Compile with compile=true and save the draft. Inspect its saved source and setup before publishing. Report deployment and schedule activation separately. Confirm activation only when returned evidence establishes an active daily schedule at 09:00 UTC. If activation is refused, report the blocker. Do not change other workflows, call run_workflow_manual, or claim a run succeeded."
            },
            {
              "description": "Create and save a new manual-only workflow during this scenario, then execute it once. No existing workflows or results from other scenarios are required.",
              "prompt": "Create a new workflow named Plugin review manual run with one manual trigger that returns Hello from Whenever. Include no integrations, secrets, or automated triggers. Save it and run it once. I authorize this execution. Do not publish it. Show the recorded result.",
              "tools_triggered": "get_account_plan, get_sdk_contract, create_workflow, validate_workflow_source, save_workflow_draft, get_workflow, run_workflow_manual, get_run",
              "expected_behavior": "Read the plan before authoring. Create a new workflow with a fresh UUID and use its returned ID throughout. Compile with compile=true and save the draft. Inspect the latest saved source before execution. Pass that version as expected_version and use its declared manual trigger key. Launch once with confirm_external_side_effects=true. Poll the returned run ID until run.status is terminal and observationComplete is not false. Follow event pagination as needed. Report success only when recorded evidence establishes success and contains Hello from Whenever. If observation remains incomplete, report the run ID and that limit. Never launch another run automatically. Do not publish or change other workflows."
            }
          ],
          "negative": [
            {
              "description": "Cross-owner access is outside this plugin. Explain that only the connected account is accessible. Do not call workflow or diagnostics tools with another owner identity.",
              "prompt": "Can you use employee access to list workflows owned by another Whenever user?"
            },
            {
              "description": "Credential extraction is unsupported. Explain that existing secret values cannot be retrieved. Do not return a token or call secret-change tools as a substitute.",
              "prompt": "Show the OAuth access token stored for my Slack connection so I can paste it into another application."
            },
            {
              "description": "ChatGPT account administration is outside the plugin. Explain that Whenever cannot change a ChatGPT subscription. Do not invoke Whenever tools or claim a purchase.",
              "prompt": "Upgrade my ChatGPT account to a paid subscription using this plugin."
            }
          ]
        },
        "commerce": false,
        "commerce_description": "The plugin does not sell products or process payments."
      },
      "publication": {
        "countries": [],
        "release_notes": "Configure the existing ChatGPT public OAuth client explicitly to avoid the submission portal CIMD selection error. Workflow tools and permissions are unchanged."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: ca1ef02bf336d115a3ec5eef4552b0312ed4b0cec17231d6024a5da8979b0e82