ActiveCampaign Automation via Rube MCP
Automate ActiveCampaign CRM and marketing automation operations through Composio's ActiveCampaign toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/active_campaign
Prerequisites
-
Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
-
Active ActiveCampaign connection via RUBE_MANAGE_CONNECTIONS with toolkit active_campaign
-
Always call RUBE_SEARCH_TOOLS first to get current tool schemas
Setup
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.
-
Verify Rube MCP is available by confirming RUBE_SEARCH_TOOLS responds
-
Call RUBE_MANAGE_CONNECTIONS with toolkit active_campaign
-
If connection is not ACTIVE, follow the returned auth link to complete ActiveCampaign authentication
-
Confirm connection status shows ACTIVE before running any workflows
Core Workflows
- Create and Find Contacts
When to use: User wants to create new contacts or look up existing ones
Tool sequence:
-
ACTIVE_CAMPAIGN_FIND_CONTACT
-
Search for an existing contact [Optional]
-
ACTIVE_CAMPAIGN_CREATE_CONTACT
-
Create a new contact [Required]
Key parameters for find:
-
email : Search by email address
-
id : Search by ActiveCampaign contact ID
-
phone : Search by phone number
Key parameters for create:
-
email : Contact email address (required)
-
first_name : Contact first name
-
last_name : Contact last name
-
phone : Contact phone number
-
organization_name : Contact's organization
-
job_title : Contact's job title
-
tags : Comma-separated list of tags to apply
Pitfalls:
-
email is the only required field for contact creation
-
Phone search uses a general search parameter internally; it may return partial matches
-
When combining email and phone in FIND_CONTACT, results are filtered client-side
-
Tags provided during creation are applied immediately
-
Creating a contact with an existing email may update the existing contact
- Manage Contact Tags
When to use: User wants to add or remove tags from contacts
Tool sequence:
-
ACTIVE_CAMPAIGN_FIND_CONTACT
-
Find contact by email or ID [Prerequisite]
-
ACTIVE_CAMPAIGN_MANAGE_CONTACT_TAG
-
Add or remove tags [Required]
Key parameters:
-
action : 'Add' or 'Remove' (required)
-
tags : Tag names as comma-separated string or array of strings (required)
-
contact_id : Contact ID (provide this or contact_email)
-
contact_email : Contact email address (alternative to contact_id)
Pitfalls:
-
action values are capitalized: 'Add' or 'Remove' (not lowercase)
-
Tags can be a comma-separated string ('tag1, tag2') or an array (['tag1', 'tag2'])
-
Either contact_id or contact_email must be provided; contact_id takes precedence
-
Adding a tag that does not exist creates it automatically
-
Removing a non-existent tag is a no-op (does not error)
- Manage List Subscriptions
When to use: User wants to subscribe or unsubscribe contacts from lists
Tool sequence:
-
ACTIVE_CAMPAIGN_FIND_CONTACT
-
Find the contact [Prerequisite]
-
ACTIVE_CAMPAIGN_MANAGE_LIST_SUBSCRIPTION
-
Subscribe or unsubscribe [Required]
Key parameters:
-
action : 'subscribe' or 'unsubscribe' (required)
-
list_id : Numeric list ID string (required)
-
email : Contact email address (provide this or contact_id)
-
contact_id : Numeric contact ID string (alternative to email)
Pitfalls:
-
action values are lowercase: 'subscribe' or 'unsubscribe'
-
list_id is a numeric string (e.g., '2'), not the list name
-
List IDs can be retrieved via the GET /api/3/lists endpoint (not available as a Composio tool; use the ActiveCampaign UI)
-
If both email and contact_id are provided, contact_id takes precedence
-
Unsubscribing changes status to '2' (unsubscribed) but the relationship record persists
- Add Contacts to Automations
When to use: User wants to enroll a contact in an automation workflow
Tool sequence:
-
ACTIVE_CAMPAIGN_FIND_CONTACT
-
Verify contact exists [Prerequisite]
-
ACTIVE_CAMPAIGN_ADD_CONTACT_TO_AUTOMATION
-
Enroll contact in automation [Required]
Key parameters:
-
contact_email : Email of the contact to enroll (required)
-
automation_id : ID of the target automation (required)
Pitfalls:
-
The contact must already exist in ActiveCampaign
-
Automations can only be created through the ActiveCampaign UI, not via API
-
automation_id must reference an existing, active automation
-
The tool performs a two-step process: lookup contact by email, then enroll
-
Automation IDs can be found in the ActiveCampaign UI or via GET /api/3/automations
- Create Contact Tasks
When to use: User wants to create follow-up tasks associated with contacts
Tool sequence:
-
ACTIVE_CAMPAIGN_FIND_CONTACT
-
Find the contact to associate the task with [Prerequisite]
-
ACTIVE_CAMPAIGN_CREATE_CONTACT_TASK
-
Create the task [Required]
Key parameters:
-
relid : Contact ID to associate the task with (required)
-
duedate : Due date in ISO 8601 format with timezone (required, e.g., '2025-01-15T14:30:00-05:00')
-
dealTasktype : Task type ID based on available types (required)
-
title : Task title
-
note : Task description/content
-
assignee : User ID to assign the task to
-
edate : End date in ISO 8601 format (must be later than duedate)
-
status : 0 for incomplete, 1 for complete
Pitfalls:
-
duedate must be a valid ISO 8601 datetime with timezone offset; do NOT use placeholder values
-
edate must be later than duedate
-
dealTasktype is a string ID referencing task types configured in ActiveCampaign
-
relid is the numeric contact ID, not the email address
-
assignee is a user ID; resolve user names to IDs via the ActiveCampaign UI
Common Patterns
Contact Lookup Flow
- Call ACTIVE_CAMPAIGN_FIND_CONTACT with email
- If found, extract contact ID for subsequent operations
- If not found, create contact with ACTIVE_CAMPAIGN_CREATE_CONTACT
- Use contact ID for tags, subscriptions, or automations
Bulk Contact Tagging
- For each contact, call ACTIVE_CAMPAIGN_MANAGE_CONTACT_TAG
- Use contact_email to avoid separate lookup calls
- Batch with reasonable delays to respect rate limits
ID Resolution
Contact email -> Contact ID:
- Call ACTIVE_CAMPAIGN_FIND_CONTACT with email
- Extract id from the response
Known Pitfalls
Action Capitalization:
-
Tag actions: 'Add', 'Remove' (capitalized)
-
Subscription actions: 'subscribe', 'unsubscribe' (lowercase)
-
Mixing up capitalization causes errors
ID Types:
-
Contact IDs: numeric strings (e.g., '123')
-
List IDs: numeric strings
-
Automation IDs: numeric strings
-
All IDs should be passed as strings, not integers
Automations:
-
Automations cannot be created via API; only enrollment is possible
-
Automation must be active to accept new contacts
-
Enrolling a contact already in the automation may have no effect
Rate Limits:
-
ActiveCampaign API has rate limits per account
-
Implement backoff on 429 responses
-
Batch operations should be spaced appropriately
Response Parsing:
-
Response data may be nested under data or data.data
-
Parse defensively with fallback patterns
-
Contact search may return multiple results; match by email for accuracy
Quick Reference
Task Tool Slug Key Params
Find contact ACTIVE_CAMPAIGN_FIND_CONTACT email, id, phone
Create contact ACTIVE_CAMPAIGN_CREATE_CONTACT email, first_name, last_name, tags
Add/remove tags ACTIVE_CAMPAIGN_MANAGE_CONTACT_TAG action, tags, contact_email
Subscribe/unsubscribe ACTIVE_CAMPAIGN_MANAGE_LIST_SUBSCRIPTION action, list_id, email
Add to automation ACTIVE_CAMPAIGN_ADD_CONTACT_TO_AUTOMATION contact_email, automation_id
Create task ACTIVE_CAMPAIGN_CREATE_CONTACT_TASK relid, duedate, dealTasktype, title
Powered by Composio