Awesome-omni-skills activecampaign-automation-v2
ActiveCampaign Automation via Rube MCP workflow skill. Use this skill when the user needs Automate ActiveCampaign tasks via Rube MCP (Composio): manage contacts, tags, list subscriptions, automation enrollment, and tasks. Always search tools first for current schemas and the operator should preserve the upstream workflow, copied support files, and provenance before merging or handing off.
git clone https://github.com/diegosouzapw/awesome-omni-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills_omni/activecampaign-automation-v2" ~/.claude/skills/diegosouzapw-awesome-omni-skills-activecampaign-automation-v2-b9a8e7 && rm -rf "$T"
skills_omni/activecampaign-automation-v2/SKILL.mdActiveCampaign Automation via Rube MCP
Overview
This public intake copy packages
plugins/antigravity-awesome-skills/skills/activecampaign-automation from https://github.com/sickn33/antigravity-awesome-skills into the native Omni Skills editorial shape without hiding its origin.
Use it when the operator needs the upstream workflow, support files, and repository context to stay intact while the public validator and private enhancer continue their normal downstream flow.
This intake keeps the copied upstream files intact and uses
metadata.json plus ORIGIN.md as the provenance anchor for review.
ActiveCampaign Automation via Rube MCP Automate ActiveCampaign CRM and marketing automation operations through Composio's ActiveCampaign toolkit via Rube MCP.
Imported source sections that did not map cleanly to the public headings are still preserved below or in the support files. Notable imported sections: Prerequisites, Common Patterns, Known Pitfalls, Limitations.
When to Use This Skill
Use this section as the trigger filter. It should make the activation boundary explicit before the operator loads files, runs commands, or opens a pull request.
- This skill is applicable to execute the workflow or actions described in the overview.
- Use when the request clearly matches the imported source intent: Automate ActiveCampaign tasks via Rube MCP (Composio): manage contacts, tags, list subscriptions, automation enrollment, and tasks. Always search tools first for current schemas.
- Use when the operator should preserve upstream workflow detail instead of rewriting the process from scratch.
- Use when provenance needs to stay visible in the answer, PR, or review packet.
- Use when copied upstream references, examples, or scripts materially improve the answer.
- Use when the workflow should remain reviewable in the public intake repo before the private enhancer takes over.
Operating Table
| Situation | Start here | Why it matters |
|---|---|---|
| First-time use | | Confirms repository, branch, commit, and imported path before touching the copied workflow |
| Provenance review | | Gives reviewers a plain-language audit trail for the imported source |
| Workflow execution | | Starts with the smallest copied file that materially changes execution |
| Supporting context | | Adds the next most relevant copied source file without loading the entire package |
| Handoff decision | | Helps the operator switch to a stronger native skill when the task drifts |
Workflow
This workflow is intentionally editorial and operational at the same time. It keeps the imported source useful to the operator while still satisfying the public intake standards that feed the downstream enhancer flow.
- Verify Rube MCP is available by confirming RUBESEARCHTOOLS responds
- Call RUBEMANAGECONNECTIONS 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
- ACTIVECAMPAIGNFIND_CONTACT - Search for an existing contact [Optional]
- ACTIVECAMPAIGNCREATE_CONTACT - Create a new contact [Required]
- email: Search by email address
Imported Workflow Notes
Imported: 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
respondsRUBE_SEARCH_TOOLS - Call
with toolkitRUBE_MANAGE_CONNECTIONSactive_campaign - If connection is not ACTIVE, follow the returned auth link to complete ActiveCampaign authentication
- Confirm connection status shows ACTIVE before running any workflows
Imported: Core Workflows
1. Create and Find Contacts
When to use: User wants to create new contacts or look up existing ones
Tool sequence:
- Search for an existing contact [Optional]ACTIVE_CAMPAIGN_FIND_CONTACT
- Create a new contact [Required]ACTIVE_CAMPAIGN_CREATE_CONTACT
Key parameters for find:
: Search by email addressemail
: Search by ActiveCampaign contact IDid
: Search by phone numberphone
Key parameters for create:
: Contact email address (required)email
: Contact first namefirst_name
: Contact last namelast_name
: Contact phone numberphone
: Contact's organizationorganization_name
: Contact's job titlejob_title
: Comma-separated list of tags to applytags
Pitfalls:
is the only required field for contact creationemail- Phone search uses a general search parameter internally; it may return partial matches
- When combining
andemail
in FIND_CONTACT, results are filtered client-sidephone - 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:
- Find contact by email or ID [Prerequisite]ACTIVE_CAMPAIGN_FIND_CONTACT
- Add or remove tags [Required]ACTIVE_CAMPAIGN_MANAGE_CONTACT_TAG
Key parameters:
: 'Add' or 'Remove' (required)action
: Tag names as comma-separated string or array of strings (required)tags
: Contact ID (provide this or contact_email)contact_id
: Contact email address (alternative to contact_id)contact_email
Pitfalls:
values are capitalized: 'Add' or 'Remove' (not lowercase)action- Tags can be a comma-separated string ('tag1, tag2') or an array (['tag1', 'tag2'])
- Either
orcontact_id
must be provided;contact_email
takes precedencecontact_id - 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:
- Find the contact [Prerequisite]ACTIVE_CAMPAIGN_FIND_CONTACT
- Subscribe or unsubscribe [Required]ACTIVE_CAMPAIGN_MANAGE_LIST_SUBSCRIPTION
Key parameters:
: 'subscribe' or 'unsubscribe' (required)action
: Numeric list ID string (required)list_id
: Contact email address (provide this or contact_id)email
: Numeric contact ID string (alternative to email)contact_id
Pitfalls:
values are lowercase: 'subscribe' or 'unsubscribe'action
is a numeric string (e.g., '2'), not the list namelist_id- List IDs can be retrieved via the GET /api/3/lists endpoint (not available as a Composio tool; use the ActiveCampaign UI)
- If both
andemail
are provided,contact_id
takes precedencecontact_id - 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:
- Verify contact exists [Prerequisite]ACTIVE_CAMPAIGN_FIND_CONTACT
- Enroll contact in automation [Required]ACTIVE_CAMPAIGN_ADD_CONTACT_TO_AUTOMATION
Key parameters:
: Email of the contact to enroll (required)contact_email
: ID of the target automation (required)automation_id
Pitfalls:
- The contact must already exist in ActiveCampaign
- Automations can only be created through the ActiveCampaign UI, not via API
must reference an existing, active automationautomation_id- 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:
- Find the contact to associate the task with [Prerequisite]ACTIVE_CAMPAIGN_FIND_CONTACT
- Create the task [Required]ACTIVE_CAMPAIGN_CREATE_CONTACT_TASK
Key parameters:
: Contact ID to associate the task with (required)relid
: Due date in ISO 8601 format with timezone (required, e.g., '2025-01-15T14:30:00-05:00')duedate
: Task type ID based on available types (required)dealTasktype
: Task titletitle
: Task description/contentnote
: User ID to assign the task toassignee
: End date in ISO 8601 format (must be later than duedate)edate
: 0 for incomplete, 1 for completestatus
Pitfalls:
must be a valid ISO 8601 datetime with timezone offset; do NOT use placeholder valuesduedate
must be later thanedateduedate
is a string ID referencing task types configured in ActiveCampaigndealTasktype
is the numeric contact ID, not the email addressrelid
is a user ID; resolve user names to IDs via the ActiveCampaign UIassignee
Imported: Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active ActiveCampaign connection via
with toolkitRUBE_MANAGE_CONNECTIONSactive_campaign - Always call
first to get current tool schemasRUBE_SEARCH_TOOLS
Examples
Example 1: Ask for the upstream workflow directly
Use @activecampaign-automation-v2 to handle <task>. Start from the copied upstream workflow, load only the files that change the outcome, and keep provenance visible in the answer.
Explanation: This is the safest starting point when the operator needs the imported workflow, but not the entire repository.
Example 2: Ask for a provenance-grounded review
Review @activecampaign-automation-v2 against metadata.json and ORIGIN.md, then explain which copied upstream files you would load first and why.
Explanation: Use this before review or troubleshooting when you need a precise, auditable explanation of origin and file selection.
Example 3: Narrow the copied support files before execution
Use @activecampaign-automation-v2 for <task>. Load only the copied references, examples, or scripts that change the outcome, and name the files explicitly before proceeding.
Explanation: This keeps the skill aligned with progressive disclosure instead of loading the whole copied package by default.
Example 4: Build a reviewer packet
Review @activecampaign-automation-v2 using the copied upstream files plus provenance, then summarize any gaps before merge.
Explanation: This is useful when the PR is waiting for human review and you want a repeatable audit packet.
Best Practices
Treat the generated public skill as a reviewable packaging layer around the upstream repository. The goal is to keep provenance explicit and load only the copied source material that materially improves execution.
- Keep the imported skill grounded in the upstream repository; do not invent steps that the source material cannot support.
- Prefer the smallest useful set of support files so the workflow stays auditable and fast to review.
- Keep provenance, source commit, and imported file paths visible in notes and PR descriptions.
- Point directly at the copied upstream files that justify the workflow instead of relying on generic review boilerplate.
- Treat generated examples as scaffolding; adapt them to the concrete task before execution.
- Route to a stronger native skill when architecture, debugging, design, or security concerns become dominant.
Troubleshooting
Problem: The operator skipped the imported context and answered too generically
Symptoms: The result ignores the upstream workflow in
plugins/antigravity-awesome-skills/skills/activecampaign-automation, fails to mention provenance, or does not use any copied source files at all.
Solution: Re-open metadata.json, ORIGIN.md, and the most relevant copied upstream files. Load only the files that materially change the answer, then restate the provenance before continuing.
Problem: The imported workflow feels incomplete during review
Symptoms: Reviewers can see the generated
SKILL.md, but they cannot quickly tell which references, examples, or scripts matter for the current task.
Solution: Point at the exact copied references, examples, scripts, or assets that justify the path you took. If the gap is still real, record it in the PR instead of hiding it.
Problem: The task drifted into a different specialization
Symptoms: The imported skill starts in the right place, but the work turns into debugging, architecture, design, security, or release orchestration that a native skill handles better. Solution: Use the related skills section to hand off deliberately. Keep the imported provenance visible so the next skill inherits the right context instead of starting blind.
Related Skills
- Use when the work is better handled by that native specialization after this imported skill establishes context.@00-andruia-consultant-v2
- Use when the work is better handled by that native specialization after this imported skill establishes context.@10-andruia-skill-smith-v2
- Use when the work is better handled by that native specialization after this imported skill establishes context.@20-andruia-niche-intelligence-v2
- Use when the work is better handled by that native specialization after this imported skill establishes context.@2d-games
Additional Resources
Use this support matrix and the linked files below as the operator packet for this imported skill. They should reflect real copied source material, not generic scaffolding.
| Resource family | What it gives the reviewer | Example path |
|---|---|---|
| copied reference notes, guides, or background material from upstream | |
| worked examples or reusable prompts copied from upstream | |
| upstream helper scripts that change execution or validation | |
| routing or delegation notes that are genuinely part of the imported package | |
| supporting assets or schemas copied from the source package | |
Imported Reference Notes
Imported: 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 |
Imported: 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
Imported: 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
ordatadata.data - Parse defensively with fallback patterns
- Contact search may return multiple results; match by email for accuracy
Imported: Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.