ActiveCampaign

Upsell & Expansion with ActiveCampaign

How to drive expansion revenue using ActiveCampaign. Step-by-step implementation guide with real examples.

RD
Ronald Davenport
April 17, 2026
Table of Contents

Why Most Upsell Sequences Fail Before They Start

Most upsell campaigns fail because they fire at the wrong time. A user gets an upgrade email on day 3 of a trial, before they've seen value. Or a paying customer gets pitched an add-on they already use. The timing and targeting are off, and the offer lands as noise.

ActiveCampaign fixes this at the infrastructure level. Its combination of Automations, deal pipelines, custom fields, and tagging gives you enough signal to build upsell sequences that respond to what users actually do — not just when they signed up.

This guide walks through a practical implementation: how to identify upgrade-ready users, build the trigger logic, sequence the outreach, and track revenue movement through the CRM.

---

The Core Framework: Signal → Score → Sequence

Upsell automation in ActiveCampaign runs on three layers:

  1. Signal — behavioral and usage data that indicates expansion readiness
  2. Score — a lead or contact score that accumulates as signals fire
  3. Sequence — the automation that fires when a score threshold is crossed

Every piece of ActiveCampaign infrastructure you configure maps back to one of these three layers.

---

Step 1: Define Your Upgrade Signals

Before you build anything, decide what behavior actually predicts upgrade intent. This varies by product, but common signals include:

  • Hitting a usage limit (seats, API calls, storage, sends)
  • Accessing a feature that's gated on a higher tier
  • Logging in more than X times in a 30-day window
  • Completing a key workflow that only power users reach
  • Adding a second user or inviting a teammate

Map these signals to data points you can pass into ActiveCampaign. The tool is not natively connected to your product database — you'll need to push events via the ActiveCampaign API, a native integration (Segment, Zapier, Make), or direct webhook calls.

Each signal should update either a custom field on the contact or trigger a tag. Tags work well for binary events ("hit seat limit"). Custom fields work better for cumulative values ("number of projects created: 14").

---

Step 2: Configure Contact and Lead Scoring

ActiveCampaign's Contact Scoring feature lets you assign point values to tags, custom field changes, email engagement, and site visits tracked via the ActiveCampaign tracking script.

Build a dedicated upsell score — separate from your acquisition lead score. Configure it like this:

  • +20 points: contacted a gated feature page
  • +15 points: hit a usage threshold (via tag)
  • +10 points: opened a pricing email in the last 60 days
  • +10 points: visited your pricing page (requires site tracking enabled)
  • -10 points: support ticket about billing (downgrade risk signal)

Set a threshold — typically 40–60 points depending on your product cycle — as the trigger for your upsell automation. This keeps the sequence from firing on users who checked a feature page once and never returned.

---

Step 3: Build the Upsell Automation

In ActiveCampaign Automations, create a new automation with the trigger: "Contact Score changes" → score exceeds your threshold.

Add a condition at the start to filter out contacts who are already on the target plan (check a custom field like `current_plan`). You don't want to upsell someone who already upgraded.

Automation Structure

Getting the most out of ActiveCampaign?

I'll audit your ActiveCampaign setup and show you where revenue is hiding.

Step 1 — Wait condition: Add a 1-day wait after trigger. This prevents the sequence from firing the moment a score tips over, giving you a buffer to catch score reversals or data sync delays.

Step 2 — Segment check: Use an If/Else action to split by account type or plan tier. A user on a free plan gets a different message than a user on a starter plan approaching limits.

Step 3 — First email: Send a usage-focused message. Reference the specific behavior that triggered the score (you'll need to use custom field merge tags here). Something like: "You've created {{custom.projects_created}} projects this month — here's what unlocking the Pro plan would change." Specificity outperforms generic upgrade pitches by a significant margin.

Step 4 — Wait 3 days, check for conversion: Use a Goal step in the automation. A Goal in ActiveCampaign lets you define a condition that, if met, jumps the contact forward and exits the upsell sequence. Set the Goal as: `current_plan equals pro`. If they upgrade during the sequence, they exit cleanly.

Step 5 — Second email (value reinforcement): If no conversion after 3 days, send a second email focused on ROI or social proof from users at their usage level.

Step 6 — Sales notification (for high-value accounts): For contacts above a deal size threshold, use the "Notify" action to send an internal alert to an account manager. Pair this with a Deal creation in the CRM pipeline so the opportunity is trackable.

Step 7 — Final email and hold: Send a third email with a time-limited offer if appropriate for your pricing model. After that, add the contact to a suppression tag (`upsell_sequence_complete`) and stop the sequence. Don't cycle them back through it indefinitely.

---

Step 4: CRM Pipeline for High-Touch Expansion

For B2B accounts where expansion involves a sales conversation, use ActiveCampaign's built-in Deals CRM. Create a dedicated pipeline called "Expansion / Upsell" with stages like:

  • Identified
  • Outreach Sent
  • Engaged
  • Proposal Sent
  • Closed-Won / Closed-Lost

The automation can create deals automatically using the "Add Deal" action, assign them to the right owner based on account size, and move them through stages as email engagement triggers score changes.

This keeps expansion revenue visible in a separate pipeline from new business — which matters when you're reporting on net revenue retention.

---

Limitations to Know Before You Build

ActiveCampaign is a strong fit for email-driven upsell automation. It has real constraints you should account for:

  • No native product analytics: ActiveCampaign cannot read usage data from your app on its own. All behavioral data must be pushed in via API, Zapier, or a CDP. If your engineering team can't support this, the signal layer will be weak.
  • Contact scoring is contact-level, not account-level: If you're selling to companies with multiple users, scores aggregate per contact, not per company. This creates blind spots for account-level expansion signals.
  • Limited in-app messaging: ActiveCampaign handles email well, but it has no native in-app notification or product tooltip capability. For upsell prompts inside your product, you'll need a separate tool.
  • Reporting is transactional, not revenue-centric: There's no native MRR or expansion revenue dashboard. You'll track email performance well, but connecting it to revenue impact requires exporting data or integrating with a BI tool.

---

Frequently Asked Questions

How do I pass product usage data into ActiveCampaign?

The most reliable method is a direct API call from your backend that updates a custom field or adds a tag when a usage event fires. If you're using Segment, their ActiveCampaign destination handles this natively. Zapier and Make work for lower-volume setups but introduce latency that can throw off trigger timing.

Can I run upsell automations for multiple plan tiers simultaneously?

Yes. Use If/Else branches inside a single automation, or build separate automations per tier with entry conditions scoped by current plan. Separate automations are easier to debug and maintain as your pricing structure evolves.

What's the right email cadence for an upsell sequence?

Three emails over 10–14 days performs well for most SaaS products: one immediate, one at day 4–5, one at day 10–12. Compressing it shorter increases conversions but also increases unsubscribes. Extending it past 14 days rarely lifts results and dilutes the urgency signal.

How do I prevent users from entering the upsell sequence multiple times?

Use a combination of the Goal step (exits converted users automatically) and a suppression tag applied at the end of the sequence. Add that tag as an exclusion condition on the automation entry trigger. This ensures a contact only runs through the sequence once unless you intentionally reset it.

Related resources

Get the Lifecycle Playbook

One framework per week. No fluff. Unsubscribe anytime.