hvac-marketing-skills/tools/integrations/activecampaign.md
Corey Haines 3a85964305 feat: add 23 new CLI tools and integration guides
New tools across 13 categories:
- Email/Newsletter: beehiiv, klaviyo, postmark, brevo, activecampaign
- Data Enrichment: clearbit, apollo
- CRO/Testing: hotjar, optimizely
- Analytics: plausible
- Scheduling: calendly, savvycal
- Forms: typeform
- Messaging: intercom
- Social: buffer
- Video: wistia
- Payments: paddle
- Affiliate: partnerstack
- Reviews: trustpilot, g2
- Push: onesignal
- Webinar: demio, livestorm

Each tool includes a zero-dependency CLI and integration guide.
Registry and CLI README updated with all new entries.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 11:28:41 -08:00

337 lines
6.2 KiB
Markdown

# ActiveCampaign
Email marketing automation platform with CRM, contacts, deals pipeline, tags, automations, and campaign management.
## Capabilities
| Integration | Available | Notes |
|-------------|-----------|-------|
| API | ✓ | REST API v3 for contacts, deals, automations, campaigns, tags |
| MCP | - | Not available |
| CLI | ✓ | [activecampaign.js](../clis/activecampaign.js) |
| SDK | ✓ | Python, PHP, Node.js, Ruby |
## Authentication
- **Type**: API Token
- **Header**: `Api-Token: {api_token}`
- **Base URL**: `https://{yourAccountName}.api-us1.com/api/3`
- **Get key**: Settings > Developer tab in your ActiveCampaign account
- **Note**: Each user has a unique API key. Base URL is account-specific (found in Settings > Developer).
## Common Agent Operations
### Get current user
```bash
GET https://{account}.api-us1.com/api/3/users/me
```
### List contacts
```bash
GET https://{account}.api-us1.com/api/3/contacts?limit=20&offset=0
# Search by email
GET https://{account}.api-us1.com/api/3/contacts?email=user@example.com
# Search by name
GET https://{account}.api-us1.com/api/3/contacts?search=Jane
```
### Create contact
```bash
POST https://{account}.api-us1.com/api/3/contacts
{
"contact": {
"email": "user@example.com",
"firstName": "Jane",
"lastName": "Doe",
"phone": "+15551234567"
}
}
```
### Update contact
```bash
PUT https://{account}.api-us1.com/api/3/contacts/{contactId}
{
"contact": {
"firstName": "Updated",
"lastName": "Name"
}
}
```
### Sync contact (create or update)
```bash
POST https://{account}.api-us1.com/api/3/contact/sync
{
"contact": {
"email": "user@example.com",
"firstName": "Jane",
"lastName": "Doe"
}
}
```
### Delete contact
```bash
DELETE https://{account}.api-us1.com/api/3/contacts/{contactId}
```
### List all lists
```bash
GET https://{account}.api-us1.com/api/3/lists?limit=20&offset=0
```
### Create list
```bash
POST https://{account}.api-us1.com/api/3/lists
{
"list": {
"name": "Newsletter",
"stringid": "newsletter",
"sender_url": "https://example.com",
"sender_reminder": "You signed up for our newsletter."
}
}
```
### Subscribe contact to list
```bash
POST https://{account}.api-us1.com/api/3/contactLists
{
"contactList": {
"list": "1",
"contact": "1",
"status": 1
}
}
```
### Unsubscribe contact from list
```bash
POST https://{account}.api-us1.com/api/3/contactLists
{
"contactList": {
"list": "1",
"contact": "1",
"status": 2
}
}
```
### List campaigns
```bash
GET https://{account}.api-us1.com/api/3/campaigns?limit=20&offset=0
```
### List deals
```bash
GET https://{account}.api-us1.com/api/3/deals?limit=20&offset=0
# Filter by pipeline stage
GET https://{account}.api-us1.com/api/3/deals?filters[stage]=1
```
### Create deal
```bash
POST https://{account}.api-us1.com/api/3/deals
{
"deal": {
"title": "New Enterprise Deal",
"value": 50000,
"currency": "usd",
"group": "1",
"stage": "1",
"owner": "1",
"contact": "1"
}
}
```
### Update deal
```bash
PUT https://{account}.api-us1.com/api/3/deals/{dealId}
{
"deal": {
"stage": "2",
"value": 75000
}
}
```
### List automations
```bash
GET https://{account}.api-us1.com/api/3/automations?limit=20&offset=0
```
### Add contact to automation
```bash
POST https://{account}.api-us1.com/api/3/contactAutomations
{
"contactAutomation": {
"contact": "1",
"automation": "1"
}
}
```
### List tags
```bash
GET https://{account}.api-us1.com/api/3/tags?limit=20&offset=0
```
### Create tag
```bash
POST https://{account}.api-us1.com/api/3/tags
{
"tag": {
"tag": "VIP Customer",
"tagType": "contact"
}
}
```
### Add tag to contact
```bash
POST https://{account}.api-us1.com/api/3/contactTags
{
"contactTag": {
"contact": "1",
"tag": "1"
}
}
```
### List pipelines (deal groups)
```bash
GET https://{account}.api-us1.com/api/3/dealGroups?limit=20&offset=0
```
### List webhooks
```bash
GET https://{account}.api-us1.com/api/3/webhooks?limit=20&offset=0
```
### Create webhook
```bash
POST https://{account}.api-us1.com/api/3/webhooks
{
"webhook": {
"name": "Contact Updated",
"url": "https://example.com/webhook",
"events": ["subscribe", "unsubscribe"],
"sources": ["public", "admin", "api", "system"]
}
}
```
## API Pattern
ActiveCampaign uses REST with resource wrapping (e.g., `{ "contact": {...} }`). Responses include the resource object plus metadata. Related resources are managed via junction endpoints (e.g., `/contactLists`, `/contactTags`, `/contactAutomations`). The base URL is account-specific. Pagination uses `limit` and `offset` parameters.
## Key Metrics
### Contact Fields
- `email` - Email address
- `firstName`, `lastName` - Name fields
- `phone` - Phone number
- `cdate` - Creation date
- `udate` - Last updated date
- `deals` - Related deals count
### Deal Fields
- `title` - Deal name
- `value` - Deal value in cents
- `currency` - Currency code
- `stage` - Pipeline stage ID
- `group` - Pipeline (deal group) ID
- `owner` - Assigned user ID
- `status` - 0 (open), 1 (won), 2 (lost)
### Campaign Metrics
- `sends` - Total sends
- `opens` - Opens count
- `clicks` - Clicks count
- `uniqueopens` - Unique opens
- `uniquelinks` - Unique clicks
## Parameters
### Contact List Status
- `1` - Subscribed (active)
- `2` - Unsubscribed
### Deal Status
- `0` - Open
- `1` - Won
- `2` - Lost
### Tag Types
- `contact` - Contact tags
- `deal` - Deal tags
### Common Query Parameters
- `limit` - Results per page (default 20)
- `offset` - Skip N results
- `search` - Text search
- `email` - Filter contacts by email
- `filters[stage]` - Filter deals by stage
- `filters[owner]` - Filter deals by owner
## When to Use
- Marketing automation with complex conditional workflows
- CRM with deal pipeline management
- Contact management with tagging and segmentation
- Email campaign creation and tracking
- Triggering automations based on external events
- B2B sales pipeline tracking integrated with marketing
## Rate Limits
- 5 requests per second per account
- Rate limit applies across all API users on the same account
- 429 responses include `Retry-After` header
## Relevant Skills
- email-sequence
- lifecycle-marketing
- crm-integration
- sales-pipeline
- marketing-automation