CONNECT APP
Build with ActiveCampaign
Marketing
- API key
MCP
Give your agent ActiveCampaign tools
Every ActiveCampaign action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's ActiveCampaign account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "activecampaign",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Add Contact to Automation:
const result = await mcp.callTool({
name: "activecampaign-add-contact-to-automation",
arguments: {
contactId: "Contact ID",
automationId: "Automation ID",
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "activecampaign",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Add Contact to Automation:
result = await session.call_tool("activecampaign-add-contact-to-automation", {
"contactId": "Contact ID",
"automationId": "Automation ID",
})API PROXY
Call the ActiveCampaign API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the ActiveCampaign API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.example.com/v1/me",
})
// Any allowed ActiveCampaign endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.example.com/v1/me
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdjEvbWU?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run ActiveCampaign actions from your backend
Connect a user's ActiveCampaign account once, then run Add Contact to Automation on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "activecampaign-add-contact-to-automation",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
activecampaign: { authProvisionId: "apn_xxxxxxx" },
contactId: "Contact ID",
automationId: "Automation ID",
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="activecampaign-add-contact-to-automation",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"activecampaign": {"authProvisionId": "apn_xxxxxxx"},
"contactId": "Contact ID",
"automationId": "Automation ID",
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "activecampaign-add-contact-to-automation",
"configured_props": {
"activecampaign": { "authProvisionId": "apn_xxxxxxx" },
"contactId": "Contact ID",
"automationId": "Automation ID"
}
}'TOOLS
ActiveCampaign actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Add Contact to Automation
actionAdds an existing contact to an existing automation. See the docs here.Writev0.2.2 -
Create Account
actionCreate a new account. See the docs here.Writev0.0.5 -
Create Contact
actionCreate a new contact. See the documentation.Writev0.0.7 -
Create Deal
actionCreates a new deal. See the docs here.Writev0.2.3 -
Create Note
actionAdds a note, arbitrary information to a contact, deal, or other Active Campaign objects. See the docs here.Writev0.2.3 -
Create or Update Contact
actionCreates a new contact or updates an existing contact. See the documentation.Writev0.2.8 -
Create Tracked Event
actionTracks an event using event tracking. See the docs here.Writev0.2.2 -
Find Contact
actionFinds a contact. See the docs here.Read-onlyv0.2.2 -
Find Deal
actionFinds an existing deal by search field. See the docs hereRead-onlyv0.2.2 -
Get All Lists
actionRetrieves all lists. See the docs hereRead-onlyv0.2.2 -
Get Contact
actionRetrieves an existing contact. See the docs here.Read-onlyv0.2.2 -
Get contact by email
actionRetrieves contact data from the ActiveCampaign CRM by email address. See the docs here.Read-onlyv0.3.3 -
Get Contact Tags
actionGet Contact Tags.Read-onlyv0.3.2 -
Get Deal
actionRetrieves an existing deal. See the docs hereRead-onlyv0.2.2 -
List All Contacts
actionRetrieve all existing contacts. See the docs here.Read-onlyv0.2.2 -
List Campaigns
actionList Campaigns. See the docs here.Read-onlyv0.0.5 -
List Event Type Options
actionRetrieves available options for the Event Type field.Read-onlyv0.0.1 -
Remove Contact Tag
actionRemoves a tag from a contact. See the docs hereWritev0.5.2 -
Tag Contact
actionTags a contact. See the docs here.Writev0.3.2 -
Update Deal
actionUpdates an existing deal. See the docs here.Writev0.2.3
EVENTS
ActiveCampaign triggers
Event sources your backend can deploy for users and receive through a webhook.
-
New Automation Webhook
triggerEmit new event each time an automation sends out webhook data.v0.0.8 -
New Campaign Bounce (Instant)
triggerEmit new event when a contact email address bounces from a sent campaign.Instantv0.0.7 -
New Campaign Link Clicked (Instant)
triggerEmit new event when a link from a campaign is clicked (will only run once for each unique link).Instantv0.0.7 -
New Campaign Opened (Instant)
triggerEmit new event when a contact opens a campaign (will trigger once per contact per campaign).Instantv0.0.7 -
New Campaign Starts Sending (Instant)
triggerEmit new event each time a campaign starts sending.Instantv0.0.7 -
New Campaign Unsubscribe (Instant)
triggerEmit new event when a contact unsubscribes as a result of a campaign email sent to them.Instantv0.0.7 -
New Contact Added to List (Instant)
triggerEmit new event each time a new contact is added to a list.Instantv0.0.8 -
New Contact Added to Segment
triggerEmit new event each time a new contact is added to a segment.v0.0.2 -
New Contact Note (Instant)
triggerEmit new event each time a new note is added to a contact.Instantv0.0.7 -
New Contact Task
triggerEmit new event each time a new contact task is created.Instantv0.0.7 -
New Deal Added or Updated (Instant)
triggerEmit new event each time a deal is added or updated.Instantv0.0.7 -
New Deal Note (Instant)
triggerEmit new event each time a new note is added to a deal.Instantv0.0.7 -
New Deal Task (Instant)
triggerEmit new event each time a new task is added to a deal.Instantv0.0.7 -
New Event (Instant)
triggerEmit new event for the specified event type from ActiveCampaign.Instantv0.0.7 -
New or Updated Account
triggerEmit new event each time an account is added or updated.v0.0.6 -
New or Updated Calendar Feed
triggerEmit new event each time a calendar feed is added or updated.v0.0.6 -
New or Updated Contact (Instant)
triggerEmit new event each time a contact is added or updated.Instantv0.0.7 -
New Updated Contact (Instant)
triggerEmit new event each time a contact is updated.Instantv0.0.7
MULTI-APP
Use ActiveCampaign with other popular apps
Most products don't stop at one integration. Pair ActiveCampaign with the other apps your users rely on, and ship use cases that span both.
- App slug
- activecampaign
- Authentication
- API key
- Categories
- Marketing
- Actions
- 20
- Triggers
- 18
- API proxy
- Available