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
1. 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
2. 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)
3. 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
4. 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
5. 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
1. Call ACTIVE_CAMPAIGN_FIND_CONTACT with email
2. If found, extract contact ID for subsequent operations
3. If not found, create contact with ACTIVE_CAMPAIGN_CREATE_CONTACT
4. Use contact ID for tags, subscriptions, or automations
Bulk Contact Tagging
1. For each contact, call ACTIVE_CAMPAIGN_MANAGE_CONTACT_TAG
2. Use contact_email to avoid separate lookup calls
3. Batch with reasonable delays to respect rate limits
ID Resolution
Contact email -> Contact ID:
1. Call ACTIVE_CAMPAIGN_FIND_CONTACT with email
2. 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
1---2name: activecampaign-automation3description: Automate ActiveCampaign tasks via Rube MCP (Composio): manage contacts, tags, list subscriptions, automation enrollment, and tasks. Always search tools first for current schemas.4---5
6# ActiveCampaign Automation via Rube MCP
7
8Automate ActiveCampaign CRM and marketing automation operations through Composio's ActiveCampaign toolkit via Rube MCP.
9
10**Toolkit docs**: [composio.dev/toolkits/active_campaign](https://composio.dev/toolkits/active_campaign)
11
12## Prerequisites
13
14- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
15- Active ActiveCampaign connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `active_campaign`
16- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas
17
18## Setup
19
20**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.
21
22
231. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
242. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `active_campaign`
253. If connection is not ACTIVE, follow the returned auth link to complete ActiveCampaign authentication
264. Confirm connection status shows ACTIVE before running any workflows
27
28## Core Workflows
29
30### 1. Create and Find Contacts
31
32**When to use**: User wants to create new contacts or look up existing ones
33
34**Tool sequence**:
351. `ACTIVE_CAMPAIGN_FIND_CONTACT` - Search for an existing contact [Optional]
362. `ACTIVE_CAMPAIGN_CREATE_CONTACT` - Create a new contact [Required]
37
38**Key parameters for find**:
39- `email`: Search by email address
40- `id`: Search by ActiveCampaign contact ID
41- `phone`: Search by phone number
42
43**Key parameters for create**:
44- `email`: Contact email address (required)
45- `first_name`: Contact first name
46- `last_name`: Contact last name
47- `phone`: Contact phone number
48- `organization_name`: Contact's organization
49- `job_title`: Contact's job title
50- `tags`: Comma-separated list of tags to apply
51
52**Pitfalls**:
53- `email` is the only required field for contact creation
54- Phone search uses a general search parameter internally; it may return partial matches
55- When combining `email` and `phone` in FIND_CONTACT, results are filtered client-side
56- Tags provided during creation are applied immediately
57- Creating a contact with an existing email may update the existing contact
58
59### 2. Manage Contact Tags
60
61**When to use**: User wants to add or remove tags from contacts
62
63**Tool sequence**:
641. `ACTIVE_CAMPAIGN_FIND_CONTACT` - Find contact by email or ID [Prerequisite]
652. `ACTIVE_CAMPAIGN_MANAGE_CONTACT_TAG` - Add or remove tags [Required]
66
67**Key parameters**:
68- `action`: 'Add' or 'Remove' (required)
69- `tags`: Tag names as comma-separated string or array of strings (required)
70- `contact_id`: Contact ID (provide this or contact_email)
71- `contact_email`: Contact email address (alternative to contact_id)
72
73**Pitfalls**:
74- `action` values are capitalized: 'Add' or 'Remove' (not lowercase)
75- Tags can be a comma-separated string ('tag1, tag2') or an array (['tag1', 'tag2'])
76- Either `contact_id` or `contact_email` must be provided; `contact_id` takes precedence
77- Adding a tag that does not exist creates it automatically
78- Removing a non-existent tag is a no-op (does not error)
79
80### 3. Manage List Subscriptions
81
82**When to use**: User wants to subscribe or unsubscribe contacts from lists
83
84**Tool sequence**:
851. `ACTIVE_CAMPAIGN_FIND_CONTACT` - Find the contact [Prerequisite]
862. `ACTIVE_CAMPAIGN_MANAGE_LIST_SUBSCRIPTION` - Subscribe or unsubscribe [Required]
87
88**Key parameters**:
89- `action`: 'subscribe' or 'unsubscribe' (required)
90- `list_id`: Numeric list ID string (required)
91- `email`: Contact email address (provide this or contact_id)
92- `contact_id`: Numeric contact ID string (alternative to email)
93
94**Pitfalls**:
95- `action` values are lowercase: 'subscribe' or 'unsubscribe'
96- `list_id` is a numeric string (e.g., '2'), not the list name
97- List IDs can be retrieved via the GET /api/3/lists endpoint (not available as a Composio tool; use the ActiveCampaign UI)
98- If both `email` and `contact_id` are provided, `contact_id` takes precedence
99- Unsubscribing changes status to '2' (unsubscribed) but the relationship record persists
100
101### 4. Add Contacts to Automations
102
103**When to use**: User wants to enroll a contact in an automation workflow
104
105**Tool sequence**:
1061. `ACTIVE_CAMPAIGN_FIND_CONTACT` - Verify contact exists [Prerequisite]
1072. `ACTIVE_CAMPAIGN_ADD_CONTACT_TO_AUTOMATION` - Enroll contact in automation [Required]
108
109**Key parameters**:
110- `contact_email`: Email of the contact to enroll (required)
111- `automation_id`: ID of the target automation (required)
112
113**Pitfalls**:
114- The contact must already exist in ActiveCampaign
115- Automations can only be created through the ActiveCampaign UI, not via API
116- `automation_id` must reference an existing, active automation
117- The tool performs a two-step process: lookup contact by email, then enroll
118- Automation IDs can be found in the ActiveCampaign UI or via GET /api/3/automations
119
120### 5. Create Contact Tasks
121
122**When to use**: User wants to create follow-up tasks associated with contacts
123
124**Tool sequence**:
1251. `ACTIVE_CAMPAIGN_FIND_CONTACT` - Find the contact to associate the task with [Prerequisite]
1262. `ACTIVE_CAMPAIGN_CREATE_CONTACT_TASK` - Create the task [Required]
127
128**Key parameters**:
129- `relid`: Contact ID to associate the task with (required)
130- `duedate`: Due date in ISO 8601 format with timezone (required, e.g., '2025-01-15T14:30:00-05:00')
131- `dealTasktype`: Task type ID based on available types (required)
132- `title`: Task title
133- `note`: Task description/content
134- `assignee`: User ID to assign the task to
135- `edate`: End date in ISO 8601 format (must be later than duedate)
136- `status`: 0 for incomplete, 1 for complete
137
138**Pitfalls**:
139- `duedate` must be a valid ISO 8601 datetime with timezone offset; do NOT use placeholder values
140- `edate` must be later than `duedate`
141- `dealTasktype` is a string ID referencing task types configured in ActiveCampaign
142- `relid` is the numeric contact ID, not the email address
143- `assignee` is a user ID; resolve user names to IDs via the ActiveCampaign UI
144
145## Common Patterns
146
147### Contact Lookup Flow
148
149```
1501. Call ACTIVE_CAMPAIGN_FIND_CONTACT with email
1512. If found, extract contact ID for subsequent operations
1523. If not found, create contact with ACTIVE_CAMPAIGN_CREATE_CONTACT
1534. Use contact ID for tags, subscriptions, or automations
154```
155
156### Bulk Contact Tagging
157
158```
1591. For each contact, call ACTIVE_CAMPAIGN_MANAGE_CONTACT_TAG
1602. Use contact_email to avoid separate lookup calls
1613. Batch with reasonable delays to respect rate limits
162```
163
164### ID Resolution
165
166**Contact email -> Contact ID**:
167```
1681. Call ACTIVE_CAMPAIGN_FIND_CONTACT with email
1692. Extract id from the response
170```
171
172## Known Pitfalls
173
174**Action Capitalization**:
175- Tag actions: 'Add', 'Remove' (capitalized)
176- Subscription actions: 'subscribe', 'unsubscribe' (lowercase)
177- Mixing up capitalization causes errors
178
179**ID Types**:
180- Contact IDs: numeric strings (e.g., '123')
181- List IDs: numeric strings
182- Automation IDs: numeric strings
183- All IDs should be passed as strings, not integers
184
185**Automations**:
186- Automations cannot be created via API; only enrollment is possible
187- Automation must be active to accept new contacts
188- Enrolling a contact already in the automation may have no effect
189
190**Rate Limits**:
191- ActiveCampaign API has rate limits per account
192- Implement backoff on 429 responses
193- Batch operations should be spaced appropriately
194
195**Response Parsing**:
196- Response data may be nested under `data` or `data.data`
197- Parse defensively with fallback patterns
198- Contact search may return multiple results; match by email for accuracy
199
200## Quick Reference
201
202| Task | Tool Slug | Key Params |
203|------|-----------|------------|
204| Find contact | ACTIVE_CAMPAIGN_FIND_CONTACT | email, id, phone |
205| Create contact | ACTIVE_CAMPAIGN_CREATE_CONTACT | email, first_name, last_name, tags |
206| Add/remove tags | ACTIVE_CAMPAIGN_MANAGE_CONTACT_TAG | action, tags, contact_email |
207| Subscribe/unsubscribe | ACTIVE_CAMPAIGN_MANAGE_LIST_SUBSCRIPTION | action, list_id, email |
208| Add to automation | ACTIVE_CAMPAIGN_ADD_CONTACT_TO_AUTOMATION | contact_email, automation_id |
209| Create task | ACTIVE_CAMPAIGN_CREATE_CONTACT_TASK | relid, duedate, dealTasktype, title |
210
211---
212*Powered by [Composio](https://composio.dev)*