$npx -y skills add sickn33/agentic-awesome-skills --skill activecampaign-automationAutomate ActiveCampaign tasks via Rube MCP (Composio): manage contacts, tags, list subscriptions, automation enrollment, and tasks. Always search tools first for current schemas.
| 1 | # ActiveCampaign Automation via Rube MCP |
| 2 | |
| 3 | Automate ActiveCampaign CRM and marketing automation operations through Composio's ActiveCampaign toolkit via Rube MCP. |
| 4 | |
| 5 | ## Prerequisites |
| 6 | |
| 7 | - Rube MCP must be connected (RUBE_SEARCH_TOOLS available) |
| 8 | - Active ActiveCampaign connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `active_campaign` |
| 9 | - Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas |
| 10 | |
| 11 | ## Setup |
| 12 | |
| 13 | **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. |
| 14 | |
| 15 | |
| 16 | 1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds |
| 17 | 2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `active_campaign` |
| 18 | 3. If connection is not ACTIVE, follow the returned auth link to complete ActiveCampaign authentication |
| 19 | 4. Confirm connection status shows ACTIVE before running any workflows |
| 20 | |
| 21 | ## Core Workflows |
| 22 | |
| 23 | ### 1. Create and Find Contacts |
| 24 | |
| 25 | **When to use**: User wants to create new contacts or look up existing ones |
| 26 | |
| 27 | **Tool sequence**: |
| 28 | 1. `ACTIVE_CAMPAIGN_FIND_CONTACT` - Search for an existing contact [Optional] |
| 29 | 2. `ACTIVE_CAMPAIGN_CREATE_CONTACT` - Create a new contact [Required] |
| 30 | |
| 31 | **Key parameters for find**: |
| 32 | - `email`: Search by email address |
| 33 | - `id`: Search by ActiveCampaign contact ID |
| 34 | - `phone`: Search by phone number |
| 35 | |
| 36 | **Key parameters for create**: |
| 37 | - `email`: Contact email address (required) |
| 38 | - `first_name`: Contact first name |
| 39 | - `last_name`: Contact last name |
| 40 | - `phone`: Contact phone number |
| 41 | - `organization_name`: Contact's organization |
| 42 | - `job_title`: Contact's job title |
| 43 | - `tags`: Comma-separated list of tags to apply |
| 44 | |
| 45 | **Pitfalls**: |
| 46 | - `email` is the only required field for contact creation |
| 47 | - Phone search uses a general search parameter internally; it may return partial matches |
| 48 | - When combining `email` and `phone` in FIND_CONTACT, results are filtered client-side |
| 49 | - Tags provided during creation are applied immediately |
| 50 | - Creating a contact with an existing email may update the existing contact |
| 51 | |
| 52 | ### 2. Manage Contact Tags |
| 53 | |
| 54 | **When to use**: User wants to add or remove tags from contacts |
| 55 | |
| 56 | **Tool sequence**: |
| 57 | 1. `ACTIVE_CAMPAIGN_FIND_CONTACT` - Find contact by email or ID [Prerequisite] |
| 58 | 2. `ACTIVE_CAMPAIGN_MANAGE_CONTACT_TAG` - Add or remove tags [Required] |
| 59 | |
| 60 | **Key parameters**: |
| 61 | - `action`: 'Add' or 'Remove' (required) |
| 62 | - `tags`: Tag names as comma-separated string or array of strings (required) |
| 63 | - `contact_id`: Contact ID (provide this or contact_email) |
| 64 | - `contact_email`: Contact email address (alternative to contact_id) |
| 65 | |
| 66 | **Pitfalls**: |
| 67 | - `action` values are capitalized: 'Add' or 'Remove' (not lowercase) |
| 68 | - Tags can be a comma-separated string ('tag1, tag2') or an array (['tag1', 'tag2']) |
| 69 | - Either `contact_id` or `contact_email` must be provided; `contact_id` takes precedence |
| 70 | - Adding a tag that does not exist creates it automatically |
| 71 | - Removing a non-existent tag is a no-op (does not error) |
| 72 | |
| 73 | ### 3. Manage List Subscriptions |
| 74 | |
| 75 | **When to use**: User wants to subscribe or unsubscribe contacts from lists |
| 76 | |
| 77 | **Tool sequence**: |
| 78 | 1. `ACTIVE_CAMPAIGN_FIND_CONTACT` - Find the contact [Prerequisite] |
| 79 | 2. `ACTIVE_CAMPAIGN_MANAGE_LIST_SUBSCRIPTION` - Subscribe or unsubscribe [Required] |
| 80 | |
| 81 | **Key parameters**: |
| 82 | - `action`: 'subscribe' or 'unsubscribe' (required) |
| 83 | - `list_id`: Numeric list ID string (required) |
| 84 | - `email`: Contact email address (provide this or contact_id) |
| 85 | - `contact_id`: Numeric contact ID string (alternative to email) |
| 86 | |
| 87 | **Pitfalls**: |
| 88 | - `action` values are lowercase: 'subscribe' or 'unsubscribe' |
| 89 | - `list_id` is a numeric string (e.g., '2'), not the list name |
| 90 | - List IDs can be retrieved via the GET /api/3/lists endpoint (not available as a Composio tool; use the ActiveCampaign UI) |
| 91 | - If both `email` and `contact_id` are provided, `contact_id` takes precedence |
| 92 | - Unsubscribing changes status to '2' (unsubscribed) but the relationship record persists |
| 93 | |
| 94 | ### 4. Add Contacts to Automations |
| 95 | |
| 96 | **When to use**: User wants to enroll a contact in an automation workflow |
| 97 | |
| 98 | **Tool sequence**: |
| 99 | 1. `ACTIVE_CAMPAIGN_FIND_CONTACT` - Verify contact exists [Prerequisite] |
| 100 | 2. `ACTIVE_CAMPAIGN_ADD_CONTACT_TO_AUTOMATION` - Enroll contact in automation [Required] |
| 101 | |
| 102 | **Key parameters**: |
| 103 | - `contact_email`: Email of the contact to enroll (required) |
| 104 | - `automation_id`: ID of the target automation (required) |
| 105 | |
| 106 | **Pitfalls**: |
| 107 | - The contact must already exist in ActiveCampaign |
| 108 | - Automations can only be created through the ActiveCampaign UI, not via API |
| 109 | - `automation_id` must reference an existing, active automation |
| 110 | - The tool performs a two-step process: lookup contact by email, then enroll |
| 111 | - Automation IDs can be found in the ActiveCampaign UI or via GET /api/3/automations |
| 112 | |
| 113 | ### 5. Create Contact Tasks |