{
  "schemaVersion": "1.0",
  "item": {
    "slug": "activecampaign-automation",
    "name": "Activecampaign Automation",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/sohamganatra/activecampaign-automation",
    "canonicalUrl": "https://clawhub.ai/sohamganatra/activecampaign-automation",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/activecampaign-automation",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=activecampaign-automation",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/activecampaign-automation"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/activecampaign-automation",
    "agentPageUrl": "https://openagent3.xyz/skills/activecampaign-automation/agent",
    "manifestUrl": "https://openagent3.xyz/skills/activecampaign-automation/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/activecampaign-automation/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "ActiveCampaign Automation via Rube MCP",
        "body": "Automate ActiveCampaign CRM and marketing automation operations through Composio's ActiveCampaign toolkit via Rube MCP."
      },
      {
        "title": "Prerequisites",
        "body": "Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\nActive ActiveCampaign connection via RUBE_MANAGE_CONNECTIONS with toolkit active_campaign\nAlways call RUBE_SEARCH_TOOLS first to get current tool schemas"
      },
      {
        "title": "Setup",
        "body": "Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\nVerify Rube MCP is available by confirming RUBE_SEARCH_TOOLS responds\nCall RUBE_MANAGE_CONNECTIONS with toolkit active_campaign\nIf connection is not ACTIVE, follow the returned auth link to complete ActiveCampaign authentication\nConfirm connection status shows ACTIVE before running any workflows"
      },
      {
        "title": "1. Create and Find Contacts",
        "body": "When to use: User wants to create new contacts or look up existing ones\n\nTool sequence:\n\nACTIVE_CAMPAIGN_FIND_CONTACT - Search for an existing contact [Optional]\nACTIVE_CAMPAIGN_CREATE_CONTACT - Create a new contact [Required]\n\nKey parameters for find:\n\nemail: Search by email address\nid: Search by ActiveCampaign contact ID\nphone: Search by phone number\n\nKey parameters for create:\n\nemail: Contact email address (required)\nfirst_name: Contact first name\nlast_name: Contact last name\nphone: Contact phone number\norganization_name: Contact's organization\njob_title: Contact's job title\ntags: Comma-separated list of tags to apply\n\nPitfalls:\n\nemail is the only required field for contact creation\nPhone search uses a general search parameter internally; it may return partial matches\nWhen combining email and phone in FIND_CONTACT, results are filtered client-side\nTags provided during creation are applied immediately\nCreating a contact with an existing email may update the existing contact"
      },
      {
        "title": "2. Manage Contact Tags",
        "body": "When to use: User wants to add or remove tags from contacts\n\nTool sequence:\n\nACTIVE_CAMPAIGN_FIND_CONTACT - Find contact by email or ID [Prerequisite]\nACTIVE_CAMPAIGN_MANAGE_CONTACT_TAG - Add or remove tags [Required]\n\nKey parameters:\n\naction: 'Add' or 'Remove' (required)\ntags: Tag names as comma-separated string or array of strings (required)\ncontact_id: Contact ID (provide this or contact_email)\ncontact_email: Contact email address (alternative to contact_id)\n\nPitfalls:\n\naction values are capitalized: 'Add' or 'Remove' (not lowercase)\nTags can be a comma-separated string ('tag1, tag2') or an array (['tag1', 'tag2'])\nEither contact_id or contact_email must be provided; contact_id takes precedence\nAdding a tag that does not exist creates it automatically\nRemoving a non-existent tag is a no-op (does not error)"
      },
      {
        "title": "3. Manage List Subscriptions",
        "body": "When to use: User wants to subscribe or unsubscribe contacts from lists\n\nTool sequence:\n\nACTIVE_CAMPAIGN_FIND_CONTACT - Find the contact [Prerequisite]\nACTIVE_CAMPAIGN_MANAGE_LIST_SUBSCRIPTION - Subscribe or unsubscribe [Required]\n\nKey parameters:\n\naction: 'subscribe' or 'unsubscribe' (required)\nlist_id: Numeric list ID string (required)\nemail: Contact email address (provide this or contact_id)\ncontact_id: Numeric contact ID string (alternative to email)\n\nPitfalls:\n\naction values are lowercase: 'subscribe' or 'unsubscribe'\nlist_id is a numeric string (e.g., '2'), not the list name\nList IDs can be retrieved via the GET /api/3/lists endpoint (not available as a Composio tool; use the ActiveCampaign UI)\nIf both email and contact_id are provided, contact_id takes precedence\nUnsubscribing changes status to '2' (unsubscribed) but the relationship record persists"
      },
      {
        "title": "4. Add Contacts to Automations",
        "body": "When to use: User wants to enroll a contact in an automation workflow\n\nTool sequence:\n\nACTIVE_CAMPAIGN_FIND_CONTACT - Verify contact exists [Prerequisite]\nACTIVE_CAMPAIGN_ADD_CONTACT_TO_AUTOMATION - Enroll contact in automation [Required]\n\nKey parameters:\n\ncontact_email: Email of the contact to enroll (required)\nautomation_id: ID of the target automation (required)\n\nPitfalls:\n\nThe contact must already exist in ActiveCampaign\nAutomations can only be created through the ActiveCampaign UI, not via API\nautomation_id must reference an existing, active automation\nThe tool performs a two-step process: lookup contact by email, then enroll\nAutomation IDs can be found in the ActiveCampaign UI or via GET /api/3/automations"
      },
      {
        "title": "5. Create Contact Tasks",
        "body": "When to use: User wants to create follow-up tasks associated with contacts\n\nTool sequence:\n\nACTIVE_CAMPAIGN_FIND_CONTACT - Find the contact to associate the task with [Prerequisite]\nACTIVE_CAMPAIGN_CREATE_CONTACT_TASK - Create the task [Required]\n\nKey parameters:\n\nrelid: Contact ID to associate the task with (required)\nduedate: Due date in ISO 8601 format with timezone (required, e.g., '2025-01-15T14:30:00-05:00')\ndealTasktype: Task type ID based on available types (required)\ntitle: Task title\nnote: Task description/content\nassignee: User ID to assign the task to\nedate: End date in ISO 8601 format (must be later than duedate)\nstatus: 0 for incomplete, 1 for complete\n\nPitfalls:\n\nduedate must be a valid ISO 8601 datetime with timezone offset; do NOT use placeholder values\nedate must be later than duedate\ndealTasktype is a string ID referencing task types configured in ActiveCampaign\nrelid is the numeric contact ID, not the email address\nassignee is a user ID; resolve user names to IDs via the ActiveCampaign UI"
      },
      {
        "title": "Contact Lookup Flow",
        "body": "1. Call ACTIVE_CAMPAIGN_FIND_CONTACT with email\n2. If found, extract contact ID for subsequent operations\n3. If not found, create contact with ACTIVE_CAMPAIGN_CREATE_CONTACT\n4. Use contact ID for tags, subscriptions, or automations"
      },
      {
        "title": "Bulk Contact Tagging",
        "body": "1. For each contact, call ACTIVE_CAMPAIGN_MANAGE_CONTACT_TAG\n2. Use contact_email to avoid separate lookup calls\n3. Batch with reasonable delays to respect rate limits"
      },
      {
        "title": "ID Resolution",
        "body": "Contact email -> Contact ID:\n\n1. Call ACTIVE_CAMPAIGN_FIND_CONTACT with email\n2. Extract id from the response"
      },
      {
        "title": "Known Pitfalls",
        "body": "Action Capitalization:\n\nTag actions: 'Add', 'Remove' (capitalized)\nSubscription actions: 'subscribe', 'unsubscribe' (lowercase)\nMixing up capitalization causes errors\n\nID Types:\n\nContact IDs: numeric strings (e.g., '123')\nList IDs: numeric strings\nAutomation IDs: numeric strings\nAll IDs should be passed as strings, not integers\n\nAutomations:\n\nAutomations cannot be created via API; only enrollment is possible\nAutomation must be active to accept new contacts\nEnrolling a contact already in the automation may have no effect\n\nRate Limits:\n\nActiveCampaign API has rate limits per account\nImplement backoff on 429 responses\nBatch operations should be spaced appropriately\n\nResponse Parsing:\n\nResponse data may be nested under data or data.data\nParse defensively with fallback patterns\nContact search may return multiple results; match by email for accuracy"
      },
      {
        "title": "Quick Reference",
        "body": "TaskTool SlugKey ParamsFind contactACTIVE_CAMPAIGN_FIND_CONTACTemail, id, phoneCreate contactACTIVE_CAMPAIGN_CREATE_CONTACTemail, first_name, last_name, tagsAdd/remove tagsACTIVE_CAMPAIGN_MANAGE_CONTACT_TAGaction, tags, contact_emailSubscribe/unsubscribeACTIVE_CAMPAIGN_MANAGE_LIST_SUBSCRIPTIONaction, list_id, emailAdd to automationACTIVE_CAMPAIGN_ADD_CONTACT_TO_AUTOMATIONcontact_email, automation_idCreate taskACTIVE_CAMPAIGN_CREATE_CONTACT_TASKrelid, duedate, dealTasktype, title"
      }
    ],
    "body": "ActiveCampaign Automation via Rube MCP\n\nAutomate ActiveCampaign CRM and marketing automation operations through Composio's ActiveCampaign toolkit via Rube MCP.\n\nPrerequisites\nRube MCP must be connected (RUBE_SEARCH_TOOLS available)\nActive ActiveCampaign connection via RUBE_MANAGE_CONNECTIONS with toolkit active_campaign\nAlways call RUBE_SEARCH_TOOLS first to get current tool schemas\nSetup\n\nGet Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\nVerify Rube MCP is available by confirming RUBE_SEARCH_TOOLS responds\nCall RUBE_MANAGE_CONNECTIONS with toolkit active_campaign\nIf connection is not ACTIVE, follow the returned auth link to complete ActiveCampaign authentication\nConfirm connection status shows ACTIVE before running any workflows\nCore Workflows\n1. Create and Find Contacts\n\nWhen to use: User wants to create new contacts or look up existing ones\n\nTool sequence:\n\nACTIVE_CAMPAIGN_FIND_CONTACT - Search for an existing contact [Optional]\nACTIVE_CAMPAIGN_CREATE_CONTACT - Create a new contact [Required]\n\nKey parameters for find:\n\nemail: Search by email address\nid: Search by ActiveCampaign contact ID\nphone: Search by phone number\n\nKey parameters for create:\n\nemail: Contact email address (required)\nfirst_name: Contact first name\nlast_name: Contact last name\nphone: Contact phone number\norganization_name: Contact's organization\njob_title: Contact's job title\ntags: Comma-separated list of tags to apply\n\nPitfalls:\n\nemail is the only required field for contact creation\nPhone search uses a general search parameter internally; it may return partial matches\nWhen combining email and phone in FIND_CONTACT, results are filtered client-side\nTags provided during creation are applied immediately\nCreating a contact with an existing email may update the existing contact\n2. Manage Contact Tags\n\nWhen to use: User wants to add or remove tags from contacts\n\nTool sequence:\n\nACTIVE_CAMPAIGN_FIND_CONTACT - Find contact by email or ID [Prerequisite]\nACTIVE_CAMPAIGN_MANAGE_CONTACT_TAG - Add or remove tags [Required]\n\nKey parameters:\n\naction: 'Add' or 'Remove' (required)\ntags: Tag names as comma-separated string or array of strings (required)\ncontact_id: Contact ID (provide this or contact_email)\ncontact_email: Contact email address (alternative to contact_id)\n\nPitfalls:\n\naction values are capitalized: 'Add' or 'Remove' (not lowercase)\nTags can be a comma-separated string ('tag1, tag2') or an array (['tag1', 'tag2'])\nEither contact_id or contact_email must be provided; contact_id takes precedence\nAdding a tag that does not exist creates it automatically\nRemoving a non-existent tag is a no-op (does not error)\n3. Manage List Subscriptions\n\nWhen to use: User wants to subscribe or unsubscribe contacts from lists\n\nTool sequence:\n\nACTIVE_CAMPAIGN_FIND_CONTACT - Find the contact [Prerequisite]\nACTIVE_CAMPAIGN_MANAGE_LIST_SUBSCRIPTION - Subscribe or unsubscribe [Required]\n\nKey parameters:\n\naction: 'subscribe' or 'unsubscribe' (required)\nlist_id: Numeric list ID string (required)\nemail: Contact email address (provide this or contact_id)\ncontact_id: Numeric contact ID string (alternative to email)\n\nPitfalls:\n\naction values are lowercase: 'subscribe' or 'unsubscribe'\nlist_id is a numeric string (e.g., '2'), not the list name\nList IDs can be retrieved via the GET /api/3/lists endpoint (not available as a Composio tool; use the ActiveCampaign UI)\nIf both email and contact_id are provided, contact_id takes precedence\nUnsubscribing changes status to '2' (unsubscribed) but the relationship record persists\n4. Add Contacts to Automations\n\nWhen to use: User wants to enroll a contact in an automation workflow\n\nTool sequence:\n\nACTIVE_CAMPAIGN_FIND_CONTACT - Verify contact exists [Prerequisite]\nACTIVE_CAMPAIGN_ADD_CONTACT_TO_AUTOMATION - Enroll contact in automation [Required]\n\nKey parameters:\n\ncontact_email: Email of the contact to enroll (required)\nautomation_id: ID of the target automation (required)\n\nPitfalls:\n\nThe contact must already exist in ActiveCampaign\nAutomations can only be created through the ActiveCampaign UI, not via API\nautomation_id must reference an existing, active automation\nThe tool performs a two-step process: lookup contact by email, then enroll\nAutomation IDs can be found in the ActiveCampaign UI or via GET /api/3/automations\n5. Create Contact Tasks\n\nWhen to use: User wants to create follow-up tasks associated with contacts\n\nTool sequence:\n\nACTIVE_CAMPAIGN_FIND_CONTACT - Find the contact to associate the task with [Prerequisite]\nACTIVE_CAMPAIGN_CREATE_CONTACT_TASK - Create the task [Required]\n\nKey parameters:\n\nrelid: Contact ID to associate the task with (required)\nduedate: Due date in ISO 8601 format with timezone (required, e.g., '2025-01-15T14:30:00-05:00')\ndealTasktype: Task type ID based on available types (required)\ntitle: Task title\nnote: Task description/content\nassignee: User ID to assign the task to\nedate: End date in ISO 8601 format (must be later than duedate)\nstatus: 0 for incomplete, 1 for complete\n\nPitfalls:\n\nduedate must be a valid ISO 8601 datetime with timezone offset; do NOT use placeholder values\nedate must be later than duedate\ndealTasktype is a string ID referencing task types configured in ActiveCampaign\nrelid is the numeric contact ID, not the email address\nassignee is a user ID; resolve user names to IDs via the ActiveCampaign UI\nCommon Patterns\nContact Lookup Flow\n1. Call ACTIVE_CAMPAIGN_FIND_CONTACT with email\n2. If found, extract contact ID for subsequent operations\n3. If not found, create contact with ACTIVE_CAMPAIGN_CREATE_CONTACT\n4. Use contact ID for tags, subscriptions, or automations\n\nBulk Contact Tagging\n1. For each contact, call ACTIVE_CAMPAIGN_MANAGE_CONTACT_TAG\n2. Use contact_email to avoid separate lookup calls\n3. Batch with reasonable delays to respect rate limits\n\nID Resolution\n\nContact email -> Contact ID:\n\n1. Call ACTIVE_CAMPAIGN_FIND_CONTACT with email\n2. Extract id from the response\n\nKnown Pitfalls\n\nAction Capitalization:\n\nTag actions: 'Add', 'Remove' (capitalized)\nSubscription actions: 'subscribe', 'unsubscribe' (lowercase)\nMixing up capitalization causes errors\n\nID Types:\n\nContact IDs: numeric strings (e.g., '123')\nList IDs: numeric strings\nAutomation IDs: numeric strings\nAll IDs should be passed as strings, not integers\n\nAutomations:\n\nAutomations cannot be created via API; only enrollment is possible\nAutomation must be active to accept new contacts\nEnrolling a contact already in the automation may have no effect\n\nRate Limits:\n\nActiveCampaign API has rate limits per account\nImplement backoff on 429 responses\nBatch operations should be spaced appropriately\n\nResponse Parsing:\n\nResponse data may be nested under data or data.data\nParse defensively with fallback patterns\nContact search may return multiple results; match by email for accuracy\nQuick Reference\nTask\tTool Slug\tKey Params\nFind contact\tACTIVE_CAMPAIGN_FIND_CONTACT\temail, id, phone\nCreate contact\tACTIVE_CAMPAIGN_CREATE_CONTACT\temail, first_name, last_name, tags\nAdd/remove tags\tACTIVE_CAMPAIGN_MANAGE_CONTACT_TAG\taction, tags, contact_email\nSubscribe/unsubscribe\tACTIVE_CAMPAIGN_MANAGE_LIST_SUBSCRIPTION\taction, list_id, email\nAdd to automation\tACTIVE_CAMPAIGN_ADD_CONTACT_TO_AUTOMATION\tcontact_email, automation_id\nCreate task\tACTIVE_CAMPAIGN_CREATE_CONTACT_TASK\trelid, duedate, dealTasktype, title"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/sohamganatra/activecampaign-automation",
    "publisherUrl": "https://clawhub.ai/sohamganatra/activecampaign-automation",
    "owner": "sohamganatra",
    "version": "0.1.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/activecampaign-automation",
    "downloadUrl": "https://openagent3.xyz/downloads/activecampaign-automation",
    "agentUrl": "https://openagent3.xyz/skills/activecampaign-automation/agent",
    "manifestUrl": "https://openagent3.xyz/skills/activecampaign-automation/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/activecampaign-automation/agent.md"
  }
}