Skip to content
APIANT
API ReferenceAPI Appsv7

Sync Timing and Reliability

How donors are matched and synced to ActiveCampaign contacts, and why any automation that fires on contact creation or update needs a delay or tag-recheck step to respect this sync's tags.

Overview

CRMConnect runs two scheduled automations for this pairing, keeping ActiveCampaign's contacts and deals current with DonorPerfect.

SyncWhat it doesDirectionRuns
Donor syncA new or updated DonorPerfect donor creates or updates the matching ActiveCampaign contact (fields + tags)DonorPerfect → ActiveCampaignEvery 5 minutes
Gift syncA new or updated DonorPerfect gift creates or updates the matching ActiveCampaign deal, linked to the donor's contactDonorPerfect → ActiveCampaignEvery 15 minutes (Gifts Pipeline add-on only)

There is no write-back direction here — ActiveCampaign doesn't push changes back into DonorPerfect.

How a donor is matched and synced

For every donor processed, the sync:

  1. Looks up the DonorPerfect donor to find a matching contact in ActiveCampaign, by email.
  2. If no ActiveCampaign contact exists yet: creates the contact and subscribes it to the configured ActiveCampaign list.
  3. If a contact already exists: reads its current tags and does a quick field update.
  4. Only after step 2 or 3 completes, the sync computes the DonorPerfect-flag-derived tags and adds/removes them on the ActiveCampaign contact.

Donors are matched to ActiveCampaign contacts by email, so a donor is only ever synced to one contact.

An email address is required for every ActiveCampaign contact

ActiveCampaign requires every contact to have an email address. A DonorPerfect donor with no email address will not sync to ActiveCampaign by default. If you need every donor represented in ActiveCampaign regardless of whether they have an email on file, ask your APIANT contact about enabling placeholder-email generation — a unique fake address is generated per donor so the contact can still be created. This is off by default.

Contact creation vs. tag application timing

Whenever this sync creates a new contact or updates an existing one, that step always completes first — tag application happens afterward, as a separate step, typically seconds apart, sometimes less.

The gotcha: automations that fire on contact creation or update

Any ActiveCampaign automation that triggers the moment a contact is created or updated (list-subscription, a "contact updated" trigger, etc.) evaluates at that exact moment — using whatever tags the contact has right then, not the tags this sync is about to add or remove.

Practical effect: if you're relying on a tag to control what an ActiveCampaign automation does — for example, keeping certain contacts out of a Welcome Series — that tag-based condition is not reliable against a trigger tied to this sync's own create/update step. The automation can evaluate before the tag lands, whether the contact is brand new or already existed.

The fix: build the delay into the ActiveCampaign automation

If you have (or want to build) an ActiveCampaign automation whose logic depends on a tag this sync applies, add a step that waits before it evaluates tags, rather than acting the instant a contact is created or updated:

  • Add a short delay/wait step (a few minutes is enough) at the start of the automation, before the condition that checks for the tag.
  • Or use ActiveCampaign's "wait until" condition (if available on your plan) to pause until the tag is present, instead of a fixed delay — this is more precise since it isn't a race against a clock.

ActiveCampaign's own support team can help build either of these into an existing automation if you're not sure how.

Summary

  • Donor sync runs every 5 minutes; gift sync (Gifts Pipeline add-on) runs every 15 minutes. No write-back to DonorPerfect.
  • ActiveCampaign requires an email per contact — no-email donors don't sync unless placeholder-email generation is enabled.
  • Contact match/creation or update always completes before tag application.
  • Any ActiveCampaign automation that fires on contact creation or update can act before that sync's tags land — build a delay or tag-recheck step into the ActiveCampaign automation itself to avoid this.

Seeing something that looks out of sync? Contact APIANT support at support@apiant.com.

Related docs

Last updated September 12, 2026